# Fast-Report > Fast Reports creates components libraries and tools for generating reports and documents. ## English (EN) ### -15% Off Single Licenses for Independent Developers URL: https://www.fast-report.com/news/single-free-may-2026 Summary: Get 15% off Single licenses for FastReport .NET, FastReport VCL, and FastReport Desktop until May 22 Get 15% off Single licenses for FastReport .NET, FastReport VCL, and FastReport Desktop until May 22 Freelancers’ Day is a great occasion to celebrate individual developers. From May 18 to May 22 , get 15% off Single licenses for: — FastReport .NET — FastReport VCL — FastReport Desktop If you work independently, manage projects, build products, and solve complex challenges every day on your own, this offer is for you. FastReport itself once started as a tool created by an independent developer. And today, we continue to support those who move the industry forward with their ideas, expertise, and code. Get your license with a discount before May 22! ### .NET 6.0 update URL: https://www.fast-report.com/blogs/update-dotnet6 Summary: We are reviewing new opportunities .NET 6.0, which are already supported by FastReport products, namely utilities, json, http/3 and much more. We are reviewing new opportunities .NET 6.0, which are already supported by FastReport products, namely utilities, json, http/3 and much more. We are reviewing new opportunities .NET 6.0, which are already supported by FastReport products, namely utilities, json, http/3 and much more. It looks like that lockdown was not hard for Microsoft. This year, the Plenty’s Horn opened and we had a shower with new software products — the long-awaited Windows 11, and the new Visual Studio 22, and, of course, .NET 6.0. This is good news in these bad times. Let's talk about the new product, which is the most interesting for developers — .NET 6.0. Hardly developers ported their projects to NET 5.0 when a new version was released. I will go forward to tell the obvious truth that version 6 is not something fundamentally new - it is the “finished-off” fifth version. Most changes include modified or revised solutions from last year's release, but the sixth version received LTS (Long Time Support) status — it became a version with long-term support. From now on, this will be the case for all even versions. As you remember, starting with .NET 5.0 Microsoft decided to merge all its frameworks into one. This was done to get rid of the "heterogeneity". That is, we came to the original concept of the .NET Framework, but now it is not a monolith, but looks like this. There are a lot of changes and additions in NET 6.0. To make this article more than just a tedious treatise, I will briefly review the main, most interesting ones: 1. Crossgen2 - Pre-compilation The updated Crossgen utility now had a second version. The old pre-compilation technology was, let’s have it straight, imperfect, and only enabled generating native code for the platform where the old crossgen utility was running. Now it enables running the JIT compiler regardless of the platform using different strategies and optimizations depending on the situation.   2. Profile-Guided Optimization (PGO) It is a compiler optimization to prioritize the compilation of application parts. The point is that not all parts of the program are used during execution or are used extremely rarely. For example, some exotic else if branches. We can improve application performance if we point to frequently executed areas. Now you can turn on the analyzer, which, during the execution, will determine frequently and rarely used areas, and also generate an optimization profile. There are three optimization scenarios: Static – the code is split into frequently and rarely executed (hot-cold splitting). In this case, the optimization profile is generated only once . If the operating conditions of the application change, you will have to generate it again and re-optimize it. This approach complies with the most frequently executed areas of the application and places them together in the executable file. This will load it very quickly, thanks to the cache. Very rarely executed code is not compiled. If necessary, it will be compiled during the execution of the application. A dynamic approach where no preliminary optimization profile is generated . The analyzer monitors the execution of the application during real operation and recompiles sections of the code if the optimization is required. The mixed approach speaks for itself. Here both approaches are used. That is, the application is optimized according to the optimization profile. It is then adjusted during operation according to a dynamic scheme. 3. Hot reload You will be especially happy with this feature. Finally, debugging applications got really simple! Now you can start debugging once and edit the code in real time. You will understand how this works if you have ever debugged javascript in your .NET Core projects. You probably remember something like "Edit and Continue". We had the opportunity to change the code at runtime, but it was not very convenient. You had to set breakpoints and pause the application. The breakpoint had to be set before the moment to be debugged. Edit possibilities were also very limited. https://docs.microsoft.com/en-us/visualstudio/debugger/supported-code-changes-csharp?view=vs-2019 Now we can fix the code right at runtime while debugging. Then save the changes and see them in real time. This greatly speeds up the debugging process, especially if you know what and where to fix and want to see the result immediately without restarting the debugger. And yes, it now works in VS Code as well. The list of available changes is short and is available here . 4. .NET MAUI As part of globalization or combining all the frameworks, Microsoft is adding support for Xamarin. Now we have developments for macOS, iOS, and Android in VisualStudio. However, this will not work in the standard SDK. You will need to install the optional Optional SDK Workloads. In fact, development is becoming more and more convenient. Creating a project on Android is a matter of a team: ``` dotnet new android ``` They decided to abandon the name Xamarin and now presented the Multi-platform App UI or MAUI. 5. Minimal API Framework It is worth talking about an interesting tool Minimal API. This framework enables to make do with minimal code for creating and accessing web methods. You don't need to create the MVC binding, customize the controller and method headers to build up the routing. Moreover, you won’t need Setup.cs either. All you need is Program.cs where you can immediately develop web methods with routing.  ``` app.MapGet("/", (Func)(() => "Hello World!"));                                                              ``` The unnamed function will return "Hello World!" for any query. This is exactly what is needed for microservices or prototyping. 6. Supported operating systems Microsoft has published a list of all supported operating systems, namely: Windows — Windows Client, Windows 10 Client, Windows 11, Windows Server, Windows Server Core, Nano Server; MacOS; Linux  — Alpine Linux, CentOS, Debian, Fedora, openSUSE, Red Hat Enterprise Linux, SUSE Enterprise Linux (SLES), Ubuntu; Mobile — Android and iOS. 7. ARM64 architecture support ARM64 support was implemented in NET 5 for Windows. In the sixth version, it was expanded to the ARM64 Apple processors. 8. Blazor desktop app support While Blazor is a framework for web-based applications, Microsoft decided to break the mold and enable developing desktop applications. Blazor has probably proven its worth. 9. MSBuild optimization Razor compiler was merged to Roslyn Source Generators, which significantly accelerated the build. Roslyn Source Generators was introduced in NET 5 and made a stir with its possibility to generate C # code on the fly while developing. 10. LINQ                                           Developers also worked on our favorite LINQ. With every .NET release, they add something new to this language (especially in .NET 5) and this release was no exception. LINQ has been made faster over the past few years and the code duplication was reduced. Here is a small list of useful features: The TryGetNonEnumeratedCount function enables to determine the count of items in a sequence without enumerating them, thereby significantly speeding up the application in some cases; The Chunk function splits the items of the sequence into a specified number of groups; The MaxBy and MinBy functions allow you to find the maximum or minimum element for a given key selector; The DistinctBy, ExceptBy, IntersectBy, and UnionBy functions also allow you to perform actions according to a key selector; The ElementAt and ElementAtOrDefault functions return the element from a specific index with the difference of returning a default value; The FirstOrDefault function finally can set a default value. “Your prayers have been answered”, because not everyone was happy with null; The Max function now can accept a comparator to compare values; The Take function enables to set a range. 11. JSON  Well, how we could forget modifications to the System.Text.JSON library. The main changes were made to the serializer. Namely: Avoiding circular references;An object IAsyncEnumerable was added, which turns into an array; Deserialization of an array document, where the DeserializeAsyncEnumerable method appeared. Support for source generators - a technology of serialization without reflection, which significantly speeds up and reduces the cost of the application; New interfaces IJsonOnDeserialized, IJsonOnDeserializing, IJsonOnSerialized, IjsonOnSerializing were added, which contain event handlers of the same name. That is, you can execute any code during serialization/deserialization; You can set the order of field serialization using the JsonPropertyOrder attribute; Deserialization from a stream; Another very interesting "feature" is the support for working with JSON documents as with DOM. This feature is quite useful because sometimes you just don't want to spawn POCO objects for simple operations. Do not forget that the DOM approach to work with JSON reduces performance and overuses resources. We are assured that this will not happen, but we will find out in practice how true this is. 12. HTTP/3 The HTTP communications protocol has been around for ages. Everyone knows that it is based on another protocol, TCP, which has been around for even longer. Yes, the rapid development of the Internet has put http in a difficult position - it looks like a weak link against the growth of network bandwidth. Finally, we got the third version of this wonderful protocol. It did not eliminate the problems but significantly reduced their degree. The new QUIC protocol, which replaced TCP, is faster if packages are lost. It is faster during the connection setup. It allows for parallel data transmission. Moreover, it is inherently secure thanks to encrypted queries. 13. Priority queue A new class has appeared — PriorityQueue . It allows you to set the priority on each added item and creates a priority queue. These items are removed starting with the lowest priority. 14. Date/Time Developers also worked with the date. Some of the most interesting modifications: There are two new methods System.DateOnly and System.TimeOnly, which allow you to work directly with a date or time, and not DateTime as before. Conversion of time zones. That is, you can now use the Windows or IANA identifier when determining a zone using the TimeZoneInfo.FindSystemTimeZoneById method. If the search does not find the identifier of a zone of one type, then the time is automatically converted to a different format according to the second type of identifier. 15.  C# 10 support We can write a separate article about the new features of version 10. I will not even mention the most interesting here. You can check out this list of changes . Let's sum up - what does .NET 6 offer: Performance. Indeed, the .NET 6 platform is very fast with various optimization features, especially when it comes to the web part. Versatility. It is one platform for creating any application for different platforms. Many were positive about this idea. The learning curve became lower and it is convenient. However, there are also enough skeptics. We all know that the versatile is usually worse than something special. Of course, we tested our products for compatibility with the new framework. FastReport operates on .NET 6 just as well as on version 5. We can say that there is a right vector to consolidate platforms, languages, and technologies. Yes, the younger generation has the fewer technical knowledge, but we no longer need them. Just like an automatic gearbox displaces a mechanical one. People just should drive and not think about gears and engine rpm. Like many modern developers do not want to get into the technical buzzwords of certain processes. Now they can enjoy the creative aspect of software development. Tags: .NET, MacOS, C#, JSON, Blazor, .NET, MacOS, C#, JSON, Blazor ### 15% Discount on FastReport .NET Avalonia and FastReport VCL Reporting Lazarus URL: https://www.fast-report.com/news/sale-15-avalonia-lazarus Summary: Until May 31, take advantage of our limited-time offer — 15% off FastReport .NET Avalonia and FastReport VCL Reporting Lazarus! Until May 31, take advantage of our limited-time offer — 15% off FastReport .NET Avalonia and FastReport VCL Reporting Lazarus! Until May 31, take advantage of our limited-time offer — 15% off FastReport .NET Avalonia and FastReport VCL Reporting Lazarus! If you need a powerful reporting tool with Windows, Linux, and macOS support, this is your chance to deploy a reliable solution at a great price. FastReport .NET Avalonia  is a versatile component for generating reports in cross-platform applications built with Avalonia UI. Reporting Lazarus is an LCL component suite with full source code for generating reports and documents in Lazarus on Linux and Windows. What you get: Cross-platform reports: create reports on Windows, macOS, and Linux simultaneously  Export to PDF, Excel, HTML, RTF, and more Visual report designer Interactive tables, charts, and filters Database connectivity and custom data sources This offer applies only to new purchases and is valid from May 13 through May 31 , inclusive. Don’t miss your chance to secure your license at the best price! ### 20% discount on FastReport VCL URL: https://www.fast-report.com/news/fastreport-vcl-discount Summary: 20% discount on Professional and Enterprise editions of the FastReport VCL report generator. 20% discount on Professional and Enterprise editions of the FastReport VCL report generator. 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. ### 25 years of product history of our company URL: https://www.fast-report.com/news/birthday-fastreport-2023 Summary: Be our guest and enjoy the birthday celebration of FastReport 2023. Be our guest and enjoy the birthday celebration of FastReport 2023. We turned 25 in August! Thank you for being with us all these years and for helping make our products better and more powerful! ### 5 functions for working with reports in FastReport Online Designer URL: https://www.fast-report.com/blogs/functions-online-designer Summary: There have been some updates in FastReport Online Designer, which improve usability and simplify report creation. There have been some updates in FastReport Online Designer, which improve usability and simplify report creation. There have been some updates in FastReport Online Designer, which improve usability and simplify report creation. The time for Fast Reports products is not standing still. Every month we add new functions and objects and improve and optimize the current code. There have been some updates in FastReport Online Designer, which improve usability and simplify report creation. Here is their list: Autosave; Selection of several objects in the report tree and table cells; Setting favorite properties for objects; You can change property values for multiple selected objects; The settings of FastReport Online Designer Builder are now saved when you specify a new configuration. Now you don't need to set values all over again. Autosave Now you can enable Autosave in FastReport Online Designer. This can be done in two ways. 1. To enable Autosave in the already built FastReport Online Designer. 2. To set the corresponding option in FastReport Online Designer Builder. Let's take a closer look at these two methods. Autosave in the already built FastReport Online Designer To enable Autosave, set the Autosave option to true in the build.json file, which is located in the directory with the built-up designer. Autosave in FastReport Online Designer Builder You can also enable Autosave in the designer builder. This option is located in the "Settings" tab. Selecting multiple objects in the report tree and table cells We have added the ability to select multiple items in the report tree by holding Shift or Ctrl. This also works with table cells. Favorite Properties for Objects We have added the ability to mark an object property as a Favorite. Now you do not need to search a frequently changed property each time. To add a property to "Favorites", right-click on it and select "Add to Favorites" in the context menu. Changing property values for multiple selected objects Now you can change property values for several objects at the same time: Saving settings for FastReport Online Designer Builder Previously, FastReport Online Designer Builder did not remember the selected options, and you had to set all the options again each time with a new configuration. Now it remembers the values. The FastReport Online Designer development team is committed to improving the user experience. In the future, FastReport Online Designer will offer even more useful features that simplify report creation. We are always open to feedback from you. Contact our support ! Tags: FastReport, Online Designer ### 50% off FastReport Single license renewal — only until April 30! URL: https://www.fast-report.com/news/single-april-2025 Summary: Great news for owners of FastReport VCL and FastReport .NET Single licenses! Until April 30, you can renew your license with an impressive 50% discount. Great news for owners of FastReport VCL and FastReport .NET Single licenses! Until April 30, you can renew your license with an impressive 50% discount. Great news for owners of FastReport VCL and FastReport .NET Single licenses! Until April 30 , you can renew your license with an impressive 50% discount. It’s a perfect opportunity to regain access to the latest updates, improvements, and technical support. Plus, you’ll save a significant amount — starting from $200 ! Why it matters: Back on track — keep using FastReport at full efficiency; Risk-free — renewal ensures correct operation and stability; Maximum value — stay up to date with all the new features and enhancements. Don’t put it off — this special offer is only available for a few weeks! Contact us at sales@fast-report.com to take advantage of it. ### A closer look at FastReport Cloud - cloud reporting URL: https://www.fast-report.com/blogs/closer-look-cloud-reporting Summary: A small overview of the new FastReport Cloud product, which is a cross-platform solution and does not require installation on your device. A small overview of the new FastReport Cloud product, which is a cross-platform solution and does not require installation on your device. A small overview of the new FastReport Cloud product, which is a cross-platform solution and does not require installation on your device. FastReport Cloud is a set of tools for building documents. The service allows making reports and documents based on preconceived templates kept in a cloud. The story behind FastReport Cloud FastReport Cloud is based on FastReport .NET library, released in March 2009 and being developed until today. A shift to the cloud is the most logical way of development for the company products. First, it provides users with full cross-platform software and simplifies the introduction process. Now you do not need to install anything, just enter a login and a password. Reports in our life Any business accumulates and stores data in some form. It could be a database or a simple file on a hard disc. As a rule, such a type is convenient to store but not to present, obtain the important information, or make decisions by users. Our tools, solutions and libraries allow making data informative. These may be documents or tables – structured in the way that is necessary and convenient for the users to solve their specific tasks. Works directly in a browser FastReport Cloud allows creating and setting templates, connecting to them data from remote sources, and exporting into various formats directly in a browser. All these files are stored in a cloud; thus, you only need access to the Internet for your work. Documents building, which may appear rather demanding for large volumes of data, is also transferred to the cloud. This allows redirecting resources (both computational and human) to higher priority tasks. The result of such building can be accessed from any place. Online Designer An online designer is built in FastReport Cloud. It allows users to: Change properties of all report objects, add news and remove old ones. Configure bands. Connect to the report data sources from a subscription or create new ones (the currently supported ones are JSON, CSV, XML, MS SQL, PostgreSQL, MySQL, and Oracle DB). Edit template scripts. Use preview. The online designer supports various objects, among which: Text. Table. Image. Bar code (both string and two-dimensional). Matrix. Digital signature. Scale. RichText (text with broader formatting opportunities). Check boxes. Geometric shapes. Nested report (nestedness is not limited: a nested report may have its own nested report, and so on). Simple introduction to the user applications We have created tools (SDK) to work with our API for many programming languages, including C#, Java, JavaScript, Python, Golang, Haskell, and C++. This will simplify FastReport Cloud operating from user applications. All the feature set of our API is used directly from the code regardless of a platform or an operational system. You may see the examples of using the SDK  here . Team work Cloud storing and flexible setting of rights allow sharing the created documents with all members of your organization. Additionally, you may set the rights so that only a certain group of individuals had an access to confidential data. The rights are attributed to groups of users and are grouped by type. Each separate right gives an access to a certain action. At the same time, a creator or an owner of a file is also a group, although consisting of just one person. For all new files, default rights are applied. You can set them too, as you wish. If you need to make an exception, an authorized user may set their own distribution of rights which will rewrite the default rights. Planning and storing documents All documents in FastReport Cloud are stored in folders. By default, every subscription has three root folders for each document type. When browsing catalogs with documents, one may sort and search. Having selected a file or a folder, the user may relocate or copy their data, even into a folder of another subscription, if the user has the relevant rights. The user interface allows working with several files at a time, without repeating the same actions for every document. Safety The automation service supports a two-factor authentication via Microsoft Authenticator or Google Authenticator. We strongly recommend switching on a two-factor authentication , so that attackers had no access to your resources even if they know the data for entering under your account.  Using a Cloud for business solutions Give a couple of examples: A customer has a web-application which returns data in JSON format on request. This information will be further used in various PDF documents. To solve this task, it is sufficient to create a data source, indicate the http address at which that JSON can be found, and connect the data source to the template. From that moment on, a PDF document with actual data can be made in one click. Another case describes creating a price list with scheduled daily uploading. First create a template in the designer and a data source is indicated. Then we set uploading to FTP at a certain time of the day with our planner. Additionally, we set sending the ready data via e-mail. Conclusion Transition to a cloud provides the company products with full cross-platform software and gives an opportunity to work from any spot on the Earth. The most important thing is that you do not have to install anything. The entry threshold for new users became much lower, while the flexibility of use scenarios increased. Tags: FastReport, Cloud ### A new version of FastReport Cloud 2024.1 released URL: https://www.fast-report.com/news/fastreport-cloud-2024.1 Summary: From this version were added: integration with ClickHouse, preview from WASM, a new notification service, mass deletion of files. From this version were added: integration with ClickHouse, preview from WASM, a new notification service, mass deletion of files. With this version, the cloud service for document generation and storage has introduced the following features: integration with ClickHouse, interactive preview from WASM, a new notification service, bulk file deletion, email notifications, and much more. Integration with ClickHouse We have added connection to the ClickHouse columnar database. Go to the "Data" panel and click on the "+" button. You will see a menu for selecting available sources. Read more in the article. Notification service FastReport Cloud has added the ability to receive notifications about various events: successful document exports, file creation or deletion, and others. You can configure the display of notifications on the Profile Settings page. The simple version will look like this: It will look different in the expanded format: Bulk file deletion  Our team has optimized the application. Now, instead of requests to delete each file from the recycle bin, you can create 1 single request. So the bin can be emptied several times faster. Folder properties page We have improved information about already created folders. Now there is a properties page with a description of the creator and owner of the folder and the size and location of the folder in the workspace. Folder size calculation Added an API that calculates how much space a folder's contents take up (relevant for templates, reports, and exports). You can see its size on the folder properties page. The size after downloading the folder is shown in brackets. Interactive preview Added a beta microservice for viewing reports in a browser based on WASM technology. Unlike the current static preview, it can work with interactive objects: maps and drop-down lists. To use it, you need to replace the word staticpreview with wasmpreview in the browser line  (/staticpreview/t/6235f34d935bef40aa09e8c3 -> /wasmpreview/t/6235f34d935bef40aa09e8c3). Apikey in staticpreview Added the ability to use apikey in staticpreview. This way you can give preview access only to users with this key. The key is sent as follows: ``` https://fastreport.cloud/staticpreview/t/6235f34d935bef40aa09e8c3?apikey={your key} ``` New task page design The Task system has been significantly redesigned. The user interface has become more ergonomic and intuitive for users. Mailings by email A page for setting up mailings has been added. Now you can send letters with templates, reports, and exports. You can also set up a newsletter once and reuse it for other tasks. New breadcrumbs Breadcrumbs on file and folder pages have been replaced with a more compact version. Downloading folders We have added the ability to download groups of files and folders. To do this, select the “Download” item in the context menu. When you select folders or several files, a common archive will be created and download will start automatically. New online designer The online report designer has been updated to the latest version. You can find more about the designer changes on the product page. Storage of VCL templates With the release of 2024.1, we added storage of VCL templates. Now you can save .fp3 and .fr3 files in the cloud, and then use them in future projects. Full list of changes: --- ### [Backend] + added Tahoma font to worker; + added API, which will create a folder with the specified name if it does not exist when requested; + added serialization for the transport property of export tasks; + added a cache for previews; + added localization for checking scripts; + added a parser for ReportInfo VCL templates; + added a connection to the ClickHouse database; + added a validation method for transports and exports; + added a way to receive notifications from audit; + added bulk file deletion; + added an API for calculating how much space a folder takes up; + added checking and solving the problem when files did not have GridFS chunks; + added missing "Access Denied" logs for tasks; * updated installation script; * updated behavior when copies of files will no longer be created with the same rights as the original; * localized FastReport .NET errors; *updated the FastReport package to the version with SkiaSharp; *refactored task updating; *improved updating of transports for transfer tasks; *improved task updating logic, now the process occurs in the View Model; * renamed TaskUpdateType to EnumerablePatchType; *merged some similar retrieval methods, removed unnecessary code, adjusted naming; *improved GET request for one folder, now the calculated size of its contents will be returned; * refactored View Models; * converted subscription and entity identifiers in ObjectId audits; *removed the Count field from audits due to performance problems; *improved query for statistics on audits; *added a new configuration file for the online designer; * moved all View Models to another directory; - adjusted records when creating audit; - fixed rights check for groups with null rights; - fixed error message display in online design; - fixed connection checking when creating or editing a data source; - fixed a bug with redundant auditing when exporting; - fixed the creation of loggers with incorrect contexts; - fixed a bug where an incorrect date value in creating or updating a subscription resulted in a 500 error; - fixed a bug when the “.preview” folder was created for each preview; - fixed numerous serialization problems; - fixed a lack of traceId in the backend logs; - fixed a naming error for SDK generation; - fixed a bug when the report parameters broke the export; - fixed duplication of file names during exports; - fixed an error in the win1251 encoding in a FireBird connection; - fixed UpdateTaskTest; - fixed transports in transformer tasks; - fixed serialization of tasks and audits; - fixed a bug with report dialogs when building; - fixed missing associated audits; - fixed the type of the returned View Model in InternalDesignerController; - fixed the preparation of the AMP tag for reading in XML; - fixed the error displaying line breaks and spaces in the designer; - fixed the returned View Model when exporting folders; - fixed the error when the messageId of the export could be null; ### [Frontend] + added icons for data sources; + added a preview button to the file properties page; + added support for mixins in the online designer; + added sorting by users page; + added creation time on the users page; + added a message showing that the folder was successfully exported; + added a workspace identifier to the file information pages in the admin panel; + added localization for the headers of the file and folder selection dialogs; + added the TemplateId field to the export page in the admin panel; + added a beta microservice for viewing reports in a browser using WASM technology; + added the Deleted field to file pages in the admin panel; + added redirection to the logout page from the authentication server after exiting the application; + added a properties page for folders; + added a new switch for deleted files in the admin panel; + added the opportunity to go to the selected workspace from the user card; + added new icons in the online designer; + added search on the data sources page in the admin panel; + added the ability to use API Key in staticpreview; + added loading indicators for pages in the admin panel; + added sorting on the data sources page in the admin panel; + added blocking of the download button after clicking on it; + added an error message if updating the data source failed; + added behavior when the file pages of the admin panel the pressed ToBin button will change to Restore and vice versa; + added red coloring of the expiration date when the API key has already expired; *localized the inscription “just now” and other text in pop-up messages; *updated Blazor components, now they have unique html classes for future tests; * the history of file properties is hidden if the history is empty or there are insufficient rights to view it; * updated information about limits on the “about the workspace” page, implemented more accurate rounding of numbers; * enabled cutting of WASM technology; *updated Blazorise in the admin panel, fixed the page for creating a subscription plan; *replaced custom checkboxes with a variation from Blazorise on the page for editing a subscription plan in the admin panel; * changed the behavior for deleting on the file page; *changed the design of the task page; *changed the add parameter button in tasks; *refactored the admin panel; *breadcrumbs on the pages of files and folders were replaced with a more compact version; * improved redirect to a special page when the subscription has expired; - fixed text alignment on service pages; - fixed a bug when the delete dialog was displayed without selected files; - fixed a bug when you could not delete a file if a file with no rights to delete was deleted along with it; - fixed a bug when several data sources were created while checking the status of the source; - fixed a redirect when logging into the service; - fixed non-aligned subscription cards in the admin panel; - fixed a bug where it was impossible to move or copy a file to another subscription via the frontend; - fixed a bug when searching in audits resulted in a 404 error; - fixed a 404 error when switching workspace on file pages in the admin panel; - fixed the window headers of the selection dialogs; - fixed the dialog for selecting the export type in tasks; - fixed the behavior of the middle mouse button, now clicking on the admin side panel opens new tabs; - fixed the bug with displaying the template identifier on the export pages; - fixed a bug in the new dotent SDK, fixed the layout of the export loading screen; - fixed frontend errors when connecting to ClickHouse; - fixed non-aligned data display on the pages of files and data sources; - fixed invisible calendar in audits; - fixed a bug when the value from the URL did not appear in the search bar on the workspaces page in the admin panel; - fixed checkboxes on the plan update page in the admin panel; - fixed the position of the control panel in the preview; - fixed dashboard graphics (double graphs, missing colors, broken URL parameter); - fixed initialization of dashboards; - fixed a bug when long text broke the header of the selection dialogs; ### [Demos] - fixed a bug when editing group rights; - fixed Java SDK and demo; ### [Common] + added HomePageLink to the configuration file; + added automatic update of the online designer; + added Old and New Value fields to the "Audit Details" page; + added storage of VCL templates; + added a scanner for critical API changes at the build stage; + added generation of documentation in PDF format; + added a new documentation chapter; + added documentation “How to update transports in transformer tasks and email addresses in email tasks"; + added storage of .fp3 files; + added preview service in JS; + added error messages for data sources; + added the link to renew subscription; + added downloading of folders; + added the current year in the license for the SDK; + added a button by which you can go to audits from the workspace; + added a test that checks the avoidance of folder name collisions; + added configs for data sources containing a timeout setting; + added cancellation tokens in the user panel for methods that access the API; + added cancellation tokens for methods that interact with the API; + added setting preview rights to the file properties page; + added links to objects in audits; + added a redirect to the home page when you click on the logo in the header; + added the ability to sort subscriptions by CreatedTime and SubscriptionPeriodVM.StartTime, SubscriptionPeriodVM.EndTime, Name, Locale, Plan in forward and reverse order; + added trimming of folder names; *moved file uploading (documentation, installation files) to a new server; *updated the project to .NET 6.0; *updated the version of the Open API Tool; *updated the search bar on the file pages in the admin panel; *updated cake scripts to version .NET 6.0; *removed the onclick event, which reloads the page *updated version of FastReport .NET to 2023.2 - fixed display of TraceId in logs; - fixed “Old” and “New value” fields in audits of file actions; - fixed the assembly of the wasm-preview microservice; - fixed a bug when the online designer could not load; - fixed the version of the preview library in WASM; - fixed errors in checking rights in data sources and Tasks; - fixed an empty search field when there was an existing parameter in the URL for the user's section in the admin panel; - fixed the error of the wrong report export root; - fixed changing the standard subscription to the current one when changing workspaces; - fixed redundant paginator pages provided that the search is used on the workspaces page of the admin panel; - fixed image archiving when exporting a report to image format without the “create separate files for each page” setting enabled; - fixed incorrect positioning of the context menu when trying to open it in a small window; - fixed console errors when pressing buttons that have JSRuntime in their logic and errors about null references when pressing the "Properties" button of the context menu; - fixed non-working breadcrumbs in audits. ### About Fast Reports URL: https://www.fast-report.com/about-company Summary: Fast Reports has been creating libraries and tools for generating reports and documents from databases since 1998. Fast Reports has been creating libraries and tools for generating reports and documents from databases since 1998. Fast Reports has been creating libraries and tools for generating reports and documents from databases since 1998. Fast Reports components are the basis of hundreds of thousands of programs in different programming languages and for different platforms: .NET Core, RAD Studio, Visual Studio, Lazarus, Mono, and others. Products are localized into 32 languages for users around the world, including those from the Fortune 500 list. Our awards: Customer opinions: Trustpilot Our contacts: Phone:  800-985-8986 (English, US) Phone:  +3197010258466 (English, Europe)  Phone:  +49 30 56837-3928 (German) Phone:  +55 19 98147-8148 (Portuguese) Mail:  info@fast-report.com Address: 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314 ### Add-on component in FastReport Ultimate .NET URL: https://www.fast-report.com/news/wpf-ultimate-net Summary: Subscription to the .NET Ultimate Edition gets even better! The edition now includes a reporting and document creation library for WPF. Subscription to the .NET Ultimate Edition gets even better! The edition now includes a reporting and document creation library for WPF. Subscription to the .NET Ultimate Edition gets even better! The edition now includes a new high-performance reporting and document library for Windows Presentation Foundation (WPF). Moreover, the price remained the same. FastReport Ultimate .NET contains products for projects integration developed using the ASP.NET, .NET Core, Blazor, WASM, WPF, WinForms, Mono platforms. Desktop and online designer is also included for comfortable work on any device. FastReport generators allow you to create different types of documents with many components for data visualisation and analytics, display options and export formats. Owners of an active Ultimate subscription can test FastReport WPF for free at their client panel . ### Adding New Users to FastReport Cloud URL: https://www.fast-report.com/blogs/new-users-cloud Summary: In the Business edition of the FastReport Cloud service, you can add users to a single workspace for simultaneous collaboration. In the Business edition of the FastReport Cloud service, you can add users to a single workspace for simultaneous collaboration. In the Business edition of the FastReport Cloud service, you can add users to a single workspace. This allows multiple people to collaborate on reports or edit templates. In the Business edition of our cloud service for working with reports, FastReport Cloud , there is an option to add users to the same workspace. This means that multiple individuals can prepare reports from a single large list of previously added templates. Additionally, several people working on report templates can quickly and conveniently add them to a space where those reports can be prepared by another group of users who do not have editing permissions for the templates. To begin, let’s add a new user to the workspace. When a new user first opens FastReport Cloud, they will see the following screen:   Each user must have an account on our authentication service, FastReport ID . After successful registration and logging into FastReport Cloud, the user will see the following message: At this stage, we go back to the account that purchased the license for FastReport Cloud. In the “Users” tab, you will see a list of users that have already been added, as well as a button that we will need right now— “Make Invite Link.” If you click on this button, you will see a text field with an invitation link, as well as a button that allows you to copy this link.   By default, this link is reusable and is valid for one day. Currently, this can only be changed through the API. Share this link with the new user. When they click on this link, they will see a dialog prompting them to accept the invitation to FastReport Cloud.   After clicking “Accept,” two things will happen. First, the new user will be able to perform actions permitted for the “All Users” group. For example, if you have disabled access to document information by default, this is what they will see: Secondly, you will be able to see the new user in the same “Users” menu from which the invitation link was copied.   If you want to remove a user from the subscription, you can right-click on that user and select the appropriate option.   By the way, if you go to the workspace information menu, you will be able to see the maximum number of added users.   Thus, the Business edition of FastReport Cloud allows for effective organization of collaborative work on reports. By adding users to a single workspace, simultaneous preparation of reports from a shared list of templates can be ensured, or tasks can be distributed among different groups of users. This streamlines the reporting process and makes it more convenient and efficient. Tags: FastReport, Cloud ### Adding pages from another report to FastReport .NET URL: https://www.fast-report.com/blogs/page-another-report-net Summary: We add pages and dialog forms from other reports in FastReport .NET to the report being developed. Working with reports has become even easier! We add pages and dialog forms from other reports in FastReport .NET to the report being developed. Working with reports has become even easier! We add pages and dialog forms from other reports in FastReport .NET to the report being developed. Working with reports has become even easier! The latest update in FastReport .NET allows you to add pages from other reports to the developed one. This will help you work with reports faster. Before you would need to merge several files or redo the report manually. To add a page, open the File menu and select Open Page. You will see a file selection dialog, similar to the dialog when a report is loaded in the usual way. After selection, you will see a window with a list of all report pages, dialog forms, and a preview of the selected page. Pages are displayed in the same way as in the designer. The preview changes when you change the page selection from the list. You can add one or more pages or dialog forms to the report. Then you will see the last selected page in the menu area. By clicking on "OK", you will add the selected pages to the main report. If the name of the page, dialog form, or element names on the selected pages match the existing ones, the new elements will automatically receive new names in the standard format. It is necessary to avoid objects with the same name in the report. This situation can result in many errors. As a clear example, let’s add Page1 to the main report. This is how it looks in the original report. After adding the page, its appearance remained the same, but the names of some elements have changed because the main report has elements with similar names. The name of the newly added page has changed by the same principle. Data sources, Parameters, Variables, Totals, and the script of the report, from which we add the page, are not migrated. Therefore, it may be required to revise the report manually. It is now easier to work with reports! For any questions, write to our support at  support@fast-report.com Tags: .NET, FastReport, Designer, Report ### Advices accelerating report creation URL: https://www.fast-report.com/blogs/advices-accelerating-report-creation Summary: Get useful tips on how to speed up report creation in FastReport. Find more usefull tips and acticles in our blog. Get useful tips on how to speed up report creation in FastReport. Find more usefull tips and acticles in our blog. Get useful tips on how to speed up report creation in FastReport. Find more usefull tips and acticles in our blog. Today I would like to talk about some of the techniques to accelerate the development of the report. We are all accustomed to the drag & drop technology. Most often in such a way, the developers adds controls and field from the tables to the reports page. But you forget that you can drag more than one object, but several. For example, the fields of the table. Click on the desired field, and then, holding the Ctrl key mark the other. As a result, you have a few selected data fields. Now you can drag them pulling any of the selected fields. Also, instead of Ctrl, you can use the Shift key. This selects all elements located between the first marked field and second. Considered way for adding data to a report page is actual for any element from the "Data" window: the data, functions, variables, results. For example, let's drag and drop some fields from the table Emploee to the "Data" band: And now. Add a dialog form into the report . You can rapidly create filters on the fields of the table. For this "drag" on the shape of the field from the data tree. For example HireDate. We got control DateTimePeacker related with field HireDate. Now the data will be automatically filtered for the selected date. We add in the same way another filter -  the field FirstName: In this case, we can choose the type of the added components: • TextBox; • MaskedTextBox; • ComboBox; • CheckedListBox; • ListBox; • DataSelector. Any of these components can perform a role of a filter. You can enter the name manually in the TextBox. Or choose from a drop-down list. A DataSelector or CheckedListBox allow to select multiple names. By the way, if you change the ListBox SelectionMode property to MultiSimple, it is also possible to select multiple items to filter. Added filter can be changed to suit your needs. FilterOperation field allows you to select the type of filtering. It can be full compliance with the selected item from the list, or do not match, and others. These simple tips can help you to speed up work on the creation of reports, as well as a simplified manual labor. Tags: .NET, FastReport, Desktop, Designer ### Analysis VCL URL: https://www.fast-report.com/products/analysis-vcl Summary: High-speed OLAP cube engine for fast big data analysis and generation of tables with graphs and diagrams High-speed OLAP cube engine for fast big data analysis and generation of tables with graphs and diagrams High-speed OLAP cube engine for fast big data analysis and generation of tables with graphs and diagrams. ## Analysis VCL instantly processes arrays and transforms database information into compact and generalized reports. Integrate the OLAP library into your project, prepare the data (or several sets) that your users will need for analysis, and get BI in your application. Embedding in the interface Full customization and integration into the interface of your business application. Data sources Connection to databases takes place not only through standard ADO and BDE components but also through any built based on TDataSet. Visual results To create graphs and charts based on table slices, you can use TeeChart (both from RAD Studio and the commercial edition of TeeChart Pro). Global filter Use one data cube for synchronous analysis based on various criteria, built on independent filters. Graphics core GDI is used to create graphic elements, render text, and manage graphics. Source code This set of components includes source codes. Maximum convenience for companies wishing to adapt the code to their needs. How to Set Up WSL 2 for Working with FastReport and FastCube In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. Installing FastReport and FastCube components in Lazarus Instructions for installing FastReport in Lazarus for various operating systems with a comparison of Trial, Professional editions. Instructions for installing FastReport in Lazarus for various operating systems with a comparison of Trial, Professional editions. How to use filters and sorting options in FastCube VCL We talk about the types of filtering and sorting data in the FastCube VCL analytical environment with detailed instructions for creating custom filters. We talk about the types of filtering and sorting data in the FastCube VCL analytical environment with detailed instructions for creating custom filters. ### Analysis VCL - FAQ URL: https://www.fast-report.com/faqs/analysis-vcl Summary: Explore detailed analysis of FastReport VCL, including usage, features, and common troubleshooting. Explore detailed analysis of FastReport VCL, including usage, features, and common troubleshooting. Is there a way to group one or more columns in run-time (when the cube is open)? Yes, it’s possible. TfcxSlice has the corresponding methods. Is there a way to set a column as hidden? It is possible to remove column (dimension) from filters or remove it from the pivot table (`TfcxSliceGrid`). There are no other ways to hide it. Is possible to set colors (in cells and columns) in run-time? This depends on what you need. If this is about styling then yes, you can set flat style and set colors of grid elements. If it is about highlighting of cells - then it is also possible in run-time. Speaking about columns - we don’t highlight their values, only data cells. Is possible to change the orientation in run-time? (vertical/horizontal) Yes, TfcxSlice has the corresponding methods. Is it possible not to show NULL values? It depends on what you specifically want. If you want to replace "null" with "", that's possible (there's such an option in `TfcxSlice`). If it's about hiding empty rows/columns – that's also possible. If it's about filtering dimension elements with "null" values – that can be done too. ### Another new version of the FastReport Generator for .NET has been released - FastReport .NET v. 1. 4! URL: https://www.fast-report.com/news/fastreport-net-1.4 Summary: Let's take a closer look at another new version of the fast report generator for .NET has been released - FastReport .NET v. 1. 4! in FastReport. Let's take a closer look at another new version of the fast report generator for .NET has been released - FastReport .NET v. 1. 4! in FastReport. What's new in FastReport .NET v. 1. 4! --------------- + added support for Visual Studio 2010 + added support for font subgroups for export to PDF + added SQL CE connection + added the system variable HierachyRow#, which returns strings of digits in hierarchical form + added support for table schemas in OleDB and ODBC + added NumToWordsEs function to support Spanish + Dutch location added + added Ukrainian location + added Config property.ReportSettings.DefaultPaperSize + added HTMLExport property.Print (shows the browser print window when the html document is open, only available in "one-page" mode) + added HTMLExport property.PageBreaks (inserts page breaks in "one-page" mode) + added ForceLoadData property for all data sources + added band property.FirstRowStartsNewPage + added Parameter property.Warning + added Config property.TempFolder + added report property.ReportInfo.PreviewPictureRatio + added DataBand property.PrintIfDatasourceEmpty + added ChildBand property.PrintIfDatabandEmpty + added Config constraint.DesignerSettings.Restrictions.DontCreateData to disable the "Data|Add Data Source" menu..."["Data / add data source..."] - fixed Row# and StartNewPage bug - fixed nullable personalization feature bug - fixed a bug with bands that the CanBreak and StartNewPage properties set as true - fixed HTML export bug (style skipping when exporting multiple pages in "one-page" mode) - Fixed bug with plugin registration - Fixed bug with Dialog controls attached to calculated column - fixed a bug in creating queries (incorrect connection type) - improved layout of dialog form controls - fixed a bug with Dock != None and CanGrow, CanShrink - fixed HTML export bug - fixed "Save printer in the report file"option - fixed a bug in Graph objects (ClearValues method does not work) - Fixed bug in data wizard - fixed an error in sums when the Convert null values option is disabled - Fixed bug with saving reports as VB class - fixed outline in hierarchical report - fixed a bug in Chart objects (when trying to group unsorted data by month) - fixed a bug in the data wizard under OS Vista - Fixed bug with built-in TTC fonts in PDF export - Fixed bug with exporting table containing hidden rows * fixed dialog "data wizard" (loading table lists is much faster) * designer Command DesignerControl.cmdData replaced with cmdAddData and cmdChooseData * reduced size of result files when exporting HTML * improved performance when working with complex business objects * tables in the "data wizard" window are now sorted, the "Sort tables" button has been removed * minor fixes in the Data window (the ability to move up and down the list of parameters using the Ctrl + Up/Down arrow keys) * installer now adds all builds automatically FastReport.Net the GAC * fastreport compilation.dll divided into two parts-FastReport.dll, FastReport.Web.dll our customers can download the latest version from the private panel or order FastReport.Net with a favorable discount (also via the link located in the private panel). FastReport.Net it is a fully functional reporting solution for Windows Forms, ASP.NET and WPF. This tool can be used in Microsoft Visual Studio 2005,2008 and 2010, as well as Delphi Prizm. It is written in clear C# language and can work with an application written in C# or VB.Net and also in Pascal (Delphi Prizm). Z FastReport.Net you can create application-independent .NET reports. in other words FastReport.Net it can be a stand-alone tool for creating reports. See for yourself: * you can connect to any database, work on any tables from these databases or create queries; * you can add dialog forms to the report to invoke specific parameters before running the report; * using the built-in script, you can manage the relationships between the controls of dialog forms, handle data in a comprehensive manner; * finally, you can view the results, print them, and export them to many commonly used document formats. Order FastReport .NET v. 1. 4 ### Answers to Frequently Asked Questions about the FP3 Format URL: https://www.fast-report.com/blogs/faq-fp3-format Summary: We'll break down 11 common questions about the FP3 format: what these files are, how they differ from FR3 files, which programs can open them, and how to convert them to PDF. We'll break down 11 common questions about the FP3 format: what these files are, how they differ from FR3 files, which programs can open them, and how to convert them to PDF. The FP3 format often raises questions — especially among users who need to quickly open, view, or convert a prepared report without delving into development details. At the same time, confusion can arise right from the start: the FP3 extension is used in different software environments and may refer to completely unrelated file types. For example, from FastReport reports to 3D planning projects and even medical data. We have collected the 11 most frequently asked questions users encounter and prepared clear answers that take real-world tasks into account. You will learn how FP3 differs from other formats (in particular, from the FR3 template), which tools can help you work with such files, how to convert them to PDF and other formats, and how to solve common technical issues. The FP3 format often raises questions — especially among users who need to quickly open, view, or convert a prepared report without delving into development details. At the same time, confusion can arise right from the start: the FP3 extension is used in different software environments and may refer to completely unrelated file types. For example, from FastReport reports to 3D planning projects and even medical data. We have collected the 11 most frequently asked questions users encounter and prepared clear answers that take real-world tasks into account. You will learn how FP3 differs from other formats (in particular, from the FR3 template), which tools can help you work with such files, how to convert them to PDF and other formats, and how to solve common technical issues. 1. What is the FP3 format? Files with the FP3 extension may be associated with several programs depending on their contents. However, this format is most commonly associated with prepared reports created using FastReport tools. In this case, FP3 is a proprietary format developed by Fast Reports and is used to store report data that has been prepared in advance for viewing and can be easily transferred or saved for subsequent analysis. Such an FP3 file contains: a report ready for viewing, a data structure, format settings, images and other additional design elements. The main feature of FP3 (compared to FR3 format templates) is that the file is already fully prepared and does not require a connection to the source database, reprocessing of data, or the original report templates. 2. Where else is FP3 used? In addition to FastReport tools, the FP3 extension may include files containing three-dimensional images for prototyping, X-ray images, files for 3D printing, and other medical documents. However, this is most often simply a filename extension coincidence rather than the use of an actual data format. Usually, FP3 refers to FP3-class restoration and corresponding dental implants. In addition, the FP3 format is used in the design of architectural structures. It is also used in programs based on FastReport components that automatically support this format. For example, in CRM and ERP systems. 3. What programs can work with the FP3 format from Fast Reports? To open and view FP3 files in the FastReport format, you can use a special program — FastReport Viewer . This is a free application designed for convenient viewing and printing of FP3 files. Thanks to its intuitive interface and wide range of features, Viewer allows you to work efficiently with prepared reports without resorting to complex software. You can learn more about this application at " Opening FP3 files using FastReport Viewer ". The FP3 format is also supported by the FastConverter application, which can be used to convert these files into other popular formats. And, of course, FP3 files can be opened and viewed using FastReport software components by creating your own project and application based on them in a development environment (RAD Studio or Lazarus). 4. What other programs can work with FP3 files? There are also other FP3 file formats that are not related to FastReport tools: Database files created in FileMaker Pro version 3. To convert such files to a format supported by more recent versions of the program, it may be necessary to use intermediate versions of FileMaker Pro. Floor plans and 3D visualization files for buildings created in FloorPlan 3D and TurboFLOORPLAN by IMSI Design. In rare cases, files with this extension may be proprietary music files for FP3 Player — a music player for kids. 5. How can FP3 files be converted to another format? For this, you can use the FastConverter tool. More information about the conversion process and supported formats can be found in the " How to Open and Convert an FP3 File Using the FastConverter .FP3 " article. 6. What are the specific features of FastReport FP3 files? The main feature of FastReport FP3 files is that they are not a template for describing and subsequently creating a report, but a file ready for viewing and printing.  When an FP3 file is complete and all the necessary actions have already been performed:  the report creation instructions (FR3 format) have been completed,  the data has been requested from the database and correctly placed,  the expressions have been checked and calculated,  and the content and internal objects have been distributed across the pages.  All that remains is to load the prepared report into a suitable program and then view or print it. If you need to load or save an FP3 file using the TfrxReport component in your application developed in one of the supported FastReport development environments (RAD Studio, Lazarus), use the methods of the TfrxReport.PreviewPages property:  ``` function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean; procedure SaveToFile(const FileName: String); procedure LoadFromStream(Stream: TStream); procedure SaveToStream(Stream: TStream); ``` 7. How can an FP3 file from FastReport be converted to PDF? For this, it is convenient to use a special program developed by Fast Reports — FastConverter . The step-by-step process of creating a PDF document in this locally running program is straightforward and is described in detail in the " How to Open and Convert an FP3 File Using the FastConverter .FP3 " article. A more flexible and visual approach is to use the report designer and preview dialog from the commercial FastReport VCL product: Place the TfrxReport , TfrxPDFExport , and TButton components on the form. In the button's OnClick event handler, load the FP3 file into the TfrxReport component. ``` frxReport1.PreviewPages.LoadFromFile('C:\fr\Demo\PreparedReport.fp3'); frxReport1.ShowPreparedReport; ``` In the report preview window that appears, click the button shown in the example below to initiate the PDF export. Alternatively, you can convert the report directly in the application code using the TfrxReport component. More information about these methods can be found in the following articles: How to make a PDF from Delphi / C++Builder / Lazarus Working with PDF/A from the FastReport VCL designer 8. Can an FP3 file from FastReport be opened in another reporting system? Yes, but not directly — it requires several steps. FP3 is a format developed by Fast Reports, and there is no guarantee that another reporting system will be able to correctly interpret all the specifics of its internal structure. For such tasks, it is convenient to use an intermediate format. For example, PDF, CSV, XLS, XLSX, XML, or HTML — depending on the contents of your report. First, check whether the other system (for example, Crystal Reports or JasperReports) supports the selected format. Then convert the FP3 file to the required format as described in the article mentioned in point 7. Finally, open the converted file in the third-party reporting system. 9. Can an FP3 file from FastReport be opened online? At the moment, this functionality is not available. To open and view FP3 files in the FastReport format, you can locally use a special free program — FastReport Viewer . In the future, it may become possible to view prepared reports online based on the cloud solution — FastReport Cloud . Important: please do not use third-party online FP3 viewers developed by companies other than Fast Reports, especially for reports containing confidential information. This may be unsafe! 10. I am loading an FP3 file using the TfrxReport component and getting the error message «Class preparedreport not found» Most likely, you are calling the LoadFromFile method not on the PreviewPages property, but directly on the TfrxReport component. You need to use code like this: ``` frxReport1.PreviewPages.LoadFromFile('C:\MyReports\FileName.fp3'); ``` 11. Is it possible to programmatically combine several prepared FastReport reports in the FP3 format into one large report? Yes, this can be done using two instances of the TfrxReport component. Place two TfrxReport components on the form. Load the first report into the first TfrxReport component using the PreviewPages.LoadFromFile or PreviewPages.LoadFromStream method. Load the second report into the second TfrxReport component using the same methods. Use the following method to “merge” the second report with the first: ``` frxReport1.PreviewPages.AddFrom(frxReport2) ``` Repeat the procedure for each subsequent report. The " How to combine multiple reports into PDF file in Delphi " article describes another, but no less useful solution. Conclusion The FP3 format from Fast Reports is a convenient and reliable solution for storing data that is already prepared for viewing and does not require access to source databases and templates. With tools such as Viewer and Converter, you can easily work with these files. If necessary, you can view and edit FP3 formats in your applications using FastReport components. We hope that our answers have helped you understand the format and make working with prepared reports even easier and more straightforward. Tags: FastReport, Viewer, Report, Converter ### Application with FastReport .NET in Docker with Linux URL: https://www.fast-report.com/blogs/application-net-docker-linux Summary: Docker executes unfolding with literally two commands, while containers take much less space than the virtual machine images. Docker executes unfolding with literally two commands, while containers take much less space than the virtual machine images. Docker executes unfolding with literally two commands, while containers take much less space than the virtual machine images. Docker is a software platform for rapid development, testing and launching of applications. Due to it, one may locate multiple containers on one server. The containers are understood as integrity of our application, its dependences, and image. One should remember that an image is a template which represents a cast of a file system. As we have recollected a number of terms, we may speak of how to boost FastReport.Core + FastReport.Web in our container. First, we need to install Docker onto any Linux distributive, in our case Ubuntu 20.04. On installing Docker with Linux you may read  this article . After installing and checking, you may proceed to the next step. Now we have to create DockerFile. It is an ordinary text document containing all commands for building an image. You may build and edit this file both in an ordinary word processor or in VS code. By the way, VS code has a convenient docker plug-in, which to some extent simplifies coding and editing. An example of DockerFile: ``` FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base WORKDIR /app   RUN ln -s /lib/x86_64-linux-gnu/libdl-2.24.so /lib/x86_64-linux-gnu/libdl.so RUN apt-get update \ && apt-get install -y --allow-unauthenticated \ libc6-dev \ libgdiplus \ libx11-dev \ && rm -rf /var/lib/apt/lists/* ENV DISPLAY :99   FROM microsoft/dotnet:2.1-sdk AS build WORKDIR /src COPY ["fastreport_net", "FastReport.Net"] RUN dotnet restore "FastReport.Net/Demos/Core/FastReport.Core.Web21.MVC/FastReport.Core.Web21.MVC.csproj" COPY . . WORKDIR "/src/FastReport.Net/Demos/Core/FastReport.Core.Web21.MVC" RUN dotnet build "FastReport.Core.Web21.MVC.csproj" -c Release -o /app   FROM build AS publish RUN dotnet publish "FastReport.Core.Web21.MVC.csproj" -c Release -o /app   FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "FastReport.Core.Web21.MVC.dll"]   ``` This docker file unfolds the image of a Demo application of FastReport.Core.Web21.MVC, which uses FastReport.Web and FastReport.Core. You may try it yourself in the  next link , or find a directory Demos\Core\FastReport.Core.Web21.MVC when downloading  FastReport.NET . After writing DockerFile you must build it. It is very simple. Start a terminal from the directory which DockerFile is located in, and write the command into it: ``` sudo docker build ``` After successful build, unfold the container with a command: ``` sudo docker run -d -p 8080:80 build/fastreport ``` In this command we forward port 8080 and name the image as “build/fastreport”. After the successful start of the container, we open http://localhost:8080/. Then we transfer to the page of our application; if all dependences were executed and resolved, then we will see our project: To sum it up, Docker executes unfolding with literally two commands, while containers take much less space than the virtual machine images, which saves a lot of time and space. Tags: .NET, .NET, FastReport, FastReport, Linux, Linux, Core, Core, Libgdiplus, Libgdiplus, Ubuntu, Ubuntu ### Assembly of FastCube.Core for .NET 5.0 URL: https://www.fast-report.com/blogs/assembly-of-pivot-grid-core-net5 Summary: Step-by-step guide for assembling the OLAP data-pivoting tool for .NET 5.0 Step-by-step guide for assembling the OLAP data-pivoting tool for .NET 5.0 Step-by-step guide for assembling the OLAP data-pivoting tool for .NET 5.0 Today, such analytical tools as OLAP cubes are extremely demanded. Fast Report possesses such a system and allows displaying data cubes with slices in .NET applications, for example in NET 5.0. Now we will discuss how to use it in your reports. To use the FastCube.Core libraries, one has to preliminarily assemble them from the source codes. To assemble FastCube.Core for .NET 5.0, use the FastCube.Core.sln solution. After starting this solution, change the target operating environment for .NET 5.0. Then assemble the project; you will see FastCube.Core.2020.2.1.nupkg in our work directory. Place this package to the folder which you will use as a local source of packages. Now we can start creating the .NET Core project. First of all, add the FastCube.Core library to the created project. To do that, use the NuGet package manager. As the packages of libraries are placed on the local disc, we will have to add the local source of packages. Click a gear icon in the upper right corner of the package manager and add a new source, which will refer to the local folder with your nupkg packages: At this stage, you may select the added source in a dropdown list and set the packages: We have added a library to the project, now it should be connected by writing in the file .cs: ``` using FastReport.Olap ``` To check how it works, use the following code: ``` class Program { private static string FindDataFolder() { string dataFolder = ""; string thisFolder = Config.ApplicationFolder;   for (int i = 0; i < 6; i++) { string dir = Path.Combine(thisFolder, "Data"); if (Directory.Exists(dir)) { string data_dir = Path.GetFullPath(dir); if (File.Exists(Path.Combine(data_dir, "config.xml"))) { dataFolder = data_dir; break; } } thisFolder += ".." + Path.DirectorySeparatorChar; }   if (dataFolder == "") { thisFolder = Config.ApplicationFolder; for (int i = 0; i < 6; i++) { string dir = Path.Combine(thisFolder, "Demos", "Data"); if (Directory.Exists(dir)) { string data_dir = Path.GetFullPath(dir); if (File.Exists(Path.Combine(data_dir, "config.xml"))) { dataFolder = data_dir; break; } } thisFolder += ".." + Path.DirectorySeparatorChar; } }   if (dataFolder == "") throw new Exception("Could not locate the Data folder."); return dataFolder; }   static void Main(string[] args) { string dataFolder = FindDataFolder(); // create cube and slice Cube cube = new Cube(); Slice cubeSlice = new Slice(); cubeSlice.Cube = cube; // load cube cube.Load(Path.Combine(dataFolder, "Cubes", "2_0_sample_en1.mdc")); // open cube cube.Active = true; // export slice HTMLExport export = new HTMLExport(); export.Slice = cubeSlice; export.Export(Path.Combine(Config.ApplicationFolder, "export.html")); } } } ``` After that, in the directory of our application we will see a file of .html format. Open it in any editor and get the following: Thus, we have viewed using the FastCube.Core library in a console application. As one can see, the library works perfectly with NET 5.0. Now you can use data cubes in your applications. Tags: .NET, .NET, FastCube, FastCube, OLAP, OLAP, Core, Core ### Asynchronous programming in C #. Introduction. URL: https://www.fast-report.com/blogs/asynchronous-programming-c Summary: Learn what asynchronous programming is in C# in FastReport. Find more usefull tips and acticles in our blog. Learn what asynchronous programming is in C# in FastReport. Find more usefull tips and acticles in our blog. Learn what asynchronous programming is in C# in FastReport. Find more usefull tips and acticles in our blog. Many people have heard of this, but not many use it in their code. Meanwhile, no serious programs with client-server architecture will do without asynchronous programming. Exchange of data with the database, the interaction of the client and the server - this takes time, which can be occupied by other processes instead of waiting. When the operation is executed synchronously, the thread is blocked by another thread. And we have to wait for the implementation of this second process to return control to the first one. This causes unnecessary waste of resources, because a stream with a single task can wait for a long time to respond. From a database, for example, or a web service. And if temporary resources can save multi-threading (the benefit of modern processors allows it), then memory resources will not save it. After all, in fact, multi-threading is also synchronous execution of operations. Just there are few of them. The real solution is to use asynchronous processing. With this approach, we can use several threads to control one or the other. That is, while waiting for a response from another task, the current one does not block the thread, but provides it to another task. Let's look at the picture: In this case, a single-threaded asynchronous approach is used. And here a multi-threaded asynchronous stream. Each thread performs many tasks. When one of the tasks stops in anticipation, another one is taken. Thus, tasks flow from one thread to another, depending on the one that was freed first. The figure shows that Task 1 started executing in the first thread, and finished in the second. Let's consider one more figure - a sequence diagram: The diagram describes the behavior of threads for a client-server application. The client sends a request for data from the server, and instead of "hanging" waiting for the response (as in the synchronous approach) continues to work, providing the user with another application functionality. So, if you are a web developer, then without asynchrony you can do nothing. Let's understand a little in theory. There are three patterns of asynchronous programming: Asynchronous Programming Model (APM); Event-based Asynchronous Pattern (EAP); Task-based Asynchronous Pattern(TAP). Asynchronous Programming Model appeared in the first version of the .Net Framework. APM allowed to create asynchronous versions of synchronous methods using two methods - Begin and End . So, there are only two methods: ``` public IAsyncResult Begin{MethodName}(TIn[] args, AsyncCallback callback, object userState =null) { … } ```  And: ``` public TResult End{MethodName}(IAsyncResult result) { ... } ```  The Begin{MethodName} method starts an asynchronous operation. It takes the parameters args, callback - the delegate to the method called after the asynchronous method is executed, the userState object, which is used to transfer information about the state of a particular application to the method called when the asynchronous operation ends. The method returns an object of type IAsyncResult that stores information about an asynchronous operation. The End{MethodName} method terminates the asynchronous operation. It takes an input object, type IAsyncResult, and returns TResult, which actually returns the type defined in the synchronous copy of this method. Let's see how this template is used in a simplified example: ``` public void Button_Click (...) { WebRequest request = WebRequest.Create(url); request.BeginGetResponse(Callback , request); }   public void Callback(IAsyncResult ar) { WebRequest request = (WebRequest) ar.AsyncState; try { var response = request.EndGetResponse(ar); // Code does something with successful response } catch (WebException e) { // Error handling code } } ```  We called the Begin method in the button click event handler. As a parameter, we pass a callback to this method. And, already in the callback itself we call the pair method - End. The disadvantages of the asynchronous programming model include: The necessity to create a callback function; The absence of the way to abort the operation. The absence of the way to refuse to call the callback method, if it was passed at the beginning of the operation. The absence of the notification of the operation progress or of interim results. Event-based Asynchronous Pattern This pattern of asynchronous programming appeared in the second version of the .Net framework. It is based on events and asynchronous methods. The class that implements this template will contain the methods MethodNameAsync and MethodNameAsyncCancel (if operation cancellation processing is required), and the MethodNameCompleted event. In the same class, you can place synchronous versions of methods that work with the same thread. Most often this template is used when working with web services. For example, ajax implements the Event-based Asynchronous Pattern. You can get the result of an asynchronous operation and process errors only in the MethodNameCompleted event handler. The asynchronous programming pattern based on events solved some problems of the predecessor: • Declaration a method to get the result of an asynchronous operation; • There is no mechanism for notification of the progress of the operation. However, this template still has a number of drawbacks: • It is not possible to transfer the context of the operation call (user data) to the result processing method; • Not all operations can be interrupted. Methods that support only one operation in the queue cannot be interrupted; • It is not possible to specify in the context of which thread callback methods will be called. Task-based Asynchronous Pattern (TAP) The third template for asynchronous programming appeared in .Net Framework 4.0. From the title it is clear that it is based on the use of tasks. The basis of TAP is two types of System.Threading.Tasks.Task and System.Threading.Tasks.Task . TAP allows developers to define asynchronous functions within a single method. Now there is no need to create the functions of the beginning and the end of the asynchronous operation, and then also the callback. This of course facilitates the work of the programmer, reduces the threshold of entry into the technology, and simply makes programming pleasant. TAP uses tasks to perform operations. For each task, a separate thread is used, which is taken from the thread pool. After the task is completed, the thread returns to the pool. The modifier "async" - this modifier is applied to a method or lambda expression, or an anonymous method - it indicates that the method is asynchronous and signals the possibility of one or more occurrences of the wait statement in this method. Let's have a look at an example of a method definition: ``` public async TaskMyProcessAsync() { … Var Overtime = await new ERP().ProcessOvertime(emp); … } ```  Note the keywords async and await. These are operators that signal that the Task-based Asynchronous Pattern is being used. The async modifier indicates that the method is asynchronous. And the await statement can be called inside the method one or more times. It suspends the execution of the task until the result is obtained, while the thread continues its work. And here is an example of using TAP from life. Calling the web service: ``` static async Task SendMessageAsync() { var client = new MyServiceClient(); var task = Task.Factory.StartNew(() => client.SendMessageAsync("Message")); var result = await task; return result; } ```  And here is another way of calling, even simpler and more understandable: ``` static async Task SendMessageAsyncNew() { var client = new MyServiceClient(); var result = await client.SendMessageAsync("Message"); return result; } ```  This "lightweight" version of using await is available in the .Net Framework 4.5. The asynchronous task-based approach solved most of the problems of the previous templates. Then you and the ability to interrupt the asynchronous operation, and a simple implementation of one method, the ability to track the progress of the operation. Currently, Microsoft recommends using this template to implement asynchronous calls when developing components. As for the expediency of using this template. Using TAP will increase the bandwidth of the server. However, the cost of creating an asynchronous process can offset benefits if you have a small amount of traffic (for example, a client-server). In this case, the synchronous approach will work faster. I understand that we have just "ran through the tops" and this information is not enough for a good understanding of how different approaches to asynchronous programming work. And therefore, we'll look at each template in detail, in subsequent articles. Tags: C#, Asynchronous programming ### Attention: New objects behavior URL: https://www.fast-report.com/news/new-objects-behavior Summary: Attention: New objects behavior Attention: New objects behavior It's finally happened! By popular demand we've adjusted behaviour of our objects so that your data looks more realistic.  Attention! It's a beta version. Download demo and see your current reports come alive!   Share your new reports with #itsalive_fr ### Attention: we no longer work with Digital River URL: https://www.fast-report.com/news/digital-river-conditions-breach Summary: Due to a systematic breach of contract conditions, Fast Reports no longer works with Digital River. All licenses and renewals payments are redirected to another payment aggregator. Due to a systematic breach of contract conditions, Fast Reports no longer works with Digital River. All licenses and renewals payments are redirected to another payment aggregator. Due to a systematic breach of contract conditions, we no longer work with Digital River. All licenses and renewals payments are redirected to another payment aggregator.  Digital River withheld customer payments and violated the terms of our agreement. Therefore, we have decided to return customer payments made starting July 1, 2024. We will contact all our customers by email. If you have any questions, email us at sales@fast-report.com . ### Autumn events with Fast Reports URL: https://www.fast-report.com/news/autumn-events-fastreports Summary: Autumn events with Fast Reports. Fall brings us another exciting series of events in Europe. Join us there! Autumn events with Fast Reports. Fall brings us another exciting series of events in Europe. Join us there! Fall brings us another exciting series of events in Europe. Join us there!  Date Name Location For .Net Developers For Delphi Developers Link September 18 – 19 .Net Developer Days Warsaw, Poland + https://net.developerdays.pl/ September 25 – 27 Basta! Mainz, Germany + https://basta.net/ October 23 Embarcadero Conference São Paulo, Brazil  + https://embarcaderoconference.com.br/ November 5 -7 EKON 22 Dusseldorf, Germany + https://www.developer-week.de/ ### Avalonia URL: https://www.fast-report.com/products/avalonia Summary: A universal component for generating reports when developing cross-platform applications using Avalonia UI A universal component for generating reports when developing cross-platform applications using Avalonia UI Set of custom components for Avalonia UI framework for report generation. Use our embeddable reporting tool that supports C# and .NET — FastReport .NET Avalonia. Practically any: invoices, financial reports, product catalogs with color profile support, restaurant menus, sales details, questionnaires with electronic forms, airline tickets, utility bills, and much more. If you have data that needs to be made visually understandable, FastReport is the perfect solution for you. Embeddability in projects Install the necessary packages from the NuGet repository, or download packages from our website and add the necessary libraries to the project. No additional modules or special extensions are required. Saving development resources The advantage of the Avalonia framework, multiplied by the ease of working with FastReport: create reporting components for your application for three platforms at once: macOS, Linux, and Windows. One piece of code—three platforms! Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Compatibility and integration Avalonia is part of the unified FastReport platform in C#. In FastReport Cloud, you can store your templates, reports, and data sources, and then use them in the desktop designer. Smooth transition from other solutions Our report generator instantly converts your reports from List&Label, DevExpress, Microsoft Reporting Services (RDL, RDLC), Crystal Reports, StimulSoft, and Jasper Library into FastReport format. Graphics engine SkiaSharp is used as a renderer, which allows you to build beautiful, professional-looking reports in maximum quality. How to Configure an AI Agent for FastReport .NET: Architecture, Limitations, and Report Migration Working with reports often turns into a routine: editing XML templates (.frx), configuring data bindings, and adapting legacy formats. To automate this work, a specialized AI agent was created. This agent understands the FastReport .NET architecture and strictly follows enterprise development standards. AI feature for FastReport .NET: automated migration of reports from Crystal Reports and StimulSoft, refactoring for .NET 8/9, template generation, and protection against data leaks. How to export a report from FastReport .NET to DXF DXF (Drawing Exchange Format) is an open format for exchanging graphic data, developed by Autodesk for storing and transferring two-dimensional and three-dimensional drawings. Due to wide support from various CAD systems, DXF has become one of the most common formats for exchanging engineering and technical documentation between applications. In this article, we will consider methods of exporting a report to the DXF format, and also see what the resulting output looks like after opening the file in a CAD application. In this article, we will consider methods of exporting a report to the DXF format, and also see what the resulting output looks like after opening the file in a CAD application. How to Export a Report from FastReport .NET to PostScript FastReport .NET supports exporting reports to many popular formats, such as PDF, Excel, Word, and others. However, professional printing, plotters, and specialized printing equipment often require the PostScript (.ps) format. In this article, we will look at exporting a FastReport .NET report to the PostScript format, using a practical example to examine parameter configuration and programmatic implementation. In this article, we will look at exporting a FastReport .NET report to the PostScript format, using a practical example to examine parameter configuration and programmatic implementation. ### Aztec– code URL: https://www.fast-report.com/blogs/barcode-aztec-net Summary: Let's take a closer look at what Aztec QR-code in FastReport Is. Find more usefull tips and articles in our blog. Let's take a closer look at what Aztec QR-code in FastReport Is. Find more usefull tips and articles in our blog. Let's take a closer look at what Aztec QR-code in FastReport Is. Find more usefull tips and acticles in our blog. In the article "Using QR-codes in FastReport .NET" we have reviewed the popular 2D barcode formats. Today, I would like to talk about another popular format, which is also supported in FastReport .NET. This is an “Aztec-code”. The name of the code is associated with an ancient Indian tribe from Central America -the Aztecs. Please, look at the code: The square which is located in the center of the code contains several smaller squares. It reminds a view overlooking the Aztec pyramid. So, the “Aztec – code” got its name due to the similarity between the external view of the code and the symbols of the Aztec tribe. “Aztec – Code” was developed in 1995 and it combines the best ideas of two-dimensional bar codes: MaxiCode, SuperCode, Code One, Data Matrix, Dot Code, PDF417.  Despite the patent, this development has been transferred into the public domain. The standard describes the coding set out in ISO / IEC 24778: 2008. The code size depends on the amount of encoded information. For example, the minimum size of 15x15 pixels allows you to encode 6 bytes, i.e. 12 letters or 13 digits. A maximum size 151х151 pixel allows encoding of 1914 bytes, 3067 characters or 3832 numbers. It must be mentioned that the code has two display formats: “Compact” (Compact) and "Full-Range" (Full). A choice of a format depends on the amount of data to be encoded. Please, look at two images given bellow. The left image has a symbol of a target consisting of two squares and the right one has a symbol of a target consisting of three squares. The obvious advantage of this type of coding comparing to others is the possibility of reading the code when it’s in different positions. Moreover, even mirrored the code will still be read easily. This is achieved by the use of navigational markers. Using the target in the center of the code allows to read data even from garbled or stretched image. Through using the algorithm Reed-Solomon coding, “Aztec – code” may be read being partly damaged. For such an occasion the code has redundancy. You can adjust the percentage of red redundant code from 5 to 95. Therefore, it is possible to provide a very high resistance to reading errors. Layered structure of the code makes it possible to increase the amount of information stored by increasing the coding region. All of these advantages have made “Aztec - code” very attractive for application in transport networks as electronic tickets, for example, in air and rail transportation. In some countries it is used in government documents. Also, like other high-density codes, “Aztec code” is popular in commerce, logistics, manufacturing and pharmaceuticals. Compared with the “QR-code”, “Aztec-code” has a larger recording density and does not require a field around the code. Also, the minimum size of “Aztec-code” is 15x15 against 21x21 at “QR-code”. You can use FastReport .NET to create “Aztec-code” and many other codes. Tags: .NET, FastReport, Barcode ### Barcodes in FastReport .NET URL: https://www.fast-report.com/blogs/barcodes-in-net Summary: Let's take a detailed look at how different barcodes work in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a detailed look at how different barcodes work in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a detailed look at how different barcodes work in FastReport .NET. Find more usefull tips and articles in our blog. For more than half a century used barcodes. But this popularity they received during the database development. Barcodes allows you to quickly identify the goods and to find information about it in the database. However, today's two-dimensional bar codes can contain all the information about the product inside. In the traditional sense bar code - a set of characters or lines arranged in a certain order according to the standard. Classic bar codes are a series of vertical lines of varying thickness. The specific order and line size allows to encode characters. Two-dimensional barcodes typically take a square or rectangular area and are composed of pixels, and combinations thereof. These codes allow you to encode more information than linear. In addition to characters can be encoded binary code. Linear bar codes are used mainly in trade, logistics and inventory control, whereas the two-dimensional - in transport networks, government documents, identity cards. The main advantage of the barcode - the quick and accurate code reading. Perhaps today there is no supermarket without a barcode scanner. One can imagine what would happen if the cashier will enter the identifiers of goods manually  - long queues. In addition, there is a risk to make a mistake when entering a sequence of numbers. Some linear codes are provided with self-checking. This avoids erroneous reading of the code, if it is damaged. Two-dimensional codes have the same error correction mechanism. Even partially damaged code can be read, because of inherent in it redundant. Different bar code standards are used for different purposes. Below is a list of the most popular barcode standards and contains the scope of each standard. There is a great variety of barcode standards. All of them have a certain scope. FastReport .NET allows the use of the most popular bar codes in your reports: -        Linear: 2/5 Interleaved, 2/5 Industrial, 2/5 Matrix, Codabar, Code 39, Code 39 Extended, Code 93, Code 93 Extended, Code 128 (A,B,C) autoencode, EAN8, EAN13, UPC-A, UPC-E, Supplement code, MSI, PostNet, Plessey, GS1-128 -        2D: QR code, Aztec code, PDF417, Datamatrix Consider the scope of each of them: 2/5 Interleaved -  very popular high density barcode for coding numeric data. Based on algorithms Standart 2 of 5. It is used in logistics and warehouse inventory. 2/5 Industrial - barcode of any length to encode numeric data. This standard is used with the 60-ies for marking tickets and other purposes. Also known as Standard 2 of 5. The disadvantages are low coding density as light strips are not involved in coding, and perform only the role of the separators. Used in industry. Almost expelled by Code 39. 2/5 Matrix - the bar code of any length to encode numeric data. Legacy format. Disadvantages - low code density. Used in inventory control, marking tickets. Currently almost not used. Codabar - discrete symbology with self-monitoring, developed in 1972 g. known in Japan as NW-7. It has the narrow and wide strips and the elements 7 to the symbol. It is intended to encode numeric data, some characters and four letters: A, B, C, D. Advantage - coding 6 special characters. Disadvantage - a small effective code density. Used in warehouses, transport, logistics, libraries, and some hospitals. Code 39 - barcode with self-examination. Usually encoded alphanumeric data. This standard is widely used for many years and is the most popular in the world for common tasks. Now superseded by more modern Code 93 and Code 128, due to their greater compactness. Code 39 is a discrete symbology - so that the gap between the ciphers may be more than one character. Some people mistake the gap between the ciphers of the gap. Large gaps wider than do other code barcode with the same data, which is a major disadvantage. Code 39 Extended - includes lowercase letters and punctuation marks. It should be noted that Extended Code 39 represents the majority of the additional symbols using two characters from the standard set of characters Code 39. Consequently, Extended Code 39 characters is approximately two times longer than the standard Code 39 characters. Code 93 - the code of arbitrary length. Code 93 was developed in addition to the Code 39 is a more compact code than the last. Code 93 symbology don't have self-checking. Code 93 characters include two Mod 47 check character. Special codes are used to provide a complete set of ASCII characters, which makes the system more reliable than Code 39. Code 93 Extended . Standard Code 93 encodes numerals and capital letters, and the extended code 93 encodes the full ASCII character set. Code 128 - Modern bar code high density to encoding of numbers, letters and other symbols. Advantages - Compact, alphanumeric data. It is used in the trade, documents and various other areas that require a coded text. EAN-8 - a European standard bar code to encode to 8 digits. It is used in trade to identify the product, the manufacturer. The advantage - compactness. EAN-13 - this is an expanded version of the EAN-8. It allows you to encode 13 digits. In addition to Product ID and the manufacturer, was added a country code. It is also widely used in the retail trade. UPC-A - is a bar code similar to destination EAN-13, but is designed and operates in the United States. Encoded 12 digits. Scope - retail trade. UPC-E - a shortened version of UPC-A. Encoded 6 digits. It is used in the retail industry, to be placed on small products where it is impossible to use a full format UPC-A. Supplement code.  EAN-8, EAN-13, UPC-A, UPC-E, may include additional bar code to the right of the main bar code. This second bar code is used to encode additional information for newspapers, books and other periodicals. An additional bar code may encode 2 or 5 digits of information. MSI - bar code to encode the numbers. It does not support the self-checking. It is commonly used to monitor the availability of goods on retail warehouses. This is a relatively "weak" code that not effectively uses the space. PostNet - bar code is designed specifically for the US Postal Service. Lets you encode numbers only. Coding postcodes dimension 5 or 9 characters and delivery code with size of 11 characters. Plessey - outdated barcode is still popular in some industries. Supports encoding of numbers and letters: X, B, C, D, E, F. Also, an 8-bit CRC, divided by two control characters. Disadvantages include more stringent requirements for code printing quality, due to the thin strip cipher. GS1-128 (UCC / EAN-128) - a modern type of barcode. It has a high density. Based on the algorithm of the standard Code 128. It is used mainly in logistics for the exchange of information on the cargo between enterprises. When encoding, just before the data is established a special identifier that identifies the type of data (date of manufacture, expiry date and al.) PDF417 - a two-dimensional bar code to encode alpha-numeric data. It allows you to encode up to 2710 characters. It is used in the trade, the document flow in the organs of accounting and control, transport networks. coding algorithm is very similar to another format - DataMatrix. DataMatrix - a two-dimensional bar code to encode text and numeric data. The volume of data to be encoded on the enormous truth - from a few bytes to hundreds of kilobytes. But the most commonly used sizes of codes of 2 bytes up to 2 kilobytes. coding algorithm allows correcting code read errors due to redundancy. DataMatrix is used for labeling luggage transport networks, marking of electronic devices and components, on identity cards. QR Code - a popular two-dimensional bar code to encode different information: numbers, text, binary, characters. Code is popular due to the ease of reading and resistance readings or damage to the error code. Developed and widely used (in virtually all sectors) in Japan. But in European products can often find this code. Aztec code - another two-dimensional bar code to encode different information. The main advantages of which are: resistance to damage and distortion of the code, indifference to the orientation of the code when reading (even at an angle), compactness. Actively used in the railway and air transport, in public documents in some countries. So, we have considered a brief description of each of the bar codes represented in FastReport .NET. Barcodes are used in most industries. For example, in logistics barcodes contain information about the cargo and route. All of the waybill information may be encoded in a two-dimensional bar code. This ensures the integrity of the information. In addition, bar code could replace the manual entry of information in the information system. This is useful in retail trade. The work of the cashier is much easier, and customer service rate increases. Thus, FastReport .NET allows you to create reports for such scopes of activity as trade, logistics, inventory control, and other industries. Tags: .NET, FastReport, Barcode ### Basta! 2025 in Mainz: our experience URL: https://www.fast-report.com/news/fast-reports-basta-2025 Summary: Fast Reports participated in BASTA! 2025 in Mainz, Germany. Road shows planned before and after spring BASTA! 2026. Fast Reports participated in BASTA! 2025 in Mainz, Germany. Road shows planned before and after spring BASTA! 2026. Every year, Fast Reports shows up at the BASTA! conference to present its strength on the reporting and standard document market. The fall BASTA! conference for .NET, web & AI innovation took place from 23rd till 25th of September 2025 in the beautiful city Mainz in Germany. Over 500 software professionals visited the event and we spoke to 120 people amongst them. One very valuable review from a customer I kept in my mind. A garbage can disposal needs to write invoices to each residential area which includes 300 pages. Already since 1998 they have successfully worked with FastReport .NET Ultimate and have always been renewing the versions. For those potential customers that are planning to switch from another report generator to Fast Reports or deepen the usage of the FastReport products we are scheduling a road show before and after the spring BASTA! in March 2026. Victoria Schmidt Fast Reports Team ### Basta! in Mainz from 21 to 25 September 2009 URL: https://www.fast-report.com/news/basta-2009 Summary: Basta! in Mainz from 21 to 25 September 2009 Basta! in Mainz from 21 to 25 September 2009 Dear friends! We invite you vizit developer conference Basta! Basta! in Mainz from 21 to 25 September 2009 https://basta.net/ Fast Reports will take part in Basta! as an exhibitor: https://basta.net/ ### Become our guest on CeBit 2006! URL: https://www.fast-report.com/news/forum-cebit-2006 Summary: Become our guest on CeBit 2006! Become our guest on CeBit 2006! As you can know we shall participate in  CeBit 2006 We shall be glad to see you as our guests - Hall 5, Stand B70/3. You can see FastReport and FastReport Studio in work. Also we with Alexander Tzyganenko shall first time demonstrate our new product - FastReport Server. Our new customers, who shall register FastReport Studio or FastReport from 20 february to 8 march can receive ticket to CeBit 2006 for free as gift from us. The quantity of tickets is limited! ### Become our guest on CeBit 2008! URL: https://www.fast-report.com/news/guest-cebit-2008 Summary: Become our guest on CeBit 2008! Become our guest on CeBit 2008! As you can know we shall participate in CeBit 2008  We shall be glad to see you as our guests - Hall 3, Stand B37/1.  Live demonstration of FastReport 4, FastReport Studio, FastReport Server and FastCube. Consulting of our professionals. And preview of FastReport .Net  Map of 3rd hall  See you on the CeBit 2008!  Fast Reports team ### Become our guest on Interop 2007 Moscow! URL: https://www.fast-report.com/news/exhibition-interop-2007 Summary: Become our guest on Interop 2007 Moscow! Become our guest on Interop 2007 Moscow! "Fast Reports" shall participate in Interop 2007 Moscow We shall be glad to see you as our guests on the Stand №209/3. Only news from our company in the Interop'2007 Moscow: 1. the 4th version of FastReport Studio for Windows Vista 2. the 2nd version of the reporting server FastReport Server 3. OLAP-components FastCube 4. Fast Report's partner program  See the Interop's plane Schedule a meeting. ### Black Friday at Fast Reports URL: https://www.fast-report.com/news/black-friday-2024 Summary: November 27, 28, and 29, report generators for VCL and .NET are on sale with 40% off! November 27, 28, and 29, report generators for VCL and .NET are on sale with 40% off! November 27, 28, and 29, report generators for VCL and .NET are on sale with 40% off! What products are participating?  FastReport .NET of Ultimate, WEB, Avalonia, WinForms, WPF, and Mono editions.  FastReport VCL of the following versions: Ultimate, Optimum, Reporting VCL, Reporting FMX, Lazarus, Analysis VCL.  Discounts apply to a new purchase only. The promotion does not apply to renewals and upgrades. You can ask questions in the chat on our website or email sales@fast-report.com . ### Black Friday Discount URL: https://www.fast-report.com/news/black-friday-discount-2013 Summary: Black Friday Discount Black Friday Discount We are glad to let you know about Black Friday discounts to all Fast Reports products. Action will start 29 November and will continue until the date 3 December 2013. ### Black Friday for .NET products with up to 40% discount URL: https://www.fast-report.com/news/black-friday-2023 Summary: Black Friday! Have time to purchase .NET products from November 21 to 24 with a 20% and 40% discount for yourself and your team! Black Friday! Have time to purchase .NET products from November 21 to 24 with a 20% and 40% discount for yourself and your team! During the period from November 21 to 24, hurry up to purchase a license with maximum benefit!  Single license with a 20% off on .NET solutions in Professional, Enterprise, Ultimate editions. Team license with a 15% off on NET solutions in the Professional, Enterprise, Ultimate editions and, taking into account the Team edition discount, a total of 40% ! Discounts are applied to: FastReport .NET FastReport WPF FastReport Mono FastReport Desktop Single license is for 1 developer. The Team license is suitable for 2-4 developers and includes the Build server license in the price. Discounts can only be applied when purchasing a license. The promotion does not apply to renewals and upgrades. You can ask questions in the chat on our website or email to sales@fast-report.com . ### Black Friday! 50% discount for your team URL: https://www.fast-report.com/news/black-friday-2022 Summary: November 24-29 any edition of FastReport or FastCube for Teams of developers can be purchased at half price. November 24-29 any edition of FastReport or FastCube for Teams of developers can be purchased at half price. November 24-29 any edition of FastReport or FastCube for Teams of developers can be purchased at half price. 50% discount applies for all Fast Reports products of Team and Site editions: FastReport .NET FastReport VCL FastReport Mono FastReport FMX FastReport Business Graphics .NET FastCube .NET FastCube VCL FastCube FMX The Team license is suitable for 2-4 developers and includes Build server license. The Site license is suitable for a large development team of 4 people or more within one location and includes Build server license. The offer is valid for a new purchase only. Discount doesn’t apply to subscription renewals and upgrades. You can ask questions in the chat on our website or by emailing  sales@fast-report.com ### Black Friday: 3 days to get report generators with a 35% discount URL: https://www.fast-report.com/news/black-friday-2025 Summary: A unique opportunity until November 28 to purchase FastReport VCL, FastReport .NET, and FastReport Desktop with a 35% discount. If you have postponed your purchase or upgrade, now is the best moment. A unique opportunity until November 28 to purchase FastReport VCL, FastReport .NET, and FastReport Desktop with a 35% discount. If you have postponed your purchase or upgrade, now is the best moment. A unique opportunity until November 28 to purchase FastReport VCL , FastReport .NET , and FastReport Desktop with a 35% discount. If you have postponed your purchase or upgrade, now is the best moment. This is your chance to update your data tools, speed up report development, and reduce time spent on routine tasks. A 35% discount is a real opportunity to optimize processes and prepare for new challenges without additional costs. Invest in reliable and convenient tools for analytics and reporting at the best price of the year. The offer is valid only for new purchases and cannot be applied to license renewals or upgrades. ### Black Friday: discounts for teams URL: https://www.fast-report.com/news/black-friday-2021 Summary: November 22-28 any edition of FastReport or FastCube for Teams up to 4 developers can be purchased for half price. November 22-28 any edition of FastReport or FastCube for Teams up to 4 developers can be purchased for half price. November 22-28 any edition of FastReport or FastCube for Teams up to 4 developers can be purchased for half price. 50% discount applies for all Fast Reports products of Team edition: FastReport .NET FastReport VCL FastReport Mono FastReport FMX FastReport Business Graphics FastCube .NET FastCube VCL FastCube FMX The Team license is suitable for 2-4 developers and includes Build server license. The offer is valid for a new purchase only. Discount doesn’t apply to subscription renewals and upgrades. ### Blogs URL: https://www.fast-report.com/blogs Summary: Read our articles for helpful tips and expert advice on how to improve your reporting processes. September 21, 2026 #.NET #FastReport #C# How to Configure an AI Agent for FastReport .NET: Architecture, Limitations, and Report Migration Working with reports often turns into a routine: editing XML templates (.frx), configuring data bindings, and adapting legacy formats. To automate this work, a specialized AI agent was created. This agent understands the FastReport .NET architecture and strictly follows enterprise development standards. Read more September 08, 2026 #FastReport #Viewer #Report #Converter Answers to Frequently Asked Questions about the FP3 Format The FP3 format often raises questions — especially among users who need to quickly open, view, or convert a prepared report without delving into development details. At the same time, confusion can arise right from the start: the FP3 extension is used in different software environments and may refer to completely unrelated file types. For example, from FastReport reports to 3D planning projects and even medical data. We have collected the 11 most frequently asked questions users encounter and prepared clear answers that take real-world tasks into account. You will learn how FP3 differs from other formats (in particular, from the FR3 template), which tools can help you work with such files, how to convert them to PDF and other formats, and how to solve common technical issues. Read more September 04, 2026 #.NET #Export #FastReport #Report How to export a report from FastReport .NET to DXF DXF (Drawing Exchange Format) is an open format for exchanging graphic data, developed by Autodesk for storing and transferring two-dimensional and three-dimensional drawings. Due to wide support from various CAD systems, DXF has become one of the most common formats for exchanging engineering and technical documentation between applications. In this article, we will consider methods of exporting a report to the DXF format, and also see what the resulting output looks like after opening the file in a CAD application. Read more August 03, 2026 #.NET #Export #FastReport #Report #Printing How to Export a Report from FastReport .NET to PostScript FastReport .NET supports exporting reports to many popular formats, such as PDF, Excel, Word, and others. However, professional printing, plotters, and specialized printing equipment often require the PostScript (.ps) format. In this article, we will look at exporting a FastReport .NET report to the PostScript format, using a practical example to examine parameter configuration and programmatic implementation. Read more July 10, 2026 #.NET #FastReport #WebReport #HTML #CSS How to configure Content Security Policy for FastReport .NET WEB reports Content Security Policy (CSP) is a key tool for protecting web applications from XSS attacks, but its integration with reporting systems is often fraught with difficulties. In the latest versions of FastReport .NET WEB, the architecture of the client-side has been significantly reworked, which simplifies compliance with a strict CSP without losing report functionality. In this article, we will examine how to properly configure CSP for FastReport reports and take into account typical risks. Read more June 22, 2026 #.NET #FastReport #Data Source #Designer #C# #Preview How to Configure a Report with Business Objects in Code and the FastReport .NET Designer FastReport .NET provides multiple ways to access and work with data, including databases, DataSet, JSON, and Business Objects (regular C# classes in your application). This article demonstrates a practical example of creating and using an .frx report template that connects to hierarchical Business Objects (Category → Products). Read more May 20, 2026 #VCL #FastReport #FastGrid Full Review of FastGrid Library's Capabilities FastReport VCL Ultimate users have probably already noticed that the installer now includes two new options: FastEditors VCL and FastGrid VCL. A new demo has also been added to the DemoCenter: FastGrid VCL Demo. Read more April 28, 2026 #VCL #FastReport #Designer #Delphi #Customization New Report Validation System in FastReport VCL We have frequently received requests from technical support for functionality to automatically validate reports, and we are pleased to announce its inclusion in the 2026.2.0 release. The "File" menu in the report designer now features "Validate" and "Validation Rule Settings" options. This allows users not only to check reports but also to manage the set of rules, including the creation of custom ones In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. Read more ### Building libgdiplus library from source URL: https://www.fast-report.com/blogs/Building-libgdiplus-library-from-source Summary: Fixing the word wrap and incorrect spacing errors in Linux by building the libgdiplus library and bug System.OutOfMemoryException: Not enough memory to complete operation [GDI+ status: OutOfMemory] Fixing the word wrap and incorrect spacing errors in Linux by building the libgdiplus library and bug System.OutOfMemoryException: Not enough memory to complete operation [GDI+ status: OutOfMemory] Fixing the word wrap and incorrect spacing errors in Linux by building the libgdiplus library and bug System.OutOfMemoryException: Not enough memory to complete operation [GDI+ status: OutOfMemory] When using the FastReport.NET (Core) , FastReport Open Source and FastReport Mono libraries on Linux operating system, as well as when saving documents as images or PDF files, there is a possibility to experience the incorrect display of Unicode texts in the report preview. One of the most common problems is a hyphenation error and, as a result, incorrect spacing between words. For example, when using Thai language on Windows OS, we see the following text: When running the same report on Linux Ubuntu, the following line is formatted incorrectly: There may also be problems with the word wrap. Let’s look at another example with Thai on Windows operating system: The same text is displayed incorrectly in Linux Ubuntu operating system: Such text display errors can be observed in other languages. It is also possible that the following error will occur: ``` System.OutOfMemoryException: Not enough memory to complete operation [GDI+ status: OutOfMemory] ``` Fortunately, there is a solution – lingdiplus library self-assembly from source with Pango. Before starting, it is highly recommended to make a backup copy of the /usr/lib/libgdiplus*.* files, as they will be overwritten with the new ones in the process of building the library. In this case, you can return the system to its original state if the desired result has not been achieved. In the first step, we need to install the required dependencies using the command: ``` $ sudo apt-get install libgif-dev autoconf libtool automake build-essential gettext libglib2.0-dev libcairo2-dev libtiff-dev libexif-dev libpango1.0-dev ``` Then we need to make a copy of the needed libgdiplus library from the GitHub repository:  ``` $ git clone https://github.com/mono/libgdiplus.git ``` After that, go to the libgdiplus folder and execute the build commands: ``` $ ./autogen.sh --with-pango --prefix=/usr $ make ``` If the build was successful and there are no errors, then you can install the built library: ``` $ sudo make install ``` The files will replace the old ones in the /usr/lib folder. Now you can run the program with reports and make sure it works correctly. For example, you can see how FastReport Mono works under Linux Ubuntu 18.04: All of the above is also true for web applications using the .NET Core and Mono frameworks. I wish you the best of luck and less problems with cross-platform programs! Tags: .NET, .NET, Mono, Mono, FastReport, FastReport, Linux, Linux, Core, Core, Open Source, Open Source, Libgdiplus, Libgdiplus ### Business Graphics .NET URL: https://www.fast-report.com/products/business-graphics-net Summary: Data visualization library for .NET Framework 4.6.2 and .NET 6-8 Data visualization library for .NET Framework 4.6.2 and .NET 6-8 With FastReport Business Graphics library you can visualize different hierarchical data, build business diagrams for further analysis and decision-making FastReport Business Graphics .NET Data visualization library for .NET Framework 4.6.2 and .NET 6-8 Buy Ultimate .NET Try for free Documentation ## With FastReport Business Graphics library you can visualize different hierarchical data, build business diagrams for further analysis and decision-making. All this can work directly in your application! Data Ability to use hierarchical data from the application, including those prepared in FastCube .NET The standard set of FastReport Business Graphics includes two classes providing  data presentation for hierarchical charts . The Children field builds hierarchical interrelations between the records. You may indicate which data elements should be used as tags for elements , values, or child records. You may build a hierarchical structure based on table sources. A collection with the names of fields and the order of nesting can be set. Additionally, you may set the limit of dipping by hierarchy.  Some charts, like  Sunburst , may display the root element. Interactivity When static reports are not enough, the FastReport Business Graphics charts provide excellent interactive opportunities. Allow the client  to immerse into data as deeply , as needed for the decision making and to ascend to the high level of abstraction. Most of the chart zones can interact with the user at a mouse click, with the ability to return to the previous image. When pointing at the necessary zone, an information text will appear; a mouse click will change the color or the hatching. You may add implementations of your own handlers of reactions in the interactive zones. Visualization Helps to make an informed decision with better data visualization. Reliable support in decision making by presenting even the most complicated information in an easily readable form. Visual dashboards help to estimate the status of processes and systems at a glance, instantly provide insight into the existing trends and tendencies. FastReport Business Graphics allows using different color palettes  to shade different levels of data presentation. Make information perception easier by adding hatch to parts of the charts or creating recognizable gradients. The freedom of choosing color solutions enables to create charts for thematic applications or customize the existing palettes by setting customer values. Choose a variant of shading: solid color, gradient, or hatch. The available options include changing the font, border around the text, width and color of the chart border. Integration A complementary element of the infrastructure: perfect integration with the OLAP operational data analysis library, the FastCube .NET cube. The ecosystem Fast Reports for introducing Business Intelligence into your applications. Preparing hierarchical data at FastCube .NET Operative work and “woolly” analytics with the abundance of visual opportunities of FastReport Business Graphics Forming documents and reports with colorful charts at FastReport .NET  All the wealth of preparing documents. Ideal integration with the report generator  FastReport .NET and  OLAP-cube FastCube .NET with the plug-ins supplied as part of these products. FastReport Business Graphics currently allows export into the following graphical formats: BMP, PNG, JPEG, TIFF, GIF, EMF . Surely, you may add our interactive diagrams into your own products – it is their key appointment! System.Drawing (GDI+) The familiar System.Drawing with GDI+ graphics functions is used to create graphical elements, render text, and manage graphic images. Embeddability in projects Install the required package from the NuGet repository, or download the package from our website to your computer and add the necessary libraries to the project. No additional modules or special extensions are required. Ultimate .NET Learn more about Ultimate .NET Buy Business Graphics .NET Currently, work with WinForms and applications is supported .NET Framework 4.6.2 and higher. What is a Bubble Chart? Taking a deep dive into a new tool for graphic data visualization - a Bubble Chart - and what are the algorithms for forming it. Taking a deep dive into a new tool for graphic data visualization - a Bubble Chart - and what are the algorithms for forming it. Installing FastReport Business Graphics into FastReport .NET Step-by-step instructions for installing FastReport Business Graphics in FastReport.NET when used as part of Designer or your project. Step-by-step instructions for installing FastReport Business Graphics in FastReport.NET when used as part of Designer or your project. How to use Gantt charts in FastReport Business Graphics We will figure out what is it a Gantt chart in FastReport BusinessGraphics. We’ll also learn about functional features and create our diagram from scratch. We will figure out what is it a Gantt chart in FastReport BusinessGraphics. We’ll also learn about functional features and create our diagram from scratch. Any other questions? Contact the manager ### Buy FastReport - Get FastCube for free URL: https://www.fast-report.com/news/fastcube-for-free Summary: With every purchase of report generator FastReport before January 1, 2022 we offer FastCube as a gift. With every purchase of report generator FastReport before January 1, 2022 we offer FastCube as a gift. With every purchase of report generator FastReport before January 1, 2022 we offer FastCube as a gift! Create an infrastructure for your data analysis by completing your document creating engine with a multidimensional data analysis library of the same platform: FastReport .NET + FastCube .NET FastReport VCL + FastCube VCL FastReport FMX + FastCube FMX FastCube will be automatically added to your product list after the purchase of FastReport. You can check its availability in your customer panel. Offer is valid for a full price purchase only and does not apply to a subscription renewal or an upgrade. Buy FastReport ### Celebrate With Us – Enjoy a Discount! URL: https://www.fast-report.com/news/our-birthday-20 Summary: To mark our company’s anniversary, we’re offering a 20% discount on all editions of FastReport VCL, FastReport .NET, and FastReport Desktop! To mark our company’s anniversary, we’re offering a 20% discount on all editions of FastReport VCL, FastReport .NET, and FastReport Desktop! To mark our company’s anniversary, we’re offering a 20% discount on all editions of FastReport VCL, FastReport .NET, and FastReport Desktop! FastReport VCL – reporting solution for Delphi/C++Builder FastReport .NET – reporting solution for the .NET platform FastReport Desktop – a ready-to-use report generator that requires no programming This offer is valid until August 31, 2025 (inclusive) and applies to new purchases only (not license renewals). If you’ve been planning to purchase or upgrade our products — now is a great time to do it and save. Don’t miss the chance to celebrate with us — treat yourself to a great deal! ### Change in prices for Brazil starting January 1, 2022 URL: https://www.fast-report.com/news/change-in-prices-for-Brazil Summary: Change in prices for Brazil starting January 1, 2022 Change in prices for Brazil starting January 1, 2022 All Fast Reports products in Brazil will be available for a higher price starting January 1, 2022. All the prices will remain in Brazilian reals. We accept and encourage to make orders using Boleto Bancário. Make sure to purchase for the old price till the end of the year. Starting January 1 it will no longer be possible. ### Changes to the FastCube .NET License Agreement and Terms of Use URL: https://www.fast-report.com/news/fastcube-new-eula Summary: New license agreement for FastCube .NET will come into effect at September 30, 2024 New license agreement for FastCube .NET will come into effect at September 30, 2024 We would like to inform you about changes to the agreement on use and distribution for .NET products. The changes affected paragraph 1.5: a list of dll and xml was added that the User and/or End User have the right to use as part of the KPO. You can read the changes at  this link . The changes come into effect on September 30, 2024. We would also like to inform FastCube .NET license holders that the product will be transitioning to a subscription licensing model starting September 30. Technical support and updates for previously purchased licenses for this product will no longer be available. The transition to a subscription license means that the license is valid for 12 months from the date of purchase. During this period, you receive technical support and updates. After this period, to continue receiving updates and support, you can renew it for 50% of the full cost (the discount is valid for 1 month after the license expires). We will be happy to answer questions by email at support@fast-report.com ### Charts in FastReport Mono URL: https://www.fast-report.com/blogs/charts-fastreport-mono Summary: Let's take a closer look at how diagrams work in FastReport Mono. Find more usefull tips and articles in our blog. Let's take a closer look at how diagrams work in FastReport Mono. Find more usefull tips and articles in our blog. Let's take a closer look at how diagrams work in FastReport Mono. Find more usefull tips and articles in our blog. Take the following steps to use charts in the report: Add reference to System.Windows.Forms.DataVisualization.dll in your project Add to project files from FastReport.Mono/Chart Enable charts in  FastReport.Mono/AssemblyInitializer.cs Activate charts in FastReport.Mono/Design/ImportPlugins/ComponentsFactory.cs Registration: --- FastReport.Mono/AssemblyInitializer.cs (revision 102) +++ FastReport.Mono/AssemblyInitializer.cs (working copy) @@ -22,6 +22,7 @@ using FastReport.Design; using FastReport.Functions; using FastReport.Export.OoXML; +using FastReport.MSChart; namespace FastReport { @@ -126,6 +127,8 @@ RegisteredObjects.Add(typeof(ShapeObject), "ReportPage,Shapes", 131, "Objects,Shapes,Diamond", 4); RegisteredObjects.Add(typeof(SubreportObject), "ReportPage", 104); #if! Basic + RegisteredObjects.Add(typeof(MSChartObject), "ReportPage", 125); + RegisteredObjects.Add(typeof(MSChartSeries), "", 130); RegisteredObjects.Add(typeof(TableObject), "ReportPage", 127); RegisteredObjects.Add(typeof(TableColumn), "", 215); RegisteredObjects.Add(typeof(TableRow), "", 216); --- FastReport.Mono/Design/ImportPlugins/ComponentsFactory.cs (revision 102) +++ FastReport.Mono/Design/ImportPlugins/ComponentsFactory.cs (working copy) @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using System.Text; -//using FastReport.MSChart; +using FastReport.MSChart; using FastReport.Table; using FastReport.Matrix; @@ -169,13 +169,13 @@ // /// The name of the MSChartObject instance. // /// The parent of the MSChartObject instance. // /// The MSChartObject instance. -// public static MSChartObject CreateMSChartObject(string name, Base parent) -// { -// MSChartObject chart = new MSChartObject(); -// chart.Name = name; -// chart.Parent = parent; -// return chart; -// } + public static MSChartObject CreateMSChartObject(string name, Base parent) + { + MSChartObject chart = new MSChartObject(); + chart.Name = name; + chart.Parent = parent; + return chart; + } Then the project should be reassembled so that the changes take effect. The chart report template is shown below. Файл шаблона отчёта с чартами ```   ``` Enjoy Tags: Mono, FastReport ### Christmas sale on FastReport VCL and FastReport .NET URL: https://www.fast-report.com/news/happy-holidays-2023 Summary: Discount calendar for FastReport VCL and FastReport document generators .NET Single of all editions. Have time to buy with the greatest benefit! Discount calendar for FastReport VCL and FastReport document generators .NET Single of all editions. Have time to buy with the greatest benefit! Grab the best offer before it expires!  Christmas sale season on FastReport VCL and FastReport .NET Single reporting library of all editions! Days of the promotion: -30% on December 12 - 14 -20% on December 15 - 19 -10% on December 20 - 26 Offer is valid for a full price purchase only and does not apply to a subscription renewal or an upgrade. BUY NOW! ### Client Assistant URL: https://www.fast-report.com/buy Summary: We offer proven solutions for creating reports and documentation of any complexity. Choose reliable products that allow you to quickly create high-quality reports that meet your requirements. Optimize your workflow and improve your business efficiency with Fast Reports. Client Assistant .NET JavaScript Delphi/Pascal Desktop Cloud Server Ultimate .NET WEB Avalonia WinForms WPF Mono from $1,499 from $799 from $599 from $499 from $499 from $499 Buy Buy Buy Buy Buy Buy FastReport Engine Report Engine Demo Application Bands Code based XML report templates .NET Platform .NET 4.6.2-4.8.1 .NET 6 .NET 7 .NET 8 .NET 9 .NET 10 Mono WEB components Web reporting WebForms WCF ASP.NET MVC ASP.NET Core ASP.NET Web API 2 ASP.NET Core MVC Razor Pages Blazor Server Blazor WebAssembly (WASM) FastCube OLAP WinForms components Reporting components Report Viewer Runtime Report Designer FastCube OLAP Icicle Treemap Bubble Sunburst Gantt Avalonia components Reporting components Report Viewer Runtime Report Designer WPF components Reporting components Report Viewer Runtime Report Designer Mono components Reporting components Report Viewer Runtime Report Designer FastCube OLAP Online Designer FastReport.Core.Skia FastReport.Drawing (Skia) System.Drawing (GDI) IDE Microsoft Visual Studio Visual Studio Code Visual Studio for Mac Embarcadero Delphi Prism MonoDevelop (Linux) JetBrains Rider Operation System Microsoft Windows Apple macOS Linux Report script languages C# VB.NET Report script engine CodeDOM Roslyn FastScript .NET Data connections Apache Cassandra ClickHouse Couchbase CSV Elastic Search Firebird Google BigQuery IBM DB2 JSON MongoDB MS Access MS SQL MySQL NosDB ODBC OLE DB Oracle Oracle ODP PostgreSQL RavenDB Sharepoint SqlAnywhere SqlCe SQLite VistaDB XML Internal application datasets In-Memory Custom connections Reporting features Dialogue forms Report inheritance Master-detail-subdetail Drill-downs Groupping Sorting Headers and Footers URLs and hrefs HTML tags in text object Unlimited page sizes Preview component Design-time visual report designer Run-time visual report designer High DPI support Visual SQL Builder Localization languages 29 29 29 29 29 29 Report objects 2D barcode Advanced Matrix (AdvMatrix) Barcode Cellular Chart Checkbox Container Cross-tab (Matrix) Digital signature Gauge Gradient HTML Map Picture RFID Rich Text Shape Sparkline Sub-report SVG System text Table Text Zip code Barcodes ANSI Aztec Codabar Code 11 Code 27 Code 128 (A, B, C) Code 16K Code32 Code 25 (Industrial, Interleaved, Matrix) Code 39 (Extended) Code 93 (Extended) Data Matrix Deutsche Post Identcode Deutsche Post Leitcode EAN 13 EAN 128 EAN+2 EAN+5 EAN 14 EAN 8 ITF-14 GS1 DataMatrix GS1 8 GS1 12 GS1 128 GS1 Expanded GS1 Expanded Stacked GS1Stacked GS1 Omnidirectional GS1 DataBar RSS-14 Maxicode MSI PDF417 Pharmacode Plessey Postnet QRCode QR code ECI Swiss QR UPCA UPCE (0, 1) Intelligent Mail Japan Post 4-state Charts Bar Stacked Bar 100% Stacked Bar Column Stacked Column 100% Stacked Column Area Spline Area Stacked Area 100% Stacked Area Line Fast Line Step Line Spline Bubble Point Fast Point Pie Doughnut Polar Radar Stock Candlestick Kagi Renko Point & Figure Three Line Break Pyramid Funnel Range Spline Range Range Column Range Bar Printing Print to different printer trays Dot-matrix printer support Advanced printing modes Print via web browser Print via PDF Export in formats PDF PDF/A PDF/X Images Jpeg/PNG/BMP/GIF/TIFF/EMF SVG Rich Text Word OOXML (docx) PowerPoint OOXML (pptx) HTML HTML5 (layered) MHT (web archive) Microsoft XPS Excel XML Excel binary (biff8 xls) Excel OOXML (xlsx) PostScript PPML LaTeX DXF ZPL JSON CSV DBF (table) Plain Text Open Document Speadsheet (OpenOffice) Open Document Text (OpenOffice) XAML Transports Email FTP DropBox Box Google Drive OneDrive S3 FastReport Cloud Convertors from List&Label DevExpress Microsoft Reporting Services (RDL, RDLC) Crystal Reports StimulSoft Jasper Library Plugins Business Graphics Integration Cube Integration Html View Object Import from Microsoft Word ActiveQueryBuilder RTF2FRX Converter Crystal Import TeeChartObject WebP plugin Custom plugin support Support Online helpdesk Online chat E-mail Phone Source Code Ultimate .NET Ultimate VCL WEB Online Designer from $1,499 from $1,299 from $799 from $299 Buy Buy Buy Buy FastReport Engine Report Engine Demo Application Bands Code based XML report templates .NET Platform .NET 4.6.2-4.8.1 .NET 6 .NET 7 .NET 8 .NET 9 .NET 10 Mono WEB components Web reporting WebForms WCF ASP.NET MVC ASP.NET Core ASP.NET Web API 2 ASP.NET Core MVC Razor Pages Blazor Server Blazor WebAssembly (WASM) WinForms components Reporting components Report Viewer Runtime Report Designer FastCube OLAP Icicle Treemap Bubble Sunburst Gantt WPF components Reporting components Report Viewer Runtime Report Designer Mono components Reporting components Report Viewer Runtime Report Designer FastCube OLAP VCL components Core Core UI AdvancedMemo FastQueryBuilder FastScript FastReport ClientServer Transports FastCube FastEditors FastGrid FMX components Core FastScript FastReport FastCube Lazarus components Core Core UI AdvancedMemo FastQueryBuilder FastScript FastReport ClientServer FastCube FastEditors FastGrid Online Designer React Jquery Webpack IDE Microsoft Visual Studio Visual Studio Code Visual Studio for Mac Embarcadero Delphi Prism MonoDevelop (Linux) JetBrains Rider Embarcadero RAD Studio 2010 Embarcadero RAD Studio XE Embarcadero RAD Studio XE2-XE8 Embarcadero RAD Studio 10 Seattle Embarcadero RAD Studio 10.1 Berlin Embarcadero RAD Studio 10.2 Tokyo Embarcadero RAD Studio 10.3 Rio Embarcadero RAD Studio 10.4 Sydney Embarcadero RAD Studio 11 Alexandria Embarcadero RAD Studio 12 Athens Embarcadero RAD Studio 13 Florence Lazarus Operation System Microsoft Windows Apple macOS Linux Report script languages C# VB.NET Pascal Script C++ Script J Script VB Script Report script engine CodeDOM Roslyn CodeMirror FastScript .NET Data connections Apache Cassandra ClickHouse Couchbase CSV Elastic Search Firebird Google BigQuery IBM DB2 JSON MongoDB MS Access MS SQL MySQL NosDB ODBC OLE DB Oracle Oracle ODP PostgreSQL RavenDB Sharepoint SqlAnywhere SqlCe SQLite VistaDB XML Internal application datasets In-Memory Custom connections ADO BDE Client Data Set DBX FIB FireDAC IBO IBX Lazarus DBF Lazarus SQLite Reporting features Dialogue forms Report inheritance Master-detail-subdetail Drill-downs Groupping Sorting Headers and Footers URLs and hrefs HTML tags in text object Unlimited page sizes Preview component Design-time visual report designer Run-time visual report designer High DPI support Visual SQL Builder RTL mirror mode Localization languages 29 33 29 29 Report objects 2D barcode Advanced Matrix (AdvMatrix) Barcode Cellular Chart Checkbox Container Cross-tab (Matrix) Digital signature Gauge Gradient HTML Map Picture RFID Rich Text Shape Sparkline Sub-report SVG System text Table Text Zip code PDFView Barcodes ANSI Aztec Codabar Code 11 Code 27 Code 128 (A, B, C) Code 16K Code32 Code 25 (Industrial, Interleaved, Matrix) Code 39 (Extended) Code 93 (Extended) Data Matrix Deutsche Post Identcode Deutsche Post Leitcode EAN 13 EAN 128 EAN+2 EAN+5 EAN 14 EAN 8 ITF-14 GS1 DataMatrix GS1 8 GS1 12 GS1 128 GS1 Expanded GS1 Expanded Stacked GS1Stacked GS1 Omnidirectional GS1 DataBar RSS-14 Maxicode MSI PDF417 Pharmacode Plessey Postnet QRCode Swiss QR UPCA UPCE (0, 1) Intelligent Mail Japan Post 4-state Charts Bar Stacked Bar 100% Stacked Bar Column Stacked Column 100% Stacked Column Area Spline Area Stacked Area 100% Stacked Area Line Fast Line Step Line Spline Bubble Point Fast Point Pie Doughnut Polar Radar Stock Candlestick Kagi Renko Point & Figure Three Line Break Pyramid Funnel Range Spline Range Range Column Range Bar TeeChart Lazarus TAChart Printing Print to different printer trays Dot-matrix printer support Advanced printing modes Print via web browser Print via PDF Export in formats PDF PDF/A PDF/X Images Jpeg/PNG/BMP/GIF/TIFF/EMF SVG Rich Text Word OOXML (docx) PowerPoint OOXML (pptx) HTML HTML5 (layered) MHT (web archive) Microsoft XPS Excel OLE Excel XML Excel binary (biff8 xls) Excel OOXML (xlsx) PostScript PPML LaTeX DXF ZPL JSON CSV DBF (table) Plain Text Open Document Speadsheet (OpenOffice) Open Document Text (OpenOffice) XAML Transports Email FTP DropBox Box Google Drive OneDrive S3 FastReport Cloud Next Cloud Outlook Gmail Convertors from List&Label DevExpress Microsoft Reporting Services (RDL, RDLC) Crystal Reports StimulSoft Jasper Library Quick Report Report Builder Rave Reports Plugins Business Graphics Integration Cube Integration Html View Object ActiveQueryBuilder Crystal Import RTF2FRX Converter TeeChartObject Import from Microsoft Word WebP plugin Code Editor Guides Position block Ruler Resize band horizontally Hotkey Context menu Dblclick FastConverter .FP3 Custom plugin support Support Online helpdesk Online chat E-mail Phone Source Code Ultimate VCL Optimum VCL Reporting VCL Reporting FMX Reporting Lazarus Analysis VCL from $1,299 from $899 from $499 from $499 from $499 from $399 Buy Buy Buy Buy Buy Buy FastReport Engine Report Engine Bands Code based XML report templates Demo Application VCL components Core Core UI AdvancedMemo FastQueryBuilder FastScript FastReport ClientServer Transports FastCube FastEditors FastGrid FMX components Core FastScript FastReport FastCube Lazarus components Core Core UI AdvancedMemo FastQueryBuilder FastScript FastReport ClientServer FastCube FastEditors FastGrid Online Designer OLAP features Unlimited number of indicators Final value Vertical dimension headers Horizontal dimension headers Creating additional totals Summary Editor Calculate totals on totals Total position Convolution and unfolding operations Data region Data Axis Drill down to the source data Rotating a multidimensional data array Transposing a cross-table Interactive list of fields Filtering rows and columns Custom filters Range Editor Sorting by axis values Sorting by the results of the indicator Sorting by active row/column Formation of user groups Formatting data Rule for data allocation Custom rules for data allocation Two-color and three-color scale for indicators Histogram inside cells A set of icons next to the indicator value Highlighting only the matching cells Expression Editor Script support Creating a data representation scheme Cross-chart Working with the clipboard Calculated metrics and filters Output of indicators as a value, percentage or rank OLAP aggregation functions Sum Count Minimum Maximum Average Multiplication Variance Std Dev VarianceS Std DevS First value Last value List of values Median Weighted arithmetic mean Calculation Calculation (detail) IDE Embarcadero RAD Studio 2010 Embarcadero RAD Studio XE Embarcadero RAD Studio XE2-XE8 Embarcadero RAD Studio 10 Seattle Embarcadero RAD Studio 10.1 Berlin Embarcadero RAD Studio 10.2 Tokyo Embarcadero RAD Studio 10.3 Rio Embarcadero RAD Studio 10.4 Sydney Embarcadero RAD Studio 11 Alexandria Embarcadero RAD Studio 12 Athens Embarcadero RAD Studio 13 Florence Lazarus Graphic core requirements GDI GDI+ D2D Quarz GTK Metal Operation System Microsoft Windows Apple macOS Linux Script languages Pascal Script C++ Script J Script VB Script Data connections ADO BDE Client Data Set DBX FIB FireDAC IBO IBX Lazarus DBF Lazarus SQLite Reporting features Dialogue forms Report inheritance Master-detail-subdetail Drill-downs Groupping Filtering Headers and Footers URLs and hrefs HTML tags in text object Unlimited page sizes Preview component Design-time visual report designer Run-time visual report designer High DPI support Visual SQL Builder RTL mirror mode Localization languages 33 33 33 33 33 33 Report objects 2D barcode Barcode Cellular OLE Chart Checkbox Cross-tab (Matrix) Digital signature Gauge Gradient HTML Map Picture Rich Text Shape Sub-report SVG System text Table Text Zip code Barcodes Aztec Codabar Code 11 Code 128 (A, B, C) Code 39 (Extended) Code 93 (Extended) Data Matrix Deutsche Post Identcode Deutsche Post Leitcode EAN 13 EAN 128 EAN+2 EAN+5 EAN 14 EAN 8 ITF-14 GS1 DataMatrix GS1 128 GS1 Expanded GS1 Expanded Stacked GS1Stacked GS1 DataBar RSS-14 Maxicode MSI PDF417 Pharmacode Plessey Postnet QRCode QR code ECI Swiss QR UPCA UPCE (0, 1) Intelligent Mail Charts TeeChart Lazarus TAChart Printing Print to different printer trays Dot-matrix printer support Advanced printing modes Print via web browser Print via PDF Export in formats PDF PDF/A Images Jpeg/PNG/BMP/GIF/TIFF/EMF SVG Rich Text Word OOXML (docx) PowerPoint OOXML (pptx) HTML HTML5 (layered) Excel OLE Excel XML Excel binary (biff8 xls) Excel OOXML (xlsx) PostScript PPML ZPL CSV Plain Text Open Document Speadsheet (OpenOffice) Open Document Text (OpenOffice) Support Online helpdesk Online chat E-mail Phone Source Code Convertors from Quick Report Report Builder Rave Reports Transports Email FTP DropBox Box Google Drive OneDrive Yandex Next Cloud Amazon S3 Outlook Gmail FastReport Desktop Professional FastReport Desktop Standard FastConverter .FP3 FastReport Viewer from $999 from $399 from $199 Buy Buy Buy Get Applications Graphical user interface Report Viewer Reporting components Runtime Report Designer Command Line Interface Scheduler Report manager Common interface FastReport Engine Report Engine Demo Application Bands Code based XML report templates Operation System Microsoft Windows Apple macOS Linux (x64, arm64) Report script languages C# VB.NET Data connections ClickHouse Couchbase CSV Firebird JSON MongoDB MS Access MS SQL MySQL ODBC OLE DB Oracle PostgreSQL RavenDB XML Reporting features Dialogue forms Report inheritance Master-detail-subdetail Drill-downs Groupping Sorting Headers and Footers URLs and hrefs HTML tags in text object Unlimited page sizes Preview component Design-time visual report designer Run-time visual report designer High DPI support Visual SQL Builder Report objects 2D barcode Advanced Matrix (AdvMatrix) Barcode Cellular Chart Checkbox Container Cross-tab (Matrix) Digital signature Gauge Gradient HTML Map Picture RFID Rich Text Shape Sparkline Sub-report SVG System text Table Text Zip code Barcodes ANSI Aztec Codabar Code 11 Code 27 Code 128 (A, B, C) Code 16K Code32 Code 25 (Industrial, Interleaved, Matrix) Code 39 (Extended) Code 93 (Extended) Data Matrix Deutsche Post Identcode Deutsche Post Leitcode EAN 13 EAN 128 EAN+2 EAN+5 EAN 14 EAN 8 ITF-14 GS1 DataMatrix GS1 8 GS1 12 GS1 128 GS1 Expanded GS1 Expanded Stacked GS1Stacked GS1 Omnidirectional GS1 DataBar RSS-14 Maxicode MSI PDF417 Pharmacode Plessey Postnet QRCode QR code ECI Swiss QR UPCA UPCE (0, 1) Intelligent Mail Japan Post 4-state Charts Bar Stacked Bar 100% Stacked Bar Column Stacked Column 100% Stacked Column Area Spline Area Stacked Area 100% Stacked Area Line Fast Line Step Line Spline Bubble PointFast Point Pie Doughnut Polar Radar Stock Candlestick Kagi Renko Point & Figure Three Line Break Pyramid Funnel Range Spline Range Range Column Range Bar Printing Print to different printer trays Dot-matrix printer support Advanced printing modes Print via web browser Print via PDF Export to formats PDF PDF/A PDF/X Images Jpeg/PNG/BMP/GIF/TIFF/EMF SVG Rich Text Word OOXML (docx) PowerPoint OOXML (pptx) HTML HTML5 (layered) MHT (web archive) Microsoft XPS Excel XML Excel binary (biff8 xls) Excel OOXML (xlsx) PostScript PPML LaTeX DXF ZPL JSON CSV DBF (table) Plain Text Open Document Speadsheet (OpenOffice) Open Document Text (OpenOffice) XAML Transports Email FTP DropBox Box Google Drive OneDrive S3 FastReport Cloud Convertors from List&Label DevExpress Microsoft Reporting Services (RDL, RDLC) Crystal Reports StimulSoft Jasper Library Distribution Windows Installation file DEB RPM Support Online helpdesk Online chat E-mail Phone FastReport Cloud Business FastReport Cloud Team FastReport Cloud Personal FastReport Cloud Free from $300 from $100 from $50 Buy Buy Buy Get Users 25 5 1 1 Template storage capacity (MB) 3750 1000 250 25 Report storage capacity (MB) 3750 1000 250 25 Export file storage capacity (MB) 7500 2000 500 50 Maximum weight of the uploaded file (MB) 200 150 100 10 Limit of data sources ∞ ∞ ∞ 1 User Group limit 10 5 1 1 Pages limit ∞ ∞ ∞ 5 Transports Email FTP Webhook Online template editor File Storage Report Templates Generated reports Storage by folders Hiding folders Exports from reports Recycle Bin History of changes SDK and Integration Haskell JavaScript C++ Python Java Go C#/.NET, ASP.NET REST API User rights Getting information Getting rights Editing Administration Deletion Downloading Groups Group Control Panel Simultaneous access to files Creating tasks Preparing the report Exporting a template Exporting a report Tasks-transports Adding a structure to a data source Formation of a public link Generating reports on a schedule Data security Two-factor authentication Open ID authentication File access control Digital signature of PDF documents File editing protection Data connections Connecting data sources using the API ClickHouse CSV Firebird JSON MongoDB MS SQL MySQL OraclePostgreSQL XML Reporting features Report inheritance Master-detail-subdetail Drill-downs Groupping Sorting Headers and Footers URLs and hrefs HTML tags in text object Unlimited page sizes Preview component High DPI support Report objects 2D barcode Advanced Matrix (AdvMatrix) Barcode Cellular Chart Checkbox Container Cross-tab (Matrix) Digital signature Gauge Gradient HTML Map Picture Rich Text Shape Sparkline Sub-report SVG System text Table Text Zip code Barcodes ANSI Aztec Codabar Code 11 Code 27 Code 128 (A, B, C) Code 16K Code32 Code 25 (Industrial, Interleaved, Matrix Code 39 (Extended) Code 93 (Extended) Data Matrix Deutsche Post Identcode Deutsche Post Leitcode EAN 13 EAN 128 EAN+2 EAN+5 EAN 14 EAN 8 ITF-14 GS1 DataMatrix GS1 8 GS1 12 GS1 128 GS1 Expanded GS1 Expanded Stacked GS1Stacked GS1 Omnidirectional GS1 DataBar RSS-14 Maxicode MSI PDF417 Pharmacode Plessey Postnet QRCode QR code ECI Swiss QR UPCA UPCE (0, 1) Intelligent Mail Japan Post 4-state Charts Bar Stacked Bar 100% Stacked Bar Column Stacked Column 100% Stacked Column Area Spline Area Stacked Area 100% Stacked Area Line Fast Line Step Line Spline Bubble Point Fast Point Pie Doughnut Polar Radar Stock Candlestick Kagi Renko Point & Figure Three Line Break Pyramid Funnel Range Spline Range Range Column Range Bar Printing Print via web browser Print via PDF Export in formats PDF PDF/A PDF/X Images Jpeg/PNG/BMP/GIF/TIFF/EMF SVG Rich Text Word OOXML (docx) PowerPoint OOXML (pptx) HTML HTML5 (layered) MHT (web archive) Microsoft XPS Excel XML Excel binary (biff8 xls) Excel OOXML (xlsx) PostScript PPML LaTeX DXF ZPL JSON CSV DBF (table) Plain Text Open Document Speadsheet (OpenOffice) Open Document Text (OpenOffice) XAML Support Online helpdesk Online chat E-mail Phone Fonts Space Limit 50 Mb 10 Mb 5 Mb 1 Mb Publisher Corporate Server from $1,990 from $9,650 Buy Get Users 15 ∞ Administrators 1 3 Workspaces 1 2 Limit of data sources 3 ∞ User Groups Online template editor Launching with Docker Web interface Rest interface (web api) Scheduler Run in Kubernetes Scalability Pages limit ∞ ∞ File Storage Report Templates Generated reports Storage by folders Hiding folders Exports from reports Recycle Bin History of changes SDK and Integration Haskell JavaScript C++ Python Java Go REST API C#/.NET, ASP.NET User rights Getting information Getting rights Editing Administration Deletion Downloading Groups Group Control Panel Simultaneous access to files Creating tasks Preparing the report Exporting a template Exporting a report Tasks-transports Adding a structure to a data source Formation of a public link Data security Open ID authentication File access control Digital signature of PDF documents File editing protection Data connections Connecting data sources using the API ClickHouse CSV Firebird JSON MongoDB MS SQL MySQL Oracle PostgreSQL XML Reporting features Report inheritance Master-detail-subdetail Drill-downs Groupping Sorting Headers and Footers URLs and hrefs HTML tags in text object Unlimited page sizes Preview component High DPI support Report objects 2D barcode Advanced Matrix (AdvMatrix) Barcode Cellular Chart Checkbox Container Cross-tab (Matrix) Digital signature Gauge Gradient HTML Map Picture Rich Text Shape Sparkline Sub-report SVG System text Table Text Zip code Barcodes ANSI Aztec Codabar Code 11 Code 27 Code 128 (A, B, C) Code 16K Code32 Code 25 (Industrial, Interleaved, Matrix Code 39 (Extended) Code 93 (Extended) Data Matrix Deutsche Post Identcode Deutsche Post Leitcode EAN 13 EAN 128 EAN+2 EAN+5 EAN 14 EAN 8 ITF-14 GS1 DataMatrix GS1 8 GS1 12 GS1 128 GS1 Expanded GS1 Expanded Stacked GS1Stacked GS1 Omnidirectional GS1 DataBar RSS-14 Maxicode MSI PDF417 Pharmacode Plessey Postnet QRCode QR code ECI Swiss QR UPCA UPCE (0, 1) Intelligent Mail Japan Post 4-state Charts Bar Stacked Bar 100% Stacked Bar Column Stacked Column 100% Stacked Column Area Spline Area Stacked Area 100% Stacked Area Line Fast Line Step Line Spline Bubble Point Fast Point Pie Doughnut Polar Radar Stock Candlestick Kagi Renko Point & Figure Three Line Break Pyramid Funnel Range Spline Range Range Column Range Bar Printing Print via web browser Print via PDF Export in formats PDF PDF/A PDF/X Images Jpeg/PNG/BMP/GIF/TIFF/EMF SVG Rich Text Word OOXML (docx) PowerPoint OOXML (pptx) HTML HTML5 (layered) MHT (web archive) Microsoft XPS Excel XML Excel binary (biff8 xls) Excel OOXML (xlsx) PostScript PPML LaTeX DXF ZPL JSON CSV DBF (table) Plain Text Open Document Speadsheet (OpenOffice) Open Document Text (OpenOffice) XAML Transports Email FTP Webhook Support Online helpdesk Online chat E-mail Phone Contact us If you have any questions or issues, please contact our support team . We are always ready to assist you. info@fast-report.com Sales sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Office Alexandria, VA 22314 66 Canal Plaza, Ste 505 Products Buy Demo Documentation How to uninstall Licenses Products Buy Demo Documentation How to uninstall Licenses Support Support SLA Online support FAQ Tutorial Video Forum Articles News Support Support SLA Online support FAQ Tutorial Video Forum Articles News Company About Identity Resellers Contacts us Company About Identity Resellers Contacts us Privacy policy Cookies policy © 1998-2026 Fast Reports Inc. Trustpilot Link copied successfully ### Cloud Services for Business: Advantages and Opportunities URL: https://www.fast-report.com/blogs/cloud-services-fo-business Summary: In this article, we will explore the main cloud services, their benefits, and their impact on business. In this article, we will explore the main cloud services, their benefits, and their impact on business. In recent years, cloud technologies have become an integral part of business. Companies of various sizes and industries are increasingly turning to cloud services to enhance the efficiency, flexibility, and security of their operations. In this article, we will explore the main cloud services, their benefits, and their impact on business. In recent years, cloud technologies have become an integral part of business. Companies of various sizes and industries are increasingly turning to cloud services to enhance the efficiency, flexibility, and security of their operations. In this article, we will explore the main cloud services, their benefits, and their impact on business. What are Cloud Services? Cloud services are resources and services provided over the Internet. They allow companies to utilize computing power, data storage, development platforms, and various applications without the need to purchase and maintain physical hardware.  Cloud services are divided into three main types: 1. Infrastructure as a Service (IaaS) — provides virtualized computing resources: servers, storage, and networks. 2. Platform as a Service (PaaS)  — offers a platform for developing, testing, and deploying applications. 3. Software as a Service (SaaS)  — provides access to software programs over the Internet without the need to install them on local devices. Who Benefits from Cloud Services Cloud services are suitable for any business—from sole proprietorships without employees and startups to government agencies and international corporations. During the pandemic, many companies had to transition to a remote work format and used “cloud” services for this purpose. As a result, companies were able to automate their operations and increase profits. Advantages of Cloud Services for Business 1. Cost Reduction Transitioning to cloud technologies allows companies to significantly reduce expenses related to IT infrastructure. Instead of investing in expensive hardware and its maintenance, organizations can utilize cloud solutions on a pay-as-you-go basis. 2. Flexibility and Scalability Cloud services enable easy scaling of resources according to business needs. This is especially important for companies experiencing rapid growth or facing seasonal fluctuations in demand. 3. Accessibility and Mobility Cloud solutions provide access to data and applications from anywhere in the world with an internet connection. This fosters more flexible work for employees, including the ability to work remotely and collaborate in real-time. 4. Security Modern cloud providers invest in advanced security technologies, ensuring the protection of data from loss and cyberattacks. Encryption, multi-factor authentication, and regular backups are just a few methods used to safeguard information. 5. Automatic Updates Cloud services offer automatic updates and enhancements, allowing companies to stay at the forefront of technology without the need for manual software update management. Popular Cloud Services Amazon Web Services (AWS) AWS offers a wide range of services, from hosting to machine learning. It is suitable for businesses of all sizes and is actively used by startups and large enterprises. Salesforce Salesforce is a leader in cloud-based CRM solutions. It helps companies manage customer interactions and automate sales processes. FastReport Cloud Is a cloud service (SaaS) designed for storing, editing, creating, and sending reports within a business, with access available from anywhere in the world for your entire team without the need to create your own application. Types of Cloud Services There are three types of cloud services: Private Public Hybrid A private cloud belongs to a single company and operates on its own equipment. It is used only by the employees of that company. All information remains internal, making it easier to control and protect. However, only large companies can afford a private cloud because it is expensive to use: it requires purchasing or renting equipment, along with managing and maintaining it. A public cloud is maintained by a provider, which rents out computing power to various clients. A business can purchase exactly the amount of resources it needs for operations and data storage. This is convenient and cost-effective. When we talk about the use of cloud services, we are most often referring to public clouds. A hybrid cloud occurs when part of the workload is in a public cloud while another part is in a private cloud or even on physical storage. This often happens during a company's gradual transition from traditional infrastructure to cloud-based services. Our Cloud Solution Generating reports and documents using FastReport Cloud will not only save your company time but also optimize workflows. Creating the necessary document template occurs in FastReport Online Designer . You can modify the appearance of the document in any browser without a constant internet connection. By using our Cloud for your business, you can easily transform your data into clear and stylized documents, apply formatting to any text, add barcodes, and much more. FastReport Cloud supports various ways to connect data from JSON, CSV, XML, MS SQL, PostgreSQL, MySQL, and Oracle . Additionally, you can group service users and assign them different access rights to workspace resources. Create teams of administrators, managers, designers, and developers for collaborative work. While one user group can create new documents, another group can generate PDF reports from templates. Conclusion Cloud services provide businesses with numerous opportunities to optimize operations and reduce costs. They are becoming a key element of digital transformation strategies, allowing companies to be more flexible and adapt to market changes. By investing in cloud technologies, businesses gain access to modern solutions that help achieve set goals and maintain a competitive advantage. Tags: Cloud, Web Storage ### CMYK in PDF export URL: https://www.fast-report.com/blogs/cmyk-in-pdf Summary: Looking at the principle of making color documents in the prinitng undystry using CMYK instead of RGB, since RGB printing may cause color inacuracies Looking at the principle of making color documents in the prinitng undystry using CMYK instead of RGB, since RGB printing may cause color inacuracies Looking at the principle of making color documents in the prinitng undystry using CMYK instead of RGB, since RGB printing may cause color inacuracies CMYK is a color model based on a synthesis of any color that is based on four basic colors: blue (the Cyan), purple (Magenta), yellow (Yellow), Black (Key Color). This model is mainly used in the printing industry. Reviewing CMYK, one more color model must be mentioned –RGB. The color model RGB consists of red (Red), green (Green), blue (blue) colors. These three colors are the basis to create other colors. This model is used in color television and computers. When should CMYK be used? It is necessary to have documents based on CMYK to be printed on a printer and documents which are based on RGB to be posted on the Internet. Let us consider the principle of printing color documents in polygraphy (printing). First, apply one color on paper. Wait until the ink is dry. Then apply another color and wait again. Modern printers allow you to print with RGB. It took a lot of years of evolution of printing equipment to have a modern way of printing. Nevertheless, CMYK is still a generally accepted standard for printed documents, because RGB printing may differ in coloring on different printers. So, CMYK is based on color imposition while printing. Please, look at the picture given below. According to the image, the imposition of cyan, magenta, and yellow gives us the secondary colors - green, blue, and red. CMYK refers to the subtractive synthesis. This means that the colors are subtracted from the basic. It is necessary to mention, that paper is considered to be a reflective surface in the printing industry. So, we apply some ink as if we subtract the reflected light. Therefore, from white paper, we subtract three basic colors RGB and get three secondary colors CMYK. Unlike the subtractive synthesis of color, the additive synthesis is based on “addition” instead of “subtracting”. RGB scheme is formed on the principle of adding colors. In contrast to polygraphy where the light is reflected from paper, computer monitors and televisions emit light. The surface which does not emit light is considered by a human eye as black. The white color is obtained by combining all three colors. An additive synthesis image may differ on monitors from different manufacturers. It takes place due to the difference in the color temperature of white color and in gamma correction. As a matter of fact, the basic RGB colors can be obtained from a larger number of colors. PDF documents support two color models, that is, it is possible to create documents aimed to be used in printing or web documents. This is because of the technology of color profiles ICC. Color profiles define the color input or color output devices and requirements for the appearance. The reports generator FastReport.Net allows you to export reports in PDF format with a choice of RGB or CMYK color scheme: By default, the RGB color scheme has been chosen. From the drop-down list you can select CMYK. Click “OK” and you will get a document that can be opened in typography and sent to print without any further processing. It should be mentioned that nowadays it is possible to attach a color profile to a PDF export. This can be done from the user application code. For example, a typical report export in PDF: ``` stringcurdir = Environment.CurrentDirectory.ToString(); Reportreport = newReport(); report.Load(curdir + @"\Lines.frx"); report.Prepare(); PDFExport export = newPDFExport(); export.ColorProfile = File.ReadAllBytes(curdir + @"\G1400_CWPM190_CW490_D50_PM.icm"); export.Export(report); ```  Here is a line which we are interested in the most: ``` export.ColorProfile = File.ReadAllBytes(curdir + @"\G1400_CWPM190_CW490_D50_PM.icm"); ```  Сolor profile must be added as a byte array. You can use your color profiles only if the format PDF / X-4 is selected as they are supported in it. Tags: .NET, Export, FastReport, PDF ### Code Gone Wrong: The Scariest Developer Tales URL: https://www.fast-report.com/news/halloween-2025 Summary: Code Gone Wrong: The Scariest Developer Tales. We've collected your stories about the scary situations that made your hair stand on end. Code Gone Wrong: The Scariest Developer Tales. We've collected your stories about the scary situations that made your hair stand on end. It's spooky season! We've collected your stories about the scary situations that made your hair stand on end. Story 1 It was Friday evening. I just wanted to test a small change, added two lines, and accidentally hit Publish instead of Build. Production updated instantly. Users, too, instantly started reporting bugs. I closed my laptop and pretended the internet didn’t exist anymore😅  Story 2 There was an old project with dozens of global variables. One of them controlled licensing. Nobody knew how. No documentation, just a comment: // Don’t touch. Ever. Someone renamed it “for readability.” The server never started again. No one could explain why. Story 3 The bug only happened on the client side, not ours. I enabled detailed logging to find out what was wrong. Got 12 gigabytes of logs. Not a single error message. Only my debug statements. And after enabling logging, the bug disappeared. Story 4 The morning after release, the server was on its knees. CPU usage — 100%. Turned out I’d written a recursive call that worked fine in tests with 10 records. Production had 50,000. Since then, I flinch every time I see the word foreach. Story 5 Every night, exactly at midnight, the app crashed. Turned out someone used DateTime.Now.DayOfYear as an array index with size 365. 🤦‍♂️🤦‍♂️ No one accounted for leap years.  Story 6 An intern ran: DELETE FROM Users WHERE id <> 1; Only he did it in production. And id = 1 belonged to the sysadmin.  Five minutes later, 300 employees no longer had accounts. Story 7 After a library update, everything worked flawlessly. No crashes, no errors. A week later, we found out the app had stopped saving data to the database. Hidden deep in the code: except   // ignore end; The developer who wrote it left years ago. But his spirit still haunts the codebase. Story 8 I commented out an old piece of code so it wouldn’t interfere. Months later, a colleague “cleaned up the project” and accidentally uncommented it. The code compiled. It worked. Except now, every time we print a report, the CD drive opens. ### CodeRage 2009 - from 8 to 11 September URL: https://www.fast-report.com/news/coderage-2009 Summary: CodeRage 2009 - from 8 to 11 September CodeRage 2009 - from 8 to 11 September Dear friends! We invite you vizit CodeRage 2009 - from 8 to 11 September. http://conferences.embarcadero.com/coderage Fast Reports will take part as a speaker and exhibitor http://conferences.embarcadero.com/coderage/sessions ### CodeRage 7 - Embarcadero online conference 10-12, Dec. URL: https://www.fast-report.com/news/online-conference-coderage-2012 Summary: CodeRage 7 - Embarcadero online conference for C++ developers CodeRage 7 - Embarcadero online conference for C++ developers CodeRage 7 - Embarcadero online conference for C++ developers in connection with 64 bit C++ Builder release.  Join to online conference CodeRage7 from 6am to 5 pm PST December 10-12 Embarcadero and company partners will present the latest developments for C++  All people can see the process of creation an application on life demos. Why you need participate in CodeRage? * In first day December 10. Bjarne Stroustrup (creator and developer C++ programming language) and David Intersimone will discuss about new C++11 standard and popularity C++ language in software market.  * Michael Philippenko CEO of Fast Reports Inc. will tell about reporting in C++ application for Windows and Mac OSX * Vsevolod Leonov will present migration ways from client-server architecture to Multitier architecture. ### CodeRage III Special Product Discount of Fast Reports URL: https://www.fast-report.com/news/discount-coderage-2009 Summary: CodeRage III Special Product Discount of Fast Reports CodeRage III Special Product Discount of Fast Reports As Prize Donor ( https://conferences.codegear.com/coderage08/prizes ) and exhibitor of CodeRage 2008 ( https://conferences.codegear.com/coderage08 ) we are offer Special Discount on Fast Reports products. You can save some coin with 20% off on your choice of Fast Reports products. Offer expires at 11:59pm on Friday, December 5, 2008 Special offer (5 days only!) FastReport.Net Win Forms and FastReport.Net WinForms+WebForm (for Delphi Prism) with 20% discount! ### Combine multiple reports into one URL: https://www.fast-report.com/blogs/combine-multiple-reports Summary: Let's take a closer look at how to combine multiple reports into one works in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how to combine multiple reports into one works in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how to combine multiple reports into one works in FastReport .NET. Find more usefull tips and articles in our blog. This article aims to establish a strategy to combine two or more reports into one by using the code of your application. This can be useful when you want to combine similar reports according to their category. To append a report to the previous one use the method Prepare of the Report object. It is necessary to provide value TRUE as a parameter of the method. Let us consider an example. Create an application WindowsForms. Add a reference to FastReport.dll library to the project. Then, add three buttons on the form: Report 1, Report 2, Combined report. Next, double click on the first button. Now we are using the library FastReport: ``` using FastReport; ```  Set the report's path: ``` string report_path = @"K:\MyDocuments\"; ```  Now add the code to the first button: ``` private void button1_Click(object sender, EventArgs e) { Report report1 = new Report(); Report1.Load(report_path + "report1.frx"); Report1.Prepare(); Report1.ShowPrepared(); } ```  Here, we have created a report instance, downloaded the report, prepared it and showed. The report template looks like this: Now double click on the second button: ``` private void button2_Click(object sender, EventArgs e) { Report report2 = new Report(); Report2.Load(report_path+"report2.frx"); Report2.Prepare(); Report2.ShowPrepared(); } ```  The procedure here is the same as with the first button. A report template is also similar: Add the code to the third button:      ``` private void button3_Click(object sender, EventArgs e) { Report report1 = new Report(); report1.Load(report_path + "report1.frx"); report1.Prepare(); report1.Load(report_path + "report2.frx"); report1.Prepare(true); report1.ShowPrepared(); } ``` As you can see, we have created a report object - report1. Then, we loaded the first report and prepared it. After that, we have loaded the second report and prepared it as well. In the last line of the code we have displayed the report object. Bring the line report1.Prepare(true) to notice. As a function parameter we provide the value TRUE. This means that the current report is joined to the previous one. Using this example you can consistently join any number of reports to each other. Let us start our application: If we click the Report 1 button, we get our first report:  Click the second button to see the second report: And finally, click the third button: In this case, we get a report of two pages. The first one displays the first report, the second one shows the second report. As can be seen from the above, the process of combining two reports into a single report does not present any difficulties and troubles. Tags: .NET, FastReport ### Compare licenses URL: https://www.fast-report.com/new-prices Summary: Pricing for the new licensing type Business Pricing for the new licensing type Business FastReport .NET Single Team Business Site Ultimate .NET $1,499 $4,499 $11,499 $22,499 WEB $799 $2,399 $6,299 $11,999 Avalonia $599 $1,799 $4,699 $8,999 WinForms $499 $1,499 $3,899 $7,499 WPF $499 $1,499 $3,899 $7,499 Mono $499 $1,499 $3,899 $7,499 FastReport VCL Single Team Business Site Ultimate VCL $1,299 $3,899 $9,999 $19,499 Optimum VCL $899 $2,699 $6,799 $13,499 Reporting VCL $499 $1,499 $3,799 $7,499 Reporting FMX $499 $1,499 $3,799 $7,499 Reporting Lazarus $499 $1,499 $3,799 $7,499 Analysis VCL $399 $1,199 $2,999 $5,999 Products Single Online Designer $299 FastConverter .FP3 $199 Desktop Standard Professional FastReport Desktop $399 $999 Cloud Monthly Yearly FastReport Cloud Personal $50 $480 FastReport Cloud Team $100 $960 FastReport Cloud Business $300 $2,880 ### Comparison of FastCube 2 VCL vs FMX URL: https://www.fast-report.com/fast-cube-vcl-fmx-compare Features FastCube 2 VCL FastCube FMX Data sources: relational database  (TDataSet) + + saved cube + + user data + + append data to a cube loaded from the data source and / or from a saved cube + + data scheme with multiple database table + + Data processing : type conversion during the load process + + automatic creation of Year, Month, Day of week, etc dimensions for Date and Time fields + + user dimensions + + grouping of dimension members + + simultaneous calculation of multiple measures + + measures built on dimensions + + calculated measures + (*) + (*) sort by measure value + + standard statistical functions for measures and totals + + additional totals + + instant grid transposition + + ranks + + Top N + + Data filtering: simultaneous filtering of several values + + simultaneous filters of sveral fields + + single value filter (radio filter) + + filter with dependency on other active filters + + central filter management for several slices + + Data representation: showing dimensions without active measures + + drill-up / drill-down of dimension members + + drill-though + + unlimited position of "Measures" field in the grid + + showing measure as percent by column / row + + tree like axes representation + + conditional data highlight (color, gradient, icon, bar-chart) + + hide of zero colimns / rows + + user formats for dimensions and measures + + automatic calculation of statistical functions for selected data + + charts + (**) + (**) Data save/export: own compact cube fromat (data + scheme + filters) using XML + + save scheme separately from the data + + export to Excel, HTML, ODT, XML + + export cube to DBF + + copy the selected cells to the clipboard + + generate reports + (***) + (***) Integration FastScript + + TeeChart/TAChart + + FastReport + + IDE support Delphi 7 – XE8, Lazarus 1.0+ Delphi XE4 - XE8 OS support Windows 32/64 + Mac OS X (only Lazarus) Windows 32/64 + Mac OS X * - only FastScript integration ** - only TeeChart / TAChart integration *** - only FastReport integration ### Comparison of FastCube VCL editions URL: https://www.fast-report.com/fast-cube-editions-compare Summary: fast cube editions compare fast cube editions compare Function FastCube VCL Embarcadero Edition FastCube VCL Standard         FastCube VCL Professional Relational database given as data source x x x Saved cube as data source x x x Ability to convert data type in boot process x x x Automatic creation of measurement year, month, day of week etc. based on fields of type Date x x x Simultaneous calculation of several indices x x x Ability to create user-based performance measurement x x x Mapping of measurements without indicators x x x Simultaneous Filtering of multiple values x x x Simultaneous Filtering on multiple fields x x x Detailing / minimizing measurement values x x x Itemized cell to original data - x x Sorting by value fact - x x Construction of calculated parameters - x(with FastScript) x(with FastScript) Aggregate functions x x x Change for field of facts axis location (in row, column) and level of axis x x x Display fact as percentage of column / row x x x Colorize data - x x Hide zero rows / columns - x x Create custom formats for measurements and facts - x x Saving of cube (data x scheme) x x x Saving schemas shown separately from cube x x x Export to Excel, HTML x x x Copy selected cells to clipboard - x x Diagram based on TeeChart x x x Report Printing (with FastReport) x x x Source Code - - x ### Comparison of FastReport .NET editions URL: https://www.fast-report.com/fast-report-net-editions-compare Summary: Comparison of FastReport .NET editions in one table Comparison of FastReport .NET editions in one table On June 1, Fast Reports Inc. switched to a new product generation system.   Standard     Professional    Enterprise   Ultimate  Online designer - - x x Source code - x x x .NET Core .NET Core /.NET 5 - .NET 8 support (Windows, Linux, macOS) x x x x Blazor Server support x x x x Blazor Webassembly support  - - x x ASP.NET components (WebReport) x x x x Save prepared reports to clouds x x x x Run-time report designer x x x x Report script x x x x In-report data sources x x x x In-report dialogue forms x x x x Export the prepared report to other formats x x x x Advanced report objects - Table, Matrix, AdvMatrix, Barcode, Charts, Maps, RichText, Checkbox, Zip code, CellularText x x x x Report objects - Text, Picture, Shape, Line, Subreport x x x x Windows Forms components x x x x Html View Object - - x x FastReport WPF included - - - x FastCube .NET included - - - x FastReport Business Graphics included - - - x FastReport Mono included - - - x ### Comparison of FastReport Cloud editions URL: https://www.fast-report.com/fast-report-cloud-editions Summary: Comparison of FastReport Cloud editions in one table Comparison of FastReport Cloud editions in one table Free Personal Team Business  Access to Online Designer x x x x  Templates Space Limit (Mb) 25 250 1000 3750  Reports Space Limit (Mb) 25 250 1000 3750  Exports Space Limit (Mb) 50 500 2000 7500  File Upload Size Limit (Mb) 10 100 150 200  Data source Limit 1 10 15 30 Groups limit 1 1 2 10 User slots limit 1 1 4 15 Page limit 5 Unlimited Pages - x x x  Tasks for building a report x x x x  Tasks for sending the report - x x x  Task Scheduler - x x x  Subscription period in read-only mode 1 week 1 month 2 months 3 months  Maximum time to build a report 15 minutes 15 minutes 15 minutes 15 minutes  Limit of allocated RAM (Mb) 600 2000 4000 8000  Dedicated report generation queue - x x x ### Comparison of FastReport Designers URL: https://www.fast-report.com/designers-comparison Summary: Comparison of FastReport Designers Comparison of FastReport Designers Feature Desktop .NET Desktop Mono Community Edition Desktop VCL Desktop FMX Desktop Lazarus Online Designer Application type Application in web browser ✓ Standalone application ✓ ✓ Execute from code ✓ ✓ ✓ ✓ ✓ Platform targeting WinForms ✓ ✓ CoreWin ✓ ASP.NET ✓ ASP.NET MVC ✓ ASP.NET MVC Core ✓ ✓ ASP.NET Mono ✓ Blazor Server ✓ VCL ✓ FMX ✓ Lazarus LCL ✓ Operating System Windows ✓ ✓ ✓ ✓ ✓ ✓ Linux ✓ ✓ ✓ macOS ✓ ✓ Web browser (JS/HTML5 xplat webapp) ✓ Report generator targeting FastReport .NET WinForms ✓ FastReport Mono WinForms ✓ FastReport .NET CoreWin ✓ FastReport .NET WebReport ✓ FastReport Mono WebReport ✓ FastReport .NET WebReport Core ✓ FastReport .NET WebReport Blazor ✓ FastReport OpenSource Core ✓ FastReport Open Source WebReport ✓ ✓ FastReport VCL ✓ FastReport FMX ✓ FastReport for Lazarus ✓ Reporting features Plugins ✓ ✓ ✓ Localizations ✓ ✓ ✓ ✓ ✓ ✓ Dialogs ✓ ✓ ✓ ✓ ✓ * Data connectors ✓ ✓ ✓ ✓ ✓ ✓ * Application data ✓ ✓ ✓ ✓ ✓ ✓ Script editor ✓ ✓ ✓ ✓ ✓ ✓ ✓ Charts ✓ ✓ ✓ ✓ ✓ ✓ Maps ✓ ✓ ✓ ✓ ✓ ✓ * limited support, under construction ** not supported, but planned for development ### Comparison of FastReport VCL Editions URL: https://www.fast-report.com/report-for-delphi-fastreport-feature-matrix Summary: FastReport VCL has four editions with differing features and pricing. FastReport VCL has four editions with differing features and pricing. Embarcadero RAD Edition This edition is distributed with Embarcadero RAD Studio. Standard Edition Dialog designer displayed in the process of building the report, built-in script shell that supports 4 languages: PascalScript, C++ Script, BasicScript and Jscript and allows you to control the logic of reports building, the end-user report designer. Professional Edition All the features of our FastReport VCL Standard Edition the Professional Edition and a little bit more. A built-in SQL query builder, which allows you to create complex queries without the need to learn subtleties of SQL language. Full source code for the report generator, which allows you to thoroughly understand the reporting logic and to make any minor adjustments you may require. Enterprise Edition This edition goes beyond the common standards of today’s reporting software. Distance no longer matters! In addition to all the advantages of FastReport VCL Professional Edition, this edition includes web-reporting components. Ultimate Edition  NEW For those who need more. On top of all capabilities of the Enterprise, in Ultimate we added a full set of tools for creating and supporting the reporting system infrastructure. It includes FastReport VCL Enterprise, FastCube VCL Professional, FastReport FMХ, FastCube FMХ. You will complete your project with cross-platform solutions and will be able to create a fullfledged BI platform by combining the power of FastReport and FastCube while saving your resources. Embarcadero Edition Standard Professional Enterprise Ultimate Report Design Features Just-in-time localization x x x x x Object inspector localization x x x x x Multiple Report Pages x x x x x Multiple Bands on Page x x x x x Right to Left Text Support x x x x x UI Localization x x x x x InPlace Editor x x x x x Improved Guide Lines x x x x x Final Report Modification x x x x Event handlers x x x x Run-time end-user Designer x x x x Extended Script Debugger x x x x Visual SQL builder x x x Report Objects Special Bands (Footers, Headers) x x x x x Hyperlink Embedding x x x x x Single Line Texts x x x x x Multi-line Texts x x x x x HTML-formatted Texts (simple HTML tags in text object) x x x x x HTML View x x x x PDF View x x x x RTF-formatted Texts x x x x x BMP Pictures x x x x x Metafile Pictures x x x x x JPEG Pictures x x x x x PNG Pictures x x x x x ICO Pictures x x x x x Charts x x x x x Barcodes x x x x x 2D Barcodes x x x x Gradients x x x x x CheckBoxes x x x x x Arrows x x x x x Simple Geometric Objects x x x x x Maps (SHP, OSM, GPX) x x x x Table x x x x Gauges x x x x Cellular Text x x x x Zipcode x x x x Vertical Bands x x x x Cross-tabs x x x x Dialogue Form Designer x x x x Internal Datasets x x x x Interbase Express (IBX), IBOjects, ActiveX Data Objects (ADO) and dbExpress support x x x x Exports PDF (1.4 - 1.7) x x x x x PDF (EMF vector) x x x x RTF x x x x x HTML x x x x x TXT x x x x x JPEG, BMP, TIFF, GIF, EMF, PNG x x x x x CSV x x x x x HTML5 x x x x SVG x x x x ODS, ODT x x x x Excel Binary x x x x Excel XML / XLIFF x x x x Word XML x x x x PowerPoint XML x x x x PPML x x x x PostScript x x x x Email x x x x DBF x x x x Dot-Matrix / Matrix printer x x x x ASCII Text File Output x x x x ZPL x x x x Report engine Tree shift x x x x x Linear shift x x x x x Object anchors x x x x x Duplicates merging x x x x x Autofilling of empty page space x x x x x Expressions post processing x x x x x Detail reports x x x x x Drill-down reports x x x x x Interactive events x x x x Additional features Editing of prepared report in preview x x x x x Script x x x x Source Code x x x Components for web-applications x x Lazarus support x x x FastReport FMX x FastCube VCL x FastCube FMX x Windows support x x x x x Linux support x x x MacOS support x Convertors from Quick Reports x x x x Rave Reports x x x x Report Builder x x x x Saving / uploading to the cloud storages FTP (Indy) x x x x BoxCom x x x x DropBox x x x x Mail x x x x GoogleDrive x x x x OneDrive x x x x ### Comparison of SSRS and FastReport .NET part 1 URL: https://www.fast-report.com/blogs/comparative-analysis-report-sql-server-1 Summary: Let's compare which report generator has more functionality - SQL Server Reporting Services or FastReport .NET. Let's compare which report generator has more functionality - SQL Server Reporting Services or FastReport .NET. Let's compare which report generator has more functionality - SQL Server Reporting Services or FastReport .NET. Electronic and printed reporting is used in many areas of our life. Can you imagine an accountancy without annual reports? Or a transport company without invoices? One way or another, reports are of a great importance in production and business. That is why the report generator programs are just as important as the DBMS. But, as well as various DBMSs, different report generators have their strengths and weaknesses. Let us consider two bright representatives, that have settled in the software market for a long time ago: The first one is SQL Server Reporting Services (SSRS). It is a product from the world giant Microsoft. It was created specifically as an add-in on SQL Server. This report generator is very popular with TSQL developers primarily because it is included in the MS SQL Server database. The main feature of this report generator is the server service, which allows you to administer and view reports via the web interface. To edit reports, you need a desktop application - a report designer. The second candidate to be examined is FastReport .NET . This is a product with a long history. The FR.Net generator works in conjunction with Microsoft Visual Studio and is based on the .NET framework. When you install the program, its components are added to the VS palette. We use FastReport in your applications by placing components on a form or by connecting libraries in the code. Just like SSRS, it has a separately started report designer, but you can embed the designer in your application with the ReportDesigner component. In opposition to SSRS, I deliberately took a not very well-known FastReport .NET. It is interesting to compare a product from the leader of the software market and from a small company. In this article we will conduct a series of comparisons and tests. Since the volume of the article is not supposed to be small, I propose to divide it into three parts. In the first part of the article you will find out what features are offered in each of the considered report generators. Let us start from the user interface - the report designer. Fairly, the report designer can be considered the most important component of the report generator. Users' attitude to the entire product depends on the convenience of creating a report. Let us take a look at the Reporting Services front-end interface: Everything in the picture looks clear and concise. It is done in the style of MS Office 2007. It must be mentioned, that it is a very good idea with toolbars grouped by purpose on separate tabs. Now this style is adopted by many users. People who work with MS Office will quickly master this interface. On the left there is a report data, in the center - the work area. It is easy to create reports in such a designer. And now look at the FastReport .NET designer: Are there any similarities between the two previous screenshots? In the last one the upper toolbar is used in the MS Office 2007 style. On the left there is a component panel, whilst on the right there is a data tree. In the middle there is a workspace. Everything is easy to be understood and be worked with. However, there is one feature in the report template architecture - bands. These are containers, that delimit the information for the intended purpose. At the beginning of the development of FastReport .NET, this will take time to understand, but the advantages of this approach level out these costs. Both designers are understandable and easy to use. Functionality for creating reports Now let us take a look at the basic capabilities of generators in creating reports. In the table below there is a list of the following functionality: Feature SSRS FastReport .NET Multiple report pages ✓ Dialogue form pages ✓ Built-in report script ✓ ✓ Hyperlink embedding ✓ ✓ Event handlers ✓ Expressions ✓ ✓ Right-to-left text support ✓ ✓ Localization of UI ✓ ✓ Infinite page ✓ Interactive reports ✓ ✓ Final report modification ✓  Let us consider the functions in detail: Multiple report pages. As a rule, we create a report template on a page. Then, when building a report, this template is filled with data. If the data does not fit one page, then a new one is created and so on. ( a multi-page report is a different thing). This refers to several pages with different templates. For example, the first page is the title page, the second one is the table of contents, and the third one is the content. Thus, your report consists of three pages, each of which is filled with its own data. With this capability, you can create complete documents such as a booklet. Dialogue form pages - forms, which are usually displayed before the report is built. Such forms are used to request data from the user. For example, you can filter it by the input value or set the number of output columns. This feature avoids the creation of a special application with a form of presetting the report. Built-in report script . There are always tasks, that can not be done with the standard tools of the report designer. For example, complex calculated fields or a specific logic in the construction of a report, depending on the data. Here comes the help built, into the report script. It allows you to work with report objects in the program code. This feature greatly extends the capabilities of the report generator, making it flexible. Hyperlinks  helps to give the report some interactivity. A user will be able to click on the links to the specified positions in the report or to receive a detailed page for the selected data. Expressions - an ability to create arbitrary expressions on the basis of data or with the help of built-in functions (mathematical, text, etc.). Using expressions, you can, for example, add all the values of the required field to display the total amount, or convert the date to another format. Expressions in reports are very important tool, without them you could only output data from the source in their original form. Supporting text from right to left is relevant for Arabic languages, where text is written from right to left. Such a function should be in every "self-respected" report generator. Localization of the user interface - an ability to select the desired localization language. The more languages supported the more potential users have this report generator. Infinite page - an ability to set the infinite width and height of the report page. Thus, you can print large tables and matrixes without page breaks. This can be convenient in web reports or simply if you do not plan to print a report. Interactive reports - reports that respond to user actions. It can be hyperlinks, bookmarks, drop-down list, pop-up messages. Final report modification - an ability to modify the report without rebuilding. This is implemented using a report script. The table above shows that in some aspects FR.Net moves ahead of SSRS. The product from Microsoft does not allow you to create reports with multiple page templates. Also, a infinite page is not accessible to him. A report is always displayed on pages of a fixed size. Again, you will not be able to modify the constructed report, although this is quite an exotic need. I would like to mention the dialogue form. In SSRS, this form is displayed at the top of the report, and in FR.Net - as a separate form before building a report. And from this form, you can call another one, which allows you to make the report more logical. Based on the results of the comparison of the functionality in creating reports, the advantages of FastReport are clear. Perhaps it is the greatest experience of the company in the development of report generators, because it created its first generator in the early 2000s, while Microsoft did it in 2004. Tags: .NET, FastReport, SSRS, SQL, Converter ### Comparison of SSRS and FastReport .NET part 2 URL: https://www.fast-report.com/blogs/comparative-analysis-report-sql-server-2 Summary: SSRS can offer us to download and run the designer to edit the report. You need a Windows device. SSRS and FastReport .NET SSRS can offer us to download and run the designer to edit the report. You need a Windows device. SSRS and FastReport .NET SSRS can offer us to download and run the designer to edit the report. You need a Windows device. SSRS and FastReport .NET Technologies This article aims to continue examining the capabilities of the report generators in terms of the technologies, that they support. Technology SSRS FR .NET WinForms ✓ ✓ WPF ✓ ✓ ASP.Net ✓ ✓ ASP.Net MVC ✓ ✓ ASP.Net Core ✓ ✓ WCF ✓ ✓ Both report generators are targeted to the .NET platform. Accordingly, in the above table the technologies are based on this framework. • WinForms - until now it has remained the main API for creating a graphical user interface for desktop applications. • WPF - another approach in creating applications with GUI. Now it is very popular and replaces WinForms, due to its greater flexibility. • ASP.Net - client-server technology for creating web applications. • ASP.Net MVC - ASP.Net-based framework for implementing the Model-View-Controller application architecture. Development on this framework is significantly different from usual ASP.Net. • WCF - a framework for creating distributed applications with secure data transmission (mostly web services). Both report generators support almost the entire spectrum of these technologies. However, currently, SQL Server Reporting Services 2016 does not support ASP.Net Core. Perhaps in the next version this feature will be implemented. Meanwhile, FastReport.Net is the leader of this comparison. Report objects The capabilities of the report generator also depend on the nomenclature of the report objects. These objects can output data, be used as controls or simply be design elements. We place them on the report page or in a dialog form. In general, they are the bricks in the wall, called a report. Here you are the descriptions of each object. O bject SSRS FR  . NET Description Text ✓ ✓ This object is the basis of any report generator. Allows you to display any text data, such as data from a database or an expression. Picture ✓ ✓ Allows you to insert an image into the report. Line ✓ ✓ The line is used to delimit space in a report or frame objects. Line with arrow ✓ Line with an arrow. This object is decorative. Can be used as a pointer. Rectangle ✓ ✓ Rectangle. Used to prepare a report, delimitation of space. Rounded Rectangle ✓ Rectangle with rounded corners. Ellipse ✓ Ellipse. Triangle ✓ Triangle. Diamond ✓ Diamond. Polyline ✓ Allows you to build a graph by specifying the key points. Polygon ✓ A polygon constructed using a polyline. You can transform the shape by dragging the key points with the mouse. Sub-report ✓ ✓ Subreported report. In fact, one more report that can be inserted into the right place of another report. Table ✓ ✓ Table. Can be filled manually or by data from the database using a script (dynamic). Matrix ✓ ✓ The matrix is a summary table. Filled with data from the database, respectively, grows in height and width. Chart ✓ ✓ Diagram, graph. Can be built both on the basis of manual data, and data from the database. Sparkline ✓ ✓ Another kind of charts. Data Graphic ✓ This is a representation of the data in the form of widgets (scale, status bar, etc.). Barcode ✓ Barcode Gauge ✓ ✓ Simulates analog instrument scales to display readings. Rich Text ✓ Extended text. Allows you to insert rtf documents. CheckBox ✓ CheckBox. Zip Code ✓ Postal code in standard format. Cellular Text ✓ Text in cells. Each character is displayed in a separate cell. List ✓ List. HTML ✓ Allows you to insert an HTML document that will be interpreted for display. Indicator ✓ The indicator icon, that changes depending on the given condition. You can use flags, bulbs, arrows, etc. Map ✓ ✓ Allows you to insert into the report a vector map that can be scaled. As can be seen from the table above, many of the considered objects are not available in SSRS: • First, there is no vector graphics at all (polygons and other shapes). • Secondly, the absence of a CheckBox. At work, I often have to create reports in SSRS and each time I get annoyed with the absence of a check box when the bit field is displayed. • Thirdly, bar codes are also unavailable. You will have to generate them by third-party tools and insert them into the report as a picture. On the other hand, FastReport also has "gaps". However, they are not crucial: • The "List" object is simply not needed as it is implemented by using the architectural solution of FR-bands. • Missing Indicator. It can be done with the help of "conditional highlighting" and the report script. Not as convenient as SSRS, but also acceptable. In general, we must admit that the assortment of FastReport .NET is richer, and many of the available elements are really necessary. Additional Features Why did I render part of the capabilities of the report generators in a separate section? Because I consider them auxiliary, not mandatory for the report generator. However, the availability of such options will be a pleasant bonus. Many report generators allow you to convert reports from other programs into their own format, facilitating the process of migration. What do our "test objects" offer: Conversion of reports of other formats Report Generator From … to SSRS From … to FR.Net RDL ✓ List&Label ✓ DevExpress ✓ Crystal Reports by  Crystal Migration ✓ As you know, before Reporting Services, the official report generator in Microsoft was Crystal Reports. All the mass of the developed reports had to be translated into new SSRS. Therefore, a migration tool was developed for the new format. Unfortunately, this is the only possible format for converting. Probably, Microsoft does not consider the possibility of switching to SSRS from another report generator. FastReport .NET aims to attract some users of other report generators. It is interesting, that SSRS reports can be converted into FR .NET. Also, you can convert reports from the German report generator List & Label, American DevExpress and frankly outdated Crystal Reports. Now let us consider one more feature. FastReport .NET offers us Online Designer. This is almost a complete copy of the visual report designer, transferred to the web platform. You can include the Online Designer library in your web project and display it to users on the web page. The user can design reports in an Internet browser from any device. This feature can be useful for developers when it is not possible to create reports at their workplace. For example, you are away on business, but you urgently need to make changes in your report, which will be presented to the leadership when you are are absent. A tablet or even a smartphone help due to the online designer. Based on the results of this comparison, I would like to praise the FastReport .NET team. The online report designer is a really handy addition for a report developer. Tags: .NET, FastReport, SSRS, Converter ### Comparison of SSRS and FastReport .NET part 3 URL: https://www.fast-report.com/blogs/comparative-analysis-report-sql-server-3 Summary: Let's take a look at what data sources and data export formats are available in Reporting Services and FastReport .NET. Let's take a look at what data sources and data export formats are available in Reporting Services and FastReport .NET. Let's take a look at what data sources and data export formats are available in Reporting Services and FastReport .NET. Data Sources The basis of any report is data. Let us examine the data sources, available in Reporting Services and FR .NET. First, let us take a look at the built-in data connectors, which are available to you immediately when creating a data source in the report, without additional installations and settings: Built-in data sources SSRS FR .NET SQL Server ✓ ✓ Oracle ✓ extension OLE DB ✓ ✓ ODBC ✓ ✓ MS Access extension ✓ XML database ✓ ✓ CSV file ✓ Azure SQL Database ✓ MS Analytics Platform ✓ MS SQL Server Analysis Servises ✓ SharePoint ✓ extension SAP BW ✓ TERADATA ✓ FastReport .NET is characterized by connectors to Microsoft databases and csv file sources. Reporting Services has more built-in connectors, but mostly to Microsoft databases. Of course, you can use the generic ODBC to connect to a database that is not in the list of available databases. But at the same time the speed of working with data will suffer. Now we will overview the extensions for connecting to other DBMSs. This list is much larger than the previous one. E xtended data sources SSRS FR . NET MS Access odbc ✓ Xml ✓ ✓ CSV odbc ✓ DB2 ✓ ✓ Firebird ✓ GoogleBigQuery ✓ Json third-party ✓ MongoDB third-party ✓ MySQL ODBC ✓ NosDB ✓ Oracle ✓ ✓ OracleODP ✓ Postgres ✓ Postgres.Devart ✓ RavenDB ✓ SharePoint ✓ ✓ SqlAnywhere ✓ SqlCe ✓ SQLite ✓ VistaDB ✓ Business Objects ✓ ✓ Here, "third-party" means that it is implemented with the help of libraries of other manufacturers. ODBC means implemented with this universal connector. As you can see from the table, FastReport.Net extensions allow you to add connectors to almost all popular DBMSs today. An excellent result! Reporting Services confined itself to connectors for DB2 from IBM and Microsoft services. Such a modest result is explained by the orientation of SSRS primarily on Microsoft's own systems. After all, high integration with other products of this company is the main advantage of Reporting Services. FastReport strives to satisfy the entire consumer demands. In the competition with such giants as Microsoft this is the best strategy. I would like to add a couple of words about extensions. In SSRS, additional connectors must be installed. In FR .NET they are implemented with the help of plug-ins for the designer of reports. Exports Another important element of the report generator is the export of the report. After all, it is not enough to display or print a report. It is important to keep it in the right format. For example, the workflow in your enterprise allows only the format of PDF, DOCX and XLSX. If the report generator, that you are using, does not allow you to export reports to these formats, this can pose a big problem. In this case, any additional costs and difficulties are inevitable. A report in the required format is the final result of the generator. According to this results users will evaluate the program. Therefore, it is important for the report generator to not only support the required export format, but also export it correctly, without violating the formatting and quality loss. Let us consider the available export formats for both "objects". But first, there will be shown two pictures. This export menu is in SSRS and FR .NET: It is sometimes interesting to test your intuition. Which report generator corresponds to the first picture? I think you already guessed - it is SQL Server Reporting Services. And now, nevertheless, there will be done a small comparison between the companies. Export Feature SSRS FR .NET PDF ✓ ✓ PDF export options Embedded fonts automatically option  PDF/A-1a third-party ✓  PDF/A-2a ✓  PDF/A-2b ✓  PDF/A-3a ✓  PDF/A-3b ✓  PDF/X-3 ✓  PDF/X-4 ✓ CMYK Color Space ✓ RTF third-party ✓ HTML ✓ MHT ✓ ✓ XML (Excel table) ✓ Excel 2007 ✓ ✓ Excel 97 ✓ Microsoft Word 2007 ✓ ✓ PowerPoint ✓ ✓ OpenOffice Calc ✓ OpenOffice Writer ✓  XPS ✓ CSV ✓ ✓ DBF ✓ Text File/Matrix printer ✓ Image TIFF ✓ XAML ✓ SVG ✓ PPML ✓ PostScript ✓ Json ✓ Reporting Services provides export to Microsoft product formats. This is obvious. It is amazing that only one image format is supported - TIFF. This is surprising as long as the most common formats are JPEG and PNG. Export to PDF has minimum options. However, it might be not very important an average user of reports. And what does FastReport .NET provide? Such an impressive "arsenal" there can be found anywhere else. Our developers really tried to meet any needs of the user. By the way, export to image supports the following formats: BMP, JPG, PNG, GIF, TIFF, Windows metafile. PDF export settings allow you to select the required PDF standard and optimize the size of the final file. Here is the unconditional advantage of FR .NET. In conclusion, let us consider the possibility of saving / sending a report to various services. Namely, sending the report in an e-mail via FTP, or saving to a cloud service. Storage SSRS FR .NET E-mail ✓ ✓ FTP by SSIS ✓ Box ✓ DropBox ✓ FastReport Cloud ✓ Google Drive ✓ OneDrive ✓ XMPP ✓ Summing up, we should conclude that, unfortunately, Reporting Services does not support saving the report to cloud services, and it is not necessary in corporate reporting. However, the idea is interesting and will certainly find its users. Interestingly, that FastReport provides its own cloud service for publishing reports. The only thing we should do is to send a user his link, and he will  be able to look through his report on the web page. In the next part of the article, we are going to examine the performance of report generators. Tags: .NET, FastReport, SSRS ### Comparison of SSRS and FastReport .NET part 4 URL: https://www.fast-report.com/blogs/comparative-analysis-report-sql-server-4 Summary: Comparative analysis of Microsoft SQL Server Reporting Services and FastReport .NET. We measure the performance of report generation. Comparative analysis of Microsoft SQL Server Reporting Services and FastReport .NET. We measure the performance of report generation. Comparative analysis of Microsoft SQL Server Reporting Services and FastReport .NET. We measure the performance of report generation. This is the final part of our comparative study of the two known report generators - Microsoft SQL Server Reporting Services and FastReport .NET. We have already examined functional capabilities, supported technologies, report objects and supported report export formats of them. To complete the study, it is worth introducing performance measurements. For testing, take a simple report with a list of thousands of lines. For the purity of the experiment, we use the same data source in both report generators. The essence of the test is to generate a report and export it to three most popular formats: PDF, XLS, DOCX. Here we measure the export time in milliseconds. Performance test (1000 rows) Try SSRS PDF FR PDF SSRS XLS FR XLS SSRS DOCX FR DOCX 1 2500 1703 234 875 1484 3297 2 1641 1890 328 562 1140 3219 3 2109 2844 235 844 1172 3219 4 1547 2985 250 843 1000 3360 5 1485 2672 265 875 1063 3297  Five measurements are being tested. 1)    Export to PDF. For SSRS, the average time is 1856 milliseconds. For FastReport .NET - 2418 milliseconds. Here SSRS is clearly faster. FastReport has something to work on. 2)    Export to XLS. SSRS showed an average time of 262 milliseconds, while FastReport .NET - 800 milliseconds. There is nothing surprising here. The product from Microsoft must be exported quickly to MS Office formats. 3)    Export to DOCX. SSRS is again faster with 1172 milliseconds against 3513 milliseconds in FastReport .NET. The situation is exactly the same as in the previous export. We can recognize leadership in this discipline for SQL Server Reporting Services. For a greater clarity, the results of the measurements are shown in the following picture. If the situation with PDF export for FastReport is not critical, then in XLSX and DOCX export there is a loss by time of 3 times. Now let us take a look at the size of the final files: Export file size, KB Export SSRS FR PDF 308 204 XLS 111 551 DOCX 50 64  As you can see, the PDF file generated by FastReport .NET takes up one third less space than SQL Server Reporting Services. Due to the large number of PDF export settings in FastReport .NET you can achieve the minimum file size. As for exports to XLS and DOCX, SSRS showed the best results. The size of the XLS file is five times smaller than any of the competitors! For DOCX, the difference is not significant. Well, the results of this test are not straightforward. Conclusions will be made at the end of the article. Let us do one more test - a stress test. We will display a large number of lines in the report - 2458524. It goes without saying, it is unlikely that such reports will exist in reality, but for our test it is necessary. As a DBMS we use MS SQL Server 2016 - a native data source for SSRS. However, SQL Server Reporting Services did not master this task: Truncated RAM. As a consequence, the error is: Exception of type 'System.OutOfMemoryException' was thrown. Yes, other programs also use RAM, but it is possible to use a virtual memory. The screenshot shows that the load on the disk is minimal, so the swap file is not used. Now we will generate the same report in FastReport .NET 2017.2: It took us 40 minutes to wait. But the report has been built. Take a look at the screenshot. Exhausting all RAM, FastReport .NET used a swap file - the load on the disk is 99%. The mission is complete. The measurements were carried out using the following hardware configuration: CPU – Intel Core i5-2450M (2.5GHz), RAM – 8 GB, OS – Windows 10 x64. The last stage of the comparative study is complete. To sum up the tests in all three parts of the article we need to remember what happened in the previous parts of the study: 1)      In the beginning, we looked at the functionality of the programs. In this comparison, FastReport .NET has an advantage over Microsoft SQL Server Reporting Services. Advantages: support for dimensionless report pages, events in the report, dialog forms and the ability to modify an already constructed report. Score: SSRS - 0, FastReport .NET - 1. 2)      Next, we have compared supported technologies. FastReport .NET was one of the leaders thanks to the support of ASP .NET Core. There are no real forecasts for ASP .NET Core support in SSRS yet. There are some "crutches". Score: SSRS – 0, FastReport .NET – 2. 3)      The supported report objects again showed the superiority of FastReport .NET over Microsoft SQL Server Reporting Services. In my opinion, the absence of CheckBox and Barcode objects is unforgivable for SSRS. Score: SSRS – 0, FastReport .NET – 3. 4)      Export the report in different formats. Reporting Services provides a very limited set of supported formats, only the most necessary. FastReport struck me with its impressive array of export formats for any occasion. This comparison consolidated the leadership behind him. Score: SSRS – 0, FastReport .NET – 4. 5)      The performance measurement was evaluated by the time the report was exported in three different formats: PDF, XLS, and DOCX. In this test, an unconditional victory was won by SSRS. Score: SSRS – 1, FastReport .NET – 4. 6)      The test of the size of the export file showed that same three export formats from the previous test. Here FastReport .NET formed a more compacted PDF file, whilst SSRS generated smaller files with the extension .xls and .docx. It it considerate as a draw game. Score: SSRS – 2, FastReport .NET – 5. 7)      Reporting Services failed the stress test to generate a "giant" report with more than 2 million lines. The report is not generated. FastReport managed in 40 minutes. Score: SSRS – 2, FastReport .NET – 6. To draw conclusions, according to out tests and their results FastReport .NET surely outperforms Reporting Services in many respects and could quite replace a competitor. Any task related to the generation of reports is possible for FR. However, I can not say that Reporting Services is a bad report generator. It completes its tasks well . After all, it was created to work with MS SQL Server. This bundle fully justifies its use. Tags: .NET, .NET, FastReport, FastReport, SSRS, SSRS ### Comparison of WinForms and WPF technologies URL: https://www.fast-report.com/blogs/comparison-winforms-wpf Summary: We compare 2 graphics systems used in development.NET applications using FastReport.NET and FastReport WPF products. We compare 2 graphics systems used in development.NET applications using FastReport.NET and FastReport WPF products. We compare 2 graphics systems used in development.NET applications using FastReport.NET and FastReport WPF products. We would like to talk about two graphical systems used in .NET. WinForms and WPF are popular in our time. The question is which technology to use in application development. We will examine each system in detail, discuss the pros and cons, and talk about the peculiarities of using them in FastReport .NET and FastReport WPF products. Let's turn to the comparison. WinForms First, let's talk about the old WinForms system, which is already considered a classic. This Framework 1.0-based system was released back in 2002 and offers a "traditional" way to create desktop applications. We have basic elements like "Button," "Text object," "Text field," etc., which can be customized almost as you like. It is generally quite convenient, but unfortunately, we will not be able to create a modern application design, which may not suit us or our clients. Nowadays, quite a few applications use WinForms, for example, FastReport .NET. But it is worth considering that often such applications were developed and supported for a long time. This is mostly a necessary measure because the application’s appearance plays a really important role.  Pros and Cons: + The technology has been extensively tested and proven, which gives reliability. + There are many ready-made solutions and controls. + Simplicity and intuitive concept when creating an application. - Does not meet modern development standards. - No active support. WPF Everything becomes much more interesting here. WPF technology was also introduced a long time ago, in 2006, based on Framework 3.0. However, it has a fundamental difference in the development process. Now, there are no familiar elements that we can place on a form and customize. We will now have to write code in XAML to add the same button or text object. And indeed, it is much more convenient to simply drag and drop and customize the desired object rather than starting from scratch and configuring everything. In this case, we even gain an advantage. But how? Let's look. Let's take an example of a button with an image and text. WinForms does not offer ready-made solutions. Therefore, you need to create your own images and implement your own buttons that support images or use a ready-made custom solution. A WPF button can have anything inside it since it's just a "frame" with content. For example, pressing or not pressing with a reaction to cursor hovering. This way, we have a maximum flexible configuration, which can confuse the developer. On the other hand, we get from the application what we want. Pros and Cons of this approach: + The graphics system is newer and meets development standards. + Microsoft uses it in many of its applications, such as Visual Studio. + More flexible configuration system. + There are ready-made solutions for any need. + Using XAML, you can separate the work of a designer and a programmer. + For better performance, you can use hardware acceleration. + You can create an interface for both Windows and Web applications. - You need to learn how to work with XAML. WinForms and WPF in FastReport So, we have discussed the two graphical systems and learned about their advantages and disadvantages. Now let's delve into their integration with FastReport .NET. The main differences are in the connection method and visual components. In the case of WinForms, we need to connect FastReport.NET.nupkg or FastReport.dll, write the necessary code, and run the project. Alternatively, we can simply launch FastReport .NET. As a result, we will get the familiar form. In the case of WPF, we need to include the FastReport.WPF package. And also write the necessary code and launch the project. In the case of WPF, we will get a more modern design and a similar interface. It is also worth mentioning that we can utilize Intellisense from Roslyn when using WPF, which helps in code writing. Thus, we have discussed the two graphical systems. The decision of which one to use in application development is up to you. However, we recommend using WPF. Yes, it may be inconvenient and unfamiliar after WinForms, but with WPF, we gain a modern and user-friendly design and long-term support. Tags: .NET, FastReport, WPF, WinForms ### Complex report with Advanced Matrix in FastReport .NET URL: https://www.fast-report.com/blogs/complex-report-advanced-matrix-dotnet Summary: We compare the speed of preparing a complex report with 3 ordinary tables and when using the AdvancedMatrix object. We compare the speed of preparing a complex report with 3 ordinary tables and when using the AdvancedMatrix object. We compare the speed of preparing a complex report with 3 ordinary tables and when using the AdvancedMatrix object. This article continues the previous article , in which we looked at how to create a complex report. The report created in that article has become a source of inspiration for a new object - AdvancedMatrix. The report in the previous article included three sections: 1) yearly statistics; 2) quarterly statistics; 3) monthly statistics. Each of the sections was implemented using a separate matrix, which had to be done due to the limitations of the standard MatrixObject. In the new version of FastReport .NET, we have added an updated version of this object, which is called AdvancedMatrix. It allows you to develop the entire report in one matrix. Let's see how to do it. Add an AdvancedMatrix object to the empty data band: Let's remember what the data we use looks like: For the simplest matrix, we need to drag three fields: country_name, fruit_type and amount. Here's what the matrix looks like now: The new matrix allows you to change the calculations in the cells. In this case, we need the amount, but we can replace it with something from the following list: Let's remake the matrix. We need the fields country_name and fruit_type to be used in grouping — the report should group the list of fruits by country, and there should be a column for each individual year: At this stage, we go beyond the capabilities of a regular MatrixObject. Let's add additional fields year and quarter to the matrix, and also replace empty values with zeros: What we previously had to do with two matrices can now be done with just one. Now we have a breakdown both by years and quarters. Let's go even further. At this stage, we have a matrix with all the necessary data. To increase readability, we can change the display of the matrix and data. First, let's merge the cells with the only text: A new menu for editing titles can help with displaying data: Now the matrix looks like this: Finally, we can compare the report preparation speed when it consists of three regular matrix objects and when it consists of one large matrix. The test was done on a computer with an AMD Ryzen 5 3600 and 16GB of RAM. There are 5000 records displayed in the data table. Attempt 3 matrices of MatrixObject 1 AdvancedMatrix #1 906 ms 656 ms #2 828 ms 625 ms #3 937 ms 640 ms #4 875 ms 641 ms #5 891 ms 672 ms #6 922 ms 656 ms Average: 893.3 ms 648.3 ms As you can see, preparation time drops by ~27% on average, which can save a lot of time on reports with many data. In this article, we showed you how to recreate the report from the previous article. Advanced Matrix allows you to implement several useful features - for example, the TopN filter sort for selecting the 5 records with the highest calculated values. You can learn about all the features of this object  in our documentation . Tags: .NET, FastReport, Matrix ### Complex report with multiple matrices in FastReport.NET URL: https://www.fast-report.com/blogs/complex-report Summary: Looking at complex band-oriented reports created with the help of Matrix object Looking at complex band-oriented reports created with the help of Matrix object Looking at complex band-oriented reports created with the help of Matrix object Today we will look at a complex report with a band-oriented approach, which is usually used in FastReport. For example, a report on sales broken down by years, quarters and months, where you want to display three tables with data, which should be located not from top to bottom but from left to right. Fortunately, we can make this report in FastReport .NET using several Matrix objects. Let's take a look at the data. They are generated randomly following a certain pattern: The database contains data on the import of fruits from different countries, broken down by months. Each record has an “amount” field where the amount of imported fruits is stored. We will use the Matrix object to display the data. Let's go to its settings: The name of the country and the type of fruit will be our strings, the rows will contain a breakdown by year, quarter and month, and the number of fruits will be the cells of the matrix. We have indicated what data will be used in the matrix. Let's apply borders for all cells, and adjust the page settings. We will apply "unlimited height" and "unlimited width" so that our report makes up one sheet. After that, we will prepare the following report: The data will go to the right for 2018 and 2019. First of all, note that totals have been automatically added for all columns. If we do not need them, we can remove them, which we will do. To display zeros instead of empty cells, you need to set the NullValue property of the cell. As a result, 0 should appear in it. In addition, let’s disable autosize for the table and adjust the result: Our task is to make statistics using several matrices: 1) By years; 2) By quarters; 3) By months. Let’s copy the matrix and place its two copies next to the original. Then we apply “extra space in the designer” to insert everything. Note that when you copy a matrix, it is unlinked from the data and you need to select the required data table in the DataSource property. Let's remove unnecessary fields from matrices and move them closer to each other: Let's try to prepare such a report: As you can see, there are several problems in the report: 1) Matrices are displayed differently because headers have different heights; 2) Countries and types of fruits are repeated in the second and third matrices. Let's increase the height of the “Year” row in the first and second matrices. To select a row, you can hover your mouse over the left side of the matrix. When the mouse is over one of the rows, it will turn into a black right arrow. In addition, you can select a row in the report tree: Now all headers are the same height: Matrices in FastReport allow you to “hide” a column or a row by reducing their size to zero. In our case, we need to hide the “country names” with “fruits” in the second and third matrices. Select the column and reduce its Width to zero: After repeating this several times, as well as after moving the matrices together, we get the following pattern: Note that these are three separate matrices, not one. But they work as one complex matrix because they have identical header and cell height, as well as the same dataset. Let's take a look at the report now: This screenshot shows that the names of the countries are no longer displayed, and that there is no conflict between the matrices. Finally, let's pretty up our matrix: For example, in order to add a word to a year number, you need to remember the fields of the matrix contain expressions. If the field contains such text, then an error will occur: ``` Year [fruit_import_database.year] ``` The right way to do it is: ``` "Year " + [fruit_import_database.year] ``` Tags: .NET, .NET, FastReport, FastReport, Matrix, Matrix ### Components of FastCube .NET. Part 2. Chart, DataSource URL: https://www.fast-report.com/blogs/components-fastcude-net Summary: Let's take a closer look at FastCube.NET Components and how to work with them. Part 2. Find more usefull tips and articles in our blog. Let's take a closer look at FastCube.NET Components and how to work with them. Part 2. Find more usefull tips and articles in our blog. Let's take a closer look at FastCube.NET Components and how to work with them. Part 2. Find more usefull tips and articles in our blog. In the first part of the article, we looked at the components for data analysis - a cube and a slice. In the second section, the components from the database or DataTable will be presented, as well as the slice diagram. 1. The Chart component is a graph based on the data from the slice. It is built automatically, just set the property of Slice. Properties: Property Description SeriesType Chart type (columnar, circular, etc.) SkipNullPoints Ignore empty points in the diagram BaseAxisDataType Base axis data type MeasureFieldIndex Field index of the measure SeriesFieldCount Number of fields in a series CategoriesFieldCount Number of category fields SeriesAxis Axis of the series. Contains columns and lines. CategoriesAxis Axis of categories. Contains columns and lines. DataType The way data is presented in the diagram. Slice Link to slice object Legends Legends - names of data series (graphs) ChartAreas Areas of the graph Frozen Freezing allows you to fix the state of the chart, so that subsequent changes in the cut will not be reflected on it Methods: Method Description BeginUpdate() Enable editing mode EndUpdate() End editing Load(XmlItem item) Load chart settings from the cube file Save(XmlItem subItem) Save the graph settings to a cube file Setting the Chart component is to select the available slice in the Slice property. To create and customize the Chart object in the application code, use the following code: ``` Chart chart = new Chart(); chart.Dock = DockStyle.Fill; chart.Parent = tabPage3; chart.Slice = slice1; ```  In this case, we need to create an object, configure its display, bind to the parent object, and specify the slice.  2. The ChartToolbar component contains tools for customizing the chart display. Composition: 1)      Chart style: Bar; Line; Point; Area; Pie; Horiz Bar. 2)      Frozen chart – freeze the current state of the chart; 3)      Chart properties – chart properties in a separate window; 4)      Marks; 5)      Legend; 6)      Copy - copy the diagram as a picture. Properties: Property Description Chart The Chart object for which this toolbar is active When setting up the visual component, you need to set the Chart property, which is the chart to which the toolbar will be attached. Customization from application code:. ``` ChartToolbar chartToolbar = new ChartToolbar(); chartToolbar.Dock = DockStyle.Top; chartToolbar.Parent = tabPage3; chartToolbar.Chart = chart; ```   3. The DataSource component is the data source for the cube. Properties: Property Description DataSet Data Set - DBDataSet or DTDataSet Fields List of data source fields Methods: Method Description AddFields() Load cube fields from the data source Check(StringBuilder msg, bool skipFieldsWithErrors) Check fields for duplication Close() Resets the data source to zero DeleteFields() Clears the list of fields for the cube InitFields(bool loaded = false) Initializing Fields Open() Open Data Source  In the settings of this component, you need to define a data set. This can be a DBDataSet or a DTDataSet. Below, for the listed components, the configuration from the application code of the entire data acquisition chain will be shown. 4. DBDataSet - a data set for the DataSource, obtained from the database. Properties: Property Description DbCommand The command for the database that contains the SQL query Configuring the connection of the cube to the database: 1) Using visual components: To configure a data connection via DBSataSet, you need to generate DBCommand using the oleDBCommand component. In turn, for the oleDBCommand component, you must specify a connection to the database using the oleDBConnection component. To configure the connection to the database, the following components are required: Setting up oleDbConnection: Create a new connection: Setting up oleDBCommand: You should specify the command - sql query. And also, you need to select a data connection. • Setting up the cube: 2)      From the application code: ``` OleDbCommand command = new OleDbCommand(); command.CommandText = "Select * from Sales"; dbDataSet1.DbCommand = command; dataSource1.DataSet = dbDataSet1; cube1.DataSource = dataSource1; cube1.Open(); ``` 5. DTDataSet is the data set for the DataSource that is received from the DataTable. In turn, DataTable can be filled with data from the database, text file, application code. Properties: Property Description DataTable Reference to the table The procedure for setting up a connection to the DataTable using visual components is very simple. Configuring a Cube to a DataTable: 1) Setting up visual components is similar to setting up a database connection, the only difference is that in the DataSet configuration for the DataSource component, you need to select dtDataSet1. Accordingly, oleDBConnection and oleDBCommand are not required. 2) From the application code: ``` DataTable dataTable = new DataTable(); // Create a table and fill it with data … cube1.Close(); // Close the cube to unload the data from it (if previously loaded) dtDataSet1.DataTable = dataTable; // For the data set, we assign the created table to the DataTable property dataSource1.DeleteFields(); // Clear the fields in the data source (if previously loaded) dataSource1.DataSet = dtDataSet1; cube1.Open(); // Open the cube to load the data into it ``` Tags: .NET, FastCube ### Conditional data highlighting in FastCube .NET URL: https://www.fast-report.com/blogs/conditional-data-highlighting-cube-net Summary: Get useful tips on how conditional data highlighting works in FastCube .NET. Find more usefull tips and articles in our blog. Get useful tips on how conditional data highlighting works in FastCube .NET. Find more usefull tips and articles in our blog. Get useful tips on how conditional data highlighting works in FastCube .NET. Find more usefull tips and articles in our blog. One of the main tools for data analysis in OLAP programs is "Data Highlighting". This very tool allows you to quickly estimate the "situation", identify trends in deterioration or improvement. In FastCube .NET, the data highlighting is represented in two types: Highlight all cells dependent on value. You can highlight all cells in a column or a row by using a rule that separates a set of values into ranges. Each range is highlighted with a separate color or icon. This type of selection helps to quickly evaluate the data by color, without going into figures. For example, you set three ranges of values: less than 33, from 33 to 66, more than 66. All values that fall in the first range will be highlighted in red, in the second range - yellow, and in the third - in green. By focusing on the color, you can instantly estimate in what range values are located. Highlight cells matched condition. This type of highlighting allows you to highlight cells in a row or a column that fall under a specified condition. The difference from the previous type is that values that do not match the condition are not affected. For example, you want to evaluate who from the managers in your company exceeded the plan of 30 sales per month. You just set the Value> 30 condition and select the highlight color. The first type of selection of cells in color has 4 types: 1)      Two color scale; 2)      Three color scale; 3)      Bars; 4)      Icon set. The easiest way to explain how this works is by example. As I wrote above, the rules apply to rows or columns. Therefore, if you plan to create a highlight rule for a parameter, so you should first select it. Two color scale From the name of this type it is clear that only two basic colors are used to highlight the data. Let's look at the slice of the cube on sales by managers: Here you can see two basic colors - red and green. The green color highlights the maximum value and close to it, and red - the minimum and close to it. The mean values have a different shade, depending on which extremum it is closer to. So, how to set this rule? Click on the icon  to call the data selection rules manager. Remember that you must first select a parameter. The rule manager looks like this: As you can see, this is the Data marker tab in the measure editor. Here we can add rules using the plus icon, edit using the pencil icon and delete using the minus icon. The arrows control the way the rules are applied. We add a new rule: We select the first type of rule - highlight all cells dependent on value. By default, the two-color (two color scale) highlight type is selected. Below you can set the type of the value for the minimum and maximum values in the data set. This can be a number, percentage or percentile. Percentile - the percentage of the set of values, which is divided into 100 equal parts. The percentile n is the value below which n percent of the data set is located. Since we want to highlight the data in the column, we select the value of minimum value by col and maximal value by col for the second field. For the Value parameter, you do not need to set the values in our case. The last parameter is Color. Here you can set the color for the minimum and maximum values. Leave them by default red and green. Pay attention to the panel on the right. Now the Cells checkbox is marked there. This means that the rule will only apply to the values in the data set. You can also apply the rule to Totals and Grand Total. This makes the creation of the rule complete. Three color scale Let's look at the slice of the dynamics of population growth in countries (Dynamics of the Year). As you can see, the minimum values here are highlighted in red, and the maximum values are highlighted in green. The average value is yellow. In this example, all cells are selected with color, that is, the first type. In the example shown, a tri-color scheme is used. But what if we have more than 3 columns? Let's open the filter for the YEAR measure and add a few more values: As a result, we get such a colorful summary table: The values located between the minimum, average and maximum are colored in semitone by the gradient principle. So you can still focus on the color and its hues for evaluating the data. To create a three-color data highlighting rule, open the rule manager using the button . Add a new rule: We select the first type of rule - Highlight all cells dependent on value. Highlight type - Three color scale. The value type, as in the previous example with a two-color scheme, can be represented by a numeric value, percent, or percentile. In the tricolor scheme, an intermediate field was added - Average value. Let's choose for it the type Percentile by row and set the value to 50. This means that data will be selected from the middle of the set. Standard color settings: red for the lower limit, yellow for the average values and green for the upper limit. Leave the default settings. Bar Along with the color selection of cells in the data set, bars are often used. The bars clearly demonstrate the value, the larger the value - the wider the bar. This type of highlighting, we will look at the example of the section Population in countries. The first measure People contains the count of people in countries. We add for this measure a rule with a highlight of the type Bar: Now, without getting into the concrete values of the cells, we see that China is the most populous country on our list, and Bolivia has the lowest rate. This greatly simplifies the work of the analyst, when analyzing large amounts of data. To create this rule, select the first column (People measure) and call the Data marker. Create a new rule: Rule type - Highlight all cells dependent on value. Highlight type - Bar. There is the "Show cell value" check box to the right of the highlight type, which enables or disables the display of a numerical value in cells. Next, we need to specify values for two types of strips - short and long. The possible values for them are all the same as for the two-color highlight: Color settings allow you to set the color of the strip and the border. There is the “Draw gradient” checkbox on the right, which creates a gradient of color from selected to white. If you disable it, the strip is filled in solid. Icon set Another type of highlight - icons. Instead of filling with a color or a strip, we'll see an icon - an arrow, a circle, a cross, or some other. The set of icons is big enough. Icon sets are a symbiosis of the previous three types. There are colored arrows and circles, which are similar to highlighting data using color. Other icons are similar to stripes. They show a quantitative measure with the help of graphics. Let’s consider this type of data highlighting using the example of a slice “Sales by month”. The selected set of icons allows you to show the count using four vertical sticks. The first association when you see these icons is the level of the cellular signal. Therefore, they look familiar and informative. To create this rule, open the Data marker (rules manager) and add a new rule. Rule type - Highlight all cells dependent on value. Highlight type - Icon set. Then, we select a set of icons. As you can see, the sets contain different number of icons: 3, 4, 5. This means that the data set will be divided into the same number of ranges. The Reverse order button is located to the right of the icon set, which allows you to arrange the icons in reverse order. Below, we need to specify the type and value for each range. This can be a number, percentage or percentile. Since, we create a rule for the column, then we select the type Percent by col, instead of the Percent by row, by default. Values are already filled with approximately equal shares. Let's leave them alone. Highlighting of cells corresponding to condition The second type of data selection rules provides for highlighting only those cells that correspond to the specified condition. Consider the example of a Simple Cube slice. We have highlighted the price of yellow with a value of more than 1000. To add this rule, select the first column (measure Price) and open the data selection rules manager (Data marker). Create a new rule: The rule type is Highlight cells matched condition. In the first field, select the type of the value to be compared. It can be: Value; Text; Date; Empty; Not Empty. Depending on the selected type, the set of conditions in the second field is changed. For Value: greater; between; equal; not equal; less; greater or equal; less or equal. For Text: contains; not contains; starts with; ends with. For Date: greater; between; equal; not equal; less; greater or equal; less or equal. For Empty and Not Empty conditions are absent. The third field is for the reference expression, that is, with what we compare. Below we set the style of the selected cell: By default, the Solid color style is selected with a simple background fill in one color. But the set of styles cannot be called "poor": Selecting a gradient, you need to specify two colors. Also, here you can change the font and its color. Conclusion In conclusion, I want to draw your attention to the fact that you can add as many rules as you like to highlight the color, and some of them will overlap. To set the priority, you need to move the rules in the rule manager using the arrow icons. The higher the priority, the higher the rule in the list should be. Tags: .NET, FastCube ### Configuring the API for building FastReport Online Designer URL: https://www.fast-report.com/blogs/api-builder-online-designer Summary: We talk about automating the build process of FastReport Online Designer Builder via the API when changing the product version. We talk about automating the build process of FastReport Online Designer Builder via the API when changing the product version. We talk about automating the build process of FastReport Online Designer Builder via the API when changing the product version. FastReport Online Designer Builder now can build the designer using the API. Previously, users had to manually build in FastReport Online Designer Builder. You could download the result or receive it by mail. Now you can automate this process to update FastReport Online Designer if the product version changes. To do this, you need to create features that work with the API and deploy the designer build on your servers. As an example of using the API, you can request a product version once a day, and if it has changed, automatically request a build. And after that, host the updated designer. API Key A user is authenticated using an API key, which you can create in FastReport Online Designer Builder. To create a key, you need to: 1) Log in to the build service under your account. 2) Go to the "API Keys" section (located when clicking on three dots). 3) Click the ”+ Create" button After that, you will have a new API key generated. You can click on the key to copy it and use it for authentication in API. Build request To request a build, make a POST request at: ``` https://dsg2014.fast-report.com:3000/builderAPI/build ``` The request body must contain at least your API key. If you don’t specify the parameter, its default Value will be used! Minimum request example: ``` { "APIkey": "Your API key" } ``` The parameters that the API accepts for build are described below. Parameters Parameter Description  themes  The build theme.  Data type: string  See the values in the themes table.  components  Components to be included in the build.  Data type: array  See the values in the components table.  bands  Bands to be included in the build.  Data type: array  See the values in the bands table.  controls  The dialog box controls to be included in the build.  Data type: array  See the values in the controls table.  plugins  Plugins to be included in the build.  Data type: array  See the values in the plugins table.  customization  The control panels to be included in the build.  Data type: array  See the values in the panels table.  config  Build configuration.  Data type: object  See the object structure in the settings table. Themes  Value  Description  none  No theme  classic  Use classic theme  mini  Use minimal theme Components  Value  Description  TextObject  Text Component  PictureObject  Picture Component  ShapeObject  Shape Component  PolygonObject  Polygon Component  PolyLineObject  Polyline Component  LineObject  Line Component  SubreportObject  Subreport Component  TableObject  Table Component  MatrixObject  Matrix Component  AdvMatrixObject  Advanced Matrix Component  BarcodeObject  Barcode Component  RichObject  Rich Text Component  CheckBoxObject  Checkbox Component  CellularTextObject  Cellular Text Component  LinearGauge  Linear Gauge Component  SimpleGauge  Simple Gauge Component  RadialGauge  Radial Gauge Component  SimpleProgressGauge  Simple Progress Gauge Component  HtmlObject  HTML Component  SVGObject  SVG Component  ContainerObject  Container Component  DigitalSignatureObject  Digital Signature Component  MapObject  Map Component Bands  Value  Description  ReportTitleBand  Report Title  ReportSummaryBand  Report Summary  PageHeaderBand  Page Header  PageFooterBand  Page Footer  ColumnHeaderBand  Column Header  ColumnFooterBand  Column Footer  DataHeaderBand  Data Header  DataBand  Data  DataFooterBand  Data Footer  GroupHeaderBand  Group Header  GroupFooterBand  Group Footer  ChildBand  Child Band  OverlayBand  Overlay Band Controls  Value  Description  ButtonControl  Button  CheckBoxControl  Checkbox  CheckedListBoxControl  Checked List  ComboBoxControl  Text with Combobox  DateTimePickerControl  Date Time Picker  LabelControl  Label  ListBoxControl  List  MonthCalendarControl  Calendar  RadioButtonControl  Radio Button  TextBoxControl  Text Box Plugins  Value  Description  CODE  Page with Code  GUIDES  Guidance Lines  POSITION_BLOCK  Position of the component when moving  RULER  Ruler  BAND_HORZ_RESIZER  Band Horizontal Resizing  HOTKEY  Hot Keys  CONTEXT_MENU  Context Menu  DBLCLICK  Double Click Panels  Value  Description  Properties  Properties Panel  Events  Events Panel  ReportTree  Repot Tree Panel  Data  Data Panel  Preview  Page Preview Panel Settings  Value  Description  features  Data type: array  See the list of values in the features table.  entryName  Data type: object {     "name": "index",     "ext": "html" }  publicPath  Data type: string.  Public path to the application on the server.  saveSuccessRedirect  Data type: object. {       "url": null ,       "blank": false ,       "useParent": false ,       "removeConfirmation": true }        customFonts  Link to fonts  API  Data type: array  See the list of values in the API table. Features {     "name": "SHOW_BAND_TITLE",     "enabled": true } Object contains feature key and checkbox  Value  Description  SHOW_BAND_TITLE  Band Title  ADD_BANDS  Adding bands  SORT_BANDS  Sorting bands  RESIZE_BANDS  Resizing bands  CONFIRM_BEFORE_EXIT  Confirm Before Exit  MOVABLE_POPUPS  Movable Popups  REVISION_FILES  Hash In File Names  MINIFY  Code Minification  ENABLE_PREVIEW_BUTTON  Preview Button  READONLY_MODE  Disable Editing  AUTOSAVE  Autosave API {     "name": "API_SAVE_REPORT",     "value": "../FastReport.Export.axd?putReport=#{id}" } The object contains an API key and a link  Value  Description  API_SAVE_REPORT  Report saving  API_MAKE_PREVIEW  Report Preview  API_GET_REPORT  Getting report  API_GET_FUNCTIONS  Getting functions  API_GET_CUSTOM_CONFIG  Application Config  API_GET_CONNECTION_TYPES  Connection Types  API_GET_CONNECTION_TABLES  Connection Tables  API_GET_CONNECTION_STRING_PROPERTIES  Connection String Properties  API_MAKE_CONNECTION_STRING  Creating the Connection String  API_GET_MSCHART_TEMPLATE  MSChart Template After requesting a build, you will get a UUID to check its status. Example of the response: ``` { "message": "Successfully queued", "code": 0, "payload": { "UUID": "25d36576-c5e2-49f4-8ab0-73838c457336" } } ``` Checking the build status To check the build status, make a GET request to: ``` https://dsg2014.fast-report.com:3000/builderAPI/checkBuild/{apiKey}/{buildUUID} ``` The link should contain your API key used for the build and the UUID you got when you requested it. You can see several statuses in the response depending on the build stage. 1 (QUEUED) –The build is scheduled and is now queued. 2 (PROCESSING) –Build started but still processing. 3 (BUILT) – The completed, you can download it. Example of the response: ``` { "code": 0, "payload": { "statusCode": 2, "statusText": "PROCESSING" } } ``` If the build is completed, you will receive a download link in the response. Downloading the latest build To download the built application, make a GET request to: ``` https://dsg2014.fast-report.com:3000/builderAPI/download/{apiKey}  ``` Specify your API key in the link. In response to the request, you will receive an archive file with the built application. Getting the current version of FastReport Online Designer Make a GET request to get the current version of the application: ``` https://dsg2014.fast-report.com:3000/builderAPI/designer-version/{apiKey} ``` Specify your API key in the link. In response, you will receive the current version of FastReport Online Designer. Example of the response: ``` { "payload": { "version": "2023.1.3" }, "code": 0 } ``` Our team will continue to improve the client experience when working with FastReport products. For any questions, contatc our support at  support@fast-report.com . Tags: FastReport, Online Designer ### Connect datasource to OLAP pivot cube (FastCube .NET) URL: https://www.fast-report.com/blogs/connect-datasource-olap-pivot-cube-dotnet Summary: FastCube .NET is powerful OLAP Engine which adds Business Intelligence to your application. Let's look how to bind data to its pivot table! FastCube .NET is powerful OLAP Engine which adds Business Intelligence to your application. Let's look how to bind data to its pivot table! FastCube .NET is powerful OLAP Engine which adds Business Intelligence to your application. Let's look how to bind data to its pivot table! FastCube .NET is powerful OLAP Engine which adds Business Intelligence to your application. Let's look how to bind data to its pivot table! Typically, the data in the OLAP cubes are loaded from the database. To fill a cube with data, you need to create a data source. And here I would like to say a few words about these sources. A cube can receive data from: • Database (Data source) - creates a connection to the database; • Stream - a cube can be received over the network as a stream, opened from a file, or downloaded from a database; • Application code (Manual) - filling the cube with data directly from the application code; • Cube file (File) - the data is already contained in the cube file along with the data scheme. For a cube filled manually or from a database, we also need to create or load its representation. For example, you can load a ready-made representation from the mds file. In this article, we'll look at the way of connecting a cube to a database. But first, let's look at the file with the data scheme. ``` ```  As you can see, this is a simple XML file. Therefore, there will be no difficulties in understanding it. The fields that we will get from the database are declared in the section. The section contains fields that will be displayed on the X axis. Similarly, the section, only for the Y axis, is the same. Both the X axis and the Y axis contain measurement fields, depending on the orientation of the cube. The section contains fields-measures. This is all we need to know at the initial level. Our task is to load this scheme into a cube and fill it with data from the database. The easiest way to explain how this can be done is by the example. Therefore, let's create a WindowsForms application. Add libraries in the project references: FastReport.Olap, FastReport.Bars. They can be found in the folder with FastCube.Net installed: "C: \ Program Files (x86) \ FastReports \ FastCube.Net Professional". "Drag" the following components to the form from the toolbox: cube, dataSource, dbDataSet, slice, sliceGrid, oleDbConnection, oleDbCommand. Now you need to configure all these components. Let's start by connecting to the database. In the oleDbConnection1 properties, set the ConnectionString value to "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" C: \ Program Files (x86) \ FastReports \ FastCube.Net Professional \ demo.mdb " This is a demo database from FastCube.Net. Proceed to the component oleDbCommand1. In its CommandText property, we write the following SQL query: ``` SELECT items.OrderNo, items.PartNo, items.Qty, orders.CustNo, orders.EmpNo, orders.SaleDate FROM (items LEFT OUTER JOIN orders ON items.OrderNo = orders.OrderNo) WHERE (items.OrderNo < 1100) ```  For the dbDataSet1 component, you need to set the DbCommand property - oleDBCommand1. And for DataSource1, select DataSet - dbDataSet1. Now configure cube1. Choose DataSource - DataSource1. And SourceType is a DataSource. For the slice1 component, we need to set only one property -  the cube. The sliceGrid1 component is the only visual component that we have added: In its properties we set slice-slice1. Unfortunately, we can not do without code. So let's create an OnLoad event handler for the form: And add the following code: ``` private void Form1_Load(object sender, EventArgs e) { string filePath = "J:/Program Files (x86)/FastReports/FastCube.Net Professional/Demos/Data/Cubes/dataset_en1.mds"; cube1.Active = true; slice1.Load(filePath); } ```  Here, we load a cube and a slice. You must activate the cube so that it loads data from the database. And now launch the application: Thus, connecting a cube to a database is not difficult. The mds file with the scheme can be obtained by creating a cross-table view with your manually (by dragging the fields and making additional settings with the mouse), and then saving it with the slice.Save () method or clicking the "Save" button on the cross-tab toolbar.scheme Tags: .NET, .NET, FastCube, FastCube, Data Source, Data Source ### Connecting a report to data from FastReport in Lazarus URL: https://www.fast-report.com/blogs/connecting-data-in-Lazarus Summary: 2 ways to set acces to the database from Lazarus reports 2 ways to set acces to the database from Lazarus reports 2 ways to set acces to the database from Lazarus reports In the previous article about  working with charts and graphs , we were already familiar with business graphics and barcodes. Now it is time to complicate the task and work with different data sources. Most reports are typically based on data from databases. To access this data Lazarus provides powerful mechanisms which are used by FastReport.  Data access components This refers to the components in the DataAccess tab, which can act as data sources for the report. Any TDataSet successor component can be used for this purpose. In addition to accessing data defined in the project, FastReport allows you to create new components in run-time. Our company's principles for creating data access components are very similar to those used in the Lazarus environment - we impose a component on the form and configure its properties in the object inspector. Functionality of run-time connections is a little more limited in the choice of database formats, so at the time of writing this article, only DBF and SqLite3 can be created in run-time. This refers to the components in the DataAccess tab that use the TfrxDBDataSet connector component from the FastReportn tab to connect a table or other data source to the band. This component acts as an intermediary between the data source and the FastReport core. The component is responsible for navigating through records and accessing fields. This allows you to avoid tying the FastReport core to any data access library. FastReport can work simultaneously with BDE and any other library, or retrieve data at all from a source not associated with the database, such as an array or file. The TfrxDataSet component is designed to work with data sources, and its versatility should be noted. It can use all connections inherited from TDataSet. And this is BDE, CVS and the vast majority of other libraries! To work with other data sources (array, file, etc.) the TfrxUserDataSet component is used. To link a TfrxDBDataSet component to a data source, one of the options must be configured: The DataSet property, which links directly to a table or query. The DataSource property, which connects to the TDataSource component. Both methods of connection are equivalent, just the first does without the TDataSource component. In order to make the component and its associated data available in the report, you need to explicitly specify which data sources are used in the report. In the FastReport designer, select the menu item "Report/Data..." and in the window that appears, check the boxes next to the required sources. Description of components in the FastReport designer The TfrxDBFTable component is designed to organize access to a .dbf database table and has the following properties: FilePath specifies the path to the database folder. TableName assigns the name of the database. By selecting a database, you will also change the path. FieldAliases allows you to specify custom field names. Filter contains an expression to filter the records. Filtered determines whether to apply a filter. IndexFieldNames stores the names of the fields which form the index. IndexName defines the name of the secondary index. MasterFields includes the fields associated with the master dataset. Master is the same as the master dataset. UserName sets the Alias (user name) of the dataset. The component's property assignments are the same as the TDbf properties in Lazarus. To connect the component to the database table, just fill in the TableName property. Open the table by setting Active := True. FieldAliases property editor allows you to select the fields which will be available when accessing the table, and set custom name for each field and for the whole table. The MasterFields property editor is used to create master-detail relationships between two tables. To link two tables with a master-detail relationship in a slave table, specify the master table in the Master property and invoke the MasterFields property editor. If the table has secondary indexes to be used, first configure the IndexName property. This editor allows you to visually link the master and detail fields of datasets. When sets are linked by a master-detail relationship, the contents of the detail set are filtered as you navigate through the master set, so that it contains only records that are relevant to the current master set record. To link set fields, select the field from the list on the left (detail set), then the field from the list on the right (master set), and click "Add" button. This will move the field mapping to the lower list. To clear the bottom list, use the "Clear" button. It is important to note that the fields to be linked must be of the same type and be key. But in Lazarus itself these properties do not work with selections (Master-Detail sorting and filtering) for TDbf components, and since we use this component, it doesn't work for us either. The TfrxLazSqliteQuery component is designed to make SQL queries to the database using SqLite3 and has the following properties: Database specifies the database connection name (default is always "sqlLite"). FieldAliases allows you to specify custom field names. Filter stores an expression to filter the records. Filtered determines whether to apply a filter. Master is the same as Master dataset. Params displays a list of query parameters. SQL includes the query text. UserName sets the alias (user name) of the dataset. IgnoreDupParams - if true then names of query parameters will not be duplicated in the parameter editor. The SQL property has its own editor for filling the SQL query:  The Params property also has its own editor. It is available if the query text contains parameters. A parameter can be of two types: the one assigned from the master data set and the other one with a specific value, where the value can be a constant, a reference to a variable or an object property.  In case the parameter is taken from the master dataset, TfrxLazSqliteQuery.Master property must be configured. The dataset must contain a field with the same name as the parameter. It is not necessary to specify parameter type and value. TfrxLazSqliteDataBase component is used to connect to SqLite3 database. Its purpose is similar to the TSQLite3Connection and TSqlTransaction components, and it has the following properties: Connected - when True is active, the connection is activated. DatabaseName allows you to select a name for the database. LoginPrompt defines whether the user must be asked for a password when connecting to the database. If LoginPrompt = False, then user name and password must be specified in the connection string. Building reports with database access Consider building a simple report that contains data access components, where we will use the LDemo demonstration database as an example. To begin, let's create a project, with which we will conduct our experiments. Make a new project in Lazarus and place on the form components TfrxReport, TfrxDesigner, TfrxDialogControls, TfrxDBDataset, TDbf. Configure the connection to the database. To do that, find the TableName property of Dbf1 and in the dialog box, choose the database file - anything with a .dbf extension will work. Then set frxDBDataset1 property DataSet to "Dbf1". Then add the button to the form and enter the following code in OnClick: ``` procedure TForm1.Button1Click(Sender: TObject); begin frxReport1.DesignReport; end; ``` Remember to allow threads for the Linux project. This was described  in the installation article . After that, compile and run the project. Nothing else is required to create the end-user report designer. When you click on Design, the designer opens with an empty report. Consider building simple reports in this environment. By the way, at this point you already know how to connect databases to FR from Lazarus. A simple "List" type report We will now output data from one database table already using FR at runtime. Do the following steps to build the report: Click the "New Report" button on the Designer toolbar. FastReport will create an empty report containing pages "Code", "Data", "Page1". Switch to the "Data" page and put the "DBF Table" component on the page: Select the database to be connected. To do this, set the TableName property in the Object Inspector by selecting the customer.dbf file from the demo project. To connect the Level 1 Data bank to the table, double-click on it and select our table in the window that will open. Then drag and drop the desired fields from the Data Tree window onto the report sheet. Our report will then look something like this: To view the resulting report, click on the "Preview" button on the toolbar.  Useful data handling options The Data tab isn't just for data access components. Using the Text and Drawing objects, you can place explanatory labels and draw simple diagrams, as shown in the figure below: Tags: VCL, Lazarus, FastReport, Delphi, Academic ### Connecting to a PostgreSQL database in .NET application URL: https://www.fast-report.com/blogs/connect-PostgreSQL-database Summary: Find out how through the library Npsql.dll in the plugin, connect PostgreSQL for your project in FastReport.NET without popular errors Find out how through the library Npsql.dll in the plugin, connect PostgreSQL for your project in FastReport.NET without popular errors Find out how through the library Npsql.dll in the plugin, connect PostgreSQL for your project in FastReport.NET without popular errors Our FastReport .NET offers rich features and wide functionality. Today we will look at how to connect to a database through the FastReport plugin for the report designer. This plugin is based on the Npsql.dll library. First, let's figure out how to build the right plugin for FastReport .NET. After that, we will create a connection between our database and the report. First, we should build a plugin to connect to PostgreSQL. For this, go to the directory where your FastReport .NET is installed and follow this path: Extras\Core\FastReport.Data\FastReport.Data.Postgres . Next, open the project FastReport.Data.Postgres.сsproj . Often you will see these errors when you open it for the first time: Don't worry. To deal with it, just remove the FastReport project from dependencies. Instead, add a reference to FastReport.dll, which is located in the folder with the installed FastReport .NET. Step 1. Remove the project dependency. Step 2. Go to the tab for adding references Step 3. Click “Browse…” and go to the directory with the already installed FastReport.NET. Step 4. Select FastReport.dll from the list of files. Step 5. Build the project and you will see that there are no errors. We have successfully built the PostgreSQL connector, now let's add it to the report designer. It will be easy. Open the report designer directly, go to its settings and connect the dll file to make our connector work properly. Then we go via the following path: Extras\Core\FastReport.Data\FastReport.Data.Postgres\bin\Debug\net452 and select the FastReport.Data.Postgres.dll file, which we will add to the project. Next, restart the report designer and select “Add Data Source” in the “Data” tab. Now click on “Add Connection” and select the PostgreSQL connection. Enter data and watch whether it is being connected properly. In this article, we have learned how to connect the PostgreSQL database to the report designer. As you can see, FastReport .NET allows to easily build and add various connectors to various databases. Tags: .NET, FastReport, Data Source, Plugin ### Connecting to cloud storage in FastReport VCL URL: https://www.fast-report.com/blogs/authorize-vcl-cloud-storages Summary: We are dealing with special components "Transports" for connecting to Dropbox, Google Drive, Box, OneDrive. We are dealing with special components "Transports" for connecting to Dropbox, Google Drive, Box, OneDrive. We are dealing with special components "Transports" for connecting to Dropbox, Google Drive, Box, OneDrive. Beginning from the first release of FastReport VCL 6 there is an ability to set connections for Dropbox, Google Drive, Box, OneDrive through special components – “Transports”. To improve the experience of internet transports using starts from FastReport VCL 2021.3 we have reworked authorization to OAuth2.0 by using the default browser in the operating system and extend the connection dialog. Important! For the HTTPS protocol to function properly, the following OpenSSL libraries are required: libssl-3.dll and libcrypto-3.dll. These libraries can be found in the directory with the main demo application. They need to be copied to the application's folder or the system directory. Content: Connection to Dropbox Connection to Google Drive Connection to Box Connection to OneDrive What are the benefits of such an approach? The customer uses a familiar and trustworthy browser. Which’s increases security. The application does not require embedding of browser components which decreases application size. Fast connection for customers who are already authorized in a default browser. Does not require another authorization. The connection process to cloud storage from FastReport VCL 2021.3 is similar and only has differences in setting-up on the cloud storage side. That’s why we start with the base functionality of the connection dialog. The fields “Client ID” and “Client Secret” are using for authorization data from cloud storage and generate in the control panel of cloud storage. The buttons on the right from authorization fields are using to hide or show information inside these fields. For fast access to a control panel of cloud storage use a button with a question sign-on authorization dialog (Open configuration page). To save the received authorization token just set the “Save authorization token” checkbox. The authorization token is stored in the system registry or configuration file as encrypted data. The EncryptionKey property is responsible for the encryption key for selected transport components. This property is only available from the program code. The developer can change the encryption to save authorization data based on a security policy used in the company. Adding of the transport to the application Open Embarcadero Rad Studio components palate and expand “FastReport VCL Internet transports”. Select a component you want to use and place it on an application form. It’s possible to use the context menu right on the transport component. That should show a connection dialog to set a connection from IDE. Press the “Edit connection” submenu item. By default, transports are using 9898 ports for authorization answers from the default browser. In case when this port is already in use or you’re planning to use this port in the future, FastReport VCL allows you to change the default port through the ListenerPort property. Further, we will assume using of 9898 port by default. Now let’s look at the connection stages of these transports: Dropbox. Google Drive. Box. OneDrive. Important! The user does not need to follow all of the following steps each time for authorization. This setup should be made once by the cloud storage administrator. After all authorization steps are complete those data can be used for other users as well. Connection to Dropbox When the user wants to open or save to a file using transport the authorization dialog should appear (in case the user is not already authorized before). To open the control panel page of cloud storage press on the button with the question sign on the top right of the authorization window. After Dropbox control panel should appear in a default browser. If the user is not authorized in Dropbox then an authorization page will be displayed which can be used to login into Dropbox. On this page, you need to select API, access level, and set application name. Next press the “Create app” button. The application is created. It should automatically redirect to the application options page. We need to scroll down the page and find the “App key” and “App secret” fields. Just copy the “App key” and “App secret” fields to the FastReport VCL authorization dialog. Return to a default browser with the setup page and set “Redirect URIs” filed to “http://localhost:9898” and press the “Add” button. Pay attention, the port in the hyperlink should be the same value as the ListenerPort property of the transport component. In addition, you can set other settings like the lifetime of authorization token. Now we need to set access rights for the application. Go to the “Permissions” tab and set checkboxes in front of access rights (read and write, reading of file list and etc.).  After all the checkboxes are set, press “Submit”. Now we can return to FastReport VCL and put “Save authorization token” and “Remember properties” checkboxes if we need to save authorization data. Press “Ok”. The default browser should appear. A user has to log in. When authorization is done connection warning will be shown. Press “Continue” and the next dialog should appear. Press the “Allow” button. You will see a message with a suggestion to close the window. Our application is set and ready to use. At this stage, we can send files to cloud storage. Connection to Google Drive The standard authorization dialog is the same for all transport filters and you can use descriptions from the above. Let’s move to the setup properties of Google Drive. You can call it by using the button with a question sign. If this account doesn’t have any projects created to work with Google API, we need to create one as a first step. Push the “Create project” button. Enter the name of the project and push “Create”. Use the “Select project” button to choose an active project. Select the project created before and push “Open”. Switch to the “OAuth consent screen” category. We need to select a user’s type who are going to use this cloud storage: internal use with access only for organization users or for all Google accounts. After that hit the “Create” button. Next enter the name of the application and contact e e-mail. Hit  “Save and continue”. In this step, we can set up scopes and we can skip it for Google Drive. Push the “Save and continue” button. The next step allows set up access to the application for user groups. If you would like to publish access to the application – skip this step. Hit “Save and continue”. The application created moves to the “Back to dashboard” tab. Switch to the “OAuth consent screen” tab and push the “PUBLISH APP” button. This will create access to the application. Open this link and turn on Google Drive API, for an active project hit the “Enable” button. Now we need to create authorization keys. Switch to the “Credentials” tab. Hit on the “Create Credentials” and select “OAuth client ID”. The next step is to select an application type ( Desktop App in our case). Enter any name of the application and hit the “Create” button. The client for authorization is created. Just copy values of the “Client ID” and “Client Secret” fiends in the same fields on the FastReport VCL authorization dialog. Push the “Ok” button. Now we will see a new tab in the default web browser. Select an account for authorization. Next warning about the unsafe application may appear. Hit the “Advanced” and  Go to Name of Application (unsafe). Another access dialog will be shown. Select access rights and push the “Continue” button. Now you can close the web browser window. When the connection was successful FastReport VCL default file explorer will appear. Connection to Box The standard authorization dialog is the same for all transport filters and you can use descriptions from the above. Let’s move to the setup properties of Box. You can call it by using the button with a question sign. Hit the “Create New App” button. Then select an application type. We are using “Custom App”. Next set an authorization method and name of the application. Select “OAuth 2.0” and enter the application name. Push the “Create App”. Then Scroll down next page with configuration settings to the “Client ID” field. Copy values of “Client ID” and “Client Secret” fields to the same fields on the FastReport VCL authorization dialog. Go back to the web browser with the settings page. Fill the “OAuth 2.0 Redirect URI” field with this link  http://localhost:9898 . Pay attention, the port in the hyperlink should be the same value as the ListenerPort property of the transport component. Set “Write all files and folders stored in Box” checkbox if you need write access rights. Push the “Save Changes” button. Go back to the FastReport VCL dialog and hit “Ok”. A new window will be shown with suggestions to login. After authorization hit “Grant access to Box”. When the connection was successful FastReport VCL default file explorer will appear. Connection to OneDrive The first step is the same. You can check it in the Connection to Dropbox part above. Let’s open Microsoft Azure settings. First of all, we need a new application. Push the “Register an application” button. On the next step enter the application name and Redirect URI (bottom of the page). Push the “Register” button. It will create the application. Now copy “Client ID” into the FastReport VCL authorization dialog. Open the “Certificates & secrets” category. Hit “New client secret”. Enter a description and expiration time. Hit “Add”. Now copy secret from the “Value” field into the FastReport VCL authorization dialog. Push the “Ok” button. New window with default web browser will be shown with suggestions to log on. After authorization hit click “Yes”. We have finished the connection setup. Now we know how to connect to each of could storages supported by FastReport VCL. Tags: VCL, Lazarus, FastReport, Delphi, Web Storage ### Connecting to Elasticsearch URL: https://www.fast-report.com/blogs/connecting-elasticsearch-json-net Summary: We are talking about a new feature in FastReport .NET, Core, Mono, Open Source in the form of an Elasticsearch connection as a data source. We are talking about a new feature in FastReport .NET, Core, Mono, Open Source in the form of an Elasticsearch connection as a data source. We are talking about a new feature in FastReport .NET, Core, Mono, Open Source in the form of an Elasticsearch connection as a data source. Now FastReport .NET, Core, Mono, and OpenSource products allow connecting to Elasticsearch. Elasticsearch is a scalable utility program for full-text search and analytics, which allows storing, searching, and analyzing large volumes of data quickly and in real-time mode. You may obtain data in JSON format from Elasticsearch. FastReport .NET has a connection to JSON and it is rather convenient to use data in this format. That is why this format will be used as a middleware between FastReport .NET and Elasticsearch. Important notice! FastReport implements only connecting to Elasticsearch as a source of data, without the opportunity to search in the data stored in it. To create a connection to Elasticsearch, click the Data tab in the Designer and select Add data source. In the window that appears click New connection. To connect, you will need endpoint Elasticsearch and indication of the titles for data access, for example, authorization data (there is a grid for that below). If the data access is granted, a list of tables will appear after clicking the Next button. For successful connection, put a tick on the left of the table title. Then the connection setting will be complete. After connecting the data source, you have to connect a band to it. As a result, the report will use data from the created connection to Elasticsearch. If you need to select data for connection, you may make a GET enquiry and use it as a JSON connection string. In the example below you may see a search for records containing the word Bruno in the name field and are located in the demo index (these are the names of the table in Elasticsearch). Also, if there are over 10 records, you will have to add the size parameter and indicate the necessary number of records in it. In the report you will also have to indicate the name of the data source in the DataSource band property; then the data will be extracted from the source to the report. An example of connecting to Elasticsearch from the code: ``` // create ESDataSourceConnectionStringBuilder instance ESDataSourceConnectionStringBuilder builder = new ESDataSourceConnectionStringBuilder(); // set Elasticsearh end point builder.EndPoint = "http://192.168.1.194:9200/"; // create ESDataSourceConnection instance var connection = new ESDataSourceConnection(); //set connection string connection.ConnectionString = builder.ConnectionString; // init all table connection.CreateAllTables(); // set name connection connection.Name = "NewConnection"; // create Report instance var report = new Report(); // add connection to report report.Dictionary.Connections.Add(connection); // set connection show connection.Enabled = true; // choose table with name "demo" and connect it to the report foreach(TableDataSource table in connection.Tables) { if (table.Name == "demo") table.Enabled = true; } ``` As a result of executing this code, we will be able to see a new “demo” table in the Designer in the list of available connections. Now you know more about the opportunities for creating a connection to the Elasticsearch database. If you need to select data, you may use the connection to JSON. Tags: .NET, .NET, Mono, Mono, FastReport, FastReport, Core, Core, JSON, JSON ### Connecting to MsSQL Stored Procedures using code URL: https://www.fast-report.com/blogs/connect-mssql-dotnet Summary: In FastReport .NET it has become easier to use prepared scripts for fetching data from the database in reports using procedures. In FastReport .NET it has become easier to use prepared scripts for fetching data from the database in reports using procedures. In FastReport .NET it has become easier to use prepared scripts for fetching data from the database in reports using procedures. We continue to develop new FastReport .NET functions. Our team is increasingly expanding the features of our library for generating reports. With a recent update, we have added the function of connecting to MsSQL stored procedures. These stored procedures are a set of instructions that are executed simultaneously. Thus, the stored procedures allow you to streamline complex operations and bring them into a single object. Previously, you could only connect to them via a database query. Now it is enough to use the standard scheme for connecting to database tables. Procedure icons will be different. Also, if the procedure has input parameters, a window with its parameters will appear when it is selected. In this window, you need to set parameter values if necessary. If you use the default values, then leave the Expression and Value fields empty. If the procedure returns output parameters, then they will appear in the “Report Parameters” after creating the connection. Such parameters will be updated only when the information is uploaded into the data source. Calling the procedure from code: ``` // Create the MsSqlDataConnection object var connection = new MsSqlDataConnection(); // Set the connection string connection.ConnectionString = @"Data Source=DESKTOP-43LGTAI;AttachDbFilename=; Initial Catalog=EmployeeCaseStudy;Integrated Security=True;Persist Security Info=False;User ID=;Password="; // Initialize all tables connection.CreateAllTables(); // Set the connection name connection.Name = "NewConnection"; // Create a Report Object var report = new Report(); // Add the connection to a report report.Dictionary.Connections.Add(connection); // Enable connection display connection.Enabled = true; // Select a table and connect it to the report foreach (TableDataSource table in connection.Tables) { if (table.Name == "sp_GetUser") { foreach (CommandParameter parameter in table.Parameters) if (parameter.Name == "@id") parameter.Value = 1; table.Enabled = true; } } ``` You can find procedures in the list of tables by comparing them with ProcedureDataSource. Now it will be faster and easier for FastReport .NET users to use pre-prepared data select scripts in several reports. Tags: .NET, FastReport, Data Source, Stored procedures ### Connecting to MySQL DB from the report URL: https://www.fast-report.com/blogs/connecting-report-to-mysql Summary: Let's take a closer look at how to connect to a MySQL DB from a FastReport .NET report. Find more usefull tips and articles in our blog. Let's take a closer look at how to connect to a MySQL DB from a FastReport .NET report. Find more usefull tips and articles in our blog. Let's take a closer look at how to connect to a MySQL DB from a FastReport .NET report. Find more usefull tips and articles in our blog. It is known that FastReport .NET can work with almost any database. And quite often the users the question arises, how to connect MySQL database to your report. In this article we will look at the process inside and out, and in two versions:  1. In the first method, you can use special plugin to connect to the MySQL database. This plug-in is a dll library. To obtain this library, you need to build the project from FastReport .NET delivery. It is located in the folder: FastReport.Net\Extras\Connections\FastReport.MySQL. After assembly in the bin folder you will find FastReport.MySQL.dll library. Open the report designer. Open the File-> Options menu: On the Plugins tab add our library by using the Add button. Now restart the designer. Add a new data source in the report. In the Data Wizard create a new connection: In the list of connection types there is a new one - MySQL connection. Choose it: Fill the fields and click Ok. In the Data Wizard, select the table from the database “world”. For example, city: Click Finish to complete the wizard. That's all. The obtained data can be used in the report.  2. Consider the second method - use the native connector ODBC Driver for MySQL. You can download it from the developer - http://dev.mysql.com/downloads/connector/odbc/. The installation does not cause problems - everything is simple and clear. Next, run the report designer and create a new report. On the Report tab, add a new data source using the icon . In the Data Wizard, create a new connection (New connection ...): In the connection editor, select the type of connection - ODBC connection: Switch the radio button to "Use connection string:". And press the button  to create a connection string. In this case you will be prompted to select a data source: Click the button "New ...". The wizard of creation data source will be launched: Choose one of the two available: MySQL ODBC. Ansi or Unicode encodings depends on your database. Click "Next." And set the connection options: After closing this window, select the created connection in the "Select Data Source" box. Once again we see the connection settings. Enter your password and click Ok. Thus we get the customized connection in our Data Wizard: Click OK. In the wizard, click Next and proceed to the tables selection: We have considered two ways to create a connection to the database MySQL. The first method is a little more complicated in the beginning, when you want to build a library, but more convenient for subsequent reuse plugin. The second method seemed to me less convenient for subsequent use. Tags: .NET, FastReport, Data Source ### Connecting to PostgreSQL DB from the report URL: https://www.fast-report.com/blogs/connecting-postgre-sql-db Summary: Let's take a closer look at how to connect to a PostgreSQL DB from a FastReport .NET report. Find more usefull tips and articles in our blog. Let's take a closer look at how to connect to a PostgreSQL DB from a FastReport .NET report. Find more usefull tips and articles in our blog. Let's take a closer look at how to connect to a PostgreSQL DB from a FastReport .NET report. Find more usefull tips and articles in our blog. In this article we will look at ways to connect to a PostgreSQL database from FastReport .NET report. FastReport provides a plug-in report designer that allows you to connect to Postgres. At the core of this plugin is Npsql.dll library. But first things first. First, we consider the connection to the database by FastReport plugin. And then, with the usual ODBC connector. The first method Open the solution Program Files (x86) \ FastReports \ FastReport.Net \ Extras \ Connections \ FastReport.Postgres \ FastReport.Postgres.sln. From it we will build FastReport.Postgres.dll library that will be used as a plug-in report designer. To build the project is required npgsql.dll library. Npgsql installer can be downloaded from here: https://github.com/npgsql/npgsql/releases. After installation of the connector, the library can be found in the GAC. build the solution FastReport.Postgres and obtain the required library. Open the report designer. In the menu File open the Options. Add the library built earlier in the Plugins tab: Restart the report designer. Now you can create a report. Add a new data source. In the wizard, the data source, select New Connection ... In connection settings, select the type of connection: Postgres connection. And define the settings of connecting to the database. Click OK. In the Data Wizard click Next. And select the desired table: Now consider the second method. For it we need the ODBC connector, which can be downloaded here: https://odbc.postgresql.org/. Install the ODBC driver and go to the creation of the report. In the Report Designer add a new data source. In the Data Wizard select New connection .... In the settings of the connection string, select the type of connection: ODBC connection. In the section Data source, select “use connection string”. And open the connection string builder with the button .  In the window that appears, we click the button “New ...”: Choose PostgreSQL ODBC Driver: Click Next. Define the name of the connection: Click Next. And move on to the connection settings: Click OK. Then OK again. And back in the Data Wizard. Click the Next button and proceed to the selection tables: That's all. We have reviewed with you two methods of connecting to the data within the report. Note that the first method is more convenient in the subsequent use of the PostgreSQL database in your reports. Also, it works faster than the connection via ODBC connector. Tags: .NET, FastReport, Data Source, PostgreSQL ### Connection plugin for Cassandra from FastReport .NET URL: https://www.fast-report.com/blogs/connect-plugin-cassandra-net Summary: A new plugin for connecting to Cassandra for FastReport.NET will help you connect huge amounts of data to your projects. A new plugin for connecting to Cassandra for FastReport.NET will help you connect huge amounts of data to your projects. A new plugin for connecting to Cassandra for FastReport.NET will help you connect huge amounts of data to your projects. We are pleased to present you a new plug-in for configuring а connection to Cassandra, which is available for FastReport .NET, FastReport Core, FastReport CoreWin, FastReport OpenSource. Let’s note an important detail that the order of the records will be overset because of the CassandraCsDriver library used by this connection. Cassandra — is а NoSQL distributed database system, which аllows to create highly scalable and reliable storages of huge data arrays in the form of a hash. To use it, you must first build the project: С:\Program Files (x86)\FastReports\FastReport.Net\Extras\Core\FastReport.Data\FastReport.Data.Cassandra After building the project, you will need to add the plugin to the application in one of two ways: 1. Add plugin via designer: 2. Add the plugin as a dependency when starting the project and register it in the code with the following command: FastReport.Utils.RegisteredObjects.AddConnection(typeof(CassandraDataConnection)); To create a connection to Cassandra, you need to click on the "Data" tab in the designer, and select the "Add Data Source" item. Click on the "New Connection" in the resulting window. Specify the database address(es), key space, port, username, and password. If there are no problems with access to the database, then a list of tables will appear after clicking the "Next" button. When connecting a table, you must check the box to the left of the table name. It will be possible to complete the connection only after that. Upon connecting the data source, you need to bind a band to it. The final report will use data from the created connection to Cassandra. An example of connecting to Cassandra from code: ``` // Create an object CassandraDataConnection var connection = new CassandraDataConnection(); // Create an object CassandraConnectionStringBuilder CassandraConnectionStringBuilder stringBuilder = new CassandraConnectionStringBuilder(); // Configure аn object CassandraConnectionStringBuilder stringBuilder.ContactPoints = new string[] { "localhost" }; stringBuilder.DefaultKeyspace = "uprofile1"; // Set the connection string connection.ConnectionString = stringBuilder.ToString(); // Initialize all tables connection.CreateAllTables(); // Set the connection name connection.Name = "NewConnection"; //Creаte аn object Report var report = new Report(); // Add a connection to the report report.Dictionary.Connections.Add(connection); // Enаble connection display connection.Enabled = true; // Select a table and connect it to the report foreach (TableDataSource table in connection.Tables) { table.Enabled = true; } ``` After executing this code, we can see in the designer a new connection with the "user1" table in the list of available connections. As you can see, it is now possible to create a connection to Cassandra and use the data stored there. Tags: .NET, FastReport, Connection, Core, Data Source, Designer, Open Source, Plugin ### Connection to a huge database CSV URL: https://www.fast-report.com/blogs/connection-database-csv Summary: Let's take a closer look at how to connect to a Huge CSV Database from a FastReport .NET report. Find more usefull tips and articles in our blog. Let's take a closer look at how to connect to a Huge CSV Database from a FastReport .NET report. Find more usefull tips and articles in our blog. Let's take a closer look at how to connect to a Huge CSV Database from a FastReport .NET report. Find more usefull tips and articles in our blog. Not so long ago in FastReport .NET was added the ability to load data from a csv file. In other words, a CSV file can now be used as a data source. This was done after some time from one of the users entered an interesting query to a support. He claimed that he has a CSV file that does not open, instead, an error message appears. The user kindly provided this file for testing. At first glance, it was thought that the file too is big, that is the reason why it can not be opened. But upon further examination it was revealed that the problem is not in the size of the file. As it turned out, the file does not entirely correspond to the CSV specification. In the file rows were found that did not contain separators. Apparently, they are used as comments, with any data yourself. It was decided to ignore such lines when data is loaded. As a result file has become loaded without any problems. It would seem that the problem is solved and we can settle down, but the idea of a large csv file did not give a rest. After some searching there was found a really huge file. This file size was 441 MB, seemingly not very awesome, but, nevertheless, it consisted of 31 columns and 2 458 525 lines. Testing this download brought dual results. On the one hand, the file opens that undoubtedly pleased. But it was a very sad fact that the file download took nearly half an hour. It is known two solutions to this problem. However, buying a new computer is not a good idea. Therefore, I had to spend some time to optimize the code. As a result, the file download has been achieved within two minutes Tags: .NET, FastReport, CSV ### Connection to NosDB (NoSQL) URL: https://www.fast-report.com/blogs/connecting-to-NosDB Summary: In this article, we'll look at the way to connect to the NosDb database inside the report with a plug-in for the designer. In this article, we'll look at the way to connect to the NosDb database inside the report with a plug-in for the designer. NosDB is a prominent representative of the NoSQL databases. It is designed for use on the .Net platform and has open source. NosDb, like many other non-relational databases, has a high speed and good linear scalability. In this article, we'll look at the way to connect to the NosDb database inside the report with a plug-in for the designer. NosDB is a prominent representative of the NoSQL databases. It is designed for use on the .Net platform and has open source. NosDb, like many other non-relational databases, has a high speed and good linear scalability. In this article, we'll look at the way to connect to the NosDb database inside the report with a plug-in for the designer. As you know, you can connect plug-ins to a report designer that expands the functionality of the program. One of the areas of expansion of functionality is connectors to different databases. Indeed, it takes a lot of time to find, install and set connectors for different databases. FastReport allows you to create plugins that make the process of connecting to data as much easier as possible. However, you need to pre-assemble a plug-in library from the project, which is included in the supply package of FastReport.Net and is located in a folder: C:\Program Files (x86)\FastReports\FastReport.Net\Extras\Connections\FastReport.NosDB Once you assemble the project – you will get FastReport.NosDB.dll library. The link to the library you need to add to the report designer settings on the Plugins tab:  After restarting the designer, you can create a data source of the report. In connection settings select NosDb connection: Here you need to enter the server address, user login and password (if configured), database name and collection. Collections are analogues of tables. You can specify one or more collections through a comma. At this point, you've only got to select the collections you need in the report in the next step:             Unfortunately, with NoSQL database we cannot use a SQL query to filter data at the stage of their preparation. So just look at the result: Tags: .NET, FastReport, Connection, Data Source ### Connection to SQLite DB from a report URL: https://www.fast-report.com/blogs/connection-sqlite-db Summary: Let's take a closer look at how to connect to a SQLite DB from a FastReport .NET report. Find more usefull tips and articles in our blog. Let's take a closer look at how to connect to a SQLite DB from a FastReport .NET report. Find more usefull tips and articles in our blog. Let's take a closer look at how to connect to a SQLite DB from a FastReport .NET report. Find more usefull tips and articles in our blog. In this article I would like to see a connection to a SQLite database from a report. We will look at this in two examples. The first - with the help of plug-in for Report Designer, the second - with the help of ODBC SQLite driver. So, to use a plugin from FastReports, you must first make it. To do this, open solution FastReport.Net\Extras\Connections\FastReport.SQLite. The references need to fix two links - at the library FastReport.dll and System.Data.SQLite.dll. The last one will have to download from the Internet. Build the solution. We get FastReport.SQLite.dll library in the bin \ Debug folder. Now open the report designer. On the File menu, select Options. Open the Plugins tab in the form that appears. Use the Add button to add libraries created above. Restart the report designer. On the toolbar, select the Report tab and add a new data source using the icon  . In the appeared Data Wizard, click the button “New connection...”.  Select the type of connection - SQLite connection. Below, we specify the path to the database. By default, the filter is set to extension "* .db3" in the window opening. My database has an extension of db, so that changes to ".". As a result, to connect the database only need to select a database file. Click OK. In the Data Wizard click Next and proceed to the selection of tables: That's all. 2. Now look at the second method - using SQLite ODBC Driver. First you need to download and install this driver. Open the report designer. Create a new data source, as above, by means of icon . Next, in the Data Wizard click the button “New connection ...”. Select the ODBC connection. In the data source switch to the “Use connection string”. And sets the connection string using the icon . In the window of selection data source, you need to create new data source. Select the SQLite3 ODBC Driver. Click Next.  We set database connection. Here we only need to select the database file using the Browse ... button. Click OK. Here is the configured connection: Click OK and return to the Data Wizard. Click the Next button. And proceed to the choice of tables. Thus, we have considered two ways to connect to the database SQLite. If you will often use this connection, I advise you to use the plug-FastReport.SQLite.dll - faster and more enjoyable to use. If you do not want to bother with the assembly  - use ODBC. But the second option will run a bit slower due to the extra layer. Tags: .NET, FastReport, Data Source ### Console utility FRConverter 1.0 (QuickReport 6, ReportBuilder 19 , Rave Reports to FastReport VCL 6) URL: https://www.fast-report.com/blogs/frconverter-console-utility Summary: Mass conversion of templates in one console utility FRConverter 1.0 instead of 3 convectors. Mass conversion of templates in one console utility FRConverter 1.0 instead of 3 convectors. Mass conversion of templates in one console utility FRConverter 1.0 instead of 3 convectors. Previously, there were several articles about converting QuickReport 6 and ReportBuilder 19 templates to *.fr3 format. But this is all inconvenient and requires additional effort to create a project and connect additional modules and creates difficulties when converting templates in bulk. We decided to create a console utility that would combine the three converters QuickReport 6, ReportBuilder 19, Rave Reports in FastReport VCL  and allow bulk conversion of templates using the command line. Let's look at how to use the console converter. Important!!! Make sure your report dfm files are all in text form. Right-click the form and make sure "Text dfm" is checked. Change the first line so that the name of the form is something like "NameofForm : TForm" rather than  "NameofForm : TNameofFOrm". Save thedfm files to another folder BEFORE you do this as doing so will breakyour project. To convert a single file, use the command line to move to the folder where the file is located and use the following commands: ``` FRConverter.exe -f:QR MyReport.dfm MyReport.fr3 FRConverter.exe -f:RB TT.rtm TT.fr3 ``` Where are parameters: ``` -f:< type_Converter > - select type Converter   < type_Converter >: QR- QuickReport (*.dfm and *.qr2) RB- ReportBuilder (*.rtm) RR- Rave Reports (*.rav)   MyReport.dfm – the file name in the current folder MyReport.fr3 – the name of the converted template that will be saved ``` The "-split " option is also available    -split - split pages (only QuickReport), if you have multiple TQuickRep objects the FRConverter will splitted dfm into several templates and save them with the names of these objects to the current directory and will also save the template containing these pages. Example of use: ``` FRConverter.exe -f:QR -split MyReport.dfm MyReport.fr3 Result 3 or more files: MyReport.fr3, .fr3, .fr3 and etc. ``` To see which files of the desired format are in the current folder, you can use the following parameter: ``` -show < format_file > - displays all in the current directory   < format_file > : *.dfm, *.qr2,*.rtm, *.rav and etc. ``` Example of use: ``` FRConverter.exe -show *.dfm ``` Use the -h parameter to call Help. ``` FRConverter.exe -h ``` To convert a bulk conversion, use the command line to move to the folder where the templates are located and use these commands:   ``` FRConverter.exe -f:QR *.dfm *.fr3 ``` Download link : FRConverter.zip Tags: VCL, VCL, FastReport, FastReport, Converter, Converter, QuickReport, QuickReport, ReportBuilder, ReportBuilder, Rave Reports, Rave Reports, Delphi, Delphi ### Contact URL: https://www.fast-report.com/contact Summary: Our support team is always ready to help you. Fill out the contact form or use the Q&A section. Support team If you have any questions or issues, please contact our support team through the data collection form below. We are always ready to assist you. Popular questions We have compiled the most frequently asked questions about licensing, technical support policies, and software product purchases. Go to questions info@fast-report.com Sales sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Office Alexandria, VA 22314 66 Canal Plaza, Ste 505 Products Buy Demo Documentation How to uninstall Licenses Products Buy Demo Documentation How to uninstall Licenses Support Support SLA Online support FAQ Tutorial Video Forum Articles News Support Support SLA Online support FAQ Tutorial Video Forum Articles News Company About Identity Resellers Contacts us Company About Identity Resellers Contacts us Privacy policy Cookies policy © 1998-2026 Fast Reports Inc. Trustpilot Link copied successfully ### Contest from Fast Reports URL: https://www.fast-report.com/news/fastreport-vcl-contest Summary: We are announcing contest for the best demo of FastReport VCL 6. To participate you can use either commercial or a trial version of the report generator for Delphi. We are announcing contest for the best demo of FastReport VCL 6. To participate you can use either commercial or a trial version of the report generator for Delphi. We are announcing contest for the best demo of FastReport VCL 6. To participate you can use either commercial or a trial version of the report generator for Delphi Create an app, add-on or a report which would be the best to demonstrate all the features of our report generator Apply on the contest page until August, 15. The winner will be chosed by popular vote and will receive a 10.1 inch tablet on Windows 10.  ### Conversion to .fr3 from QuickReport and ReportBuilder URL: https://www.fast-report.com/blogs/conversion-from-quickreport-reportbuilder Summary: Batch conversion to FastReport VCL (from QuickReport or ReportBuilder) Batch conversion to FastReport VCL (from QuickReport or ReportBuilder) Batch conversion to FastReport VCL (from QuickReport or ReportBuilder) Perform the following list of actions:    1. Create a new application (File -> New -> VCL Forms Application).    2. Enter in the Uses clause module ConverterQR2FR (for convert QuickReport) or ConverterRB2FR (for convert ReportBuilder) .    3. Depending on the installed components, you may need to remove the following blocks from the Uses clause in ConverterQR2FR.pas or ConverterRB2FR.pas :    VCLTee.TeeProcs, VCLTee.TeEngine, VCLTee.Chart, VCLTee.Series, VCLTee.TeCanvas    frxChart, frxBDEComponents, frxIBXComponents    4. Add the following components to the form: frxReport OpenDialog Button1 , Button 2, Button 3 ListBox1, ListBox2 Label1, Label2 Enter this code to the Button1Click() event of the “ Select File ” button . Code Button1Click : ``` procedure TForm1.Button1Click(Sender: TObject); var i: integer; FirstLine: string; begin OpenDialog1.Options := [ofAllowMultiSelect, ofFileMustExist]; OpenDialog1.Filter := 'Delphi Form (*.dfm)|*.dfm|' + 'QuickReport (*.qr2)|*.qr2|'+ 'ReportBuilder (*.rtm)|*.rtm' + '|All files (*.*)|*.*'; OpenDialog1.FilterIndex := 1; if OpenDialog1.Execute then with OpenDialog1.Files do for i := 0 to Count - 1 do ListBox1.Items.Add(Strings[I]); end; ``` Enter this code to the Button2Click() event of the “ Convert ” button . Code Button2Click : ``` procedure TForm1.Button2Click(Sender: TObject); var i: integer; s : string; begin ListBox2.Clear(); with ListBox1.Items do for i := 0 to Count - 1 do if frxReport1.LoadFromFile(ListBox1.Items[i]) then begin s := ListBox1.Items[i].Substring(0,ListBox1.Items[i].Length-4)+'.fr3'; frxReport1.SaveToFile(s); ListBox2.Items.Add(s); end; end; ``` Enter this code to the Button3Click() event of the “ Clear list of files ” button . Code Button3Click : ``` procedure TForm1.Button3Click(Sender: TObject); begin ListBox1.Clear(); end; ``` Enter this code to the ListBox2Click() event that performs when you click the ListBox2 element to open the selected template in the designer. Code ListBox2Click : ``` procedure TForm1.ListBox2Click(Sender: TObject); begin frxReport1.LoadFromFile(ListBox2.Items[ListBox2.ItemIndex]); frxReport1.DesignReport(); end ``` Run the application Select files to convert The selected files appear in the “Selected file” list Click the Convert button, the files from the “Selected file” list will be converted, and the address of the saved templates will be displayed in the format *.fr3 Click on any template address in the “Saved templates in FR” list and it will be opened in the FR designer, check if the conversion is correct. Tags: VCL, VCL, FastReport, FastReport, Converter, Converter, QuickReport, QuickReport, ReportBuilder, ReportBuilder, Delphi, Delphi ### Convert RichObject to text when exporting URL: https://www.fast-report.com/blogs/convert-rich-object-text-exporting Summary: Let's take a closer look at how to convert RichObject to Text works when exporting FastReport .NET report. Find more usefull tips and articles in our blog. Let's take a closer look at how to convert RichObject to Text works when exporting FastReport .NET report. Find more usefull tips and articles in our blog. Let's take a closer look at how to convert RichObject to Text works when exporting FastReport .NET report. Find more usefull tips and articles in our blog. Until recently, the export of the RichObject was done as an image. Of course, many people did not like it. In FastReport .NET version 2018.2.3 a new property of the RichObject - ConvertRichText object appeared. This property allows you to enable the export mode of the object in text form, instead of the image. That is, by including this option, we will get the text in any export format, except, of course, exporting to the image. By tradition, I propose to get acquainted with the new property by example. We add RichObject to the report page. And load into it the rtf document in the editor: Now run the report in preview mode and export to PDF. And we see the picture in the document. Let's return to the report template. Select the RichObject object and set its ConvertRichText property to true. Repeat the export of the report to PDF: This time, we got a text available for selection. And the text is displayed completely, unlike the example with the image, where the text scope is limited by the size of the RichObject object. Still there is a minus - the original formatting of the text and the font can be lost, if those are not supported in FastReport .NET. Tags: .NET, Export, FastReport, RTF ### Converter from Microsoft Word (.docx) format to FastReport .NET (.frx) file URL: https://www.fast-report.com/blogs/converter-word-docx-net Summary: A converter from Microsoft Word (.docx) format to a file FastReport .NET (.frx): description and instructions for using the tool. A converter from Microsoft Word (.docx) format to a file FastReport .NET (.frx): description and instructions for using the tool. Modern data processing and workflow automation technologies require the integration of various file formats that ensure the interaction of software products. Thanks to its wide range of features, the Microsoft Word text editor has become one of the most popular editors of varying complexity.  Consider converting Microsoft Word files to FastReport format.NET, used to create report templates. Modern data processing technologies and document workflow automation require the integration of various file formats to ensure seamless interaction between software products. With its extensive capabilities, Microsoft Word has become one of the most popular text editors, suitable for a wide range of tasks. At times, you may need to convert these documents into formats specific to other applications. For instance, there are situations where you need to convert Microsoft Word files into the FastReport .NET format, which is used for creating report templates when working with FastReport. How to Compile the Project First, open the .sln file named FastReport.OOXMLImportPlugin.sln. Note that there are two such files for Visual Studio 2017 and above. Then, remove the references to the FastReport and FastReport.Bars projects as shown in the screenshot below. After that, you need to add a reference to FastReport.dll. This DLL is located in the same folder as the Designer. Right-click in the workspace and click "Build." After that, navigate to the path FastReport.OOXMLImportPlugin\bin\Debug\net472 and you will find the compiled file “OOXMLImportPlugin.dll” in that folder. How to Register the DLL in FastReport You can do this in several ways. Method 1: Register using the FastReport Development Environment Open the report designer, then go to the "File|Settings..." menu in the Ribbon interface (or "View|Settings..." in the standard interface). Next, in the "Plugins" tab, add FastReport.OOXMLImportPlugin.dll. After that, restart the FastReport .NET designer. If you are working in the Visual Studio IDE, be sure to restart it as well. Once the designer is launched again, click "File|Open" and select "Microsoft Word Document (*.docx)" from the list of available files, as shown in the screenshot below. Select the desired *.docx file to import into FastReport .NET. As a result, you will see the imported file in the designer. Method 2: Manually Edit the FastReport.config File By default, this file is located in the folder C:\DocumentsandSettings\user_name\Local Settings\Application Data\FastReport . Make sure to close all running instances of FastReport .NET. Only after that, open the configuration file in any text editor and change it as follows: ``` ...  } GetFile - name of controller handler, Home - name of controller (HomeController.cs for example) Add name space in controller: using FastReport.Export.Pdf; Add method GetFile in controller:         public FileResult GetFile()         {             WebReport webReport = new WebReport();             // bind data             System.Data.DataSet dataSet = new System.Data.DataSet();             dataSet.ReadXml(report_path + "nwind.xml");             webReport.Report.RegisterData(dataSet, "NorthWind");             // load report             webReport.ReportFile = this.Server.MapPath("~/App_Data/report.frx");             // prepare report             webReport.Report.Prepare();             // save file in stream             Stream stream = new MemoryStream();             webReport.Report.Export(new PDFExport(), stream);             stream.Position = 0;             // return stream in browser             return File(stream, "application/zip", "report.pdf");         } Example for Excel 2007: using FastReport.Export. OoXML ; ... webReport.Report.Export(new Excel2007Export(), stream); ... return File(stream, "application/xlsx", "report.xlsx"); Tags: .NET, Export, FastReport, ASP.NET, MVC ### Creating a PDF report in JetBrains Rider (C#) in Windows 11 URL: https://www.fast-report.com/blogs/report-jetbrains-rider-windows11 Summary: In this article we will take a look at .NET in Windows 11 without using Microsoft Visual Studio, and export the report to PDF format. In this article we will take a look at .NET in Windows 11 without using Microsoft Visual Studio, and export the report to PDF format. In this article we will take a look at .NET in Windows 11 without using Microsoft Visual Studio, and export the report to PDF format. In this article, we'll take a look at the world of the .NET platform in Windows 11 without using Microsoft Visual Studio and create a report that can be exported to PDF. The analog of Visual Studio is, of course, JetBrains Rider. It is a cross-platform .NET IDE developed by JetBrains. It supports C#, VB.NET, and F# languages. We are not going to discuss here which IDE is better or worse. So, let's just create, build, and export a PDF report/document from JetBrains Rider using FastReport .NET. What do you need to get started? At least, you need to have the JetBrains Rider IDE installed on your PC. Next, create a new solution by selecting "New Solution ". The next step is to set up the project. Select the Desktop Application project type in the .NET/ .NET Core section. Then we give a name to the project, we will use "ReportPDF_Core_WinFormsApp" as an example. After we click on the Windows Forms App type, C# language, NET 7.0 framework. Let's start by adding a simple sample dataset for our report in our application code. To do this, add in Form1.cs: ``` using System.Data; ``` Next, add a private field of the Form1 class: ``` private DataSet _fDataSet = new DataSet(); ``` Let's add a private CreateDataSet method, where we will create and fill in a data set: ``` private void CreateDataSet() { // create simple dataset with one table // create simple dataset _fDataSet = new DataSet(); // create a table DataTable table = new DataTable(); table.TableName = "Employees"; // adding a table to the dataset _fDataSet.Tables.Add(table); // adding data to a table table.Columns.Add("ID", typeof(int)); table.Columns.Add("Name", typeof(string));   table.Rows.Add(1, "Andrew Fuller"); table.Rows.Add(2, "Nancy Davolio"); table.Rows.Add(3, "Margaret Peacock"); } ``` Add a call to the CreateDataSet method: ``` public Form1() { InitializeComponent(); CreateDataSet(); } ``` What is the fastest way to make FastReport .NET work in JetBrains Rider? To use our Fast Reports Private NuGet-server . This article describes how to add NuGet packages after purchasing FastReport .NET. Here is a brief instruction so you don’t need to search for another article. Click on the NuGet tab at the bottom of the IDE, and click on the Sources tab. Now we add a new repository by clicking on the "+" and entering the necessary data: - Name — source name without spaces (for example FR-Nuget); - URL — https://nuget.fast-report.com/api/v3/index.json; - User — email from Fast Reports account; - Password — password from Fast Reports account. You will see the corresponding repository: Now we will install the FastReport.Pro package. To do this, go to the Packages tab and filter the packages by the FR-Nuget repository. Of course, install the found package. If it was successful, you will see a notification. Next add to Form1.cs: ``` using FastReport; using FastReport.Export.Pdf; ``` Next, we will insert 3 new buttons into the application: "Report design", "Export to PDF with dialog", "Silent export". To do this, make the appropriate changes to Form1.Designer.cs: ``` // // Required method for Designer support - do not modify // the contents of this method with the code editor. // private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(800, 450); this.Text = "Form1"; this.btnExportWithDialog = new System.Windows.Forms.Button(); this.btnSilentExport = new System.Windows.Forms.Button(); this.btnShowDesigner = new System.Windows.Forms.Button(); this.SuspendLayout(); // // btnExportWithDialog // this.btnExportWithDialog.Location = new System.Drawing.Point(44, 148); this.btnExportWithDialog.Name = "btnExportWithDialog"; this.btnExportWithDialog.Size = new System.Drawing.Size(208, 23); this.btnExportWithDialog.TabIndex = 0; this.btnExportWithDialog.Text = "Export to PDF with dialog"; this.btnExportWithDialog.UseVisualStyleBackColor = true; this.btnExportWithDialog.Click += new System.EventHandler(this.btnExportWithDialog_Click); // // btnSilentExport // this.btnSilentExport.Location = new System.Drawing.Point(44, 180); this.btnSilentExport.Name = "btnSilentExport"; this.btnSilentExport.Size = new System.Drawing.Size(208, 23); this.btnSilentExport.TabIndex = 0; this.btnSilentExport.Text = "Silent export"; this.btnSilentExport.UseVisualStyleBackColor = true; this.btnSilentExport.Click += new System.EventHandler(this.btnSilentExport_Click); // // btnShowDesigner // this.btnShowDesigner.Location = new System.Drawing.Point(44, 87); this.btnShowDesigner.Name = "btnShowDesigner"; this.btnShowDesigner.Size = new System.Drawing.Size(208, 23); this.btnShowDesigner.TabIndex = 1; this.btnShowDesigner.Text = "Report design"; this.btnShowDesigner.UseVisualStyleBackColor = true; this.btnShowDesigner.Click += new System.EventHandler(this.btnShowDesigner_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 266); this.Controls.Add(this.btnShowDesigner); this.Controls.Add(this.btnSilentExport); this.Controls.Add(this.btnExportWithDialog); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); this.Name = "Form1"; this.Text = "ExportToPDF"; this.ResumeLayout(false); } #endregion private System.Windows.Forms.Button btnExportWithDialog; private System.Windows.Forms.Button btnSilentExport; private System.Windows.Forms.Button btnShowDesigner; ``` Let's write a click handler for the "Report design" button using this code. ``` private void btnShowDesigner_Click(object sender, EventArgs e) { // create report instance Report report = new Report(); // load the existing report //report.Load(@"..\..\..\Report.frx"); // register the dataset report.RegisterData(_fDataSet); report.GetDataSource("Employees").Enabled = true; // run the designer report.Design(); // free resources used by report report.Dispose(); } ``` Run the application and look at our form with 3 buttons. Click on the "Report design" button and go to the FastReport .NET designer. Let's add fields from the dataset to the report template using drag and drop, and then add the "Employees" heading to the report. After that, set AutoWidth = true property for the text objects. Let's save our report template with the "Report" name in the folder with the ReportPDF_Core_WinFormsApp project. After saving, close the designer and application. Let's uncomment the line in the btnExportWithDialog_Click method to make our saved report load when the designer is opened: ``` report.Load(@"..\..\..\Report.frx"); ``` Add a click handler for the "Export to PDF" button with a dialog box: ``` private void btnExportWithDialog_Click(object sender, EventArgs e) { // create report instance Report report = new Report(); // load the existing report report.Load(@"..\..\..\Report.frx"); // register the dataset report.RegisterData(_fDataSet); // run the report report.Prepare(); // create export instance PDFExport export = new PDFExport(); export.Export(report); // free resources used by report report.Dispose(); } ``` Run the project and click on the "Export to PDF with dialog box" button: A dialog box with PDF export settings will open. Select "Open after export" and click on "OK". Save to a PDF project folder called "Report". After the export is completed, the PDF file will open automatically: Thus, we got a simple report/PDF document built from a dataset. Let’s also check the option of the so-called “silent” PDF export without dialog boxes. Add a click handler for the "Silent export" button: ``` private void btnSilentExport_Click(object sender, EventArgs e) { // create report instance Report report = new Report(); // load the existing report report.Load(@"..\..\..\Report.frx"); // register the dataset report.RegisterData(_fDataSet); // run the report report.Prepare(); // run the report PDFExport export = new PDFExport(); // opening after export export.OpenAfterExport = true; // export the report report.Export(export, "Result.pdf"); // free resources used by report report.Dispose(); } ``` Run the project and click on the "Silent export" button. It will export instantly and a PDF file called "Result" will open, which is next to the exe of the running project: In this article, we have reviewed the pull of JetBrains Rider (C#) + .NET Core + WinForms + FastReport .NET + Windows 11 and received a PDF report built from a dataset. And of course, we made sure that it is easy to use the .NET platform without Microsoft Visual Studio. Tags: .NET, PDF, C#, Report, Windows, JetBrains Rider ### Creating an Open Document Text (ODT) file from Delphi URL: https://www.fast-report.com/blogs/creating-odt-delphi Summary: Features and scope of Open Document Text (ODT) in various editors, saving in ODT from Delphi code and detailed comparison with Microsoft Word 2007 XML Features and scope of Open Document Text (ODT) in various editors, saving in ODT from Delphi code and detailed comparison with Microsoft Word 2007 XML Features and scope of Open Document Text (ODT) in various editors, saving in ODT from Delphi code and detailed comparison with Microsoft Word 2007 XML The ODT file extension is used for Open Document text files, which are usually created using the OpenOffice or LibreOffice word processor apps. This document format is based on the XML markup language and therefore easy to convert. To understand what kind of format it is, it’s enough to see the open standard OpenDocument Format (created by the OASIS community), directly associated with ODT. Since ODF can store and exchange office documents, it also includes the Open Document Text file extension, which contains various reports, notes, books and so on. We talked more about the ODF format in this article. The ODT files became especially popular not long ago, in 2014, when the Google Docs web applications, along with Sheet and Slides, started supporting the ODF standard, so users had the opportunity to save text documents in the .odt format and this file extension started becoming more and more popular. These files are easy to open and thanks to the XML markup language you can easily convert them to other formats using the appropriate utilities. To correctly open a file with the ODT extension, you need to use the office suites such as LibreOffice, StarOffice, OpenOffice – they allow you to freely convert and edit files of this format. If the user tries to open an ODT file using the Microsoft Office application, he will need to install the ODF Sun Plugin for MS Office. Many PC owners open ODT files using Corel WordPerfect Office, there are also NeoOffice and Lotus Symphony. In my opinion, the choice is wide! Saving in ODT format from Delphi using FastReport Why FastReport? Because it is designed for generating documents! First of all, we should already have a compiled project with FastReport implemented with the Export to Open Documents Text component, as well as the generated report (there is a separate article on creating reports). Run the application and call export from the preview window (at the end of this article there is a way how to save the .ODT file directly from the code), a settings window will appear: FastReport tools allow you to choose which pages of our document to export, certain pages or a range. Export settings – whether to set a better visual correspondence with the original version (WYSIWYG), use page breaks, export as a continuous document that skips headers and footers, or export a background – graphic objects, that are used as a background of the report page. As usual, you can specify where to save your file (in the local storage, send as E-mail, upload to FTP or cloud storage). Open after export - the resulting file will be opened immediately after export by any software associated with ODT files. Code for saving in Open Document Text format directly from Delphi / Lazarus Saving in ODT ``` procedure TForm1.Button2Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxODTExport1.PageNumbers := '2-3'; {Set whether to generate a continuous document} frxODTExport1.SingleSheet := False; {Set whether to export the page breaks so that when printing the pages correspond to the pages of the generated report} frxODTExport1.ExportPageBreaks := True; {Set WYSIWYG} frxODTExport1.Wysiwyg := True; {Set whether to export the background} frxODTExport1.Background := True; {Set whether to open the resulting file after export} frxODTExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxODTExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxODTExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxODTExport1.FileName := 'C:\Output\test.odt'; {Export the report} frxReport1.Export(frxODTExport1); end; ``` Comparison of Microsoft Word 2007 XML and Open Document Text So what is better to use? Let’s learn about their base. Both of them are based on the XML markup language. XML is a technology designed to manage structured data and display that data as a human-readable text file. XML conforms to industry standards and can be processed by many databases and applications. Using XML, many developers can create their own customized tags, data structures, and schemas. In general, XML greatly facilitates the definition, transfer, validation, and interpretation of data in various databases, applications, and organizations. This means that both files are zip archives renamed as .docs / .odt. Let’s talk about the features and functionality. Attaching your comments to specific parts of a document makes your feedback more clear; there is a “Notes” function for this. When you save the document in .odt format and open it again in Word 2007, comments about a group of words becomes a single point. The single point is usually indicated at the end of the group of words. Tables are not supported in comments. The contents of the table are maintained in the comment but the structure is lost. Speaking about the documents and data protection, we should remember about the “Document Protection” and “Information rights management (IRM)” functions. When you save a Word 2007 document in ODT format, this function is deleted; you cannot open such files. Though everyone’s favorite correction function, which saved many of us, will not work in ODT or rather all changes are accepted and your information may suffer. References and headers are converted to plain text, and footnotes simply disappear. Frames are partially supported. When saving a Word 2007 document in ODT format frames are converted to text fields; bindings to some field areas are not supported. If unsupported content is present, the frame is deleted, but not the content itself. This includes tables, auto shapes, text fields, frames, and SmartArt graphics. When you save the Word 2007 document in .odt format, continuous section breaks might lose some properties, such as top/bottom margins, headers/footers, borders, and line numbering. Tables are partially Supported. ODT format doesn’t support tables with more than 64 columns and theme formatting is converted to cell level formatting. Text boxes cannot be nested and text orientation in a table cell is not supported. Speaking about graphic elements, something works in any format but something is not supported at all. Word does not support groups of objects so when you open an OpenDocument file, the objects are ungrouped. This applies to all objects grouped with a diagram, as well as to drawings grouped with a figure, caption or OLE object. The visibility of objects may change. Invisible objects become visible after saving the file in .odt and opening again in Word. I can go on and on, but just highlighted the most interesting functions. You can find a detailed comparison table here. There is not much difference in file size. A Word document is a bit bigger because of encryption support; and ODT file doesn’t support it. We used these fish as an example; this document has a lot of text, tabular data and 30 photographs. See screenshots for clarity: Let’s sum things up. Both formats are modern, open (which is important), supported by many text editors. The advantage of ODT is open source and OASIS community support, while DOCX is supported by Microsoft only which has now turned to Open Source initiatives. The choice is up to you and your customer – anyways, you can count on the creation of high-quality documents that support FastReport standards.  Tags: VCL, Export, Lazarus, FastReport, Delphi ### Creating an Open Documents Spreadsheet from Delphi / C++Builder / Lazarus URL: https://www.fast-report.com/blogs/open-documents-spreadsheets-delphi Summary: We tell you about the Open Documents Spreadsheet format and save it in ODS from the code We tell you about the Open Documents Spreadsheet format and save it in ODS from the code We tell you about the Open Documents Spreadsheet format and save it in ODS from the code Summary of ODS and ODF ODS is an open format for spreadsheets made in accordance with the OpenDocument Format (ODF) standard. This format is distributed free of charge and uses the standards of the International Organization for Standardization. The standard was developed by OASIS technical committee and was based on the XML format; it was approved for release as an ISO and IEC International Standard under the name ISO/IEC 26300 on May 1, 2006. NATO made the Open Document Format (ODF) standard mandatory to support interoperability among the various national governments. Many countries have adopted ODF as a state standard. ODF spreadsheets (one of the varieties of ODS) are simple, interactive files objects used to analyze, organize, and store all kinds of spreadsheet-based data. ODS resources can be opened with any modern office suite, OpenOffice, LibreOffice Suite and MS Office (since 2007). Since 2014, the ODF standard has been added to the Google Docs, Sheets, and Slides web applications. Now you can open, edit and save files with the .odt (text documents), .ods (spreadsheets) and .odp (presentations) extensions. On Android phones and tablets, the most comprehensive support of ods files is implemented in the AndrOpen Office application. Each ODF document is stored in a zip archive, therefore, to open this document, it is enough to rename its extension to .zip and open it with any zip archiver. After that we will see at least five .xml files and several directories. There is so-called metadata in these xml files, in addition to the actual content of the document. It is the additional data that allows you to set specific parameters for the text. For example, font type and size, text position on the page, print or display options. The XML metadata description standard (eXtend Markup Language) is gaining the most popularity nowadays. The main requirement of this standard is being user-friendly: xml documents should be easily readable using the simplest word processors and xml-markup should be simple to understand by a person. ODF is one of numerous implementations of the XML standard. Therefore, after opening the ODF document as a ZIP archive, it won’t be a big deal to understand the structure of files and folders by their names. Especially for those who at least once in their life created html pages, at least at the same level of “Hello, World!” stuff. Content.xml is the main content file and style.xml contains the style information. Folders can contain multimedia files: pictures, audio and video. In general, the ODF document is something like a web site from the times of static html pages. Now we learned about the format itself, but how do we save a report with the .ods extension? In fact, it’s extremely easy. We can create the simplest document and unzip it, as mentioned above. Let me remind you that the standard is open. Or… we can do it our favorite way! Saving in .ODS format from Delphi using FastReport Before saving an .ods file, you should already have a compiled project with FastReport implemented with the Export to Open Documents Spreadsheet component, as well as the generated report (there is a separate article on creating repots). Let me remind you again – yes, you can use internal sources of the application and databases as a data source for your report. Run the application and call export from the preview window (at the end of this article there is a way how to save the .ODS file directly from the code), a settings window will appear: FastReport tools allow you to choose which pages of our document to export, certain pages or a range. Export settings – whether to set a better visual correspondence with the original version (WYSIWYG), use page breaks , export as a continuous document that skips headers and footers, or export a background – graphic objects, that are used as a background of the report page. As usual, you can specify where to save your file (in the local storage, send as E-mail, upload to FTP or cloud storage). Open after export - the resulting file will be opened immediately after export by any software associated with ODS files. Full code for saving in Open Document Spreadsheet format directly from Delphi / Lazarus Saving to ODS ``` procedure TForm1.Button1Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxODSExport1.PageNumbers := '2-3'; {Set whether to generate a continuous document} frxODSExport1.SingleSheet := False; {Set whether to export the page breaks so that when printing the pages correspond to the pages of the generated report} frxODSExport1.ExportPageBreaks := True; {Set WYSIWYG} frxODSExport1.Wysiwyg := True; {Set whether to export the background} frxODSExport1.Background := True; {Set whether to open the resulting file after export} frxODSExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxODSExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxODSExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxODSExport1.FileName := 'C:\Output\test.ods'; {Export the report} frxReport1.Export(frxODSExport1); end; ``` So, quickly and easily we can make our application to generate modern global format files.  Tags: VCL, Export, Lazarus, FastReport, Delphi ### Creating custom line styles in FastReport .NET URL: https://www.fast-report.com/blogs/custom-line-dotnet Summary: With DashPattern, you can set a custom pattern to create a unique style of lines of PolyLine, Polygon, LineObject, and ShapeObject With DashPattern, you can set a custom pattern to create a unique style of lines of PolyLine, Polygon, LineObject, and ShapeObject With DashPattern, you can set a custom pattern to create a unique style of lines of PolyLine, Polygon, LineObject, and ShapeObject In the latest update of FastReport .NET 2024.1, a new property called " DashPattern " has been added for PolyLineObject, PolygonObject, LineObject, and ShapeObject. This property allows users to define a custom pattern to create a unique line style in cases where the desired pattern is not available in the default set. The custom pattern is represented by an array of values, which can be set through the collection editor or manually. The elements in the array represent the length of each dash and the gap in the pattern. The first element sets the length of the dash, the second element sets the length of the gap, the third element sets the length of the dash, and so on. In the example provided above: 5 represents the length of the dash, 3 represents the length of the gap, 2 represents the length of the dash, and 1 represents the length of the gap. Each element should be a non-zero positive number; otherwise, its value is replaced with 1. For the proper display of the custom pattern, the pattern array should have an even number of elements—2, 4, and so on. If the array has an odd number of elements, the pattern behaves as follows (using the example array 5, 3, 2): a dash of length 5 is drawn, followed by a gap of length 3, another dash of length 2, a gap of length 0, then a dash of length 5, and so on. If there is one value in the pattern array, then a solid line is drawn (using the same principle). The length of each dash and gap in the custom pattern is the product of the array element value and the line thickness. It means that as the line thickness increases, the length of the dash and gap will also increase. This mechanic can be visually observed in the example below. The same custom pattern, with different line thicknesses, creates completely different line styles. PDF export is supported for objects that use the DashPattern property. It enhances the ability to customize line and outline styles when saving a report in PDF format. Tags: .NET, FastReport, Designer, Customization ### Creating ITF-14 barcodes in .NET applications URL: https://www.fast-report.com/blogs/creating-ITF-14-in-net-reports Summary: ITF-14 is a two-band numeric code, otherwise known as a high-density code, which can only encode numbers in an even number ITF-14 is a two-band numeric code, otherwise known as a high-density code, which can only encode numbers in an even number ITF-14 is a two-band numeric code, otherwise known as a high-density code, which can only encode numbers in an even number ITF-14 (Interleaved Two of Five) is a two-band numeric code, otherwise known as a high-density code, which can only encode numbers in an even number. Each barcode encodes an odd number with a dark line and an even number with a space in between. To encode an odd number of digits, you must suffix the left-most (highest) digit with a zero. The specifics of coding will be explained later. The implementation of barcode ITF-14 or interleaved 2 of 5 is used to encode the Global Trade Item Number. The Global Trade Item Number (GTIN) is a trade item identifier developed  by GS1 . It is an international organization dedicated to the standardization of record-keeping and bar-coding of logistical units. GS1 identifiers are used to search for product information in a database either manually or by entering the number through a barcode scanner pointed at the barcode. Let's take a brief look at barcode standards. Two main barcode standards have been established: EAN/UCC-13 for single item. European Article Number, EAN (European Article Number), afterwards also known as International Article Number, the European barcode standard designed to encode product and manufacturer identification. ISO/IEC 15420:2009 Information technology — Automatic identification and data capture techniques — EAN/UPC bar code symbology specification . Product number EAN/UCC-13 has the following structure: — first 2-3 numbers — country code of registration for EAN Russia 460-469; 400-440 Germany; 590 Poland; 84 Spain; 00-09 USA and Canada; 560 Portugal; 840-849 Spain; 789-790-Brazil. — next 4-5 numbers – is the business registration number within the national organisation; — the next group of numbers refers to the sequential number of the product within the company; — the last 13th digit is the checksum or check digit. It is calculated from the previous twelve. It is important to remember that the EAN barcode is used to uniquely identify products. The ITF-14 barcode is used to automate the inventory of goods placed in individual or group transport packaging. The computer accounting system determines not only the type of goods in the package, but also their quantity. In simple terms, the ITF-14 code group is a subset of the EAN-13 code and differs from it by an additional first digit. ITF-14 are commonly used for printing on corrugated cardboard, for labelling cardboard boxes, crates or pallets. They are widely used by retailers, manufacturers and distributors for precise logistics and stock handling. They can also be found in luggage identification at airports, airline ticket numbering, postal item identification. Here is one example of an ITF-14 box-based application from MilkyWay. The ITF barcode can be printed not only on labels, but also directly on the walls of cartons, corrugated boxes or any other surface of rough texture. Even then it will be successfully read by scanners. Here is another example from life based on the XEROX 008R13041 staple cartridge. Because the ITF-14 barcode is designed to identify goods in shipping containers - it does not provide for processing at POS terminals. Coding features The ITF-14 always encodes 14 digits, but we only enter 13 digits. Why? I'll give you an example of the scheme: The indicator is an indication of the packaging level for a particular carton. This unambiguous prefix can range from 0 to 8. (e.g. 1 for box, 2 for crate, etc.). The GS1 company prefix can be 7 to 10 digits long and is assigned to uniquely identify the owner of a particular brand. Suppliers must obtain this prefix directly from GS1 to uniquely identify their company. Item reference - refers to the same product number used for the GTIN item level when the carton consists of the same item. Cartons with a product range are assigned a new product number. The check digit is the last digit of a given barcode, which is the calculated check sum, but it is not determined by all previous digits, but only by the 12 following the first digit. Using the MOD10 algorithm, the calculated checksum prevents substitution errors. The thick black border around the barcode is called the Bearer Bar . This bar balances the pressure created by the print plate across the bar code surface and improves readability by reducing the likelihood of an incomplete character being scanned. ITF-14 is available with visible or concealed vertical support bars. Size - The two components that define the width of an ITF-14 barcode symbol are the ratio of the width to the narrow part. This ratio remains constant and should always be between 2.25:1 and 3:1. Let's move on to practice - how to do-quick ITF-14 in your .NET project in MS Visual Studio? FastReport .NET to the rescue! There is such an object among barcodes! Setting up the ITF-14 in the designer  Add to the Barcode sheet and select exactly ITF-14. Barcodes 2/5 Interleaved, 2/5 Industrial, 2/5 Matrix are also Interleaved Two of Five , but these are completely different objects.  You can read more about them here. I'll show you the ITF-14 and the 2/5 Interleaved as an example. As you can see, the difference is obvious. Next we see a large number of properties for more fine-tuning, but let's focus on some specific ones: "Angle" - This property allows you to set the rotation of the object to one of the fixed angles - 0, 90, 180, 270 degrees. "Zoom" - Defines the scale of the barcode. This property is used only together with "Auto Zoom" property. “AutoSize” – If this property is enabled, the object will be stretched to show the whole barcode. If disabled, the barcode will be stretched to the size of the object. "ShowText" – Defines whether the text at the bottom of the barcode should be shown. "DataColumn" – Data field from which to load object text. "Expression"– An expression that returns the text of the object. "Text" – text ogject. "Padding" – Allows you to set the indentation from the edges of the object, in pixels. "WideBarRatio" – All linear barcodes have this property. It defines the relative size of the wide bars of a barcode. "CalcCheckSum" – Many linear barcodes have this feature. It determines whether the checksum should be read automatically. If disabled, the checksum must be present in the text of the object. "DrawVerticalBearerBars" – If this property is enabled, the object will have side lines displayed. If disabled, the barcode will have the following appearance: Comparison of ITF-14 & interleaved 2 of 5 Speaking of these two barcodes, interleaved 2 of 5 is a dimensionless version of ITF-14, because ITF-14 has a strict number of characters, namely 13 + 1 checksum. Interleaved 2 of 5 can also contain those 13 characters. Let me show you an example: The first is ITF-14 and underneath is Interleaved 2 of 5. The values are coded the same and the bars look the same. The widths are different because of the different standards. It follows that if the same 13 characters are encoded in the interleaved 2 of 5, we get ITF-14, but without any special design for this standard - only the same values. Creating ITF-14 with code You can add a barcode object either in the user application code when you create a report from the code. Let's look at an example of creating a report in code, and adding an ITF-14 barcode object to it: Creating and outputting ITF-14 barcodes in.NET applications ``` //Create report object Report report = new Report(); //Ceate report page ReportPage page = new ReportPage(); //Create unique name page.CreateUniqueName(); //Add the page to report collection report.Pages.Add(page); //create data band DataBand dataBand = new DataBand(); //Create band with unique name dataBand.CreateUniqueName(); //Add it to band collection page.Bands.Add(dataBand);   //Create barcode object FastReport.Barcode.BarcodeObject barcode = new FastReport.Barcode.BarcodeObject(); //Set the barcode type barcode.Barcode = new FastReport.Barcode.BarcodeITF14(); //Set the code number barcode.Text = "597861558"; //Put the barcode on the page barcode.Parent = dataBand; //Set the object dimensions barcode.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 3); //Show report report.Show(); ``` So, ITF-14 encodes only numbers and is only used on boxes with EAN/UCC-13 barcode item inside. So, with support for ITF-14 and other barcodes, FastReport.NET allows you to create complete reports and labels for trade, logistics and inventory management. Tags: .NET, FastReport, Barcode ### Creating Master-Detail report from unrelated tables URL: https://www.fast-report.com/blogs/create-master-detail-report Summary: To create a report of the “Master – Detail” type, you will need to create a relationship between tables by key. See how to do it. To create a report of the “Master – Detail” type, you will need to create a relationship between tables by key. See how to do it. To create a report of the “Master – Detail” type, you will need to create a relationship between tables by key. See how to do it. It is often needed to create a Master-Detail report type, when the main table acts as a grouping one. One record in the main table corresponds to the number of records from the detail table. To create this report, we need to create a relationship between the tables by a key. Let us exam the procedure of creating such a report. Create a blank report. Add a data source, where there will be two tables. Detailed table must have n external key that will be correlated with the primary key of the Master table.                                  The primary key of the table “Categories” is “CategoryID”. “Detailed Products” table has the same name field. Usually the external key is also called as a primary key of the main table, but this is not required. For example, in this table, this field could be called “CatID” or “Category”. To create a relationship between tables, open the “Actions” menu in the "Data" window choose the “New Relation” option. In relation editor, select the “parent” and “child” tables: Choose the fields for relation below. For the Master table it is “CategoryID”. In the Detail table the key field also called “CategoryID”. It must be mentioned, that after adding the fields, one more string was added to add relations in other fields. It is needed if the relation between the tables is performed by several fields. In our case this is not necessary. Close the window by clicking “OK”. In the “Products” table there was a relationship “Categories_Products”. If you expand it, you will see the fields from the table “Categories”. Now let us make a report template. A typical report has only one Data band. But we need one more special subordinate Data band. To add it right-click on the data band. Select the menu item “Add Detail Data Band”. Add the Header band for the Detail data band. From the Reports menu select Configure bands. Select Detail data band and press the button “Add”. From the drop - down list select the Header. Now, place the fields from the “Categories” table on the Master data band and the “Products” table fields on the Detail data band. The result is the following template: Now run the report: In this work a creation of a Master-Detail report type has been examined. Such a report requires creating a relation between the needed tables. Moreover, the level of nesting of the bands is not limited. It means that the detail band "data" may also have a detail band. Tags: .NET, .NET, FastReport, FastReport, Data Source, Data Source ### Creating PDF report in JetBrains Rider (C#) on Ubuntu 22.04.1 LTS URL: https://www.fast-report.com/blogs/jetbrains-rider-ubuntu Summary: In this article, we'll take a look at the world of the .NET platform on Ubuntu 22.04.1 LTS and create a PDF exportable report. In this article, we'll take a look at the world of the .NET platform on Ubuntu 22.04.1 LTS and create a PDF exportable report. In this article, we'll take a look at the world of the .NET platform on Ubuntu 22.04.1 LTS and create a PDF exportable report. In this article, we'll take a look at the world of the .NET platform on Ubuntu 22.04.1 LTS without using Microsoft Visual Studio, as it can't be installed on Linux, and create a PDF exportable report. The current analog of Visual Studio is, of course, JetBrains Rider. It is a cross-platform .NET IDE developed by JetBrains. It supports C#, VB.NET, and F# programming languages. We will not discuss which IDE is better or worse. Let's just create, build, and export a PDF report/document from JetBrains Rider using FastReport .NET. What do you need to get started? At least, you need to have the JetBrains Rider IDE installed on your PC. And also take into account the Linux features and make additional settings. First of all, for Linux, we need additional libraries that may not be installed by default: libgdiplus; libx11-dev. Linux setup with the example of Ubuntu 22.04.1 LTS: 1. Open console; 2. Update apt-get and install packages: sudo apt-get update; sudo apt-get install libgdiplus; Next, create a new solution by selecting “New Solution”. The next step is to set up the project. Select the Console Application project type in the .NET/.NET Core section. Then we give a name to the project, as an example, we use "ReportPDF_Core_ConsoleApp." After we click on the Console Application type, C# language, NET 6.0 framework. Let's start by adding a simple sample dataset for our report in our application code. To do this, add to Program.cs: ``` using System.Data; ``` Let's add a variable next: ``` // creating a dataset set DataSet dataSet = new DataSet(); ``` Let's add the CreateDataSet function, in which we will create and fill in the data set: ``` void CreateDataSet() { // create a simple dataset with one table // create a simple dataset dataSet = new DataSet();   // create a table DataTable table = new DataTable(); table.TableName = "Employees"; // adding a table to the dataset dataSet.Tables.Add(table);   // adding data to a table table.Columns.Add("ID", typeof(int)); table.Columns.Add("Name", typeof(string)); table.Rows.Add(1, "Andrew Fuller"); table.Rows.Add(2, "Nancy Davolio"); table.Rows.Add(3, "Margaret Peacock"); } ``` And add a call to the CreateDataSet function: ``` //creating a dataset object DataSet dataSet = new DataSet(); CreateDataSet(); ``` What is the easiest way to get FastReport .NET working in JetBrains Rider? To use our  Private NuGet-server from Fast Reports . This article describes how to add NuGet packages after purchasing FastReport .NET. Here is a brief instruction so as not to search for another article. Click on the NuGet tab at the bottom of the IDE, and click on the Sources tab. Now we add a new repository by clicking on the "+" and enter the necessary data: - Name—source name without spaces (for example FastReport); - URL—https://nuget.fast-report.com/api/v3/index.json; - User—email from Fast Reports account; - Password—password from Fast Reports account. You will see the repository: We will now install the FastReport Core package. To do this, go to the Packages tab and filter the packages by the FastReport repository. And of course, install the found package. If it was successful, you will receive a notification. Next, let’s create a template from the code, for this we will do the following. Add to Program.cs: ``` using System.Drawing; using FastReport; using FastReport.Export.Pdf; using FastReport.Utils; ``` Next, add CreateDataSet to Program.cs below: ``` Report report = new Report(); CreateReportTemplate(); ExportToPDF(); ``` Then add the function for creating a report template CreateReportTemplate: ``` void CreateReportTemplate() { // adding a report page ReportPage page = new ReportPage();   // creating a date band DataBand data = new DataBand(); PageHeaderBand dataText = new PageHeaderBand();   //creating a header ReportTitleBand titleBand = new ReportTitleBand(); TextObject employeeIdText = new TextObject(); TextObject employeeNameText = new TextObject(); TextObject idText = new TextObject(); TextObject nameText = new TextObject(); TextObject titleText = new TextObject(); //registering the data source report.RegisterData(dataSet); //enabling on the data table report.GetDataSource("Employees").Enabled = true; //adding a page to the template report.Pages.Add(page); // add to the page: data,data Text, titleBand // and set the unique name of the page page.AddChild(data); page.AddChild(dataText); page.AddChild(titleBand); page.CreateUniqueName(); // set the unique name titleBand // and set the band settings titleBand.CreateUniqueName(); titleBand.Height = Units.Centimeters * 1.5f; titleText.Bounds = new RectangleF(300, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); titleText.Text = "Employees"; titleText.Font = new Font("Arial", 14, FontStyle.Bold); titleText.VertAlign = VertAlign.Center;   // set the unique name data // and set the data settings data.CreateUniqueName(); data.DataSource = report.GetDataSource("Employees"); data.Height = Units.Centimeters * 0.5f;   // set a unique dataText name // and set the dataText settings dataText.CreateUniqueName(); dataText.Height = Units.Centimeters * 0.8f;   // setting the unique name employeeIdText // and set the employeeIdText, idText settings employeeIdText.Parent = data; employeeIdText.CreateUniqueName(); employeeIdText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); idText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); idText.Text = "ID"; employeeIdText.Text = "[Employees.ID]";   // set the unique name employeeNameText // and set the employeeNameText, nameText settings employeeNameText.Parent = data; employeeNameText.CreateUniqueName(); employeeNameText.Bounds = new RectangleF(50, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); nameText.Bounds = new RectangleF(50, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); nameText.Text = "Name"; employeeNameText.Text = "[Employees.Name]";   // add on data band: employeeIdText, employeeNameText data.AddChild(employeeIdText); data.AddChild(employeeNameText);   // add on dataText band: idText, nameText dataText.AddChild(idText); dataText.AddChild(nameText);   // add on titleBand band: itleText titleBand.AddChild(titleText); } ``` Next, add the function to create an ExportToPDF report template and name the report export "Report.pdf": ``` void ExportToPDF() { // running the report report.Prepare(); // creating an export instance PDFExport export = new PDFExport(); report.Export(export, "test.pdf"); // disposing the resources used by the report report.Dispose(); } ``` Let's start the console application. If you received the response Process finished with exit code 0, then you did everything right, open the report, in our case, it is the path /home/alex/RiderProjects/ReportPDF_Core_ConsoleApp/ReportPDF_Core_ConsoleApp/bin/Debug/net6.0/test.pdf: Thus, we got a simple report/PDF document built from a dataset. In this article, we have discussed the binding JetBrains Rider (C#) + .NET Core + Console Application + FastReport .NET Core + Linux (Ubuntu 22.04.1 LTS) and got a report built from a PDF dataset. And of course, we made sure that the .NET platform can be easily used without Microsoft Visual Studio since Linux simply does not have it. Of course, we have not told you about creating a GUI application on Linux, which can, for example, be done using the Mono framework, but you can find articles on how to do this on our site. Full program listing ``` using System.Data; using System.Drawing; using FastReport; using FastReport.Export.Pdf; using FastReport.Utils;   //creating a data set DataSet dataSet = new DataSet(); CreateDataSet(); //creating a report Report report = new Report();   CreateReportTemplate(); ExportToPDF();   void CreateReportTemplate() { // add a report page ReportPage page = new ReportPage();   // create a data band DataBand data = new DataBand(); PageHeaderBand dataText = new PageHeaderBand();   //create a title ReportTitleBand titleBand = new ReportTitleBand(); TextObject employeeIdText = new TextObject(); TextObject employeeNameText = new TextObject(); TextObject idText = new TextObject(); TextObject nameText = new TextObject(); TextObject titleText = new TextObject(); //register a data source report.RegisterData(dataSet); //enable a data table report.GetDataSource("Employees").Enabled = true; //add a page to the template report.Pages.Add(page); //add on a page: data,dataText, titleBand // and set the unique page name page.AddChild(data); page.AddChild(dataText); page.AddChild(titleBand); page.CreateUniqueName(); // set the unique name titleBand // and set the band settings titleBand.CreateUniqueName(); titleBand.Height = Units.Centimeters * 1.5f; titleText.Bounds = new RectangleF(300, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); titleText.Text = "Employees"; titleText.Font = new Font("Arial", 14, FontStyle.Bold); titleText.VertAlign = VertAlign.Center;   // create the unique data name // and set the data settings data.CreateUniqueName(); data.DataSource = report.GetDataSource("Employees"); data.Height = Units.Centimeters * 0.5f;   // create a unique dataText name // and set dataText settings dataText.CreateUniqueName(); dataText.Height = Units.Centimeters * 0.8f;   // create the unique employeeIdText name // and set the employeeIdText, idText settings employeeIdText.Parent = data; employeeIdText.CreateUniqueName(); employeeIdText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); idText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); idText.Text = "ID"; employeeIdText.Text = "[Employees.ID]";   // create the unique name employeeNameText // and set the employeeNameText, nameText settings employeeNameText.Parent = data; employeeNameText.CreateUniqueName(); employeeNameText.Bounds = new RectangleF(50, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); nameText.Bounds = new RectangleF(50, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); nameText.Text = "Name"; employeeNameText.Text = "[Employees.Name]";   // and add on data band: employeeIdText, employeeNameText data.AddChild(employeeIdText); data.AddChild(employeeNameText);   // add on dataText band: idText, nameText dataText.AddChild(idText); dataText.AddChild(nameText);   // add on titleBand band: itleText titleBand.AddChild(titleText); }   void ExportToPDF() { report.Prepare(); PDFExport export = new PDFExport(); report.Export(export, "test.pdf"); report.Dispose(); }   void CreateDataSet() { // create a simple dataset with a single table   // create a simple dataset dataSet = new DataSet();   // create a table DataTable table = new DataTable(); table.TableName = "Employees"; // add the table to dataset dataSet.Tables.Add(table);   // add data to the table table.Columns.Add("ID", typeof(int)); table.Columns.Add("Name", typeof(string)); table.Rows.Add(1, "Andrew Fuller"); table.Rows.Add(2, "Nancy Davolio"); table.Rows.Add(3, "Margaret Peacock"); } ``` Tags: .NET, FastReport, Core, PDF, C#, Report, Visual Basic, Libgdiplus, AltLinux, JetBrains Rider ### Creating report from user application in FastReport.NET URL: https://www.fast-report.com/blogs/create-report-user-application-net Summary: FastReport .NET pleased with an interesting feature - creating a report from code instead of separate files with report templates FastReport .NET pleased with an interesting feature - creating a report from code instead of separate files with report templates FastReport .NET pleased with an interesting feature - creating a report from code instead of separate files with report templates At the new work place I got to deal with the report generator FastReport .NET. Previously, I had to deal with other reporting systems, for example, Crystal Reports and Microsoft Reporting Services. However, FastReport pleasantly surprised me. It's a really powerful tool with broad functionality. One of my favorite features of FastReport .Net is the ability to create reports directly from the user application code. In this article I want to look at the example of this feature. It comes in handy when you do not need a bunch of files that come with the exe-file. In addition, you can fully control the creation of self-report, changing the appearance of the object of the report, depending on the application logic. First of all, I will show the difference between building a report from the code of the user application from the classic development of a report template in a special designer. Usually, the report generator provides a special designer to design a report template. This may be the component IDE, or just external program. Developer places components on the page of the report and specifies their properties. This is similar to designing a form in application Windows Forms application. In addition to such classic ways to create a report template, FastReport allows you to create a template using the same components but with the help of code in the application. You can also create a report object, add components to it, and configure the data source. With some practice, the creation of a report from the code takes a little longer than in the visual editor. Interestingly, with the result that such a report template can be viewed in the same visual editor (the designer) and save to file. Let's have a look at the example. Create a Windows Forms application in the language C # (of course FastReport .NET should be installed at this point). Place a button on the form, which will launch our report. Looking ahead, I will say that we will not only show the report in preview mode, but also make its exports to PDF. Therefore add CheckBox: Create a button click event handler. Here is the entire code of the application. First of all, add a reference to the FastReport.dll (which is in the pack FastReport .Net). Also, add the library FastReport, FastReport.Utils and FastReport.Data in using. Create an instance of Report: ``` private void RunBtn_Click(object sender, EventArgs e) { //Create instance of class Report Report report = new Report(); } ```  Our report will display data from the database, so you need to create a data source: ``` //load data DataSet ds = new DataSet(); ds.ReadXml(AppFolder + "\\nwind.xml"); ``` I took the database from the delivery of FastReport .Net from the folder Reports. Now you need to register the data source in the report: ``` //Register data source report.RegisterData(ds); ```  To use the table of the registered data source, you need to enable it: ``` //Enable data table report.GetDataSource("Products").Enabled = true; ```  The preparatory work can be considered done. Moving on to creation of the report template. Create the report page: ``` //Add report page ReportPage page = new ReportPage(); ```  And add it to the report: ``` report.Pages.Add(page); ```  All objects of the report need to be given unique names. You can come up with their own, and assign the property Name, or you can use a function that generates a unique name: ``` page.CreateUniqueName(); ``` So, the report page is ready for filling. Create a band "Group Header": ``` //Create GroupHeader band GroupHeaderBand group = new GroupHeaderBand(); ```  Add the created band to the page: ``` page.Bands.Add(group); group.CreateUniqueName(); ```  Set the band height: ``` group.Height = Units.Centimeters * 1; ```  Grouping condition and sort order: ``` group.Condition = "[Products.ProductName].Substring(0,1)"; group.SortOrder = FastReport.SortOrder.Ascending; ``` Now we need to fill the created band with the data. To do this, create a text object with reference to the field from the data source: ``` // create group text TextObject groupTxt = new TextObject(); ``` Important Parent parameter indicates the band, where will be placed text object: ``` groupTxt.Parent = group; groupTxt.CreateUniqueName(); ``` Set the size and the bounds of the text objects: ``` groupTxt.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 1); ``` And the text: ``` groupTxt.Font = new Font("Arial", 14, FontStyle.Bold); ``` The other settings relate to the appearance of the text:   ``` groupTxt.Text = "[[Products.ProductName].Substring(0,1)]"; groupTxt.VertAlign = VertAlign.Center; groupTxt.Fill = new LinearGradientFill(Color.LightGoldenrodYellow, Color.Gold, 90, 0.5f, 1); ``` Now the most interesting part is the creation of the band "data": ``` // create data band DataBand data = new DataBand(); ``` Assign the data band for the group: ``` group.Data = data; data.CreateUniqueName(); ``` Assign the data source for the band "data": data.DataSource = report.GetDataSource("Products"); data.Height = Units.Centimeters * 0.5f; ``` group.Data = data; data.CreateUniqueName(); ``` Here you can set the filter band with the property Filter. Now fill the band with the text object: ``` // create product name text TextObject productText = new TextObject(); productText.Parent = data; productText.CreateUniqueName(); productText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); productText.Text = "[Products.ProductName]"; ``` The group footer is made for a specific group instance. It's very convenient because it will not allow to get confused if there are multiple group headers. So, let's create the group footer: ``` // create group footer group.GroupFooter = new GroupFooterBand(); group.GroupFooter.CreateUniqueName(); group.GroupFooter.Height = Units.Centimeters * 1; ``` Add a total to the group footer. It will display the count of products in the group: ``` // create total Total groupTotal = new Total(); groupTotal.Name = "TotalRows"; ``` Set the type calculation, the band for which the calculations are performed, and the band, which will display the results. Since we define the count of items we do not need to specify a particular field for calculations (done using groupTotal.Expression). ``` groupTotal.TotalType = TotalType.Count; groupTotal.Evaluator = data; groupTotal.PrintOn = group.GroupFooter; ``` We need to add the created total to the totals dictionary of the report. To register it: ``` report.Dictionary.Totals.Add(groupTotal); ``` Like any expression to be displayed, the result is displayed through the text object:    ``` // show total in the group footer TextObject totalText = new TextObject(); totalText.Parent = group.GroupFooter; totalText.CreateUniqueName(); totalText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); totalText.Text = "Rows: [TotalRows]"; totalText.HorzAlign = HorzAlign.Right; totalText.Border.Lines = BorderLines.Top; ``` That's all. The report is ready. Now we can display it, or run in the designer. And you can immediately export it in the desired data format. Let's use a CheckBox, which we added to the form: ``` if (PDFCheckBox.Checked) { report.Prepare(); FastReport.Export.Pdf.PDFExport export = new FastReport.Export.Pdf.PDFExport(); export.Export(report); } else report.Show(); ``` If the CheckBox is checked, you will get the dialog box to save the pdf file. Otherwise, the report will be launched in preview mode. Here it should be noted that it is possible to make export even without displaying the dialog box. Like some sort of “quiet mode”. Then export will look like this: ``` export.Export(report, @"C:\Temp\ReportFromCode.pdf"); ``` where the first option - instance of the report and the second - the resulting file. What we've got the result: ``` //Create instance of class Report Report report = new Report();   //load data DataSet ds = new DataSet(); ds.ReadXml(AppFolder + "\\nwind.xml");   //Register data source report.RegisterData(ds);   //Enable data table report.GetDataSource("Products").Enabled = true;   //Add report page ReportPage page = new ReportPage(); report.Pages.Add(page); page.CreateUniqueName();   //Create GroupHeader band GroupHeaderBand group = new GroupHeaderBand(); page.Bands.Add(group); group.CreateUniqueName(); group.Height = Units.Centimeters * 1; group.Condition = "[Products.ProductName].Substring(0,1)"; group.SortOrder = FastReport.SortOrder.Ascending;   // create group text TextObject groupTxt = new TextObject(); groupTxt.Parent = group; groupTxt.CreateUniqueName(); groupTxt.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 1);   groupTxt.Text = "[[Products.ProductName].Substring(0,1)]"; groupTxt.Font = new Font("Arial", 14, FontStyle.Bold); groupTxt.VertAlign = VertAlign.Center; groupTxt.Fill = new LinearGradientFill(Color.LightGoldenrodYellow, Color.Gold, 90, 0.5f, 1);   // create data band DataBand data = new DataBand(); group.Data = data; data.CreateUniqueName(); data.DataSource = report.GetDataSource("Products"); data.Height = Units.Centimeters * 0.5f;   // create product name text TextObject productText = new TextObject(); productText.Parent = data; productText.CreateUniqueName(); productText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); productText.Text = "[Products.ProductName]";   // create group footer group.GroupFooter = new GroupFooterBand(); group.GroupFooter.CreateUniqueName(); group.GroupFooter.Height = Units.Centimeters * 1;   // create total Total groupTotal = new Total(); groupTotal.Name = "TotalRows"; groupTotal.TotalType = TotalType.Count; groupTotal.Evaluator = data; groupTotal.PrintOn = group.GroupFooter; report.Dictionary.Totals.Add(groupTotal);   // show total in the group footer TextObject totalText = new TextObject(); totalText.Parent = group.GroupFooter; totalText.CreateUniqueName(); totalText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); totalText.Text = "Rows: [TotalRows]"; totalText.HorzAlign = HorzAlign.Right; totalText.Border.Lines = BorderLines.Top;   if (PDFCheckBox.Checked) { report.Prepare(); FastReport.Export.Pdf.PDFExport export = new FastReport.Export.Pdf.PDFExport(); export.Export(report); //export.Export(report, @"C:\Temp\ReportFromCode.pdf"); } else report.Show(); ``` And the report itself: Let's sum up. FastReport .Net surprised is with another interesting feature – creating a report from code. When might this be useful? If you do not want to produce a bunch of individual files with the report templates or want to hide a report template within the program in order to avoid damage or modify the template. It is also convenient to change the report template during the execution of your application. This gives great flexibility to the reports and the ability to use a single template, modifying it depending on the program logic. I'm personally familiar and comfortable with using objects in the program code. Since the creation of the report is practically no different from writing basic code of application . Tags: .NET, .NET, FastReport, FastReport ### Creating the WCF service hosted in windows service URL: https://www.fast-report.com/blogs/creating-wcf-service-windows Summary: Let's take a closer look at how to create a WCF service hosted in a Windows service from FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how to create a WCF service hosted in a Windows service from FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how to create a WCF service hosted in a Windows service from FastReport .NET. Find more usefull tips and articles in our blog. Today we will create a Windows service, which will serve as the WCF service. An example will be based on the use of the library FastReport.Service.dll (WCF Service Library), which can be found in the package of FastReport .NET. Open Visual Studio and create a project WindowsService. Open the designer of Service1.cs Change the name of the service on your own. Click by right mouse button on window and select “Add Installer”. Edit the properties of the component serviceInstaller1 - set up a DisplayName. In the component properties serviceProcessInstaller1 set up the type of account for the service LocalSystem. Add references in project on System.ServiceModel and FastReport.Service.dll Create application configuration file. Copy the following text into the new app.config ```   ``` Go to the editor of Service1.cs and add the line: ``` using System.ServiceModel; ``` Then you need to modify the class of service, so that it looks like : ``` public partial class ReportService : ServiceBase { ServiceHost reportHost;   public ReportService() { InitializeComponent(); }   protected override void OnStart(string[] args) { if (reportHost != null) reportHost.Close(); reportHost = new ServiceHost(typeof(FastReport.Service.ReportService)); reportHost.Open(); }   protected override void OnStop() { reportHost.Close(); reportHost = null; } }   ``` Compile the project and make sure that there are no errors. You can install the service using the command line utility InstallUtil.exe, which comes with .NET Framework, such as : ``` C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe "C:\MyProjects\WcfService1\WindowsService1\bin\Debug\WindowsService1.exe" ``` And you can start service by command: ``` net start ReportService ``` Open web browser and check an address http://localhost:8732/FastReportService/ , which set in app.config in baseAddress. You can change folder and port on your own. Commands for stop and uninstall of the service: ``` net stop ReportService   C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /u "C:\MyProjects\WcfService1\WindowsService1\bin\Debug\WindowsService1.exe" ```  You can see this example in latest builds of FastReport .NET in folder "\Demos\C#\WCFWindowsService". Thank you for attention! Tags: .NET, WCF, FastReport, Windows ### Creating Web Service using FastReport.Service.dll URL: https://www.fast-report.com/blogs/creating-web-service-net Summary: Let's take a closer look at how to create a web service using FastReport.Service.dll works in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how to create a web service using FastReport.Service.dll works in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how to create a web service using FastReport.Service.dll works in FastReport .NET. Find more usefull tips and articles in our blog. We have an easy way to implement a web service using the library FastReport.Service.dll (WCF Service Library), which is supplied with FastReport .Net. Our example is based on creating a simple web application with a web service functions, but you can modify your existing project based on .NET Framework 4.0 or newer. Run Visual Studio and create a new ASP.NET Web Application project under .NET Framework 4.0. Add references on libraries FastReport.dll, FastReport.Bars.dll, FastReport.Service.dll Create a new text file with name ReportService.svc in site root. Add next lines in file: ``` <%@ ServiceHost Service="FastReport.Service.ReportService" %>   <%@ Assembly Name="FastReport.Service" %>   ``` Open web.config and add next sections in : ```   ``` The key "FastReport.ReportsPath" should contain a path to folder with reports. You can set demo folder «\FastReport.Net\Demos\WCF» for example.  The key "FastReport.ConnectionStringName" should contain connection string name. This line should be registered in section . Let's run our site and check the availability of a Web service by access to a file ReportService.svc. When you deploy the project on the server, be sure to check for files FastReport.dll, FastReport.Bars.dll, FastReport.Service.dll in the folder /bin. Examples of client programs can be found in the folder \FastReport.Net\Demos\C#\WCFClient and \FastReport.Net\Demos\C#\WCFWebClient. Open each project in Visual Studio and right click on ReportService and select Configure Service Reference. Specify the address of an existing web service in configuration window. To be continued . Tags: .NET, WCF, FastReport ### Crystal Reports import in FastReport .NET URL: https://www.fast-report.com/blogs/crystal-reports-import-net Summary: Let's take a closer look at how to import Crystal Reports into FastReport .NET report. Find more usefull tips and articles in our blog. Let's take a closer look at how to import Crystal Reports into FastReport .NET report. Find more usefull tips and articles in our blog. Let's take a closer look at how to import Crystal Reports into FastReport .NET report. Find more usefull tips and articles in our blog. Import Crystal Reports template Crystal Reports template it's a report created by Crystal Reports designer. These reports are stored in files with rpt extension. Importing a report template Converter is implemented as a plug-in. You can download it here, in Extras. The plugin should be compiled in Visual Studio and added in the FastReport. NET designer. To do this, go to the View menu, click Options... and add a plug-in in tab Plugins. After restarting the designer in Open File window will be filter Crystal Reports file (*. rpt). About how to build and connect the plug-in you can learn in the readme.txt.  The next pictures shows the Crystal Reports template (left) and the same report imported in FastReport. NET (right).  Tags: .NET, FastReport, Converter ### Customizing the ready report Viewer in FastReport .NET URL: https://www.fast-report.com/blogs/disable-printing Summary: The article tells about the possibility to hide unnecessary items Report Preview menu control of FastReport .NET. The article tells about the possibility to hide unnecessary items Report Preview menu control of FastReport .NET. The article tells about the possibility to hide unnecessary items Report Preview menu control of FastReport .NET. The main report viewing tool FastReport.Net is Viewer. This viewer has a rich toolkit for storing, exporting, printing, and other manipulations with a report. All this variety is very useful but not always necessary. For example, for users who only view and print reports export emailing is absolutely useless. Also, many people do not need a big list of available export reports. You just confused and lose time to find the right one. In such cases, we would like to leave only the necessary functionality for these users. And it can be done quite simply. This question also arose for the user of the Combit List & Label report generator. The report designer of FastReport .NET, as you know, also allows you to view the reports. To do this, he uses the same Viewer. And you can customize the list of available exports in the designer's settings. File-'Options-User Interface menu: Exports Menu button opens the settings window for export display: You can customize the display of both individual exports and the whole group. There's a Default Menu button to quickly restore your original settings. For example, we removed exports from the display to the PDF, Office, and XML format. And indeed, when we view the report, we will see that they are no longer on the list of exports: But from the report designer we can only set up a list of exports. What about other controls? To do this, you'll have to use programming skills. When creating an app that will run reports, we can set the reviewer's menu settings. For example, this code: ``` Report report = new Report(); report.Load("App_Data/Master-Detail.frx"); report.Prepare(); FastReport.Utils.Config.PreviewSettings.Buttons = PreviewButtons.Print | PreviewButtons.Design; report.ShowPrepared(); ```  Here we set the button display. To be precise  - we just name all the buttons to be displayed: Print and Design. As a result we get: Great result - nothing more. Besides the buttons also displays the page number in the input field. It cannot be removed, otherwise you won't be able to go to other pages without page navigation buttons. Now you can experiment a bit. If your application includes any logic for hiding / showing the controls in the preview, it will certainly be a useful opportunity to return everything to the initial form: Config.PreviewSettings.Buttons = PreviewButtons.All; You can go the other way and not list the buttons that should be displayed, but rather to list those that you want to exclude: Config.PreviewSettings.Buttons ^ = PreviewButtons.Email; At the same time, send e-mail button will disappear and the rest will be available. Of course, you can edit the list of available exports, by analogy with the above example. Also you can edit the export list through:  Config.PreviewSettings.Exports And you can edit the exports to the clouds: Config.PreviewSettings.Clouds Tags: .NET, FastReport, Viewer, Preview, Printing ### Customizing the report designer URL: https://www.fast-report.com/blogs/custom-report-designer Summary: The article describes how to create custom report designer for FastReport.NET report generator The article describes how to create custom report designer for FastReport.NET report generator The article describes how to create custom report designer for FastReport.NET report generator Report designer is replete with lots of features that many users do not use. Sometimes the variety of icons and menus only distracts. Therefore, many users would like to have a simplified version of the report designer with only the functions they need. This, the report designer can be customized to provide end users by embedding it in your application. In this article we will look at the way to create a custom designer items management responses, that is a custom toolbar with the desired function buttons. It is quite easy to make. The fact that the report designer component provides us with a kind of the API, to call some of its functions, such as creating, downloading and saving a report, print, report viewing, and many others. Therefore, all we need - to add a component of the report designer and create your own toolbar. Add in the form ToolStrip component. And create a panel 7 buttons: • the New - create a new report; Open - open an existing report template for editing; Save - save the report template; Preview - Preview the report; Undo - undo the last edit; Redo - redo your editing; Close - close the program. Connect fastReport.dll to the project. And for the form, we create a Load event handler: ``` public DesignerControl designer; //Set the variable for the report designer component private void Form1_Load(object sender, EventArgs e) { designer = new DesignerControl(); //Crete a copy of rport designer this.Controls.Add(designer); //Add component to the form   Report report = new Report(); //Create a report object designer.Report = report; //Pass the created empty report to the designer designer.RefreshLayout(); //Update the designer designer.Dock = DockStyle.Fill; //Set th location of the dsigner component designer.ShowMainMenu = false; //Turn off menu in the designer }   // Create a new report private void ToolStripButton1_Click(object sender, EventArgs e) { designer.cmdNew.Invoke(); } //Open a rport private void OpenBtn_Click(object sender, EventArgs e) { designer.cmdOpen.Invoke(); } //Save report private void SaveBtn_Click(object sender, EventArgs e) { designer.cmdSave.Invoke(); } //View report private void PreviewBtn_Click(object sender, EventArgs e) { designer.cmdPreview.Invoke(); } //Close program private void CloseBtn_Click(object sender, EventArgs e) { this.Dispose(); } //Undo the last action private void UndoBtn_Click(object sender, EventArgs e) { designer.cmdUndo.Invoke(); } //Redo the last action private void RedoBtn_Click(object sender, EventArgs e) { designer.cmdRedo.Invoke(); } ``` As you can see, for each button from the toolbar created, we have created a click event. In accordance with the functions of the buttons, we call the right design team. List of available commands: cmdnew – create a new report; cmdnewpage - create a new report page cmdnewdialog - create a dialog report form; cmdopen - open the existing report template for editing; cmdsave - save report template cmdsaveas - save the report template, indicating the path; cmdsaveall - save all changes; cmdclose - close the report in the designer; cmdcloseall – close all the reports in the designer; cmdpreview – view reports; cmdprintersetup - print installation cmdpagesetup - report page setup) direction, size, etc;; cmdaddata - add a data source to the report; cmdsortdatasources - sort data sources cmdchoosedata select data source; cmdundo - cancel the latest report editing; cmdredo - returns the latest editing report; cmdcut - cut to clipboard; cmdcopy - copy to clipboard; cmdpaste - paste from clipboard; • cmdformatpainer - specify picture format cmddelete - delete the report object; cmdcopypage - copy report page cmddeletepage - delete report page; cmdselectall - select pages for all objects cmdgroup - group objects cmdungroup split report objects cmdedit - edit report page settings; cmdfind - display search window; cmdreplace - display the replacement window; cmdbringtofofront - Designer's object; cmdsendtoback - the background of the design object cmdinsert - check whether the insert option is enabled; cmdinsertband - insert band; cmdrecentfiles - add a file to the list of recent files; cmdselect language - select the local design of a language; cmdviewstartpage - the designer who makes the web page start; cmdreportsettings - set report settings; cmdoptions - set designer settings; cmdreportstyles - set report styles cmdhelpcontents - display help page cmdabout - display page about; cmdwelcome - show welcome page cmdpolyselectmove, cmdpolyselectpoint, cmdpolyselectaddpoint, cmdpolyselectbezier, cmdpolyselectremovpoint - polygon settings And now let’s run our application: Looks like an ordinary report designer. But notice the upper toolbar - it's not standard. We only have the functions we need. Tags: .NET, .NET, FastReport, FastReport, Designer, Designer, Report, Report, Customization, Customization ### Data can be very scary.. URL: https://www.fast-report.com/news/Halloween-FastReport-BusinessGraphics Summary: New demo version of FastReport Business Graphics in the theme of Halloween. New demo version of FastReport Business Graphics in the theme of Halloween. Your data is extensive or collecting the dust in the dark corners of the BD? It's unreadable, which means it's uninformative. Spooky! Fear no more! We've come to the rescue with a tool of Data visualization and dressed it up in Halloween colors.  Hurry up to try our Halloween version!  Take a look at the example of Halloween data with Halloween theming: ### DataRage 2 Special Product Discount of Fast Reports URL: https://www.fast-report.com/news/datarage-discount Summary: DataRage 2 Special Product Discount of Fast Reports DataRage 2 Special Product Discount of Fast Reports As old time partner of Embarcedero and exhibitor of DataRage 2 we are offer Special Discount on Fast Reports products. You can save some coin with 20% off on your choice of Fast Reports products. Offer expires at 11:59pm on May 27, 2010 Register now visit our virtual hall and receive 20% discount for lead reporting tools for working with databases! ### Delphi Developer Days 2012 URL: https://www.fast-report.com/news/delphi-developer-days-2012 Summary: Delphi Developer Days 2012 Delphi Developer Days 2012 Fast Reports , as a gold-sponsor , is pleased to invite you to Delphi Developer Days . Delphi experts Marco Cantù and Cary Jensen are joining up again for the 2012 Delphi Developer Days tour. Delphi Developer Days 2012 visits four European / UK cities and two US cities.  March 26-27, 2012:  London, United Kingdom March 29-30, 2012:  Amsterdam, The Netherlands April 16-17, 2012:  Washington DC/Baltimore, USA April 19-20, 2012:  Chicago, USA May 14-15, 2012:  Frankfurt, Germany May 17-18, 2012:  Rome, Italy Space is limited to the first 35 people in each city. All sessions are presented in  English .  Full information you can found on  this page. ### Delphi Developer Days 2014 URL: https://www.fast-report.com/news/delphi-developer-days-2014 Summary: Delphi Developer Days 2014 Delphi Developer Days 2014 Fast Reports is proud to be a Gold Sponsor of Delphi Developer Days 2014! Delphi experts Bob Swart and Cary Jensen present the 2014 Delphi Developer Days tour. Dates and locations are: - May 5-6, 2014: Washington DC/Baltimore, USA - May 8-9, 2014: Chicago, USA - May 26-27, 2014: Frankfurt, Germany - June 12-13, 2014: Amsterdam, The Netherlands - June 18-19, 2014: London, United Kingdom Delphi Developer Days are two-day live Delphi events that provide you with the latest information on Delphi as well as practical techniques to help you improve your Delphi development skills. An agenda can be found at: http://www.DelphiDeveloperDays.com/descriptions.html Fast Reports CEO Michael Phillipenko and Lead Developer Denis Zubov will be the featured guest speakers at the Delphi Developer Days 2014 event in Amsterdam on 12 June. Their presentation is titled "Creating Reports for VCL and FireMonkey Using FastReport". ### Delphi Open Doors 2015 Event URL: https://www.fast-report.com/news/event-delphi-2015 Summary: Delphi Open Doors 2015 Event Delphi Open Doors 2015 Event Our Italian partner -int Tech - Italy-organizes Delphi Porte Aperte, a free half-day event to give participants an insight into the state of the art of Delphi (and RAD Studio) and delve into the most interesting features of the latest versions of Embarcadero development environments. More information- here ### Delphi turns thirty! URL: https://www.fast-report.com/news/sale-30-delphi Summary: We celebrate the thirtieth anniversary of Delphi and give you the opportunity to purchase FastReport VCL edition Ultimate with a significant discount of 30% We celebrate the thirtieth anniversary of Delphi and give you the opportunity to purchase FastReport VCL edition Ultimate with a significant discount of 30% To celebrate the occasion, we invite you to get the FastReport VCL Ultimate edition with a notable discount of 30%. It's a great opportunity to get a great deal on the most extensive type of reporting tool with a source code, cross-platform tools, and OLAP features! Don't miss your chance on February 13 and 14 to save from $390 and provide your application with: Source code Report designer with dialog forms Client-server components for VCL and Lazarus Report creation for VCL, FMX and Lazarus Converters from Quick Report, Report Builder, Rave Reports Support for exporting templates to other data formats Multidimensional analysis system FastCube for VCL, Lazarus and FMX Flexible and open architecture with support for custom report objects Storing finished documents in cloud storage Google Drive, Next Cloud, OneDrive, Amazon S3, Outlook, Gmail FastScript and FastQueryBuilder included Freeze your discount and pay later! The offer is valid till 11.59 pm of February 14. If for some reason you can't make payment until this time,  contact us and freeze your discount for 6 days to pay later! ### Demo versions request URL: https://www.fast-report.com/request-successful Summary: Thank you for request, a download link will be sent to your email. Thank you for request, a download link will be sent to your email. Thank you for request, a download link will be sent to your email. Thank you for request, a download link will be sent to your email. Thank you for request, a download link will be sent to your email. ### DevProConnections Community Choice Awards - Bronze URL: https://www.fast-report.com/news/awards-bronze-2011 Summary: DevProConnections Community Choice Awards - Best Vendor Support DevProConnections Community Choice Awards - Best Vendor Support Fast Reports has won the following award in the DevProConnections Community Choice Awards: Best Vendor Support: Bronze ### Digital signature in the new FastReport VCL 2023.1 URL: https://www.fast-report.com/news/fastreport-vcl-2023.1 Summary: Let's take a closer look at how the Digital Signature works in the new FastReport VCL 2023.1 in FastReport. Let's take a closer look at how the Digital Signature works in the new FastReport VCL 2023.1 in FastReport. We have added the option of an attached and detached digital signature of arbitrary files. They will be used with the help of crypto providers installed in the system. You can see an example of a report with a digital signature at the Demos\FileSignature path. You will find the instructions at this link . We had added the ability to set arbitrary sheet names in the following exports: frxBIFFExport, frxXMLExport, frxXLSXExport via the OnGenerateSheetName event. The SVG image engine now supports "pattern" for object fills. Added AutoSize mode for TfrxOLEView object. Improved compatibility with the latest Lazarus version and added the TfrxDateEditControl object. Support for Delphi 7 has also been discontinued with this version. We have also optimized the work of the existing functionality and fixed some bugs. Full list of changes in version 2023.1 --------------- [Designer] - Fixed dataset filtering [Engine] + Added a new class for signing an arbitrary file with an attached or detached signature. - Fixed supreport X position when keep mechanism uses inside it [Exports] + Added ability to customize sheet names in excel exports (frxBIFFExport, frxXMLExport, frxXLSXExport) - Fixed bug when PDFView draws dash line with wrong scale on metafile in PDF export vector output - Fixed pdf export errors - Fixed issue when pictures may disappear during PDF export in multi-thread GUI application - Fixed font size in HTMLTags in XLSX export - Fixed bug in xls(biff8) export under x64 platform - Fixed Cc and Bcc fileds in the SMTP mail sender [Lazarus] + Added implementation of TfrxDateEditControl - Fixed Lazarus compilation - Disable AutoSize for descriptions functions in functions-tree due to Lazarus internal bug [Preview] - Fixed Search form width [Report object] + Added support for the dominant-baseline attribute and the pattern element + Added Autosize for TfrxOLEView - Fixed overflow error when test size of types in HTMLView stream - Fixed issue when TfrxRichView.RichEdit.Lines.LoadFromFile does not load file correctly under Rad Studio 11.2 - Fixed bug with Datamatrix barcade with ACSII codepage - Fixed barcodes RTTI - Fixed PDFView memory leaks - Fixed TfrxPDFObject for 64bit in the IDE [Resources] * Updated Swiss resources * Update German Resources * Updated Farsi resources ### Digital Signature to PDF Export URL: https://www.fast-report.com/blogs/pdf-digital-signature Summary: Electronic document management has become an integral part of our lives already long time ago. Everyone appreciated the convenience of such documents - they do not deteriorate over time, they are more difficult to lose, easy to store and quickly transfer to any distance. Electronic document management has become an integral part of our lives already long time ago. Everyone appreciated the convenience of such documents - they do not deteriorate over time, they are more difficult to lose, easy to store and quickly transfer to any distance. Electronic document management has become an integral part of our lives already long time ago. Everyone appreciated the convenience of such documents - they do not deteriorate over time, they are more difficult to lose, easy to store and quickly transfer to any distance. Electronic document management has become an integral part of our lives already long time ago. Everyone appreciated the convenience of such documents - they do not deteriorate over time, they are more difficult to lose, easy to store and quickly transfer to any distance. And although, the times of registered letters and parcels have not yet passed, the need for them will completely disappear very soon. The bureaucratic system recognizes only signed documents and that was a major obstacle to the development of electronic document management. After all, what's the use of the document transfer speed, if its signed version is necessary, so to say “original”. Therefore, electronic signatures have been developed - ciphers that guarantee uniqueness and originality, allowing to unequivocally establish authorship and protect against document changes. Thanks to reliable encryption algorithms, such signatures are no worse than handwritten, and even better, more reliable. PDF documents, perhaps, can be called an electronic document management standard. In many ways, its popularity is due precisely to good document protection, including a digital signature. The FastReport .NET team is constantly improving exports to PDF, and now, finally, an electronic signature appeared in version 2019.3.2. In the current version two types of signatures are available: 1) Signing field (signature field) - implies the presence of a special field in the document, by clicking on which, the user will be able to attach his certificate; 2) Invisible signature - it is a signature certificate. Visually, it is not visible, but in the document properties you can get information about the signer, the authenticity of the signature, the version of the document at the time of signing, and other information. Let's have a look on both options in more details. 1)      Signature field . To realize this possibility in PDF export, the developers of FastReport have added a new control to the report designer. You can see it at the very bottom of the sidebar: It is called Digital Signature. When placing this control on the report page, it looks like this: In the report view it is invisible. Its functionality is limited solely to PDF export. That is, you will see this field when viewing a PDF file in Acrobat Reader. When exporting to PDF, enable the signing option: After export, the field will look like this: Click on the signature field and see the window for choosing a certificate to sign the document: Choose a certificate and click "Continue." Next, we need to enter the password for signing (if the certificate is not imported into Windows digital Id), we can set the style and enable the document blocking option after signing. After signing, the document must be saved. Here's what the caption will look like in the end:  2)      Invisible signature . For invisible export PDF signature, you do not need to add a Digital Signature control to the report page. You need to enable the signing option in the export settings: Also, you can fill in the information fields of Location, Reason and Contact Info. Next you need to select the signature certificate file in the pfx format to set the password for the certificate. You can choose a certificate file at this stage. Then, after exporting the report, you will see a hidden signature in the PDF document, but it will not be filled in. You can add a certificate to the signature. This is similar to the first signature option we considered, the only difference is that it is not directly visible in the document. Here is what an invisible signature without a certificate looks like in Acrobat Reader: And here is the invisible signature with the certificate: In order for the certificate to be authenticated by the person who receives the document you created, he must import your certificate to his local computer. Then he will be able to verify the signature in the PDF document using the “Certificates” tool (by clicking on the “Validate All Signatures” button): Thus, FastReport .NET can now create full-fledged electronic documents protected by electronic signature. Tags: .NET, Export, FastReport, PDF ### Digital signing of files with FastReport VCL URL: https://www.fast-report.com/blogs/digital-signature-vcl Summary: We tell you how to generate a PDF file using FastReport VCL, which will contain a digital signature. We tell you how to generate a PDF file using FastReport VCL, which will contain a digital signature. We tell you how to generate a PDF file using FastReport VCL, which will contain a digital signature. It is hard to imagine our life without electronic document management. Such documents are convenient because they do not deteriorate over time, they are more difficult to lose, easy to store, and quickly transfer to any distance. But as it is known, only signed document comes into force. Electronic signatures are ciphers that guarantee uniqueness and originality, allowing to establish a definitive authorship and protect the document from changes. However, signing every generated PDF file can be time-consuming. What if you have a thousand or more generated files — should you sign them manually? Of course not. FastReport VCL can sign the generated files with your signature. Next, we will look into an example of digital signing. For clarity, we will use a small application that exports files to PDF and signs them. ``` procedure TForm1.Button1Click(Sender: TObject); const FR3FileName = 'Signatures.fr3'; var PDFExport: TfrxPDFExport; Report: TfrxReport; begin Report := TfrxReport.Create(nil); try Report.LoadFromFile(FR3FileName); Report.PrepareReport; // upload and prepare a report   PDFExport := TfrxPDFExport.Create(nil); try PDFExport.Report := Report; PDFExport.ShowDialog := False;     PDFExport.FileName := ExtractFileName(FR3FileName) + '.pdf'; Report.Export(PDFExport); // export the report SignExport(PDFExport); // sign the file finally PDFExport.Free; end; finally Report.Free; end; end;   procedure SignExport(PDFExport: TfrxPDFExport); const CertificatePath = 'JaneDoe.pfx'; // The name of our certificate PasCert = '123'; // certificate password var Lookup: TCertificateStoreLookup; FS: TfrxFileSignature; FSO: Integer; begin Lookup := TCertificateStoreLookup.Create; Lookup.IgnoreCase := true; Lookup.CertificatePath := CertificatePath;   FSO := FileSignatureOptions( true, // Detached = true Signature in a detached file false, // Chain = false Certificate chain false, // OnlyGOST= true GOST certificate true, // DebugLog = true Debugging Information true); // PFX = false (true) indicates that the certificate should be searched in the pfx/p12 file. At the same time, the file name and, possibly, the password must be specified.   FS := TfrxFileSignature.Create( Lookup, PDFExport.FileName, // PDF file name PDFExport.FileName + '.sig', // Name of the generated signature AnsiString(PasCert), FSO);   FS.Sign; FS.Free; Lookup.Free; end; ``` After writing the program, let's move on to running it. After starting, click on the "Export" button. Then we get a signed PDF file with a signature file: We should check whether the PDF file was signed correctly. For this, open the console and enter the following commands: ``` openssl pkcs12 -in JohnDoe.pfx -out JohnDoe.pem ``` After we enter the password and check with the following command: ``` openssl smime -verify -binary -inform DER -in Signatures.fr3.pdf.sig -content Signatures.fr3.pdf -certfile JohnDoe.pem -nointern -noverify 1> /dev/null ``` This screenshot shows that the PDF file has passed the signature check, so we did it. Thus, we got a properly exported PDF file signed using FastReport VCL in a fast and easy way. Tags: VCL, Lazarus, FastReport, PDF, Delphi ### Displaying a prepared report on the Web URL: https://www.fast-report.com/blogs/displaying-prepared-report-web Summary: Get useful tips on how to display a prepared report on the Internet in FastReport .NET report. Find more usefull tips and articles in our blog. Get useful tips on how to display a prepared report on the Internet in FastReport .NET report. Find more usefull tips and articles in our blog. Get useful tips on how to display a prepared report on the Internet in FastReport .NET report. Find more usefull tips and articles in our blog. Innovations in FastReport .NET 2018.4 touched the web reports as well. Now you can display reports in fpx format, i.e. pre-prepared reports. The fpx format is very convenient for exchanging reports, because it contains data in addition to the template. Therefore, to display a report in fpx format, you do not need to connect to the data source at all, and this removes the “headache” in the case when your database is located on a remote server. There will not be any delays in the construction of the report associated with the recieving of data. Having a report pool in this format, you probably want to display them on a web page. Now it has become possible. Consider how this works with an example. This will be the most simplified example. Let’s create an empty ASP .NET MVC project. In the Reference, we add the libraries FastReport.dll and FastReport.Web.dll, which can be taken here: C:\Program Files (x86)\FastReports\FastReport.Net\Framework 4.0. Add the MVC 5 ViewPage (Razor) view. Let's call it index. Here is its default content: ``` @{ Layout = null; }  
```  Add a WebReport object. Of course, we could create it in the controller. But, you can create it right in the view. ``` @{ Layout = null; }   @{ // FastReport .Net prepared report preview example. FastReport.Web.WebReport webReport = new FastReport.Web.WebReport(true, true); webReport.ToolbarIconsStyle = FastReport.Web.ToolbarIconsStyle.Black; webReport.ToolbarBackgroundStyle = FastReport.Web.ToolbarBackgroundStyle.None; webReport.ToolbarStyle = FastReport.Web.ToolbarStyle.Large; webReport.ToolbarColor = System.Drawing.Color.White; webReport.BorderWidth = 1; webReport.BorderColor = System.Drawing.Color.Black; webReport.ShowZoomButton = false; webReport.ShowExports = false; webReport.PrintInBrowser = false; webReport.XlsxPrintFitPage = true; webReport.LoadPrepared(Server.MapPath("~/App_Data/Prepared.fpx")); }   FastReport Prepared Report Preview @webReport.GetHtml() ```  Also, we added the header and output of the report in HTML format. Let's take a closer look at the settings of the webReport object that we created: • ToolbarIconsStyle - style of icons on the uppermost web report toolbar: Black, Blue, Custom, Green, Red; • ToolbarBackgroundStyle - background style of the web report toolbar: Custome, Dark, Light, Medium, None; • ToolbarStyle - style of displaying buttons on the web report toolbar: Large or Small; • ToolbarColor - toolbar background color; • BorderWidth - width of the web report frame; • BorderColor - web report frame color; • ShowZoomButton - display zoom buttons; • ShowExports - display export menu; • PrintInBrowser - allow printing from the browser; • XlsxPrintFitPage - enable printing of the report on one page, when exporting to Excel 2007. To display the web response, we need to export to html. Therefore, in the Web.config we add the handler: ``` ```  Let's run the application: It looks like a regular web report. But do not forget, this is a pre-prepared report in fpx format. Now we can use both frx and fpx reports. It is great that we got rid of a significant limitation of web reports. The above example shows how to use fpx reports directly from the view, but if you are more accustomed to working with logic in the controller, then use the ViewBag to transfer the report from the controller to the view. Tags: FastReport, ASP.NET ### Displaying images with transparency in Adobe Acrobat URL: https://www.fast-report.com/blogs/adobe-transparency Summary: In this article, we'll look at how to turn off the support for translucency when exporting the FastReport .NET report to PDF. In this article, we'll look at how to turn off the support for translucency when exporting the FastReport .NET report to PDF. In this article, we'll look at how to turn off the support for translucency when exporting the FastReport .NET report to PDF. Images with transparency are often called images with an alpha channel. What does this mean? The alpha channel contains information about partial or full transparency of the image. It is mainly used in computer animation. RGB images can have up to 24 alpha channels. Each of them contains information about the transparency of a part of the image. Managing these channels can make parts of the image transparent at the right time. This creates an animation effect. The most common raster formats of images with support for transparency: PSD - the native format of Adobe Photoshop. Supports full and partial transparency; TIFF - most often used to store scanned images, because it allows you to store information about the great depth of color. This quality has made the format of tiff popular in printing. Supports partial and full transparency; GIF - this format is most popular in the Web graphics, because the file has a very small size. Allows you to store information about full transparency only. That is, you can not make a semi-transparent image; PNG is also common in Web graphics, but the file is larger and supports translucency. In this article, we'll look at how to turn off the support for translucency when exporting the FastReport .NET report to PDF. This can be done from the application code: Report report = new Report(); report.Load("@/../../Transparency.frx"); PDFExport export = new PDFExport(); export.TransparentImages = false; report.Prepare(); report.Export(export, "result.pdf"); As you can see from the code, PDF export has a TransparentImages property that allows you to disable (false) or enable (true) transparency support. Three report objects are represented as a picture when exporting to PDF: Picture, RichText and Chart. The TransparentImages property works for all of them. And now I propose to see how these objects will look like with the TransparentImages property turned on and off. Export Image The original image in png format does not have a background: Now add the Picture object to the band and load this picture into it. A colored background is set for the band. As you can see, the red tint is noticeable on the background of the image, it means the picture has a transparent background. Let's see how the export of this report to the PDF format will look like with the value of the TransparentImages = ture property: Just like in the designer. And now, install TransparentImages = false: The transparent background of the picture is now painted in white. RichText Export Let's see how RichText looks like with a transparent background: Although the object has a transparent background, but you cannot get rid of the white substrate for the text. Set the property TransparentImages = false: The background is painted white. Given that the white substrate text cannot be removed, for RichText the TransparentImages property is not very useful. Export Chart object The Chart object has many background settings. To get a transparent background of the object, you need to set the following settings in the object properties: BackColor = Transparent; BorderSkin(SkinStyle) = None; BorderLineColor = Transparent; Open the Legends collection, select the legend and set TitleBackColor = Transparent for the title. Open the ChartAreas collection, select an entry, and set the value of Transparent to BackColor. Here's a chart: When exporting to PDF with the value of the property TransparentImages = true, the chart looks the same as in the picture above. And if you set TransparentImages = false, you get a white background: Tags: .NET, .NET, FastReport, FastReport, PDF, PDF ### Distributing FastReport .NET with an application URL: https://www.fast-report.com/blogs/distributing-net-application Summary: Let's take a closer look at how FastReport .NET distributes with an application. Find more usefull tips and articles in our blog. Let's take a closer look at how FastReport .NET distributes with an application. Find more usefull tips and articles in our blog. Let's take a closer look at how FastReport .NET distributes with an application. Find more usefull tips and articles in our blog. This article will be helpful for anyone who uses FastReport.Net in his application. In order for your application to be operable on any computer, you need to include third-party libraries that you use in it. In this case - FastReport library. The following libraries are available: • FastReport.dll - the main library FastReport.Net; • FastReport.Web.dll - Library to work in ASP.Net, contains WebReport component; • FastReport.Bars.dll - library for organizing floating windows, toolbars, and menus; • FastReport.Editor.dll - code editor with syntax highlighting. This library is not necessary, if your application does not use the report designer; • FastReport.xml - comments to classes, properties and methods to the FastReport. This file is used in the code editor, and also in tips panels (when you select the function in the "Data" window or any property in the "Properties"). This file is not required to distribute; • FastReport.Service.dll – the dll to implement WCF services; • FastReport.VSDesign.dll - a service library for the organization of work with FastReport from Visual Studio. In addition you need to distribute report files (if reports are stored in files instead of the application resources). What does it mean to distribute the library? This means that the library should be located in the same directory as the application .exe file, or should be registered in the GAC. GAC (Global Assembly Cache) - a well-known catalog of assemblies intended to be shared by multiple applications. The CLR automatically checks this folder when it detects reference to the assembly. It is necessary to use special utilities for placing assemblies in the GAC, for example - GACUtil. For Framework 2.0 should be used gacutil.exe. For Framework 4.0 - gacutil4.exe. Here is an example command-line utility to run the registration FastReport library in GAC: gacutil4.exe / i FastReport.dll. Gacutil4.exe can be found in one of the ways, depending on the version of Windows and Visual Studio: C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools So, together with a Windows application you need to distribute the following libraries: FastReport.dll, FastReport.Bars.dll, FastReport.Editor.dll. Mandatory one is FastReport.dl. FastReport.Bars.dll and FastReport.Editor.dll required only if you use the components of these libraries. For Web applications, place the libraries: FastReport.dll, FastReport.Web.dll. Both are required. Service WCF application distributed with the libraries: FastReport.dll, FastReport.Service.dll. It should be remembered that libraries of FastReport.Net have differences for versions of Framework 2.0 and 4.0. Keep this in mind when distributing. Copy the files of the libraries from the installation for the proper version of Framework. To work with diagrams in FastReport.Net should be installed Microsoft Chart Control https://www.microsoft.com/en-gb/download/details.aspx?id=14422 . If you want to distribute reports with charts, you have to include System.Windows.Forms.DataVisualization.dll library in the program package (can be found in the distribution FastReport.Net). This is also true for Web applications. I pointed out FastReport.VSDesign.dll in the list of libraries FastReport.Net . It needed to work with FastReport.Net in Visual Studio only and do not need to distribute it together with the application. Another such a service library - FastReport.Install.dll. Tags: .NET, FastReport ### Documentation URL: https://www.fast-report.com/downloads/documentation Summary: Access FastReport documentation for detailed information on how to use and integrate the software. Documentation FastReport .NET Online Documentation User's Manual (.pdf) Programmer's manual (.pdf) Online Dokumentation (DE) Benutzerhandbuch (.pdf)(DE) Çevrimiçi Dokümantasyon (TR) Kullanım Kılavuzu (.pdf)(TR) Programcı kılavuzu (.pdf)(TR) Online Designer Online Documentation User's Manual (.pdf) FastReport VCL Online Documentation Online Dokumentation (DE) User's Manual (pdf) Documentação Online Programmer's manual (pdf) Developer's manual (pdf) Web reporting guide (pdf) Class Reference (chm) FastScript Developer Manual (pdf) FastReport Desktop Online Documentation User's Manual (.pdf) Install Manual (.pdf) FastReport Cloud Online Documentation User's Manual (.pdf) Support's Manual (.pdf) Programmer's manual (.pdf) FastReport Corporate Server Online Documentation User's Manual (.pdf) Programmer's manual (.pdf) Support's Manual (.pdf) Installation Manual (.pdf) FastReport Publisher Online Documentation User's Manual (.pdf) Programmer's manual (.pdf) Support's Manual (.pdf) Installation Manual (.pdf) FastReport FMX (Reporting FMX) Online Documentation FastReport Business Graphics .NET Online Documentation Programmer manual (.pdf) Installation Manual (.pdf) FastCube .NET Online Documentation User Manual (.pdf) Developer Manual (.pdf) FastScript .NET Online Documentation Programmer's manual (.pdf) info@fast-report.com Sales sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Office Alexandria, VA 22314 66 Canal Plaza, Ste 505 Products Buy Demo Documentation How to uninstall Licenses Products Buy Demo Documentation How to uninstall Licenses Support Support SLA Online support FAQ Tutorial Video Forum Articles News Support Support SLA Online support FAQ Tutorial Video Forum Articles News Company About Identity Resellers Contacts us Company About Identity Resellers Contacts us Privacy policy Cookies policy © 1998-2026 Fast Reports Inc. Trustpilot Link copied successfully ### Download of OpenStreetMap in FastReport .NET URL: https://www.fast-report.com/blogs/download-osm-net Summary: Let's take a closer look at how downloading OpenStreetMap into FastReport .NET works. Find more usefull tips and articles in our blog. Let's take a closer look at how downloading OpenStreetMap into FastReport .NET works. Find more usefull tips and articles in our blog. Let's take a closer look at how downloading OpenStreetMap into FastReport .NET works. Find more usefull tips and articles in our blog. In FastReport .NET 2016.2 we added an opportunity to download maps from OpenStreetMap files (* .osm). In this article I would like to show how to do it First we should get a file containing part of OpenStreetMap data. In ordert to do this: 1. Go to the website http://www.openstreetmap.org 2. Find the city which we are intrested in. To do so we should enter the name of city in the search box, e.g. New York. 3. We can find the necessary part of the city using m oving and zooming the image. 4. Now we should select and export an area of the map. To do this, click the "Export" button. And then click "Manually select a different area". We will see illuminated rectangular area. This area can be changed by dragging its corners. 5. After selecting a part of the map click "Export" button. We will see usual save file window . M ap will be saved in map.osm file. This file can be found in the Downloads folder of browser. 6. If occurs an error after pressing the "Export" button, we should select smaller area. Because OpenStreetMap does not allow to exporting too big areas of the map. Now we can open the resulting file in FastReport .Net designer . 1. Create a map on report page. 2. We should run the map editor using double click on the map. 3. Click Add button in appeared window. 4. Select "Map file" in next window and click the Open button. 5. We will see the open file window. We should select "OpenStreetMap file(*.osm)" filter , select the file and click Open button. 6. Now we just should click "OK" in add layer window. 7. The map will be loaded and shown in the preview area of map editor. Now we can close the map editor by clicking OK button. Map is loaded successfully. Tags: .NET, FastReport, Map ### Downloading the report as an Excel document in MVC URL: https://www.fast-report.com/blogs/downloading-excel-document-mvc Summary: Let's take a closer look at how loading a report as an Excel document works in MVC. Find more usefull tips and articles in our blog. Let's take a closer look at how loading a report as an Excel document works in MVC. Find more usefull tips and articles in our blog. Let's take a closer look at how loading a report as an Excel document works in MVC. Find more usefull tips and articles in our blog. Previously, we already examined an example of displaying a printing dialog of a report in HTML and PDF formats. The aim of this article is to show how to save reports in the desired format, providing an example of Excel. We use the MVC web application. There is a button, which is provided to save a report. Add it to the web page Home. For this, open the Index.cshtml file in the Views folder. Place the following code in the desired location: ``` @using (Html.BeginForm("Save", "Home"))   {     } ``` There "Save" - is the name of the handler in the controller. "Home" - is the controller. Now add the handler "Save" to the Home page controller. For this, open the HomeController.cs file in the Controllers folder: The handler will look like this: ``` public void Save()   {   WebReport webReport = new WebReport();   System.Data.DataSet dataSet = new System.Data.DataSet();   dataSet.ReadXml("C://Program Files (x86)//FastReports//FastReport.Net//Demos//Reports//nwind.xml");   webReport.Report.RegisterData(dataSet, "NorthWind");   webReport.Report.Load("C://Program Files (x86)//FastReports//FastReport.Net//Demos//Reports//Simple List.frx");   webReport.ExportExcel2007();   } ``` Let us take a look at the procedure: Create an instance of an object of WebReport; Create an instance of an object of DataSet to work with date; Load the xml datebase file; Register the source of the date in the report object; Load the report template in WebReport object; Save the report in Excel format. Now you need to add the handler in the Web.config file, which is located in the root of the project: ```     ``` Run the application to see the button:  Click on it. The program will display a dialog to save the report file in xlsx format. After downloading the report, it will be open: Summing up, we can conclude that using the shown application, it is possible to save your report in different formats, available for exporting reports. Using the shown code allows users of the web application to download a report in the desired format without displaying the report itself. Tags: .NET, FastReport, ASP.NET, MVC, Excel ### Downloads URL: https://www.fast-report.com/downloads Summary: Use demos to test our products before making a purchase decision. Demo versions Demo FastReport .NET Demo FastReport VCL Demo Business Graphics .NET Demo FastCube .NET Demo Reporting Lazarus Demo Analysis VCL Demo FastReport Viewer Demo FastReport Desktop Demo FastReport Corporate Server Demo FastReport Publisher info@fast-report.com Sales sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Office Alexandria, VA 22314 66 Canal Plaza, Ste 505 Products Buy Demo Documentation How to uninstall Licenses Products Buy Demo Documentation How to uninstall Licenses Support Support SLA Online support FAQ Tutorial Video Forum Articles News Support Support SLA Online support FAQ Tutorial Video Forum Articles News Company About Identity Resellers Contacts us Company About Identity Resellers Contacts us Privacy policy Cookies policy © 1998-2026 Fast Reports Inc. Trustpilot Link copied successfully ### Duplication or removal of pages in the preview mode of the report URL: https://www.fast-report.com/blogs/Duplication-removing-pages-preview-report Summary: Let's take a closer look at how duplicating or deleting pages works in the report preview mode in FastReport. Find more usefull tips and acticles in our blog. Let's take a closer look at how duplicating or deleting pages works in the report preview mode in FastReport. Find more usefull tips and acticles in our blog. In FastReport 2018.4 a very interesting feature appeared - duplication and removal of the report pages in preview mode. Let us be clear. We are talking about the pages of already built report. That is, you can select a specific report page and clone it as many times as you want, or delete the selected page. In this case, there will be no effect on the template itself. Even if you have only one page. To get everything back to its original state - simply build the report again. In FastReport 2018.4 a very interesting feature appeared - duplication and removal of the report pages in preview mode. Let us be clear. We are talking about the pages of already built report. That is, you can select a specific report page and clone it as many times as you want, or delete the selected page. In this case, there will be no effect on the template itself. Even if you have only one page. To get everything back to its original state - simply build the report again. When this function can be useful? For example, if you want to print the report, and any specific pages needed in multiple instances. Or, on the contrary, some of the pages you do not want to print. Yes, in the print settings you can select the desired page number. But you must remember these numbers. It is not very convenient. Using the new function, you add the required pages without having something to remember. Let's see how this works on practice. For example, we have a built in preview mode Simple List report. Let’s reduce its scale to fit in the scope all three pages: Note that the first page has a yellow frame. This means that it is now selected. On the toolbar at the top there are two shortcuts: -  copy the page -  delete the page Let’s copy the first page: The copied page is added immediately after the selected. Now delete all pages except the last one. When you remove pages, the focus switches to the subsequent page. So, in our case, it's best to set the focus to the first page, and then delete the page. In the end, there is only one, the last page of the report. We can clone it, but other pages are not available for this action.  Thus, the new function of cloning and deleting pages of ready built report is very useful when printing. Tags: .NET, FastReport ### Dynamically create a Table in XAML URL: https://www.fast-report.com/blogs/dynamically-create-table-xaml Summary: Let's take a closer look at how Dynamic Table Creation in XAML works in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how Dynamic Table Creation in XAML works in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how Dynamic Table Creation in XAML works in FastReport .NET. Find more usefull tips and articles in our blog. Sometimes when we develop the WPF applications we need create tables with different configurations for output any data. Using the base tools of Visual Studio or Blend do not allow to reach the desired result or not always possible. Objects can be added programmatically to the form directly in the program code during execution. Plus this method is in using a minimum set of software. But the construction of a large table it will take too much time. Also we need to implement access to the tables with the data. A further change in the structure will have to rebuild all over again. Other way to get a beautiful custom table - using FastReport.NET. Open the report designer, create a data source and add objects: the title of the report, the page header, the data pages and other objects if desired. Then we make a preview of the report and save it in XAML. Now you need save a created report template for future use. You can embed FastReport.NET to the own application. First step: open report from code and export it in the XAML. In second step you need to load XAML into your WPF application. Example: ``` // prepare a report report1.Prepare(); // create an instance of XAML export filter FastReport.Export.XAML.XAMLExport export = new FastReport.Export.XAML.XAMLExport(); // export in xaml report1.Export(export, "result.xaml"); ``` Let’s load a table in WPF: ``` // / Create a stream to read the selected XAML file using (FileStream fs = new FileStream(filename, FileMode.Open)) { // Create a new window for graphics output XAML content file ((Window)XamlReader.Load(fs)).Show(); } ``` Where filename - the name of the file you created with the table. Instead FileStream, you can use the MemoryStream, then the XAML can be transferred without the use of files. As you see we build a table directly in the program code. It allows you to generate a table on the server side and on use the client to render the XAML. FastReport.NET eliminates the writing a database access code and reduces overall development time. Also we have saved template of the table for future modifications. Tags: .NET, Visual Studio, FastReport, WPF ### Easter eggs in the designer FastReport .NET URL: https://www.fast-report.com/blogs/easter-eggs-report-designer Summary: Let's take a closer look at easter eggs in the FastReport .NET designer. Find more usefull tips and articles in our blog. Let's take a closer look at easter eggs in the FastReport .NET designer. Find more usefull tips and articles in our blog. With this Easter egg, FastReport developers decided to show us an alternative way to use their generator. Based on the report, they created a game - the well-known Minesweeper. Surprisingly, this is indeed possible thanks to the built-in report script! With this Easter egg, FastReport developers decided to show us an alternative way to use their generator. Based on the report, they created a game - the well-known Minesweeper. Surprisingly, this is indeed possible thanks to the built-in report script. However, this is not just a report from the demo folder. It is hidden from users. This is the easter egg. And you can find it in the report designer using a special passphrase. Let's try to do it. Launch the report designer and select the File-> New menu. In the form that opens, you need to enter the word GAME by the keyboard. Pay attention to the register. After you enter this word, a new Games section will appear: The name of the section hints at the fact that there can be many games. In the meantime, one report-game FastM1nesweeper. It is clear that the name must be read as Fast Minesweeper. Let's select this report and add it to the designer. In this case, we will see this window: Here we can set the size of the playing field and the number of bombs. If you do not want to come up with sizes, you can use the presets in the Difficulty drop-down list: Each option has its own settings for field size and number of bombs. Well, let's try to make our settings simpler. This is what the report template will look like: On the “Data” band, the playing field will be drawn using the Table cell object. Depending on the number of columns and rows, the field will be filled with cells. The cell has 5 states: filled, empty, with a number, with a cleared bomb and with an exploding bomb. If you do not remember the rules of the game, then I will remind you. You need to open all the cells on the field and at the same time never get on the bomb. To calculate how far the bomb is from a particular cell, a number is written in it. It indicates how many bombs are within the radius of one cell around this cell. Focusing on the numbers in neighboring cells, we can conclude where the bomb is. Of course, you will have to open part of the cells for good luck. So, run the report in preview mode: In our case, the goal is quite simple - you need to calculate only 3 bombs. This is how the victory will look like: And so - a lossing: Now the chore of creating reports will be more fun. Without leaving the designer, you can relax a bit and have fun, because it’s not necessary to tell your boss about this Easter egg. Look at the Script tab, the amount of code is impressive. The real program. You can try your hand and write another game. Easter eggs with games work not only in the report designer FastReport.Net, but also in the FastReport Designer Community. Let's hope that the developers will periodically please us with new games. Tags: .NET, FastReport, Designer ### Embarcadero RAD Studio XE2 World Tour URL: https://www.fast-report.com/news/embarcadero-seminars-2011 Summary: Embarcadero RAD Studio XE2 World Tour Embarcadero RAD Studio XE2 World Tour FastReports are pleased to invite you to the Embarcadero RAD Studio XE2 World Tour. With RAD Studio XE2 you will be able to create 64-bit Windows Delphi applications to take advantage of the latest hardware, access more memory and push the performance envelope. You will be able to deploy your applications on Windows and Mac and more. Also you will receive RAD E ditions of FastReport VCL and FastReport.Net with RAD Studio XE2. Register today for a free live event near you: https://blogs.embarcadero.com/community/ ### Embarcadero webinar questions and answers URL: https://www.fast-report.com/blogs/embarcadero-webinar-questions-answers Summary: Embarcadero webinar questions and answers Embarcadero webinar questions and answers Embarcadero webinar questions and answers At 7th of February I took a part in Embarcadero webinar RAD Studio Reporting with FastReport.  Here you can see my presentation video  Thanks to all attendees for participation and for questions!  We got set of different interesting questions. I think answers will be useful for all. Here there are:  Q: How can you do mail merges with FastReports?  A: What do you mean? You can mail exported reports directly form fastreport.  Q: well... it's pleasure for me to meet young brains here. interesting to hear your opinion about Fast Report vs Rave Report  A: I am afraid my opinion about such comparison can not be absolutely correct. I am interest to show FastReport as the leadersip reporting tool.   Q: If we have a report that requires input parameters how do we pass parametrs to the report? Eg I have to pass year 2012 and State = VA  A: You can use Report variables for this(see the main demo for more information).  Q: Could you show us how to do web reporting by using fast report?  A: We have such demos in our demo-packages. You can download it from our web-site. Or live demo on web: server.fast-report.com  In my presentation have show all on the clear RAD Studio "from the box" without web-functionality in this session.  Q: Is Fast Reports limited to Ado Connections? We would like to use the reporting tool with Advantage Database Server who has their own connection component  A: FastReport can use any Delphi DataSet and little bit more. UserDataSet can realise different schemas of connections. Also you can use several ADO connections inside report.  Q: How can I make a report with the FireMonkey Platform?  A: Now we are working on FastReport for FireMonkey. Wait it very soon.  Q: How to support PostgreSQL in FastReport? ADO only?  A: Not only. Native too.  Q: Any updates on the FireMonkey version of Fast-Report ?  A: We are working on it. Wait it very soon.  Q: Fast-Report 5 was advertised to be launched for quite some time ... what's the status ?  A: We plan open beta-testing this year.  Q: Does Fast Report work with C++ Builder as well?  A: Yes. It supports C++Builder fully.  Q: Fast Report was developed by russian company?  A: Fast Reports is an international company with multinational developers. Q: Why should I use FR as opposed to ReportBuilder?  A: You should not  It is one variant only. And RAD edition is free for you.  Q: Can you rcreate different reports on different Reports Pages under one single Report Control?  A: Yes, it is possible. See example 12.fr3 from our main demo. “This report contains two pages (title and list). You can have several pages in your report. Each page can contains one report and can have own paper settings (size, margins, orientation and etc).”  Q: With Rave we have created a custom component that displays our own data, is it possible to create custom components in Fast-Reports?  A: Yes, we have documentation for creating own components. Q: I wanted to know if FastCube could connect to an Analysis Services OLAP data source. Is FastCube an alternative to using the Office Web Component PivotTable control?  A: No, FastCube can't use Analysis Services. But yes, it is an alternative but without an ability to connect to MS OLAP yet.  Q: I would like to know when we can expect the pdf/a export?  A: in version 5. We're planning PAD/A export in Fast Report 5 VCL. You can write to support@fast-report.com if you want to take part in a beta test.  Q: we have Delphi Prism as part of our All-Access Silver, what's the upgrade path to Delphi XE2  A: Contact sales regarding of Embarcadero Techlologies this  Q: export to spreadsheets…. is that an option for FR?  A: Yes, you can. For example FastReport has three different kinds of export filters to MS Excell.  Q: How can you do mail merge (form letters with fields)?  A:If you are about mails in database – as well as any database fields.  Q: On the initial report you had a memo field which only printed the first few characters as the field was not wide (big) enough. How do you habdle that "correctly"  A: You can see in our compiled demo example. It is necessary to use “StretchMode” property of Memo object for this.  Q: How do get the free upgrades to the basic Fast Report products that ships with XE2?  A: FastReport RAD come with RAD Studio XE2.  Q: I really need the pdf/a export for archives. In Germany only pdf/a are accepted. So when can we expect it.  A: It will available in the FastReport VCL 5. Mail us for connection to beta-testing.  Q: Is server.fast-report.com platform for linux?  A: Windows only yet.  Q: Can you drill down into the features of next version of Fast-Report (5) ?  A: It is available in the current version. You can use it just now. So it will be in 5th version too.  Q: When I use FR in xe2, script does not work for master or details, why?  A: FastScript does not included in XE2. You can order it in addition. Or use FastReport Standard Edition and higher.  Q: Do you have a timeline for firemonkey version? Update 4 claims to have printing ability. Is that FastReports? Update 4 is claiming it is just days away.  A: it will soon but without designer yet  Q: Can you create different reports under one report control for example under page 1, Sales reports, under Page 2 Customers reports and so on?  A: Yes, you can create different templates on different pages of the same report object. We have such example in demo.  Q: When I run a fast report that has script errors, I don't see the error, the report just stops painting. Is there an Error handler function that can be hooked to show these errors?  A: You can read errors from Report.Errors/ Report.Script.Errors. Remember FastScript is available in FastReport Standard Edition and higher.  Q: If we wanted to embed the fast report designer in an application, someone with advantage database server would have to setup the datasets at design time in order to manipulate the report?  A: Yes, you need fr such reports some database connection. So you can set it at design time.  Q: If I use FastReport I get allways an error that it can't find some components/units. Is there a fix or update? Actually it is not useable. A: Yes, you should download updated files from here : www.fast-report.com/pbc_download/LibD16.zip and extract them to fast report LibD16 folder(located in "Program Files\Fasty Report") with replace. Don't forget to close IDE before doing this.  Q: Will 2D barcodes (ex: QR Code) be included into the next version of Fast-Report (5) ?  A: Yes they will be included  Q: In FR, is there any "awareness" of font metrics? eg If I want to output to a pre-printed form and need to position the top of the FONT at a given vertical point (as opposed to the top of the line) can I determine or calculate "font-top" to achieve this (or font-middle, font-bottom etc...)  Q: If using multiple text boxes, how would you vertically line-space them with respect to the current font size? (Visually and in code)  A:You can use script code for text calculation inside the memo. For example TextWidth := Memo1.CalcWidth(). For this procedure you need Fast Report Standard and hire.  Q: Rave reports had a system called Rant for creating custom components for Rave. Does Fast Reports have a similar system?  A: We have system for creating own components.  I do not know about Rant system. You can write us preferences of this system...  Q: Did FastReport RAD inclde FastScript?  A: Not yet. FastReport RAD Edition only.  Q: Do you have main demo for C++ Builder?  A: We have set of demos for C++Builder also. See Demos folder  Q: Can you access ("use") your own Delphi code units within the Pascal Scripting in a report?  A: you can use RTTI and units, but it is not powerful Object Pascal. It is Pascal Script.  Q: any thoughts/advice on converting Crystal Reports  A: we plan such convertor in spring 2012  If you have not see your question and our answer - please do not hesitate write us (support at fast-report.com). We will be glad to help you!  We hope to see you next time and wait for your feedback! Tags: VCL, Delphi ### Encryption reports in FastReport .NET URL: https://www.fast-report.com/blogs/encryption-reports-net Summary: Let's take a closer look at how report encryption works in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how report encryption works in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how report encryption works in FastReport .NET. Find more usefull tips and articles in our blog. Reports encryption is a very useful option. In many enterprises, security policy provides for encryption of documents by transfer on external network. Of course, there is plenty of software to encrypt, but FastReport.Net allows you to do this by their own means. For the reports encryption it uses the AES algorithm that provides a high degree of protection. Encrypt the report in FastReport.Net presents no difficulties. Suffice it to set a password. Let's take a closer look: Create a report; Open the properties of the report in the menu Report -> Options. "Security" tab. As you can see, you can only set the password of the report. By setting the password of the report, we will automatically enable its encryption. Now, no one can open it without knowing the password. Set a password for the report. Save the report. Now try to open it in the designer. And we get a dialog box: You can open the report file if you know the password only. Unfortunately, encrypted reports are not yet available for the web. Therefore, the scope of these reports is limited. As mentioned earlier, the encryption can be used to exchange report files within the enterprise, or when working with customers. Tags: .NET, FastReport ### End Of 2025 - Our Achievements URL: https://www.fast-report.com/news/2025-results Summary: Explore FastReport’s 2025 highlights: product updates, new features, performance improvements, and advancements across Desktop, Cloud, and Server solutions. Explore FastReport’s 2025 highlights: product updates, new features, performance improvements, and advancements across Desktop, Cloud, and Server solutions. At the end of 2025, we traditionally look back and summarize what has been accomplished over the past year. In 2025, the Fast Reports company significantly strengthened the FastReport product line, including FastReport Desktop and FastReport Cloud, focusing on expanding functionality, improving user experience, and increasing overall stability. In the Delphi product line , new architectural capabilities were introduced, including the TfrxDeviceCommand object for sending commands to export filters, support for Runtime Themes to ensure a unified visual style with applications, and full compatibility with RAD Studio 13. A key milestone was the release of version 2026.1 , where the Ultimate VCL subscription became more valuable by including FastGrid and access to report creation via FastReport Online Designer. In the .NET direction , the main focus was on usability and feature development. A unified demo application for the entire product line was introduced, installers and the report designer interface were improved, and a new Ribbon UI was implemented. Support for FastScript .NET , Word import, new database connections, major WebReport improvements, and extended export capabilities - including Excel formulas and new formats - were added. In parallel, extensive export optimization and numerous bug fixes were carried out, significantly improving performance and document generation quality. Cloud and server solutions - FastReport Cloud, Corporate Server, and the updated Publisher - received support for S3 storage, Telegram Bot API, custom fonts, new preview modes, and autocomplete in the Online Designer. API security and administration tools were also strengthened, making the platform more flexible and enterprise-ready. Together, these improvements have laid a solid foundation for the continued development of the Fast Reports ecosystem and increased its value for developers and businesses. As we wrap up this year, we would like to thank all our users and partners for their trust and feedback. We wish you happy holidays and a successful 2026 filled with stable projects, bold ideas, and successful implementations. ### Event Report.Custom Calc - pre-processing of the input data URL: https://www.fast-report.com/blogs/event-pre-processing-input-data Summary: Let's take a closer look at how Event Report - preliminary processing of input data works in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how Event Report - preliminary processing of input data works in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how Event Report - preliminary processing of input data works in FastReport .NET. Find more usefull tips and articles in our blog. New CustomCalc event for the Report object is called when evaluating an expression in an object or when you receive data back from the data source. So we can use this event to intercept the data and spoofing. When this can be useful? For example, when you need to filter the values in the incoming data or to replace any row. Let's look at an example. Сreate a simple WindowsForms application. Add the data source to the project, and the DataSet component. Also, place the component Report on the form. In the drop-down menu of the Report component, select the item “Select Data Source”: And choose our data source. Now, select the item “Design Report” from the same menu. To demonstrate, I added a couple of fields from the Employee table: For interest's see how the report looks now: Save the report and close the Report Designer. Add a button to the form. And click event for it: ``` private void Run_Click(object sender, EventArgs e)   {   report1.Load("D://Reports//Simple.frx");   report1.Prepare();   report1.ShowPrepared();   } ```  Here, everything is banal. I have uploaded created earlier report. Then prepared it and showed. And now, add the event CustomCalc for the report1 object: ``` private void report1_CustomCalc(object sender, FastReport.CustomCalcEventArgs e)   {   if (e.CalculatedObject.Equals("Roberto") )   {   e.CalculatedObject = "Test Name";   }   } ```  Here we intercept the needed data and replaces them. All data passes through CalculatedObject object during construction of the report. We catch the needed information "Roberto". And replace them. You can replace the entire data field. In this case, the condition would look like this: ``` if (e.Expression.IndexOf("employee.FirstName") != -1) ```  We wrote the code for the data substitution directly in the event handler CustomCalc. You can also assign the event handler directly in the code, for example in MVC application. With a convenient location in the application code we write: ``` report1.CustomCalc += FReport_CustomCalc; ```   And the event handler: ``` private void FReport_CustomCalc(object sender, CustomCalcEventArgs e)   {   if (e.Expression.IndexOf("Employees.FirstName") != -1)   {   e.CalculatedObject = "Test Name";   }   } ```  Run the application. Click the button and see our report: Let's compare this screenshot with one that was made earlier. As you can see, the first entry and the name of the employee Roberto put in a condition and has been replaced by Test Name. Thus, we have a way to replace some of the data in the report. It probably will be used at sophisticated users of FastReport. Tags: .NET, FastReport ### Excel formulas in the BIFF export URL: https://www.fast-report.com/blogs/excel-formulas-biff-export Summary: Let's take a closer look at how Excel Formulas work in BIFF export in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how Excel Formulas work in BIFF export in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how Excel Formulas work in BIFF export in FastReport .NET. Find more usefull tips and articles in our blog. Starting from FR VCL 4.11.15 the BIFF export can export formulas. For example, to export the formula SUM(A1:B2) put a TfrxMemoView on a report and write in it Code =SUM(A1:B2) The first character of the text must be the equality sign "=", and the rest of it - a correct Excel formula. Exporting of formuals is controlled by the BIFF export's property ExportFormulas and to disable this option, simply write Code ``` procedure DisableFormulas(Exp: TfrxBIFFExport); begin Exp.ExportFormulas := False end; ``` By default, the exporting of formulas is enabled. What will happen if an incorrect formula is encountered in a report? The export will try to process it, but having found an error, will save it to an xls file as a simple text cell. What formulas the export supports The export supports Excel formulas. It's noteworthy that formulas syntax in Excel, OpenOffice and LibreOffice is different in details and, despite, in most cases you don't have to encounter these differences, it must be taken into account that only Excel formulas syntax is supported. One of examples of such differences can be found in the form of a reference to an external cell. Let's assume a report have pages PageA and PageB and the A1 cell on Page is needed to be equal to the sum of first ten cells in the third column on PageB. This can be written with the following formula in Excel: Code =SUM(PageB!C1:C10) at the same time, this formulas is written differently in LibreOffice: Code =SUM($PageB.C1:C10) It must be known that the BIFF export supports only the first formula. Operators Excel formulas allow to use various operators and functions. Below are listed those of them that are supported in the BIFF export: 1. Unary operators + - and binary operators + - * / ^ and, also, comparsion operators < <= = >= > <> 2. The unary operator % that's written after its operand and divides it by 100. For instance the formula =A1% equals =A1/100 3. The operator : that makes a cell range. In order to calculate the sum of first tree cells in the column G one can write =SUM(G1, G2, G3) or =SUM(G1:G3) 4. The operator & joining strings: = "abc" & "def" is equal to ="abcdef" 5. The operator ! that allows to make a reference to a cell or a cell range placed on another sheet within the same document. Such an example already occured: =SUM(PageB!C1:C10) There are other kinds of the operator ! but they are currently not supported by the export. They can be added if users of the export need them. 6. The range instersection operator denoted by the space sign. For example the expression A2:C2 B1:H8 equals B2 Strings The export supports two kind of strings, distinguished by quotes enclosing them: 'abc' and "abc". To insert a quote into a string it can be doubled or a string with the other enclosing quotes can be used. For example the following strings are identical: "abc""def" and 'abc"def' When referencing to an external cell with the operator ! strings can be used, if a page name contains spaces or written in a national alphabet. Following formulas are identical: Code =SUM(PageB!C1:C10) =SUM("PageB"!C1:C10) =SUM('PageB'!C1:C10) The two last methods allow to use complex page names: =SUM("Another Page In This Document"!C1:C10) Functions Built-in Excel functions can be called from formulas. One of them is the widely known function SUM - it sums its arguments. Excel supports a very big number of functions. The BIFF export supports about 150 of them only. Among them there are widely used SUM, AVERAGE, INDIRECT, MIN, MAX, AND, OR and so on. To add the support of a new built-in function to the export, simple append frxBIFF.pas with one line, as this example demonstrates: Code ``` class procedure TBiffFormulaFuncList.Init; begin if GetCount > 0 then Exit;   {http://sc.openoffice.org/excelfileformat.pdf   http://msdn.microsoft.com/en-us/library/dd904817.aspx }   Add(0, 'count', 1, 30, 'v', 'r'); Add(1, 'if', 2, 3, 'r', 'vr'); Add(2, 'isna', 1, 1, 'v', 'v');   <...>   Add(362, 'maxa', 1, 30, 'v', 'r'); Add(363, 'mina', 1, 30, 'v', 'r'); end; ``` Descriptions of functions can be found at the above links. It's also possible to report me that a new function is needed and I will add it. Technical details A formula in a xls file is represented by a usual cell. It looks like a record with code 6 (http://msdn.microsoft.com/en-us/library/dd908919.aspx) that contains the row, the column, the formatting (an index to the XF record), the formula's result and the formula's code. The formula's code is a sequence of variadic length instructions, operating within a virtual machine without registers and with the LIFO stack. Instructions can be divided into two groups: those that push new values onto the stack and those that pop a few values from the stack, perform an operation with them and push a result back onto the stack. An example is a simple formula: int(1) int(2) add The first two ones pushes two 4-byte integers 1 and 2, and the third one pops two values from the stack, sums them pushes the sum back onto the stack, leaving on the stack only one value 3. The same formula can be represented by different sets of instructions. The BIFF export tries to choose instructions that occupy less space. For example let's consider a simple formula consisting of a single number: =-7.0 There are two ways to write this formula: Code ``` double(-7.0) ``` this code occupies 9 bytes; and the second way: ``` int(7) neg ``` this code occupies 6 bytes. The same is true for more complicated cases. By default, the exporting of formulas is enabled. What will happen if an incorrect formula is encountered in a report? The export will try to process it, but having found an error, will save it to an xls file as a simple text cell. What formulas the export supports The export supports Excel formulas. It's noteworthy that formulas syntax in Excel, OpenOffice and LibreOffice is different in details and, despite, in most cases you don't have to encounter these differences, it must be taken into account that only Excel formulas syntax is supported. One of examples of such differences can be found in the form of a reference to an external cell. Let's assume a report have pages PageA and PageB and the A1 cell on Page is needed to be equal to the sum of first ten cells in the third column on PageB. This can be written with the following formula in Excel: Code =SUM(PageB!C1:C10) at the same time, this formulas is written differently in LibreOffice: Code =SUM($PageB.C1:C10) It must be known that the BIFF export supports only the first formula. Operators Excel formulas allow to use various operators and functions. Below are listed those of them that are supported in the BIFF export: 1. Unary operators + - and binary operators + - * / ^ and, also, comparsion operators < <= = >= > <> 2. The unary operator % that's written after its operand and divides it by 100. For instance the formula =A1% equals =A1/100 3. The operator : that makes a cell range. In order to calculate the sum of first tree cells in the column G one can write =SUM(G1, G2, G3) or =SUM(G1:G3) 4. The operator & joining strings: = "abc" & "def" is equal to ="abcdef" 5. The operator ! that allows to make a reference to a cell or a cell range placed on another sheet within the same document. Such an example already occured: =SUM(PageB!C1:C10) There are other kinds of the operator ! but they are currently not supported by the export. They can be added if users of the export need them. 6. The range instersection operator denoted by the space sign. For example the expression A2:C2 B1:H8 equals B2 Strings The export supports two kind of strings, distinguished by quotes enclosing them: 'abc' and "abc". To insert a quote into a string it can be doubled or a string with the other enclosing quotes can be used. For example the following strings are identical: "abc""def" and 'abc"def' When referencing to an external cell with the operator ! strings can be used, if a page name contains spaces or written in a national alphabet. Following formulas are identical: Code =SUM(PageB!C1:C10) =SUM("PageB"!C1:C10) =SUM('PageB'!C1:C10) The two last methods allow to use complex page names: =SUM("Another Page In This Document"!C1:C10) Functions Built-in Excel functions can be called from formulas. One of them is the widely known function SUM - it sums its arguments. Excel supports a very big number of functions. The BIFF export supports about 150 of them only. Among them there are widely used SUM, AVERAGE, INDIRECT, MIN, MAX, AND, OR and so on. To add the support of a new built-in function to the export, simple append frxBIFF.pas with one line, as this example demonstrates: Code Tags: VCL, Export, FastReport, Excel ### Export to Jabber URL: https://www.fast-report.com/blogs/export-jabber-net Summary: Let's take a closer look at how to export to Jabber in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how to export to Jabber in FastReport .NET. Find more usefull tips and articles in our blog. A very interesting feature has been created in FastReport .NET - it allows to export to the messenger Jabber (XMPP). In fact, it is an HTML export with saving a report in Report Cloud. In this case, you receive a Web link to the report in your Jabber client. Such exports may be useful for a quick demonstration of reports within a company if the XMPP messenger is used as a corporate. A very interesting feature has been created in FastReport .NET - it allows to export to the messenger Jabber (XMPP). In fact, it is an HTML export with saving a report in Report Cloud. In this case, you receive a Web link to the report in your Jabber client. Such exports may be useful for a quick demonstration of reports within a company if the XMPP messenger is used as a corporate. Let us run any report in preview mode: Now click the Save button   in the toolbar: Then, select the lowest point of the list - XMPP. FastReport displays the export settings: Next, define the settings of your Jabber Profile - an ID and a password, and an identifier of the recipient of the report. This is the way to a message to yourself, therefore the sender name and the receiver name are the same. On the Proxy tab, set the proxy settings: Click "OK".  After that, we get a message in the Jabber: Open the link and see our report: The procedure is intelligible. If you often send reports to someone inside your company, it can be done faster with the XMPP exports. It is not necessary to transfer the report file as a reference to the report is sufficient. The recipient can share this link with others or download a report to a local computer. Tags: .NET, Export, FastReport ### Extension of client-server components for fp3 files URL: https://www.fast-report.com/blogs/client-server-components-fp3 Summary: We facilitate the formation of documents of various types from mp3 format without rebuilding reports with conversion to any available export format. We facilitate the formation of documents of various types from mp3 format without rebuilding reports with conversion to any available export format. We facilitate the formation of documents of various types from mp3 format without rebuilding reports with conversion to any available export format. Document flow plays an important role in building a corporate system. The fp3 format is the main document of the finished report if you use FastReport VCL in your system. To facilitate the generation of documents of different types from the internal format without rebuilding the reports, we have expanded our client-server components, which now enable to accept the fp3 format from clients and convert it to any available export format. This is accompanied by a caching system where the server can refuse to accept its file and work with the cache. There are also minor settings, for example, the maximum size of the received file. In order for your server to be able to receive and process fp3 files, you need to add a couple of settings to the config (XML file with settings). HeaderMaxSize — the maximum size of the HTTP header in bytes. The maximum value is 16384. ContentMaxSize — the maximum size of uploaded fp3 files in megabytes (0 — no limit). We've also updated our demo projects, which you can download here . On a client side, we will analyze PHP script in the role of a client, but, of course, a client can be written in any programming language. HTML form for script: ```
Send this:
``` Post.php: ``` $file); //Sending the file curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //Waiting for a response $response = curl_exec($ch);   // Debug return check-out if (empty($response)) { echo 'received an empty response'; } else { if (strstr($response, 'HTTP/1.1 301') == '') { //Something went wrong. The server returned an unexpected response echo '404'; curl_close($ch); exit; } if (curl_errno($ch)) { //The server returned an error, which we display in red echo ''; echo 'error: '.curl_error($ch); echo ''; } else { //Extract the address from the FastReport server response to receive export results $Location = GetLocationFromHeader($response); if (empty($Location)) { echo 'error: Location not found'; } else { //You can direct the client to the address to receive the file, but not in an architecture where the FastReport server ``` ``` //is connected to the php server locally and does not have access to the Internet. You will have to download ``` ``` //everything using the php server and it is safer from the point of view of logic in order to protect people's documents. ``` ``` $file = file_get_contents_curl($host.$Location); if (empty($file)) { echo 'error: file missing'; } { //We need to generate a new name to return the file to the client. //Everything is implemented as follows: The file name is the same as that of the client, ``` ``` //and the server response is analyzed to obtain the extension.   //Let's extract the format from the response. We take the old name that the client sent us ``` ``` //and replace the extension with the export result (if he sent 123.fp3, we will get 123.pdf). $Format = getExtension(GetFileNameFromLocation($Location)); $OldName = substr_replace($OldName, $Format, -3);   //Transferring files from the php server to the client header('X-Accel-Redirect: storage/'.$OldName); header('Content-Disposition: attachment; filename="'.$OldName.'"'); echo $file; } } } } curl_close($ch);       //Secondary functions //Extracts the address from the server response to get the conversion result function GetLocationFromHeader($arg_1) { $Location = strstr($arg_1, 'Location'); $Location = strstr($Location, '/'); $Location = substr($Location, 0, strrpos($Location, 'SessionId')-2); return $Location; }   //Getting filename from response function GetFileNameFromLocation($arg_1) { $FN = substr($arg_1, strripos($arg_1, '/')+1, strlen($arg_1)); return $FN; }   //Getting extension from filename function getExtension($fileName) { return substr($fileName, strrpos($fileName, '.') + 1); }   //Faster function counterpart file_get_contents function file_get_contents_curl($url) { $ch = curl_init();   curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);   $data = curl_exec($ch); curl_close($ch);   return $data; } ?> ``` This way you can get rid of several big problems. You won’t need to rebuild reports, which reduces the load on the server. Reports can be stored in any convenient place, and the client side can be written in any programming language that is comfortable for you. Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, PHP, PHP, Delphi, Delphi, HTML, HTML ### Fast Query Builder 1.01 URL: https://www.fast-report.com/news/fastquerybuilder-1.01 Summary: Fast Query Builder 1.01 Fast Query Builder 1.01 Let's your customers create DB-query without SQL! Fast Query Builder  enables to work with local and client-server databases using BDE. Also there is an opportunity to work via other data access components: ADO, IBX, FIBPlus Main features:  1. Borland Delphi 4, 5, 6, 7, 2005 and C++ Builder 4, 5, 6 supports  2. Keeping query visual model for use and editind.  3. You can create any window based on Fast Query Builder  4. Fast Query Builder designer window can be internal to any window of your application  5. Full visual customization of query parameters. ### Fast Report Inc. sponsors Delphi Developer from 2 URL: https://www.fast-report.com/news/sponsors-delphi-developer-2010 Summary: Fast Report a leading company in the development of fast software The company also sponsors the MindTheBird campaign! in support of Firebird 2.5. Fast Report a leading company in the development of fast software The company also sponsors the MindTheBird campaign! in support of Firebird 2.5. Fast Report Inc., a leading company in the development of fast softare The company also sponsors the MindTheBird campaign! in support of the launch of Firebird 2.5. As a promotional sponsor, Fast Report Inc. it also supports the first Ukrainian International Conference, which aims to provide information about Firebird, the open source database management system. The company Fast Report is famous for sponsoring numerous conferences that are held around the world. The company-sponsored conferences are intended to facilitate dialogue and exchange of views among IT professionals, so that they can fully exploit their potential. Fast Report Inc. she is proud to announce these initiatives and to contribute to collaboration between leading global companies. These conferences provide important up-to-date information on the latest technology and related business activities, and are also a source of inspiration for attendees. In addition, they help create new business opportunities and function as an excellent platform for exchange and collaboration between professionals. Delphi Developer Days 2010 will take place in the USA, the Uk, and in Germany in may, this event will bring together both experts in Delphi for the same users, which will delve into together the issues related to the technologies, applications and techniques of Delphi. The in-depth sessions of all the relevant topics will be held by the two leading experts from Delhi, Marco Cantu and Carens Further information on the program of this conference and the description of the topics that will be covered, are available on the website: http://www.delphideveloperdays.com. Marco Cantu will also share his experience during AEB. The global campaign, launched to provide visibility to Firebird 2.5, is supported by leading companies including Fast Report Inc. As the official sponsor of the campaign, the campaign will offer numerous licenses, of its products and at reduced prices, to the most active Firebird users and developers participating in the MindTheBird campaign. More information about the campaign is available on the website: www.mindthebird.com. Another event sponsored by Fast Report Inc. and dedicated to Firebird is the first Ukrainian International Conference on Firebird which will take place on April 23, 2010 in Dnepropetrovsk. The main developers of Firebird, Dmitrem Emanov, ale PES Peshkov and Vlad Khorsun will present the opportunities and main features of this innovative soft Rd The conference program includes a report on the main tools used to develop and improve this relational database management system for multi-platforms. ### Fast Report on CodeRage 9 URL: https://www.fast-report.com/blogs/fastreport-coderage9 Today we had a session on CodeRage 9 about Fast Report server. The session covers how you can easily build a server application and view your reports from browser. Also that session discovers how you can build server client application for mobiles using TWebBrowser component from FireMonkey framework. For all who watched the session and interesting in examples showed in the session you can download then from here: Delphi demos C++ Builder Demos Tags: FireMonkey, FireMonkey, FMX, FMX, FastReport, FastReport ### Fast Report Sponsors Delphi Developer Days 2010 URL: https://www.fast-report.com/news/fast-reports-sponsored-delphi-2010 Summary: Fast Report Inc. Sponsors Delphi Developer Days 2010 and MindTheBird Global Campaign Fast Report Inc. Sponsors Delphi Developer Days 2010 and MindTheBird Global Campaign Fast Report Inc., a leading developer of the fast reporting software, is proud to announce its sponsorship of upcoming Delphi Developer Days 2010 that will provide a deep insight into current and earlier versions of Delphi. The company also sponsors MindTheBird! campaign supporting the launch of Firebird 2.5. As a sponsor of the campaign, Fast Report Inc. supports First Ukrainian International Conference aimed to deliver the information on the open-source database management system Firebird.  Fast Report is known for sponsoring a number of conferences held all over the world. The conferences sponsored by the company aim to facilitate the dialog and exchange of views between IT professionals, allowing them to fulfill their potential. Fast Report Inc. is proud to come up with these initiatives and contribute to the collaboration of the leading global companies. While delivering current and essential information about the latest technology advances and related industry activities, the conferences also provide inspiration for participants. What’s more, they help to create new business opportunities and serve as an excellent platform for professional networking and exchange.  Delphi Developer Days 2010 scheduled to be held in the USA, UK and Germany in May will bring together Delphi experts and users who will elaborate on the major questions including Delphi technologies, applications and techniques. Sessions covering all the relevant topics will be presented by top Delphi experts Marco Cantù and Cary Jensen who will reveal their favorite tricks. Further information on the schedule of this conference and topic descriptions is available at http://www.delphideveloperdays.com .  Marco Cantù will also share some more of his experience during a webinar on Delphi+Firebird as a part of MindTheBird! campaign. Launched to ensure the visibility of Firebird 2.5, the global campaign is supported by the leading companies including Fast Report Inc. Being a full sponsor of the campaign, the company offers several licenses of its products as prizes for the most active Firebird users and developers who have joined MindTheBird campaign. Additional information about the campaign is available at www.mindthebird.com. One more event sponsored by Fast Report Inc. and devoted to Firebird is the First Ukrainian International Conference on Firebird that is to take place April 23, 2010 in Dnepropetrovsk. Firebird’s core developers Dmitry Yemanov, Alex Peshkov and Vlad Khorsun will explore the opportunities and main features of the innovative RDBMS software. Conference program includes the report on the main tools used for developing and enhancing this multi-platform relational database management system. ### Fast Report sponsors Delphi Developer Days 2011 URL: https://www.fast-report.com/news/sponsors-delphi-developer-2011 Summary: Fast Report sponsors Delphi Developer Days 2011 Fast Report sponsors Delphi Developer Days 2011 Fast Report Inc. Sponsors Delphi Developer Days 2011 and MindTheBird Global Campaign  Fast Report Inc., a leading developer of the fast reporting software, is proud to announce its sponsorship of upcoming Delphi Developer Days 2011 that will provide a deep insight into current and earlier versions of Delphi.  Delphi Developer Days 2011  DelphiDeveloperDays.com Top Delphi experts Marco Cantù and Cary Jensen present their annual Delphi Developer Days tour. This year, they visit four cities in the United States and Europe.  Cites and Dates for 2011:  DC/Baltimore area, US:            April 11-12, 2011  Houston, Texas, US:                April 14-15, 2011  Frankfurt, Germany                  May 12-13, 2011  Amsterdam, The Netherlands:   May 16-17, 2011 ### Fast Reports Anniversary Celebration — Enjoy 20% Off URL: https://www.fast-report.com/news/birthday-fastreport-2026 Summary: To celebrate the Fast Reports anniversary, we're offering 20% off all reporting libraries FastReport VCL, FastReport .NET and FastReport Desktop. To celebrate the Fast Reports anniversary, we're offering 20% off all reporting libraries FastReport VCL, FastReport .NET and FastReport Desktop. Every year brings new products, thousands of successful projects, and millions of reports created with Fast Reports solutions. But our greatest achievement is the community of customers and partners who trust us to power their reporting. Thank you for choosing our products and growing with us. To celebrate the Fast Reports anniversary, we're offering 20% off all reporting libraries FastReport VCL , FastReport .NET and FastReport Desktop . The promotion runs from August 10 through August 25. Take advantage of this special offer to purchase new products or update your existing licenses to the latest version at a discounted price. We're proud to be part of your projects and will continue improving our products to make reporting even easier and more efficient. ### Fast Reports announced best partners of 2020 URL: https://www.fast-report.com/news/best-partners-2020 Summary: Fast Reports announced best partners of 2020 Fast Reports announced best partners of 2020 At the beginning of the year 2021, we analyzed the work of our partner channel from 2020. Despite the hard year our partners rose to the task and didn't yield their ground. In fact, there was a certain growth. Based on last year's result we selected the best of the best. We are proud to introduce our "Partners of the year", who showed the best results in product promotion, event handling, and, of course, sales. The winners are: Partner of the year North America - Component Source Partner of the year South America - FireBase Partner of the year Europe - Component Source / IT Haimerl Partner of the year Asia - Evget / Ag Tech Partner of the year OEM -   Isah "Although 2020 was not easy, our partners showed themselves to the best advantage. Once again we are convinced how important it is to build a trust-based relationship, that is much more than "just business" - together we are making developers' lives better!" We want to thank all our partners for their collaboration and wishing them luck this year. ### Fast Reports at DelphiCon 2021 URL: https://www.fast-report.com/news/delphicon-2021 Summary: Our speaker presents a report on the topic: "Invoice Generation via Telegram Bot Using FastReport VCL and Delphi" at Delphicon 2021. Our speaker presents a report on the topic: "Invoice Generation via Telegram Bot Using FastReport VCL and Delphi" at Delphicon 2021. November 18, 16:00 (UTC), Fast Reports Delphi developer, Alexander Syrykh, will speak at DelphiCon 2021, which will be held by Embarcadero, bringing together the best experts in Delphi development. The conference will be held online, in his talk Alexander will speak about “Generating invoices using a Telegram bot using FastReport VCL and Delphi”. The talk will give a step-by-step review of the process of creating a Telegram bot with a menu, working with the Telegram bot API in Delphi, creating invoices using FastReport VCL in PDF format, and sending them to the user. The event is free.  You can book your place for the lecture here. ### Fast Reports at Entwickler Summit URL: https://www.fast-report.com/news/entwickler-summit-2025 Summary: Fast Reports participated in Entwickler SUMMIT in Berlin. The event gathered 2,000 software professionals and featured Neal Stephenson. Fast Reports participated in Entwickler SUMMIT in Berlin. The event gathered 2,000 software professionals and featured Neal Stephenson. On September 18, Fast Reports took part as an exhibitor at the Entwickler SUMMIT , hosted in the historic Colosseum cinema in Berlin to celebrate the 30th anniversary of Entwickler Magazin. The event, organized by Software & Support Media, brought together around 2,000 software professionals and became a vibrant meeting point for knowledge sharing, networking, and inspiration. Among the highlights was the presence of Neal Stephenson, world-famous science-fiction author and tech visionary. For Fast Reports, it was a fantastic opportunity to connect with the developer community, exchange ideas, and showcase our products to an engaged and curious audience. Participants were also able to participate in a raffle. Congrats to the winners! Looking forward to the next event. ### Fast Reports copyrights protection in the China URL: https://www.fast-report.com/news/copyrights-protection-china Summary: Fast Reports copyrights protection in the China Fast Reports copyrights protection in the China We are pleased to annouce the campaign of Authentic plan initiated by  Huidu Technology , our China partner. It is aimed to increase the awareness of using authorized software and protect all users' interests. We strongly support this campaign and will continuously work with Huidu to achieve its success. ### Fast Reports in Embarcadero Technologies webinars URL: https://www.fast-report.com/news/webinars-embarcadero-2015 Summary: Fast Reports in Embarcadero Technologies series of webinars Fast Reports in Embarcadero Technologies series of webinars On February 13th Fast Reports will take part in Embarcadero Technologies series of webinars “Embarcadero Technology Partner Spotlights”, where our lead developer Denis Zubov will tell you all about rapid report development with FastReport. Presentation will be followed by Q&A session. Sign up at http://forms.embarcadero.com/14Q1TechPartnerSpotlights ### Fast Reports Inc. visited the DWX Mannheim 2025 exhibition URL: https://www.fast-report.com/news/report-dwx-mannheim-2025 Summary: Fast Reports participated in DWX, an event for AI, Cloud, Web and .NET professionals. We attracted developers with giveaways and informative talks. We look forward to next year's Developer Week. Fast Reports participated in DWX, an event for AI, Cloud, Web and .NET professionals. We attracted developers with giveaways and informative talks. We look forward to next year's Developer Week. DWX is the event for AI, Cloud, Web and .NET. An estimated number of 2500 software developers, AI pioneers and tech decision-makers was expected in the beautiful Congress Centre Rosengarten in Mannheim. Fast Reports was represented with a booth of 4m² supported by a 55“ flat screen where the Fast Reports movie was constantly played. Expert talks were held throughout the day in different rooms.  To attract potential customers Fast Reports decided to give away a backpack with a LED screen on each day of the event. The raffles took place towards the end of the day during the coffee break. While the participants collected the tickets for the raffle and their batches were scanned, we started an informative small talk about the company.  Most of the booth visitors were software developers employed in companies from various work areas, including aviation and medicine. The needs of our potential customers are still the fast reports in terms of the documentation generating speed rate to save time, money and nerves. We could also impress by giving the information about the standard documentation support of FastReport products like PDF A and ZUGFeRD. Nevertheless, the advantages of processing big data volumes by the FastReport products awakened much interest in our leads.  Evening gatherings like the very well organised Casino Night or the Partner Meet Up gave possibilities to make further contacts and introduce Fast Reports to the most potential customers. We are looking forward to participating in the Developer Week next year and would like to motivate the organisers to invite more visitors by Partner Networking over the year.  ### Fast Reports is one of the best software creators 2021 URL: https://www.fast-report.com/news/fastreports-top-100 Summary: Fast Reports is one of the best software creators of 2021 Fast Reports is one of the best software creators of 2021 Yet again we are happy to be recognized as Top 100 publisher from Component Source ! ### Fast Reports is sponsor of The Autumn ADUG Symposium URL: https://www.fast-report.com/news/sponsor-symposium-2011 Summary: Fast Reports is sponsor of The Autumn ADUG Symposium 2011 Fast Reports is sponsor of The Autumn ADUG Symposium 2011 We became a sponsor of The Autumn ADUG Symposium 2011.  ADUG is an organisation dedicated to providing a forum for activities and information that promote and improve the professional use of Delphi and related products and services in the Australian developer community.  You can visit this page for getting more information:  ADUG Symposium ### Fast Reports launched in Japan with AG-Tech! URL: https://www.fast-report.com/news/fast-reports-japan Summary: Fast Reports launched in Japan with AG-Tech! Fast Reports launched in Japan with AG-Tech! One of the leading worldwide producers of reporting tools for .Net and Delphi developers - Fast Reports Inc. - today opens sales in Japan with their first fully localized Japanese version of their flagship FastReports.NET product. This has been made possible by one of Japan's largest packaged software distributors AG-Tech Corporation, the exclusive distributor of Fast Reports Inc. products in Japan. Michael Philippenko, CEO of Fast Reports says "We are glad to be able work with such a highly professional team as AG-Tech. They have prepared for us a fully localized version of our flagship product FastReport.Net for the Japanese market. It is important to say also that AG-Tech has the necessary rich experience we required of working in the Business Intelligence market in Japan. All the preparation of product, support, sales and marketing materials took about one year, so now we are fully confident in the high quality of tech support, documentation and product which will now be offering in their native language to Japanese software developers." Yoshio Ando, CEO of AG-Tech Corporation says "In FastReports.NET we have found a high quality, compact, reasonably priced and fast reporting tool to offer to the Japanese market. By offering a fully localized product combined with our experienced team of local support and sales engineers, we feel we can offer Japanese report developers and standalone report users a fully featured complete reporting solution. Furthermore later on this year, we plan to be able to launch a Japanese version of Fast Report's VCL report generator product for Delphi." About AG-TECH Corporation AG-TECH Corporation (Head Office: Tokyo Japan; President: Yoshio Ando), is a company with over 25 years of experience in localizing, selling and importing packaged software into the Japanese market. They have been active in the Japanese Business Intelligence market for many years, having been in the past distributors for Crystal Reports and current distributors for ACL Services Ltd. ( the leading global provider of audit analytics and continuous monitoring software ). ### Fast Reports on BASTA! in Germany URL: https://www.fast-report.com/news/germany-basta-2014 Summary: Fast Reports on BASTA! in Germany Fast Reports on BASTA! in Germany We will take a participation in BASTA! developer conference in Mainz from 23th to 25th of September. The BASTA! is the leading independent conference for Microsoft technologies in Germany. Alexander Tsyganenko, Aleksandr Fediashov and Oleg Kozhnikov will answer on any questions regarding our products. ### Fast Reports on BASTA! Spring 2014 URL: https://www.fast-report.com/news/fastreport-basta-2014 Summary: Fast Reports on BASTA! Spring 2014 Fast Reports on BASTA! Spring 2014 Fast Reports is going to BASTA! in February 24  personally! Can FastReport work with BigData? We will speak about on BASTA! Spring! BASTA! is the most famous and independent conference for .NET technologies in Germany. At BASTA! renowned experts from all over Europe come together to share their .NET knowledge with conference attendees. For many years, the conference has offered a unique blend of sessions, workshops and keynotes, giving attendees a level of information that is unparalleled. Conference City:  Darmstadt Period:  24.02.2014  to  28.02.2014 ### Fast Reports on CodeRage 9 URL: https://www.fast-report.com/news/ivent-coderage9-2014 Summary: Fast Reports on CodeRage 9 Fast Reports on CodeRage 9 Recently we had a session on CodeRage 9 about FastReport server. The session covers how you can easily build a server application and view your reports from browser. Also that session discovers how you can build server client application for mobiles using TWebBrowser component from FireMonkey framework. For all who watched the session and interesting in examples showed in the session you can download then from here: Delphi demos C++ Builder Demos ### Fast Reports on EuroDevCon 2014 URL: https://www.fast-report.com/news/EuroDevCon-2014 Summary: Fast Reports on EuroDevCon 2014 Fast Reports on EuroDevCon 2014 Our CEO Michael Philippenko  will  mak e presentation "Reports inheritance and live interactive reports - how to use it in applications" and will show methods of using inheritance in reports. What exactly (and for what) you can inherit in report? what the difference and restrictions of inheritance of report objects, script, etc.? How to use overriding in complex with inheritance? Interactive report - often you need some reaction of report to user's activity. The Conference will be in Germany from 3th till 5th of November, the EuroDevCon 2014 welcomes some of the worlds leading Delphi experts, thinkers and practitioners to share their craft and mastery secrets. The EuroDevCon 2014 offers a deep dive for the modern developer and architect aiming to transform technologies into valuable business solutions. The conference is focusing on Delphi innovations, Fundamentals, Tips and Tricks, Data bases, Frameworks and Tools and Cross platforms/ Mobile and Web technologies, as well as expert professional insight into the very latest methodologies and best-practices. Interaction and exchange of ideas is one of the great attributes of EuroDevCon 2014 – a meet, greet, listen and learn conference. For more information visit www.eurodevcon.com . ### Fast Reports on PasCon Netherlands URL: https://www.fast-report.com/news/pascon-netherlands-2014 Summary: Fast Reports on PasCon Netherlands Fast Reports on PasCon Netherlands We will take a participation in Developer Conference of Delphi and Object Pascal in Leiden at 11th of September. Michael Philippenko and Denis Zubov will speak you about Server Reporting in FastReport VCL and about migration from other reporting tools. More detail and registration: blaisepascal.eu ### Fast Reports on the “Delphi na Estrada” tour in Brazil URL: https://www.fast-report.com/news/delphi-brazil-may-2025 Summary: Fast Reports will participate in the "Delphi na Estrada" tour during May, and also launched a website with Portuguese localization. Fast Reports will participate in the "Delphi na Estrada" tour during May, and also launched a website with Portuguese localization. We invite you to travel “Delphi na Estrada" with us! We will visit 8 cities to represent the latest innovations in the world of Delphi programming. Michael Philippenko, one of the co-founders of Fast Reports Inc., will tell you about the advantages of the new 2025.2 version of FastReport VCL: Advanced report components and external data Overview of TfrxPDFVIew,TfrxHTMLView, and TfrxMapView components Connecting objects to external data via DataLink And much more! We will be waiting for you in all cities to share our experience and valuable knowledge. Detailed information about the reports and dates is available here! Delphi na Estrada Portuguese localization Our website is now available in Portuguese! This opens up new opportunities for you to conveniently explore information and make purchases. Easier find the solution suitable for your project. Receive important updates and news directly in your native language. No need to spend time translating or searching for information from other sources. We are constantly working on improving our website, and adding Portuguese localization is another step towards creating a more user-friendly and nice interface. If you have any questions or suggestions, please contact  our support team. Go to Website ### Fast Reports participates in CodeRage 8 URL: https://www.fast-report.com/news/coderage-8-2013 Summary: Fast Reports participates in CodeRage 8 Fast Reports participates in CodeRage 8 Join us on CodeRage8! On our stand short time will be available discounts on our software components for Delphi, C++Builder and RAD Studio. And also it may be interesting for you - Michael Philippenko will speak and make some demonstration about FastCube 2 and FastReport 5. When - Thursday, October 17, 2013 Where -  CodeRage 8 - Delphi Conference Sessions Register now for free! ### Fast Reports Private NuGet-server URL: https://www.fast-report.com/blogs/private-nuget-server Summary: We are talking about our own NuGet package repository-a Fast Reports server with connection through various sources. We are talking about our own NuGet package repository-a Fast Reports server with connection through various sources. We are talking about our own NuGet package repository-a Fast Reports server with connection through various sources. In the article on working with NuGet packages we considered all the specific features of using  with Fast Reports software . One of the most frequent questions of our clients is the following one:  How do we install your licence packages in our product using Linux, MacOS or Windows so that we won’t have to install the latest update of FastReport products manually by installer that has been downloaded from the website compatible only with Windows? To answer this question, we have prepared a comprehensive decision such as our Fast Reports Private NuGet-server. What is that and what is that for? Almost all packages you use in your projects are stored in public package registry - NuGet Gallery ( nuget.org ). Here you can find different demo versions of our packages, however there are no full packages that are not limited by demo versions. That’s why we have decided to create our package registry available only for Fast Reports clients. Hence you need a Fast Reports account to have an access to it (via this account you could go to  cpanel.fast-report.com  for downloading the product installer). Adding a source We consider several types of adding our NuGet-server: .NET CLI Visual Studio Visual Studio for Mac Rider nuget.exe CLI NuGet.Config Docker But at first, we should speak about differences of a global and a local NuGet Config. Global and local NuGet.Config Consider the restoring of packages used in your project: 1) NuGet looks for necessary packages in the cache 2) NuGet looks for necessary packages in all the sources added to the NuGet.Config file, and: a) NuGet addresses to the local NuGet.Config b) NuGet addresses to the global NuGet.Config The local NuGet.Config is situated near your project. So, sources that have been added here will be used only for restoring this project. In its turn, the global NuGet.Config will be used for all projects of this computer. However, it is necessary not for all projects. Global NuGet.Config location: Windows: "C:\Users\{User’s_name }\AppData\Roaming\NuGet\NuGet.Config" MacOS: "~/.config/NuGet/NuGet.Config" Linux: “~/.config/NuGet/NuGet.Config” Thus, according to NuGet specification, the server’s name, its address and your data (email and password to this server) must be written in a file named NuGet.Config (or nuget.config) that will be situated in a place suitable for you. Encrypted and non-encrypted password storage  A file of NuGet.Config is able to store a source password in encrypted way as well as in the format of ClearTextPassword. In most cases it is recommended to store passwords encrypted, however at the same time encrypting is made with the help of external environment parameters (operating system, computer configuration, etc.). As a consequence, if we distribute this configuration file to another machine, the mentioned password can’t be decoded and you won’t get access to the source. It should be taken into account when choosing types of adding or updating the source. Then we study principal methods to add our source to NuGet with specifying operating system compatible with this particular method. In addition, we won’t forget about available types of configurations and source password storage format. .NET CLI: (any OS, any config, any password storage format) Downloaded SDK .NET Core 3.1.200 and later (including SDK .NET 5 and later) is necessary for this method to work out. Put in the command prompt: dotnet nuget add source https://nuget.fast-report.com/api/v3/index.json --name [choose source name without spaces, for example: fr_nuget] --username [email of your Fast Reports account] --password [password from your Fast Reports account] By default, this command adds a source to the global NuGet.Config, but you can choose the location of the configuration file and make it local with the help of --configfile parameter [configuration file path]. The source password is also encrypted by default, and --store-password-in-clear-text parameter is necessary to store non-encrypted password. Example: ``` dotnet nuget add source https://nuget.fast-report.com/api/v3/index.json --name fr_nuget --username myaccount@fast-report.com --password 1234Password5678 ``` You can read more about this method of adding a source on the Microsoft website. Microsoft Visual Studio: (Windows, global config, encrypted password) Consider adding NuGet-server using Microsoft Visual Studio 2022 by means of an example. It is important to take into account that this method works out starting from Visual Studio 2017 . In menu choose ‘Tools’, then ‘NuGet Package Manager’ and open the ‘Package Manager Settings’ window. Then on the left choose ‘Package Sources’ and click + (add) button. Put the name source in ‘Name’ field without spaces (for example, FastReport-NuGet) and the source address https://nuget.fast-report.com/api/v3/index.json in ‘Source’ field Press ‘ОК’ and after that shift to a package adding window. In the drop-down list ‘Package source’ choose the source we have just added. Then in the dialog box fill in Fast Reports account data and tick ‘Remember my password’. Microsoft Visual Studio for Mac: (macOS, global config, encrypted password) Consider using the example of Microsoft Visual Studio for Mac 2019. In the menu choose ‘Project’ and open ‘Manage NuGet Packages…’ window. At the bottom of the drop-down list ‘Package source’ choose ‘Configure Sources…’. Press Add button and fill in the data in the window: - Name: source name without spaces (for example, FastReport-Nuget); - Location: https://nuget.fast-report.com/api/v3/index.json ; - Username: email from Fast Reports account; - Password: password from Fast Reports account. Confirm adding the source by ‘Add Source’ button. JetBrains Rider: (any OS, global config, encrypted password) Consider using the example of Rider 2021.3 in Linux Ubuntu 18.04. Go to the menu ‘Tools’, ‘NuGet’ and choose ‘Show NuGet Sources’. Press + in the NuGet window in ‘Sources’ in front of ‘New feed’ Enter necessary data: - Name – source name without spaces (for example, FastReport-Nuget); - URL - https://nuget.fast-report.com/api/v3/index.json ; - User - email from Fast Reports account; - Password – password from Fast Reports account. Nuget.exe CLI: (any OS (Mono 4.4.2 or later is necessary for macOS/Linux), any config, any password storage type) Nuget.exe installation  is described in detail on Microsoft website. Now we consider just important features. nuget sources add -name [choose the source name without spaces, for example: fr_nuget] -source “https://nuget.fast-report.com/api/v3/index.json” -username [email of your Fast Reports account] -password [password of your Fast Reports account] By default, this command adds the source in the global NuGet.Config, however you can choose the location of the configuration file and make it local using -ConfigFile parameter (configuration file path). Initially a source password is encrypted, and -StorePasswordInClearText parameter is used to store a non-encrypted password Example: ``` nuget sources add -name fr_nuget -source “https://nuget.fast-report.com/api/v3/index.json” -username myaccount@fast-report.com -password 1234Password5678 ``` You can read more about this method of adding a source on the Microsoft website. Edit NuGet.Config: (any OS, any config, non-encrypted password) Important! It is only non-encrypted password from Fast Reports account that you can enter using this method , as the configuration file is a simple XML file. Any text editor opens or creates it. In the block ‘packageSources’ it is necessary to add our resource with chosen name (it is undesirable to use spaces), for example: ``` ``` In the block ‘packageSourceCredentials’ it is necessary to add your email and password from Fast Reports account in the block with the same key: ``` ``` Finally, you’ll get a similar configuration file (other sources have been removed from the example): ``` ``` Docker: (any OS, any config, non-encrypted password) In Dockerfile when creating docker-image you need to add a source either by using .NET CLI, or by placing NuGet.Config configuration file, that has been prepared before, in a docker-container. As a mean of example, we use .NET CLI in Dockerfile to add a source. ``` FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build ARG username ARG pass RUN dotnet nuget add source https://nuget.fast-report.com/api/v3/index.json --name fr_nuget --username $username --password $pass --store-password-in-clear-text ``` Now when running docker build command we just give necessary parameters: ``` docker build -f "./DockerTestProject/Dockerfile" --force-rm --build-arg username=myaccount@fast-report.com --build-arg pass=1234Password5678 -t dockertest:latest ``` Attention! This method of transferring private keys and passwords is not secure. You can read  a corresponding article on more secure transferring passwords as docker build arguments. Updating login/password If your account data changed, you need to update it in the NuGet configuration file. Consider following methods: .NET CLI; nuget.exe CLI; NuGet.Config. In JetBrains Rider and Microsoft Visual Studio for Mac changing user data is similar to adding ; the only adjustment is that it is necessary to update a source you have already added. In case of connection via Docker in the method of adding mentioned above it suffices to change user data when assembling a container from Dockerfile. .NET CLI: (any OS, any config, any password storage method) Installed SDK .NET Core 3.1.200 and later (including.NET 5 and later) is necessary for this method to work out. Put in the command prompt: dotnet nuget update source [the name of resource that has been added before, for example: fr_nuget] --username [email of your Fast Reports account] --password [password of your Fast Reports account] This command is considered to change a source that has been added to the global NuGet.Config. However, you can choose the location of the configuration file by using --configfile parameter (configuration file path). By default, the source password is encrypted, you can use --store-password-in-clear-text parameter to store non encrypted password You can read more about this method of updating the source on the Microsoft website . Nuget.exe CLI: (any OS (Mono 4.4.2 or later is required for macOS/Linux), any config, any password storage type) Nuget.exe installation  was described previously in detail. It suffices only to consider key features. nuget sources update -name [name of the source that has been added before, for example: fr_nuget] -username [email of your Fast Reports account] -password [password of your Fast Reports account] Initially this command changes the source added in the global NuGet.Config. However, you can choose the location of configuration file using the -ConfigFile parameter (configuration file path). By default, a password is encrypted, -StorePasswordInClearText parameter is used to store a non-encrypted password. You can read more about this method of updating the source on the Microsoft website . Edit NuGet.Config: (any OS, any config, non encrypted password) Open a necessary file of NuGet.Config via any text editor. In the block ‘packageSourceCredentials’ with the name of the source that has been added before we change values “Username” and “ClearTextPassword” to necessary ones. If instead “ClearTextPassword” you have the block “Password”, just change it to “ClearTextPassword”. Finally, it should look as follows: ``` ``` More detail on downloading packages By default, in the interface of your IDE you see all the packages downloaded in Fast Reports private NuGet source. However, to download a selected package the next requirement should be met: if the package is not public available (such as FastReport.Compat, FastReport.Core demo version, FastReport.Net.Demo, etc.), you need to have a necessary subscription to download the latest updates of these packages. For example, to download FastReport.Core you need to have a subscription not earlier than FastReport .NET Standard (including Professional, Enterprise or Ultimate), to download FastCube.Core you need a subscription not earlier than FastCube .NET Standard (including Professional or Ultimate), etc. Restoring packages in case of an expired subscription  If your subscription has expired, you can keep using Fast Reports packages source, however you will have no access to the latest versions of packages. As a consequence, the latest available version of the package will be determined by the following condition: Date of selected version release < date of necessary subscription expiry  Important! When trying to download a package with the release date later than necessary subscription expiry date, Fast Reports NuGet server will provide you with the latest available version of the package based on your subscription. But we don’t recommend a link to unavailable package version, as it leads to Warning notification when restoring a project and delay of package downloading. Tags: .NET, MacOS, FastReport, Upload, NuGet ### Fast Reports releases NuGet-server URL: https://www.fast-report.com/news/release-nuget-server Summary: Launching our NuGet server, which will make it much more convenient and faster to deliver our products to users. Launching our NuGet server, which will make it much more convenient and faster to deliver our products to users. We are happy to announce the release of our NuGet-server. It is an important part of our framework that will make the delivery of our products to users more convenient and faster. Now you can automate the assembly of your products using Fast Reports licence packages, without the need to download manually and install them from the official website via installer. In addition, thanks to the appearance of NuGet-server, it is much easier to use Fast Reports cross-platform products in operating systems of Linux and MacOS families. To have an access you just need Fast Reports account. On this server NuGet-packages of various .NET products are available: FastReport .NET (including Core, CoreWin), FastCube .NET, FastReport Business Graphics .NET, etc. We’ve shared more detail on the work of NuGet-server in our article. ### Fast Reports was ranked in the Top-50 among the best software vendors 2022 URL: https://www.fast-report.com/news/top-software Summary: Fast Reports was ranked in the Top-50 among the best software vendors 2022 Fast Reports was ranked in the Top-50 among the best software vendors 2022 We’re proud of being selected in the Top-50 software vendors according to  Component Source !  ### Fast Reports will be in Warsaw on .NET Developers Days URL: https://www.fast-report.com/news/event-warsaw-2016 Summary: Fast Reports will be in Warsaw on .NET Developers Days Fast Reports will be in Warsaw on .NET Developers Days Fast Reports will be in Warsaw on .Net Developers Days again! Here's how it was in 2016 and we are excited to be a part of this event again! Thousands of developers, speakers and exhibitor: a must attend event! Learn more about .Net Developers Days here ### Fast Reports Wins ComponentSource Award URL: https://www.fast-report.com/news/top-software-2024 Summary: ComponentSource has awarded Fast Reports a Top 50 Publisher Award in the annual ComponentSource Awards for 2024. ComponentSource has awarded Fast Reports a Top 50 Publisher Award in the annual ComponentSource Awards for 2024. 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 ! ### Fast Reports Wins ComponentSource Award! URL: https://www.fast-report.com/news/component-source-awards-2025 Summary: We are excited to be once again among the Top-50 Publisher by ComponentSource! We are excited to be once again among the Top-50 Publisher by ComponentSource! We are excited to be once again among the Top-50 Publisher by ComponentSource !  It's awesome to share the stand with the other great software publishers! Our collaboration with the international reseller ComponentSource has lasted for over 15 years. We are happy to see the continued success of our partnership and how it has helped us to become a part of thousands of projects. We want to thank our customers who continuously choose FastReport and FastCube in their work. *The allocation of the awards has been calculated based on real sales orders placed by ComponentSource customers globally during 2024. ### Fast Reports' speaker at Basta! URL: https://www.fast-report.com/news/speaker-basta-2021 Summary: Visit the talk of our head of cloud development Vitaliy at one of the biggest .NET conferences in Europe - Basta! Visit the talk of our head of cloud development Vitaliy at one of the biggest .NET conferences in Europe - Basta! We are proud to present our speaker at one of the biggest .NET conferences in Europe - Basta!  Our team lead of cloud development Vitaliy will talk about Load balancing with Rabbit MQ. Here's the synopsis of his talk:  One of the most popular solutions for load balancing is message queues. How to distribute the load evenly among users so that no one is left out? In this session you will learn about developing a distribution system on .NET 6 using Rabbit MQ queues, dynamically adding new users, and comparing it with prioritized queues. Vitaly is a graduate of the Faculty of Mathematics, Mechanics & Computer Science of Southern Federal University. Developed bots for computer games in .NET and Java. Was working with migration modeling problems. Among his hobbies are mathematics, fishing, guitar, and Minecraft modding. If you're at Basta in Frankfurt or online - make sure to visit his talk and ask questions during the Q&A session.  ### Fast sending to print reports in MVC URL: https://www.fast-report.com/blogs/sending-print-reports-mvc For harmony of Web report with the stylistics of the web page, many people are disable WebReport object toolbar. Thus the user is deprived of options to export and print reports. But if you still want to allow the user to print a report from a browser, you can create a special button to print. By clicking on it, the user will receive the print dialog box. Now I'll show how to invoke the print dialog in MVC web project. To start, add a button in the view. I placed it on the home page of my demo web application. Find the Index.html file in the Solution Explorer: Add the button to the desired location: ``` @using (Html.BeginForm("Print", "Home")) { } ```  Here Print - name of the handler in the controller. And Home - name of the controller. Go to the Controllers folder. HomeController.cs file: Add the method to the class code: ``` public void Print() { WebReport webReport = new WebReport(); System.Data.DataSet dataSet = new System.Data.DataSet(); dataSet.ReadXml("C://Program Files (x86)//FastReports//FastReport.Net//Demos//Reports//nwind.xml"); webReport.Report.RegisterData(dataSet, "NorthWind"); webReport.Report.Load("C://Program Files (x86)//FastReports//FastReport.Net//Demos//Reports//Simple List.frx"); webReport.EmbedPictures = true; webReport.PrintHtml(); } ```  As you can see a method called Print, as in the button that we added. Let's take a closer look at the code. In the first line, we created an instance of an object WebReport. Then, we created a DataSet to work with the data. DataSet can work with xml database. Actually in the third line, I specify the path to the database. Using the method RegisterData we register the data source in the report object. Then, load the report template into the report object. It is located in the same folder as the database. EmbedPictures property allows you to embed images in html log file. Finally, the last line starts the printing of the report in the browser. If you want to save the report in PDF format, then change the last line to: ``` webReport.PrintPdf(); ```  In this case, you can use options to format pdf file. For example: ``` webReport.PdfPrintOptimized = true; ```  This option gives the best image quality for printing. Now you need to add the handler in the Web.config: ``` ```  Now run the application. Here is the button on the Web page: Сlick on it. And we get the page with the report and the print dialog: Here is the saving in PDF: Thus it is possible to call the print dialog using the user's button instead of WebReport object toolbar. This can be useful when you embed report controls in web page design. In this example, we have not added any web report object on the web page. The report is based on a separate page, just before printing. This is useful when there is no need to display the report on a Web page. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC, WebReport, WebReport, Printing, Printing ### FastConverter URL: https://www.fast-report.com/products/converter Summary: Desktop converter for FP3 format and an online converter for FPX files to multiple formats: PDF, RTF, XLSX, XML, DOCX, and more. Desktop converter for FP3 format and an online converter for FPX files to multiple formats: PDF, RTF, XLSX, XML, DOCX, and more. Use FastConverter .FP3 to convert a single file or the contents of a selected folder, with support for nested folders FastConverter Desktop converter for FP3 format and an online converter for FPX files to multiple formats: PDF, RTF, XLSX, XML, DOCX, and more. Try Online Buy Download Use FastConverter to convert a single file or the contents of a selected folder, with support for nested folders. The product offers support both via command line and in interactive mode. Batch conversion of FastReport VCL documents to popular formats. Batch Conversion Simultaneously convert multiple generated reports (a single file or the contents of a folder) to the chosen format. Multiple Output Formats Convert your fp3 reports to the most popular data formats: PDF, Office, Web, Graphics in just a couple of clicks. Fine-Tuning Exports Configure export settings once for all formats, and FastConverter will remember your choices for future operations. Full Review of FastGrid Library's Capabilities FastReport VCL Ultimate users have probably already noticed that the installer now includes two new options: FastEditors VCL and FastGrid VCL. A new demo has also been added to the DemoCenter: FastGrid VCL Demo. An overview of the FastGrid library for VCL and Lazarus: data visualization, editing, and structuring. Sorting, filtering, grouping, convenient data editors — all in one article! New Report Validation System in FastReport VCL We have frequently received requests from technical support for functionality to automatically validate reports, and we are pleased to announce its inclusion in the 2026.2.0 release. The "File" menu in the report designer now features "Validate" and "Validation Rule Settings" options. This allows users not only to check reports but also to manage the set of rules, including the creation of custom ones In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. Using Watermarks in FastReport VCL The latest versions of FastReport VCL now feature watermarking functionality. Watermarks are labels embedded in electronic documents, images, videos, audio, or other digital content. Their purpose is to confirm authorship, protect against copying, and track file distribution. In this article, we'll take a detailed look at creating and using watermarks in FastReport VCL reports. An example of watermark use is available in the Demo included with FastReport VCL. The article provides a detailed overview of the watermark functionality in FastReport VCL — covering both the visual interface and programmatic methods using Delphi code and report scripts. Any other questions? Contact the manager ### FastCube - High-Speed OLAP Cube Engine and Pivot Grid URL: https://www.fast-report.com/blogs/fastcube-pivot-grid-olap Summary: Exploring FastCube .NET and its possibilities Exploring FastCube .NET and its possibilities Exploring FastCube .NET and its possibilities. It is difficult to imagine data analysis without OLAP (On-Line Analytical Processing) technology . Although there are differing opinions about whether OLAP should be considered a technology or ideology. After all, OLAP can be imagined as a complex multi-dimensional cube, and as ordinary cross-tables (cross-tabs). All of this can be called rapid data analytics. Traditionally, OLAP has been considered a technology to streamline large amounts of data for statistical analysis. Often The OLAP system is called cubes . As we know the cube has three dimensions: length, width and height. Therefore, the cube is a three-dimensional figure. It's the same with the data. For example, data on the number of goods sold by each company manager can be presented as a matrix (cross-table). This is a two-dimensional set of data - in the headlines of the lines - the name of the product, in the headlines of columns - the names of managers. But if we add another dimension, for example, months, this data set will be three-dimensional. And you can add and years. That is the number of dimensions is not limited to two or three. The name of the cube should not mislead you, it only serves to make it immediately clear - it is a multidimensional data warehouse . Thus, the OLAP cube in practice may have several tens of dimensions - this is a very complex structure, which is difficult to imagine in mind. But it is precisely such a multidimensional cube , and allows you to collect all the data into one and quickly obtain the necessary information for the analysis. To work with cubes, slices are normally in use- that is, a sample of only certain, necessary dimensions. The convenience of working with cubes is that you can instantly add the necessary information to your slice, because the cube is already built, and you take from it only the needed one. Riding the wave of the necessity of OLAP systems, Fast Reports released its FastCube. Since the end result of the analyst's work is a report, any OLAP system should be able to generate them. This can be attributed to FastCube's strengths, as it uses the popular and fast FastReport VCL report generator for the VCL and LCL ( FastCube VCL ), FastReport.Net for the .Net and Mono ( FastCube .NET ), and FastReport FMX for the FMX ( FastCube FMX ). Unlike ready "box" products, FastCube is a set of libraries for the target platform. This allows you to include your own OLAP component applications. This solution is more flexible, though, it requires programming skills to create your application. Yet, for those who would satisfied with any standard solution without creating your own application, there is a demo application in the delivery package. It provides an interface for working with the cube and slices and contains all the standard FastCube tools. Perhaps for the majority this application will be enough for their work. This demo application looks like as follows: What kind of opportunities are offered to us by FastCube. Let's take a look: 1) Very simple cutting. The key is to enter the data source: table or SQL query. Then, you add the required fields to the crosstab to dimensions, measures, classifications, filters, etc. 2) Standard statistical operations: amount, minimum, maximum, average, counter, variance. These operations are used to filter or separate data. 3) Additional filtering and conditional selection functions: unique value list, number of unique values, first value encountered. 4) The ability to create computed metrics. This is implemented with a script in one of the available programming languages (Delphi and C++ - for the VCL platform, VB.Net, C# - for .Net) 5) The axes are classified according to measurements and indicators. You can use multiple sorts for each dimension. 6) Conditional selection of cell values in the slice. This is a very useful feature that allows you to select a colour or data icon, depending on the condition. 7) Flexible settings for displaying the results. You can set the position of the total (at the beginning, at the end), make invisible. 8) The ability to create calculated value filters when calculating metrics. It is implemented with the help of a script. 9) The format of output indicators (date, money, text, number). You can add your own format. 10) Measurements can be rolled out as specific and entire. 11) Cross table can be transposing - rotate, change rows and columns in places. 12) Indicators may appear as percentages. 13) The ability to build graphics using TeeChart. 14) The ability to view and export cell detail, i.e. records from the original table, where the data for the cells are taken. 15) Export slice in one of the formats is available: HTML, DBF, CSV, XML, Open Document Spreadsheet, Excel, Excel 2007. 16) You can save the cube and the scheme. 17) The possibility of copying a range of values from across tables to the clipboard. 18) Dates are automatically divided by date and time. So we can display separately. 19) Slices can be converted to FastReport reports. This means that you can use the report generator's output, export, and print reports, thus increasing the possibility of FastCube. 20) The ability to export cube/data to XML. 21) You can set cube settings programmatically or from the interface. 22) The ability to create ready-made templates (schemes) for summary tables. There is a possibility of prohibiting the user from changing the scheme. The above features of the product tell us that in addition to the standard features on the creation of cube slices, sorting and filtering, there are advanced data analysis tools. In particular, it is a tool of conditional data selection. Depending on the conditions of the cell may be highlighted color, may be added to a cell or icons gradient. These graphical indicators will help you to quickly assess which of the values fall within the specified range, or above it. The possibility of exporting a slice is not insignificant. This can be done both by FastCube and through a report generator. In the second case, the list of possible export formats is much larger. It should be noted that the cube can be connected to databases using both standard ADO and BDE components and any other data sources through TDataSet. In conclusion, FastCube provides fast downloading and processing of large amounts of data. Although FastCube involves creating its own application based on components, the end use of the cube by the user does not require any specific programming knowledge. Tags: .NET, .NET, VCL, VCL, FMX, FMX, FastCube, FastCube, Visual Studio, Visual Studio, FastReport, FastReport, Delphi, Delphi ### FastCube .NET URL: https://www.fast-report.com/products/fast-cube-net Summary: .NET Core, Mono, ASP.NET, MVC ve WinForms için OLAP pivot küpleri oluşturmaya yönelik C# kütüphanesi .NET Core, Mono, ASP.NET, MVC ve WinForms için OLAP pivot küpleri oluşturmaya yönelik C# kütüphanesi FastCube .NET is a C# library for OLAP-based big data analysis .NET Framework 4.7.2, Mono and .NET Core. FastCube .NET С# library for creating OLAP pivot cubes for .NET Core, Mono, ASP.NET, MVC, and WinForms Download demo Online demo Documentation ## FastCube enables you to analyze data and to build summary tables (data slices) as well as create a variety of reports and graphs both easily and instantly. Embedding in the interface Full customization and integration into the interface of your business application. Global Filter Use a single data cube for synchronous analysis according to various criteria based on an independent filter. Source code This set of components includes FastReport source codes. Maximum convenience for companies wishing to adapt the code to their needs. Ultimate .NET Learn more about Ultimate .NET Currently, the library works with applications on WinForms, .NET Framework 4.7.2, ASP.NET Core, Mono Framework. How to Set Up WSL 2 for Working with FastReport and FastCube In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. Installing FastReport and FastCube components in Lazarus Instructions for installing FastReport in Lazarus for various operating systems with a comparison of Trial, Professional editions. Instructions for installing FastReport in Lazarus for various operating systems with a comparison of Trial, Professional editions. How to use filters and sorting options in FastCube VCL We talk about the types of filtering and sorting data in the FastCube VCL analytical environment with detailed instructions for creating custom filters. We talk about the types of filtering and sorting data in the FastCube VCL analytical environment with detailed instructions for creating custom filters. Any other questions? Contact the manager ### FastCube .NET 2021.1 integration with Business Graphics URL: https://www.fast-report.com/news/fastcube-net-2021.1 Summary: We added FastReport Business Graphics extension. It's a new product for interactive visualization of data from applications. We added FastReport Business Graphics extension. It's a new product for interactive visualization of data from applications. We added FastReport Business Graphics extension. It's a new product for interactive visualization of data from applications. More about FastReport Business Graphics for .NET Added ListDataSet component which allows loading data to cube using Windows Forms Data Binding. It is now possible to load data to Cube using Windows Forms complex Data Binding which is used in standard controls: DataGridView, ListView, and Combobox. Complex Data Binding loads data through the BindingSource component which acts as a proxy (more info can be found in MSDN). Here is a small example of loading data from List<>. 1. Declare a ProductInfo class ``` public class ProductInfo { public String Name { get; set; } public String Group { get; set; } public int Count { get; set; } } ``` 2. Create a list of ProductInfo records ``` List CreateProducts() { return new List { new ProductInfo {Group = "Bakery products", Name = "Ciabatta", Count = 3}, new ProductInfo {Group = "Bakery products", Name = "Bread", Count = 5}, new ProductInfo {Group = "Bakery products", Name = "Croissant", Count = 1},   new ProductInfo {Group = "Alcohol", Name = "Wine", Count = 6}, new ProductInfo {Group = "Alcohol", Name = "Whiskey", Count = 2}, new ProductInfo {Group = "Alcohol", Name = "Beer", Count = 5},   new ProductInfo {Group = "Dairy products", Name = "Yoghurt", Count = 5}, new ProductInfo {Group = "Dairy products", Name = "Milk", Count = 4} }; } ``` 3.  Configure cube and slice ``` private void Form1_Load(object sender, EventArgs e) { // configure data source listDataSet1.DataSource = CreateProducts(); // load data to Cube cube1.Active = true; // configure Slice slice1.YAxisContainer.AddSliceField(slice1.SliceFields.GetFieldByName("Group")); slice1.YAxisContainer.AddSliceField(slice1.SliceFields.GetFieldByName("Name")); var measure = new FastReport.Olap.Slice.MeasureField(slice1, FastReport.Olap.Types.AggregateFunction.Sum, slice1.SliceFields.GetFieldByName("Count")); slice1.MeasuresContainer.AddMeasure(measure); slice1.XAxisContainer.AddMeasuresField(); } ``` Here is the result: The full example is located in Demos\C#\DataBindings. Other changes: - Added "Copy" menu item to the context menu of XAxisZone and YAxisZone of the SliceGrid component. The menu item copies the caption of the selected node to the clipboard. - Paste from clipboard operation in a popup list executes search operation - Double click in the popup filter of a dimension executes SliceGrid positioning to the clicked item ### FastCube .NET Release 2020.2 URL: https://www.fast-report.com/news/fastcube-net-2020.2 Summary: FastCube .NET Release 2020.2 FastCube .NET Release 2020.2 New features are already expected in the update: - Added Mono platform support. Starting with this version we add support of cross-platform Mono framework. - Major changes: * Before this release we shipped FastCube.Olap package with depency on FastReport library. Now we moved this dependency and therefore integration with FastReport into a separate package FastReport.Olap.Report for the .Net platform and FastReport.Olap.ReportMono for Mono platform. Other changes: * Expression editor now shows dimension/measure/field names instead of their captions. Errors resolved: * Expression errors does not raise Exceptions; * ExpressionHighlight errors does not raise Exceptions; * Fixed move to group error; * Fixed chart data representation in some locales; * Fixed "List of values" aggregate calculation; * Fixed "Median" aggregate calculation. ### FastCube 1.1 released! URL: https://www.fast-report.com/news/fastcube-vcl-1.1 Summary: FastCube 1.1 released! FastCube 1.1 released! FastCube 1.1 --------------- + added new aggregate function "Count of Unique" + added new property DefaultFormat for Date, Time and Numeric. + added new property FormatString in TfcCubeField. + added support for ftLargeInt and ftMemo fields + added option mdsoNoTotalIfOneValue (No Total if data only one row) + added finction for automatic fields layout: TfcSlice.CreateAutoFieldsLayout(ANumsAsFacts: boolean = false); + added option mdsoAddTotalPrefix (add word "Total" when used mdsoTotalAsPrevLevel) + added event (OnGetFieldConv) for tune of field converter + added AutoHeight from ALL colmuns in RowAxis + added package for Delphi 5 + added Recompile Wizard for FastCube + added Events on Save/Load/Export actions + added component TfrcGrid for link TfrcCrossView in report with TfcGrid from form. * unit fcGraphics renamed to fcGraphicUtils since 1stClass has same unit name * unit fcScrollBar renamed to fcScrollBarCtrl since 1stClass has same unit name - fixed problem with Lookup Fields - fixed problem with compare BCD in Delphi 2005 - fixed problem with copy selected block cell in clipboard - fixed wrong left position of horizontal scrollbar after changing internal layout of TfcGrid - fixed wrong setting of MakeTotal when collaps(expand) value - remove russian symbols from form - fixed bugs in Export ### FastCube 1.2 released! URL: https://www.fast-report.com/news/fastcube-vcl-1.2 Summary: FastCube 1.2 released! FastCube 1.2 released! FastCube 1.2 --------------- + added property SelectedArea in TfcGrid (coordinate of selected area in Grid) + added possibility of changing PopUpList width + added save PopUpList width in slice + added split of Time (Hour, Minute, Second). Cube option: mdcoMakeTimes. + added event onGetStyles in TfrcGrid for setting styles of TfrcCrossView in report + added possibility of removing fields from list when loading from DataSet. Use event OnGetFieldConv. + added new property Version in TfcCube * allow set MakeTotal into Slice.BeginUpdate ...  Slice.EndUpdate. * added check version in Recompile Wizard for FastCube * default value for NullStr is '' * in measure editor change precision to DisplayFormat * renamedclass TfrxChartEditor to TfrcChartEditor - fix error loading of FMTBCD - fix error loading of TimeStamp - fix error with calculated fields in DataSet - fix memory leak in TfcUniqueValues.Find - fix some bugs of axis grid paint  - fix error of loading filed caption in TfcSlice.LoadFromStream - fix error creating of TfcSourceGrid - fix error in LoadFromStream - fix error with OnChange in TfcGrid - fix error with deletion of TfcGrid if it is assigned to TfcToolBar - fix error with deletion of TfcGrid if it is assigned to TfcGridReport ### FastCube 1.3 released! URL: https://www.fast-report.com/news/fastcube-vcl-1.3 Summary: FastCube 1.3 released! FastCube 1.3 released! FastCube 1.3 ------------ + Added styles for cells with total: cellrowtotal, cellrowgrand, cellcoltotal, cellcolgrand, cellfulltotal, cellfullgrand, cellrowtotalcolgrand, cellrowgrandcoltotal + You can use keyboard now to scroll content of DetailGrid + in detail grid added cell focus + Recompile Wizard save settings for every compiler + added description of TfcChart. Read fcchart.txt. + new events: TfcChart.OnGetSeriesClass, TfcChart.OnSeriesCreated, TfcChart.OnChartFilled + new events: TfcGrid.OnDrawCell, TfcGrid.OnDrawAxisItem + Change Caption of field in Slice when renamed Caption of field in Cube + added component TfrcChart for link TfrcChartView in report with TfcChart from form. + use new utf8-xml resource + new version of TfcChart + added PercentFormat + added popup menu item to rename dimensions + added property Value in TMeasure in script (short from CurrentValue) + added FastCube classes registration in script in FastReport + added Italian resources (thanks Loris Ferraresso) + Right Alignment for numeric fields in DetailGrid + added Brazil resources + export in UTF8 * dimension does not lose its width/height anymore while moving between areas * In Trial version You can to save cube to file. * added: It is possible to choose source for TfrcChartView and TfrcCrossView in report. * fix for Delphi5 * not allow use function with "Count of Unique" with calculated measure * TfcCube.LoadFromStream set Cube to Active * String "Report Data" changed to Cube Caption in export - fix error with THorizBarSeries - fix error: divide by zero when display measure as Percent and Total = 0 - Fixed: AV when drag and drop 'System Counter'. - fix error with showing SmallInt values - fix error: AV after loading slice from another cube - fix error: AV after added new measure - fix error: Caption of measures field set to "#MEASURES" - fix error: clear Data marking after measures editing - fix some bugs of DetailGrid and SourceGrid paint - fix error of unchecked of all measures with unchecked option mdsoAutoFilter - fix paint in TfcDetailGrid - fix error of rollback filter changes with unchecked option mdsoAutoFilter ### FastCube 1.4 with Delphi 2009 support released! URL: https://www.fast-report.com/news/fastcube-vcl-1.4 Summary: FastCube 1.4 with Delphi 2009 support released! FastCube 1.4 with Delphi 2009 support released! New in FastCube 1.4 + Added option mdsoSaveChartInSchema in TfcSlice (save Chart properties in Schema) + Added new aggregate function "List of Unique" + Added new event TfcSlice.OnInterpreterCreated to add users variables and functions to Script + Added Polish resources + Added new procedure TfrcCrossView.Update to use is report script after refresh dataset in cube. + added save X axis colums width in slice + You can use values of detail records in script for calculated measures.   Use Measures.PrepareDetailInfo to create array of detail records in script.   Record count in array - Measures.RecordCount   Detail value - Measures.DetailValue[ARecordIndex, AFieldName] + result of script can be String. + Measures[MeasureName] in script maked by measure name!!! + Added new property "Name" in TfcFieldOfRegion. Use property Name with measure. + Added new aggregate function "First value". It is possible to use with any type of the data! + Added cube option mdcoLoadWithDefaultFormat: use DefaultFormat on Load from cube. + Added split of Date - DayOfYear. + Added Dutch resources (thanks Jack Janssen) + Added new grid property PaintStyle. It changes style of grid and its parts    painting. We will increase differences between paint styles in next versions + Add export of cube/cube data to the following XML formats: XML for Analysis, xml-msdata (.Net DataSet), ms rowset (ADO), DataPacket (ClientDataset) + Added property UseFCChartEvents: boolean in TfrcChart + At a printing of the diagram through TfrcChart events from initial diagram TfcChart are used + Added opportunity of packages registration by Recompile Wizard + Added Turkish resources (thanks Burhan Cakmak) + Added split of Date - WeekNumber. + Added property TfcSlice.FieldsOrder - type of order in Field List (by Field Name, by Field Caption, by order in DataSet, by event OnFieldsListSortCompare). + Added Portuguese resources (thanks Fernando Dias) + Added Czech resources (thanks Karel JaneД_ek) * Added new propertyes expamles in demo. * Updated Brazil resource - Fixed an error: value of calulated measure with agreagate function af_formula is 0 in chart - Fixed an error of caption lost when field has been move between regions - Fix error with fields in IBObjects - Set caption of field "Measures" to value from language resources during Load From Stream - Fix error with FastReport designer in FastCube - Fix error with Measures.DetailValue[ARecordIndex, AFieldName] in script - Fix error with Dimensions[AFieldName].CurrentValue in script - Fix error with mdgoYAxisScroller - Fix error: Names of measures and dimentions are CaseSensitive. - Fix error: unnecessary invalidate in RowRegion of fcGrid. - Published properties in DefaultFormat are made "write". - Fix error of data gathering for TfcChart - Fix error registration of TfrcChart - Fix error with sort by total value - Fix error: inherited abstract SetCubeFieldCaption in TfcAbstractSlice - Fix error: Font not used in TfcGrid - Fix error with Lookup fields - Fix errors in Recompile Wizard ### FastCube 1.5 released! URL: https://www.fast-report.com/news/fastcube-vcl-1.5 Summary: FastCube 1.5 released! FastCube 1.5 released! FastCube 1.5 released! + Changed: row height calculation algorithm of the X Axis + Added property: TfcGrid.MaxRowHeightInXAxis + Added properties in Measures[] ColOffsetValueWithDimValue[ADimValue: Variant] and ColOffsetValueWithDimValue[ADimValue: Variant] + Added support for the mouse wheel in the detail grid. + Added: Properties FieldsOrder and ShowSplitFieldsInFieldList are saved in Schema file + Added property TfcSlice.ShowSplitFieldsInFieldList + Added: Index of the field in DataSet is saved in Cube file + Added events TfcSlice.OnSliceChanged + Added opportunity of copying in the Clipboard with headers + Added events TfcSlice.OnStartChange and TfcSlice.OnStopChange. + Added French resources (thanks Hugues Van Landeghem) + Better WideString field support. In combination with new defines UseWideString, UseUnicodeString (d2009 only) it allows to show unicode charaters in grid + Added PercentFormat property to the TfcCube.DefaultFormat + Added option mdgoCloneMasterValueOnExport to the TfcGrid (copy master value to all rows(columns) in export) + Field width is saved in Schema and does not reset after move field in a grid region + Added support for TBCDField for Delphi5 + Added German resources (thanks Daniel Soppe) + Added property GridCanvas to the TfcGrid for using in events OnDrawCell and OnDrawAxisItem + Added CopyToClipboard button to the ChartToolbar + Added Spanish resources + Added method TfcCube.Refresh to refresh data in Cube from DataSet * Function af_Count does not required a base field. - Removed grid properties: Crl3D, ParentCrl3D - Speed of expand/collapse operations has been dramatically increased - Fixed error: Axes were drawn very slowly with the big amount of data - Fix error with Dimensions[] in calcilation field script - Fix error with BCD fields in Fib+ and InterBaseExpress - Fixed error: DefaultFormat is nil in TfcFieldOfRegion - Fixed error in the html export with Delphi 2009 - Fixed error: the schema loss in TfrcChartView editor. - Fixed recompile in BCB6 package with support of FastScript - Fixed wrong charset assignment - Fixed errors in the Recompile Wizard for Delphi 2009 - Fixed errors in the frcd12.dpk package (Delphi 2009) - Fixed errors in the Measure Editor ### FastCube 1.6 released! URL: https://www.fast-report.com/news/fastcube-vcl-1.6 Summary: FastCube 1.6 released! FastCube 1.6 released! FastCube 1.6 --------------- + Added function TfcAxis.GetVisibleIndexFromAbs(ALevel: Integer; AAbsIndex: Integer; var AIndex: integer; var AVisible: Boolean): Boolean; + Added procedure TfcGrid.SelectCell(ACol, ARow: integer; AMakeVisible: boolean); + Added support for Embarcadero Rad Studio 2010 (Delphi/C++Builder) + Added option mdsoSaveFiltersByValue ў TfcSlice (save in Schema filters by value) + Added new aggregate function "Last value". It is possible to use it with any type of the data! + Added property UseParentFont into TfcGridStyles. + Font, color and alignment of TfcGrid are used when print with TfrcGrid. + Added property Font into TfcGridStyle. + Added script property Measure[].TotalValueForDims['dim1, dim2, ...'] to get measure total value for dimensions dim1, dim2, ... + Added Greek resources (thanks Dimitris Karagikas) + Added an ability to use one field for the measures and dimension simultaneously + Added script events OnGetSeriesClass, OnSeriesCreated and OnChartFilled in TfrcChartView. + Updated chart support in unit frcCrossRTTI. + Added property StackType (MultiBar) in TfcChart. + Added support THorizBarSeries in TfcChart. + Added new events OnSaveTemplate and OnLoadTemplate in TfcChart. + Added new property DefaultTemplatePath in TfcChart. + Added new properties DefaultSchemePath, DefaultCubePath and DefaultExportPath in TfcGrid. + Added option in Grid: mdgoChangeOrderByClick - Switching order of sorting by one mouse button clicking. + Added properties Dimensions.IsTotalByCol and Dimensions.IsTotalByRow. You can use this properties in Script. + Added new format type fkCustom (You can to create and registrate custom formates. Use fcCustomFormats.AddFormat. See examples fcExamples). + Added Swedish resources from Niklas Larsson + Added  FastReport integration package for BCB6 + Added: You simultaneously can change width of all columns in the X axis. Keep key Ctrl at change of width of the column. * Only the UTF8 encoding is now used for scheme files. * Event TfrcGrid.onGetStyles is changed - Fixed export of Null data into various XML formats - Fixed error of reading from stream property StackType (MultiBar) in TfcChart. - Fixed error with property DefaultExportPath in TfcGrid and property DefaultTemplatePath in TfcChart. - Fixed width TfcChartToolBar. - Fixed error of reading Chart Template from version before 1.5.5. - Fixed error: Calculation of sizes of memos is wrong in FastReport if are used different fonts. - Fixed error: AV in Chart if no data in grid - Fixed error: Caption of measures are wrong when dimension is collapsed ### FastCube 1.7 released! URL: https://www.fast-report.com/news/fastcube-vcl-1.7 Summary: FastCube 1.7 released! FastCube 1.7 released! FastCube 1.7 --------------- + Added script event OnGetFieldConv in TfrcCube. + Added parameter ACalcRowHeight: boolean in TfcGrid.SelectCell + Added events TfcSlice.OnBeforeRemoveSliceFieldFromRegion and TfcSlice.OnBeforeAddedSliceFieldToRegion + Added option mdsoAllowFilterAllValues in TfcSlice.Options + Added property TfcChart.SkipNullPoints: boolean + Added option mdsoSaveFiltersEnabledValues for TfcSlice (to save enabled filters Values (instead of disabled values) in Schema) + New key combinations Ctrl+Up and Ctrl+Down in TfcGrid and TfcDetailGrid + Added event TfcGrid.OnUpdateSelection: TNotifyEvent + TfcGridStyle.UseParentFont is set to False when Style properties are changed.  * Values of numerical measure are copied to clipboard without format. * Alignments are imported from TfcGrid if are used OnGetStyles in TfrcGrid - Fixed styles copying. Caused wrong colors in xls and html exports. - Fixed grid printing errors. - Fixed errors in fields converter. - Fixed error with PopUp list with Form.FormStyle=fsStayOnTop - Fixed error of fcChart printing. - Fixed error of saving Null value in schema with mdsoSaveFiltersByValue option - Fixed error in Recompile Wizard: installation packages in Delphi 11. - Fixed grid copy to clipboard operation for D9+ - Fixed memory corruption by the DrawText routine which caused random crashes - Fixed error in the Recompile Wizard for C++Builder 6 with FastScript in the Standart edition - Fixed few problems with FreePascal and Lazarus - Fixed Sort by focused row/column. - Fixed error: AV in TfcGridReport - Fixed error: AV when schema contains a field which is absent in cube ### FastCube 1.8 released URL: https://www.fast-report.com/news/fastcube-vcl-1.8 Summary: FastCube 1.8 released FastCube 1.8 released FastCube 1.8 --------------- + Added support of Embarcadero Rad Studio XE (Delphi XE/C++Builder XE) + Added property RunScriptInDesigner in TfrcCube. + Added search by first symbol (after pressing a key) in popup lists (list of fields and the lists of unique values) + Added TeeChart 2010 support - Fixed error: AV when calculation measure is moved in field list - Fixed range drawing when XP themes are enabled. - Fixed error with UnicodeString measures - Fixed error: AV after compiling project without using runtime packages in BCB 6 - Fixed error with ftMemo fields - Fixed error of TfcGrid printing ### FastCube 2 VCL beta demo is available now! URL: https://www.fast-report.com/news/beta-demo-fastcube-vcl Summary: FastCube 2 VCL beta demo is available now! FastCube 2 VCL beta demo is available now! New level of data analysis! I. Grids    1. Improvements to source data grid    2. Closer to the native look of Windows with enabled themes    3. Gradient drawing II. Data analysis    1. Optimized axis operations    2. New dimension attribute for single choice (radio filter)    3. Groups    4.Totals have many new features    5. Ranks for measures    6. Tree-like axis    7. Data highlighting    8. Status panel    9. Use of FastScript    10. Export III. Cube    1. Splits    2. Loading from custom storage    3. Data conversion during the load process    4. Custom field calculation during the load process    5. Add/remove operations on fields after the load    6. Append data to an active cube IV. Global filter ### FastCube 2 VCL Beta updated URL: https://www.fast-report.com/news/fastcube-vcl-beta Summary: FastCube 2 VCL Beta updated FastCube 2 VCL Beta updated + Delphi XE4 support * Improve chart editor - Fixed errors with Variant to Double conversion - Fixed errors in resources - Fixed errors with style frame initialization * Change save toolbar item + Implement chart Load/Save together with schema + Implement filter Load/Save together with schema - Fixed error with AdditionalTotals ### FastCube 2 VCL released! URL: https://www.fast-report.com/news/release-fastcube-vcl Summary: FastCube 2 VCL released! FastCube 2 VCL released! Desktop OLAP components set which supports Delphi/C++Builder/RAD Studio from 7th version upto XE5 Brief review of news in the 2nd version: I. Grids 1. Improvements to source data grid 2. Closer to the native look of Windows with enabled themes 3. Gradient drawing II. Data analysis 1. Optimized axis operations 2. New dimension attribute for single choice (radio filter) 3. improvements in Groups and 4. Totals 5. Ranks for measures 6. Tree-like axis 7. Data highlighting styles 8. Status panel 9. Advanced using of FastScript 10. New export filters III. Cube 1. Splits 2. Loading from custom storage 3. Data conversion during the load process 4. Custom field calculation during the load process 5. Add/remove operations on fields after the load 6. Append data to an active cube IV. Global filter V. And much more If you are our customer of VCL-components — login to customer panel and get FastCube 2 with discount! ### FastCube FMX commercial beta URL: https://www.fast-report.com/news/fastcube-fmx-commercial-beta Summary: FastCube FMX commercial beta FastCube FMX commercial beta Launched commercial beta FastCube FMX - Delphi XE4-XE6 supported. Compilation for MS Windows and Mac OS X only. FASTCUBE FMX is a tool for effective data analysis FastCube  enables you to analyze data and to build summary tables (data slices) as well as create a variety of reports and graphs both easily and instantly. It's a handy tool for the efficient analysis of data arrays. FastCube FMX is a set of OLAP Desktop components. It  supports  Embarcadero Delphi XE4, XE5, XE6, C++Builder XE4 - XE6, RAD Studio XE4 and higher. You can integrate it to applications for MS Windows and Apple Mac OS X. ### FastCube FMX for FireMonkey URL: https://www.fast-report.com/news/release-fastcube-fmx Summary: FastCube FMX for FireMonkey FastCube FMX for FireMonkey FastCube FMX is a tool for effective data analysis for FireMonkey. - Supports Embarcadero Delphi/C++Builder XE4, XE5, XE6, XE7 - You can integrate it to applications for MS Windows and Apple Mac OS X. - Instant data slices creation. You can load data from SQL queries or custom sources - All basic statistical operations (count, sum, minimum, maximum, average, variance, etc.) - Special functions (number of unique values, first value, list of unique values) - Filters for measured values - Automatic component layout of date and time - Unlimited number of measures in a summary table - Possible to put data into table columns or table rows, as well as on any level of measurements - Calculated data (based on FastScript) - Calculated filters for numeric data by using output formatting - Calculated filters for values when calculating data (based on FastScript) - Numeric data display control by using output formatting - Numeric data output as a value or as percent (in a row, column, group or table total) - Possible to use data of Date, Time and Row type - Conditional highlighting of cell value in a slices (in a range) - Possible to minimize measurements as a whole as well as separate values - Possible to control the display of totals - Control of axis sorting (according to measurement value or data) - Control of each level of measurement sorting (line of sorting) - Possible to group values of dimension - Top-N - Saving of templates (schemas) and data itself for future use - Export of FastCube's slices to Excel or HTML - Copying of a highlighted range to the clipboard - Reviewing and exporting slices cell details - Cube's/data cube's export to XML formats : XML for Analysis, xml-msdata, ms rowset or DataPacket - Printing by means of FastReport FMX - Graph construction by means of TeeChart for FireMonkey - Recompile Wizard ### FastCube for multi-dimensional data analysis URL: https://www.fast-report.com/news/blog-fastcube-vcl Summary: FastCube for multi-dimensional data analysis FastCube for multi-dimensional data analysis The case for using FastCube in multi - dimensional data analysis is  here .  Stay tuned for our blog . Comments and questions are welcome . ### FastCube released! URL: https://www.fast-report.com/news/first-release-fastcube-vcl Summary: FastCube released! FastCube released! By high needs of the FastReport's customers our company releases set of OLAP-components for Delphi "FastCube".  What the preferences of the FastCube?  high speed of the information processing by the our traditional code optimization and own data-keeping format high flexibility of data analisis in the power of full compatible and posibility of use script enjine FastScript - connect any complexity analisis! full integration with the FastReport. You can send results from the OLAP-cube to FastReport or, by other way,  call OLAP-cube from the FastReport. And - the main! Only for our customers - 30% discount to any edition of the FastCube!   ### FastCube VCL 2021.1 release URL: https://www.fast-report.com/news/fastcube-vcl-2021.1 Summary: Include support for the new Rad Studio 11 Alexandria. In addition, we have improved the interface - there are new items in the context menus, improved the ability to search for values. Include support for the new Rad Studio 11 Alexandria. In addition, we have improved the interface - there are new items in the context menus, improved the ability to search for values. New Features Include support for the new Rad Studio 11 Alexandria. In addition, we have improved the interface - there are new items in the context menus, improved the ability to search for values. We also updated the language resources and fixed bugs. New licensing mode l Starting version 2021.1 all FastCube VCL editions are subscription-based. It means that you will always have an up-to-date version as long as your subscription is valid. Added Rad Studio 11 support Starting with this version we add Rad Studio 11 support. SliceGrid changes Axis position changes on DblClick in the axis field popup. Added search in the popup list of unique values by pasting from the clipboard. Added "Copy" menu item to the axis menu. Item copies dimension value to clipboard. Report changes Added PreviewOptions, ReportOptions, PrintOptions properties to the TfcxpSliceGridReport class. Other changes Changed font of several forms from "MS Sans Serif" to "Tahoma". Updated Czech locale resources. Updated Greek locale resources. Errors Fix header drawing (D10.4 bug). Access violation with double click on the script edit in the dimension editor. Fix stack overflow error on long list popup. ### FastCube.Net components. Part 1. Cube, CubeGrid, CubeGridToolbar, Slice, SliceGrid, SliceGridToolbar. URL: https://www.fast-report.com/blogs/fastcube-net-components In this article, we'll consider the components included in the FastCube.Net library. List of components: Cube – the main component that loads a cube from a file and fills it with data; CubeGrid – It is intended for displaying all data of a cube. Visual component; CubeGridToolbar – is a toolbar for CubeGrid; Slice – contains a cube slice; SliceGrid – is intended for displaying a cube cut. Visual сomponent; SliceGridToolbar – toolbar for the Slice grid; Chart – chart, based on the slice data; ChartToolbar – toolbar for the chart; DataSource – data source for a cube. DBDataSet – data set obtained from the database; DTDataSet – data set from the DataTable. Let's look at the components relationship scheme. We consider the scheme from left to right. The DataSource object has a DataSet property. The value of this property is a reference to one of two objects: DBDataSet or DTDataSet. The Cube object has the DataSource property. A CubeGrid and Slice are related with the Cube object. In turn, SliceGrid and Chart are related with the Slice object. In the future, this scheme will help us in setting up the connection of components. In the meantime, let’s consider the components: 1)      The Cube component is the basis of the entire FastCube. It loads the cube file and acts as the data provider and data scheme provider for the other components. Below there are main properties and methods of this component. Properties: Property Description Active The activity is true or false. It is important to make sure that after all the settings, the Active property is set to true. Otherwise, you just will not see any data. Caption Cube header. Visible in the CubeGrid. CompressCubeFile Whether to use cube file compression DataSource The data source must be selected if you fill the cube with data from the database or DataTable. Description Description. It can be seen in CubeGrid SkipFieldsWithErrors Ignore fields with errors SourceType The type of the data source indicates where to get the data to fill the cube. Can take one of the values: Empty DataSource File Stream Manual Methods: Method Description ClearGroups() Clear grouping. Close() Close cube. GetFieldsCount() Get the number of fields in a cube. GetSourceRecordsCount() Get the number of records in the data source. GetSourceValue() Get the value of the data source. GetSourceValueAsString() Get the value of the data source as a string. GetSourceValueId() Get the ID of the data source value. GetSourceValueIdAndVariant() Get the ID of the data source value. Load() Load cube. File or stream. LoadGroups() Load grouping. Open() Open the cube. Save() Save the cube to a file. SaveGroups() Save grouping. Dispose() Destroys the cube object. SendAlert() Send alert to user. Examples of use in the code: ``` FastReport.Olap.Cube.Cube cube = new FastReport.Olap.Cube.Cube(); cube.DataSource = dataSource1; cube.SourceType = FastReport.Olap.Cube.SourceType.DataSource; cube.Load("С:\\Program Files (x86)\\FastReports\\FastCube.Net Professional\\Demos\\Data\\Cubes\\2_0_sample_en1.mdc"); cube.Active = true; ```  If you are using a cube file that contains data, you do not need to set the DataSource property. And for the SourceType property, you need the value FastReport.Olap.Cube.SourceType.File. 2)      The CubeGrid component is a summary table filled with data from a cube. Simply saying - a visual display of the cube. Properties: Property Description Сube Cube object. DataZone Settings for displaying data in the grid. Methods: Methods Description Export Export a cube to one of the following formats: HTML; DBF; CSV; XML; Open Document Spreadsheet; Excel; Excel 2007. CreateDataZone Create a new data zone. FullUpdate Update the data zone and the captions zone. Examples of use in the code: ``` CubeGrid cubeGrid = new CubeGrid(); cubeGrid.Dock = DockStyle.Fill; cubeGrid.Parent = tabPage2; cubeGrid.Cube = cube; ```  The above example shows how to create a cubeGrid from the application code. The created object needs to be placed on the form (the Parent property), and set up the location (the Dock property). In addition, you must specify a cube from which to take the data. 3) The CubeGridToolbar component is a toolbar that works in conjunction with the cubeGrid component. This toolbar provides only one element - export. The table below shows the available export formats. Properties: Property Description Grid Grid for which acts toolbar. ToolItems List of elements of the toolbar. Examples of use in the code: ``` CubeGridToolbar cubeGridToolbar = new CubeGridToolbar(); cubeGridToolbar.Dock = DockStyle.Top; cubeGridToolbar.Parent = tabPage2; cubeGridToolbar.Grid = cubeGrid; ```  If the Dock and Grid properties can be configured in the Property inspector, then “Parent” needs to be set only in the program code. 4)      The Slice component contains a slice of the cube. To load a slice, you need to download a file with a slice. This can be a cube file or a scheme file. Properties: Property Description AutoUniqueValuesFilter Filter duplicate values. Cube Cube object. FieldsOrder The order of displaying fields: ByIndex, ByName, ByCaption. ColCount Number of columns. HideColZeros Hide empty columns. HideRowZeros Hide empty lines. HideTotalForSingleValue Hide the total if there is only one value. MeasuresContainer Container that contains the measures. RowCount The number of rows in the grid. ScriptLanguage It can be CSharp or Vb. ScriptText Script code. ScriptRestristions Configuring Script Restrictions. SliceFields List of the slice fields XAxisContainer Container for fields placed along the X axis. For dimensions. YAxisContainer Container for fields placed along the Y axis. For dimensions. Basic methods: Methods Description BeginUpdate Enable update mode. EndUpdate Finish the update. Clear Clear the slice data and fields. Save Save the slice. When you save a cube, it runs automatically. Load Load a slice from a file or stream. Transpose Transpose the slice (change axes). Examples of use in the code: ``` FastReport.Olap.Slice.Slice slice1 = new FastReport.Olap.Slice.Slice(); slice1.Cube = cube; ``` 5)      The SliceGrid component displays a slice in the form of a crosstab. This is the main tool of the analyst. Allows you to customize the layout of fields, to add new ones, to sort, to group and more. Properties: Property Description DataZone Settings for displaying data in the grid. XAxisZone X-axis display area settings. YAxisZone Y-axis display area settings. FilterFieldsZone Filter zone settings. XFieldsZone Setting the area of displaying dimensions on axis X. YFieldsZone Setting the area of displaying dimensions on axis Y. FieldsZone Field list zone settings. Methods: Methods Description Export() The method of exporting a report to one of the following formats: HTML; DBF; CSV; XML; Open Document Spreadsheet; Excel; Excel 2007. ShowFieldsEditor() Open the window with the list of fields of a slice. Examples of use in the code: ``` SliceGrid sliceGrid = new SliceGrid(); sliceGrid.Dock = DockStyle.Fill; sliceGrid.Parent = tabPage1; sliceGrid.Slice = slice1; ```  This example shows how to create a sliceGrid object in the application code. If there is no such need, then all the settings can be made in the Property inspector. 6)      The SliceGridToolbar component is a rendered toolbar for the SliceGrid: The toolkit is as follows: 1) Save: cube; scheme. 2) Open: cube; additional cube; scheme. 3) Clear grid; 4) Export to: HTML; DBF; CSV; XML; Open Document Spreadsheet; Excel; Excel 2007. 5) Transport - change the X and Y axes by places; 6) Hide row zeros; 7) Hide column zeros; 8) Row sort type: Sort by value of the axis; Sort by measures totals; Sort by focused column. 9) Column sort type: Sort by value of the axis; Sort by measures totals; Sort by focused row. 10) Edit measures - settings of indicators. This includes setting up conditional data highlighting; 11) Display format - is set for the selected column or row; 12) Field list - a list of all fields available in the slice; 13) The formula editor is intrinsically a script editor in the programming language C # or VB; 14) Information - information about the slice; Properties: Property Description Grid Grid for which acts toolbar ToolItems List of Toolbar Items An important feature of using this component is the binding to the parent object in the program code. That is, it is not enough simply to "drag" the component onto the form and set its Grid property. It is necessary in the program code to set the Parent property to display the toolbar on the form. This can be, for example, a sliceGrid object, or a TabPage, Panel, or other suitable. Examples of use in the code: ``` FastReport.Olap.Controls.SliceGridToolbar toolbar = new FastReport.Olap.Controls.SliceGridToolbar(); toolbar.Grid = sliceGrid1; toolbar.Parent = sliceGrid1; toolbar.Dock = DockStyle.Top; ```  In the second part of the article we will consider the remaining objects: Chart, ChartToolbar, DataSource, DBDataSet, DTDataSet. Tags: .NET, .NET, FastCube, FastCube ### FastEditors URL: https://www.fast-report.com/products/fast-editors-vcl Summary: A library of UI components for visualizing and editing data on VCL and Lazarus A library of UI components for visualizing and editing data on VCL and Lazarus This universal library features UI elements for viewing and editing data using standalone components or editors embedded in FastGrid cells. FastEditors A library of UI components for visualizing and editing data on VCL and Lazarus Buy Try for free Documentation Integration with the FastGrid Component Some properties and events are grouped in a set called Properties. Based on this, editors are automatically created in the cells of the FastGrid component. This simplifies the formatting and editing of data. Predictable Behavior The behavior of the editors is similar to standard VCL and Lazarus editors. The library supports the main properties, methods, and events. As a result, our editors can be easily integrated into a project both as part of the FastGrid component and as standalone components. The Business Application Interface "As Is" Create the perfect interface for your business application with minimal effort. The WYSIWYG (What You See Is What You Get) principle allows you to achieve visual results quickly and easily. High Performance The editors in the FastGrid cells operate optimally and efficiently. They create input fields and visual data representations only when necessary. This speeds up performance and eliminates unnecessary window identifiers. Data Export Integration with FastReport VCL Reporting simplifies the export of data from FastGrid cells. You can easily print them in the format they are presented in the project. Source Code The FastEditors library includes the source code for each editor. This provides maximum convenience for companies looking to flexibly adapt the ready-made solution to their needs. Ultimate VCL Learn more about Ultimate VCL Full Review of FastGrid Library's Capabilities FastReport VCL Ultimate users have probably already noticed that the installer now includes two new options: FastEditors VCL and FastGrid VCL. A new demo has also been added to the DemoCenter: FastGrid VCL Demo. An overview of the FastGrid library for VCL and Lazarus: data visualization, editing, and structuring. Sorting, filtering, grouping, convenient data editors — all in one article! New Report Validation System in FastReport VCL We have frequently received requests from technical support for functionality to automatically validate reports, and we are pleased to announce its inclusion in the 2026.2.0 release. The "File" menu in the report designer now features "Validate" and "Validation Rule Settings" options. This allows users not only to check reports but also to manage the set of rules, including the creation of custom ones In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. Using Watermarks in FastReport VCL The latest versions of FastReport VCL now feature watermarking functionality. Watermarks are labels embedded in electronic documents, images, videos, audio, or other digital content. Their purpose is to confirm authorship, protect against copying, and track file distribution. In this article, we'll take a detailed look at creating and using watermarks in FastReport VCL reports. An example of watermark use is available in the Demo included with FastReport VCL. The article provides a detailed overview of the watermark functionality in FastReport VCL — covering both the visual interface and programmatic methods using Delphi code and report scripts. Any other questions? Contact the manager ### FastExperts 1.21 URL: https://www.fast-report.com/news/fastexperts-1.21 Summary: FastExperts 1.21 FastExperts 1.21 New version of the FastExperts: - added French language - minor bug fixes ### FastGrid URL: https://www.fast-report.com/products/fast-grid-vcl Summary: Library for visualizing, editing, and structuring data on VCL and Lazarus Library for visualizing, editing, and structuring data on VCL and Lazarus A versatile library with UI components for visualizing, editing, and structuring both local and server data in VCL and Lazarus environments. FastGrid Library for visualizing, editing, and structuring data on VCL and Lazarus Buy Try for free Documentation High Performance Our components have undergone numerous testing stages to ensure truly stable operation with large amounts of data. Your data is processed instantly. Data Sources Connect to local and server data sources without complex settings and additional tools. The standard TDataSource component supports connections to FireDAC, ADO, BDE, DBX, IBX, FIBPlus, and Oracle. “As Is” Business Application Interface reate the perfect interface for your business application based on the WYSIWYG (“what you see is what you get”) principle. Visual results without extra effort! Built-in Editors Our editors allow you to transform your data into convenient and visual information. Make informed business decisions using UI elements that automatically adapt to data types. Data Export Integration with FastReport VCL Reporting allows you to easily export data to various formats and print them. Source Code The FastGrid library includes source code. Maximum convenience for companies wishing to adapt the code to their needs. Ultimate VCL Learn more about Ultimate VCL Full Review of FastGrid Library's Capabilities FastReport VCL Ultimate users have probably already noticed that the installer now includes two new options: FastEditors VCL and FastGrid VCL. A new demo has also been added to the DemoCenter: FastGrid VCL Demo. An overview of the FastGrid library for VCL and Lazarus: data visualization, editing, and structuring. Sorting, filtering, grouping, convenient data editors — all in one article! New Report Validation System in FastReport VCL We have frequently received requests from technical support for functionality to automatically validate reports, and we are pleased to announce its inclusion in the 2026.2.0 release. The "File" menu in the report designer now features "Validate" and "Validation Rule Settings" options. This allows users not only to check reports but also to manage the set of rules, including the creation of custom ones In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. Using Watermarks in FastReport VCL The latest versions of FastReport VCL now feature watermarking functionality. Watermarks are labels embedded in electronic documents, images, videos, audio, or other digital content. Their purpose is to confirm authorship, protect against copying, and track file distribution. In this article, we'll take a detailed look at creating and using watermarks in FastReport VCL reports. An example of watermark use is available in the Demo included with FastReport VCL. The article provides a detailed overview of the watermark functionality in FastReport VCL — covering both the visual interface and programmatic methods using Delphi code and report scripts. Any other questions? Contact the manager ### FastQueryBuilder URL: https://www.fast-report.com/products/fast-query-builder Summary: A visual builder of SQL database queries for VCL and Lazarus applications A visual builder of SQL database queries for VCL and Lazarus applications A visual builder for building query text in SQL in VCL, FMX, and Lazarus applications as quickly as possible. FastQueryBuilder A visual builder of SQL database queries for VCL and Lazarus applications Try for free Documentation Support for multiple platforms It supports Embarcadero Delphi (the former Borland and CodeGear), C++Builder, RAD Studio 2009, and Lazarus. Ease of use FastQueryBuilder saves the visual query model to be used and adjusted in the future. Visibility Query parameters can be completely visually built into any window of your application. Ultimate VCL Learn more about Ultimate VCL FastQueryBuilder currently works on Windows and Linux. Full Review of FastGrid Library's Capabilities FastReport VCL Ultimate users have probably already noticed that the installer now includes two new options: FastEditors VCL and FastGrid VCL. A new demo has also been added to the DemoCenter: FastGrid VCL Demo. An overview of the FastGrid library for VCL and Lazarus: data visualization, editing, and structuring. Sorting, filtering, grouping, convenient data editors — all in one article! New Report Validation System in FastReport VCL We have frequently received requests from technical support for functionality to automatically validate reports, and we are pleased to announce its inclusion in the 2026.2.0 release. The "File" menu in the report designer now features "Validate" and "Validation Rule Settings" options. This allows users not only to check reports but also to manage the set of rules, including the creation of custom ones In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. Using Watermarks in FastReport VCL The latest versions of FastReport VCL now feature watermarking functionality. Watermarks are labels embedded in electronic documents, images, videos, audio, or other digital content. Their purpose is to confirm authorship, protect against copying, and track file distribution. In this article, we'll take a detailed look at creating and using watermarks in FastReport VCL reports. An example of watermark use is available in the Demo included with FastReport VCL. The article provides a detailed overview of the watermark functionality in FastReport VCL — covering both the visual interface and programmatic methods using Delphi code and report scripts. Any other questions? Contact the manager ### FastQueryBuilder 1.02 URL: https://www.fast-report.com/news/fastquerybuilder-1.02 Summary: FastQueryBuilder 1.02 FastQueryBuilder 1.02 + DBX Engine added  + multilanguage added - conflict between fr_sinmemo.pas (Fr2) and fqb_sinmemo.pas (FQB) is fixed - bug with use XPManifest is fixed - bug when work with FR3 is fixed - minor bugs fixed ### FastQueryBuilder 1.03 released URL: https://www.fast-report.com/news/fastquerybuilder-1.03-release Summary: FastQueryBuilder 1.03 released FastQueryBuilder 1.03 released Whats new: + added d2006(DeXter) packages and compatibility + Danish, Portuguese language added + joins between fields of the compatible types + Designer saves its own position and size - fixed for order by DESC of any field - fixed 'Control has no parent window.' error in Delphi 5 ### FastReport .NET URL: https://www.fast-report.com/products/fast-report-net Summary: .NET 10, Blazor, .NET Core, ASP.NET, MVC ve WinForms için raporlar oluşturmaya ve belgeler hazırlamaya yönelik bir kütüphane .NET 10, Blazor, .NET Core, ASP.NET, MVC ve WinForms için raporlar oluşturmaya ve belgeler hazırlamaya yönelik bir kütüphane Reporting and documents creation library for .NET 10, ASP.NET, MVC and Windows Forms. Includes online report designer and source code FastReport .NET A library for generating reports and creating documents for .NET 10, Blazor, .NET Core, ASP.NET , MVC and WinForms Try for free Documentation ## Library for generating reports and creating documents for .NET 10, Blazor, .NET Core, ASP.NET , MVC and WinForms. It can be used in Microsoft Visual Studio 2026 and JetBrains Rider environments. Embeddability in projects Install the necessary packages from the NuGet repository, or download packages from our website and add the necessary libraries to the project. No additional modules or special extensions are required. Lots of components A variety of elements are available for building reports in the designer: from text and images to mathematical formulas and 3D diagrams. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Compatibility and integration FastReport .NET is part of a single FastReport ecosystem in C#. Reports created in other products will work in FastReport .NET and vice versa. Smooth transition from other solutions Our report generator instantly converts your reports from List&Label, DevExpress, Microsoft Reporting Services (RDL, RDLC), Crystal Reports, StimulSoft, and Jasper Library into FastReport format. System.Drawing (GDI) The familiar System.Drawing with GDI+ graphics functions is used to create graphical elements, render text, and manage graphic images. Report generator for WinForms, Blazor Server, ASP.NET , MVC, .NET 10 Using FastReport .NET, you can create reports that work independently of the application. In other words, FastReport .NET can be used as an independent solution for building reports. Judge for yourself: - Contains a powerful visual designer for creating and modifying reports. Your application can run the report designer from the code; - Contains an online report designer for ASP.NET; - You can connect to any database, use any of its tables, or create your own queries in SQL; - You can add one or more dialog forms to the report to request parameters before running the report; - Using the built-in script, you can control the interaction between the controls of dialog forms and perform complex data processing; - Finally, you can see the result in the preview window, print the report, or save it in a variety of popular formats. ASP.NET demo ASP.NET MVC demo .NET Core demo Online Designer demo Blazor WASM Demo Blazor Server demo What is FastReport .NET? - FastReport .NET is written in C# and consists entirely of managed code. It is compatible with .NET Framework 4.6.2 and later versions, as well as .NET Core, .NET 10, and Blazor. - FastReport .NET comes with source codes. You can adapt it to your own needs. - Reasonable price and licensing policy. The license price includes a visual designer - you can give your users the opportunity to develop reports on their own. No additional deductions are required from your side! Please note the full terms of use in the License Agreement! - FastReport report generator .NET allows you to add geographical maps to the report using the maps object, which will make the report relevant to the topic even more interactive. - Integrated into FastReport .NET support for cloud services makes it possible to save reports to storage: Google Drive, OneDrive, DropBox, Box. It is possible to send documents by e-mail and FTP. - Extensible FastReport architecture .NET allows you to create and connect your own objects, export filters, functions, wizards, and database engines to the report. If the available opportunities are not enough for you, expand them! - Automated update of Nuget packages in Visual Studio. - Support for RDL format - the ability to open and save in this format. - Support for importing Crystal Reports. - Very compact and really Fast! How do I buy a product? Ultimate .NET WinForms WPF Avalonia Mono Web How to Configure an AI Agent for FastReport .NET: Architecture, Limitations, and Report Migration Working with reports often turns into a routine: editing XML templates (.frx), configuring data bindings, and adapting legacy formats. To automate this work, a specialized AI agent was created. This agent understands the FastReport .NET architecture and strictly follows enterprise development standards. AI feature for FastReport .NET: automated migration of reports from Crystal Reports and StimulSoft, refactoring for .NET 8/9, template generation, and protection against data leaks. How to export a report from FastReport .NET to DXF DXF (Drawing Exchange Format) is an open format for exchanging graphic data, developed by Autodesk for storing and transferring two-dimensional and three-dimensional drawings. Due to wide support from various CAD systems, DXF has become one of the most common formats for exchanging engineering and technical documentation between applications. In this article, we will consider methods of exporting a report to the DXF format, and also see what the resulting output looks like after opening the file in a CAD application. In this article, we will consider methods of exporting a report to the DXF format, and also see what the resulting output looks like after opening the file in a CAD application. How to Export a Report from FastReport .NET to PostScript FastReport .NET supports exporting reports to many popular formats, such as PDF, Excel, Word, and others. However, professional printing, plotters, and specialized printing equipment often require the PostScript (.ps) format. In this article, we will look at exporting a FastReport .NET report to the PostScript format, using a practical example to examine parameter configuration and programmatic implementation. In this article, we will look at exporting a FastReport .NET report to the PostScript format, using a practical example to examine parameter configuration and programmatic implementation. Any other questions? Contact the manager ### FastReport .NET - FAQ URL: https://www.fast-report.com/faqs/fastreport-net Summary: Discover key features and updates in FastReport .NET, including installation, usage, and troubleshooting. Discover key features and updates in FastReport .NET, including installation, usage, and troubleshooting. Do you have a Technical Support Statement? Yes, you can find it at: Technical Support Statement. Is there paid enhancement of FastReport .NET functionality? Yes, on a contractual basis. How do you calculate the size of an object that has dynamic resizing properties set (AutoWidth, CanGrow, CanShrink)? If you call the object's .Height property (Text1.Height), the result will be the height of the object in the report template. During report rendering, the height changes, and to determine the height of the object in the prepared report, you should use the CalcHeight method (Text1.CalcHeight()). The CalcWidth method is also used to calculate the length. When compiling the project, an error message is displayed: Could not find type or namespace name 'FastReport' (missing using directive or build reference?) Ensure that the project has references to the required libraries (FastReport.dll, FastReport.Web.dll) set up. Check the .NET Framework version used by your project and the referenced library. How to send a report by mail using a code in PDF format? Use this code snippet: ``` Report report = new Report(); report.Load(...); report.RegisterData(...); report.Prepare(); PDFExport pdfExport = new PDFExport(); EmailExport export = new EmailExport(); // set up Account properties... export.Account.Host = ""...""; export.Account.Address = ""...""; // set up email properties... export.Address = ""...""; export.Subject = ""...""; export.MessageBody = ""...""; // send email export.Export = pdfExport; export.SendEmail(report); ``` How do you remove the Data tab in the designer (for providing to users)? Add the "EnvironmentSettings" control to your form (Form). Before calling `report.Design()`, add the following lines: ``` EnvironmentSettings1.DesignerSettings.Restrictions.DontCreateData = True; EnvironmentSettings1.DesignerSettings.Restrictions.DontEditData = True; ``` If you are using DesignerControl, then these lines: ``` designerControl1.Restrictions.DontCreateData = true; designerControl1.Restrictions.DontEditData = true; ``` How to inherit a report from code? Create a new report: ``` Report report = new Report(); ``` Add a CustomLoadEventHandler event to load a basic report: ``` report.LoadBaseReport += new CustomLoadEventHandler(FReport_LoadBaseReport); ``` Load the inherited report: ``` report.Load(""InheritReport.frx""); ``` Delete CustomLoadEventHandler: ``` report.LoadBaseReport -= new CustomLoadEventHandler(FReport_LoadBaseReport); ``` Now you can show the report or open it in the designer. It will contain both the one that is inherited and the one that inherits the base report: ``` report.Show(); ``` You also need to create an event to load the base report: ``` private void FReport_LoadBaseReport(object sender, CustomLoadEventArgs e) { // e.FileName contains the name of base report. It may be the file name, or an ID in the database, // it depends on how you load the main report e.Report.Load(""C:\\Users\\InheritReport\\bin\\Debug\\Title2.frx""); } ``` And the full code: ``` public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Report report = new Report(); report.LoadBaseReport += new CustomLoadEventHandler(FReport_LoadBaseReport); report.Load(""InheritReport.frx""); report.LoadBaseReport -= new CustomLoadEventHandler(FReport_LoadBaseReport); report.Show(); } private void FReport_LoadBaseReport(object sender, CustomLoadEventArgs e) { // e.FileName contains the name of the base report. It may be the file name, or an ID in the database, // it depends on how you load the main report e.Report.Load(""C:\\Users\\InheritReport\\bin\\Debug\\Title2.frx""); } } ``` If you want to load a report from a database, replace the `Load()` method with `LoadFromString()`. How to remove the Code tab in the designer (for providing to users)? Add the ""EnvironmentSettings"" control to your Form. Before calling `report.Design()`, add the following line: ``` environmentSettings1.DesignerSettings.Restrictions.DontEditCode = true; ``` How do you set object formatting from code? You can do this in the report script or in your project code using the following lines: ``` FastReport.Format.NumberFormat format = new FastReport.Format.NumberFormat(); format.UseLocale = false; format.DecimalDigits = 2; format.DecimalSeparator = "".""; format.GroupSeparator = "",""; ``` And set the created formatting for the text object (TextObject): ``` textObject.Formats.Clear(); textObject.Formats.Add(format); ``` How to create an MSChartObject chart from code? Create a new MSChart object, set the height, width, and legend: ``` MSChartObject MSChart1 = new MSChartObject(); MSChart1.Width = 300; MSChart1.Height = 300; MSChart1.Chart.Legends.Add(new Legend() { Name = ""Legend1"", Title=""Legend title""}); ``` Create a ChartArea object, set the name, axis titles and assign the created MSChart object: ``` ChartArea chartArea1 = new ChartArea(); chartArea1.Name = ""ChartArea1""; chartArea1.Axes[0].Title = ""X name""; chartArea1.Axes[1].Title = ""Y name""; MSChart1.Chart.ChartAreas.Add(chartArea1); ``` Create a Series object, set the chart type, border thickness, add points, and assign the series to the chart: ``` Series series = new Series(""sample""); series.ChartType = SeriesChartType.Line; series.BorderWidth = 2; series.Points.Add(new DataPoint(0, 1)); series.Points.Add(new DataPoint(1, 2)); series.Points.Add(new DataPoint(3, 5)); series.Points.Add(new DataPoint(4, 8)); MSChart1.Chart.Series.Add(series); ``` Assign the created MSChart to the DataBand report object: ``` Report report = new Report(); report.Load(""ok.frx""); DataBand db = report.FindObject(""Data1"") as DataBand; MSChart1.Parent = db; ``` And the full code snippet: ``` MSChartObject MSChart1 = new MSChartObject(); MSChart1.Width = 300; MSChart1.Height = 300; MSChart1.Chart.Legends.Add(new Legend() { Name = ""Legend1"", Title=""Legend title""}); ChartArea chartArea1 = new ChartArea(); chartArea1.Name = ""ChartArea1""; chartArea1.Axes[0].Title = ""X name""; chartArea1.Axes[1].Title = ""Y name""; MSChart1.Chart.ChartAreas.Add(chartArea1); Series series = new Series(""sample""); series.ChartType = SeriesChartType.Line; series.BorderWidth = 2; series.Points.Add(new DataPoint(0, 1)); series.Points.Add(new DataPoint(1, 2)); series.Points.Add(new DataPoint(3, 5)); series.Points.Add(new DataPoint(4, 8)); MSChart1.Chart.Series.Add(series); Report report = new Report(); report.Load(""ok.frx""); DataBand db = report.FindObject(""Data1"") as DataBand; MSChart1.Parent = db; ``` Result: How to disable showing ProgressForm when building and displaying a report? You can disable the window in EnvironmentSettings: ``` Report report = new Report(); report.LoadPrepared(""1.fpx""); EnvironmentSettings s = new EnvironmentSettings(); s.ReportSettings.ShowProgress = false; report.Show(); ``` How to return default settings for the designer? Delete the FastReport.config file from C:\Users""Your user's name""\AppData\Local\FastReport. How to get request parameter value from code? Use the following code for this: ``` Report.Dictionary.Connections[0].Tables[0].Parameters[0].Value.ToString(); ``` Why don't web demos work? If demos from the Demos\C#\Web folder do not launch, then to fix this you need to: Restore NuGet packages; Add links to all necessary libraries from ""packages""; Change the build versions to the current ones in the Web.Config files from the root directory and from Views. How to combine several reports into one (group printing)? Use the code below for this. For desktop version: ``` Report report = new Report(); report.Load(Path.GetFullPath(@""..\..\Report1.frx"")); report.Prepare(true); report.Load(Path.GetFullPath(@""..\..\Report2.frx"")); report.Prepare(true); report.Load(Path.GetFullPath(@""..\..\Report3.frx"")); report.Prepare(true); report.ShowPrepared(); ``` For web version: ``` webReport.Report.Load(Path.GetFullPath(@""..\..\Report1.frx"")); webReport.Report.Prepare(true); webReport.Report.Load(Path.GetFullPath(@""..\..\Report2.frx"")); webReport.Report.Prepare(true); webReport.Report.Load(Path.GetFullPath(@""..\..\Report3.frx"")); webReport.Report.Prepare(true); webReport.ShowRefreshButton = false; webReport.ReportDone = true; ``` How to load and call a report from application resources? Installing a report in resources: Go to Visual Studio to the resources tab (Project -> Properties -> Resources); Set the name (report) and set the contents of the resource (the contents of the file myreport.frx); Calling a report from resources: ``` Report report = new Report(); report.ReportResourceString = Resources.report; report.Show(); ``` How to add an assembly (dll) to a report from code? Use this code snippet: ``` Report report = new Report; List assmbly = new List (report.ReferencedAssemblies); assmbly.Add(""Newtonsoft.Json.dll""); //replace to your dll's name report.ReferencedAssemblies = assmbly.ToArray(); ``` Make sure that the added dll is in the same folder as FastReport.dll. Now you can use methods from the connected dll. For example, you can add the following expression to the TextObject - `[Newtonsoft.Json.ConstructorHandling.Default.ToString()].` How to include all tables and relations from a dataset in a report? Use this code snippet to make all tables from your data source (DataSet) available in the report: ``` foreach (FastReport.Data.DataSourceBase tbl in report.Dictionary.DataSources) { tbl.Enabled = true; } ``` Then add all the relations from the DataSet: ``` for (int i = 0; i < ds.Relations.Count; i++) { report.RegisterData(ds.Relations[i], ""relation"" + i); } ``` And enable all relations: ``` foreach (FastReport.Data.Relation rl in report.Dictionary.Relations) { rl.Enabled = true; } ``` The full code: ``` Report report = new Report(); DataSet ds = new DataSet(); ds.ReadXml(""EstimateFile.xml""); report.RegisterData(ds, ""ds""); foreach (FastReport.Data.DataSourceBase tbl in report.Dictionary.DataSources) { tbl.Enabled = true; } for (int i = 0; i < ds.Relations.Count; i++) { report.RegisterData(ds.Relations[i], ""relation"" + i); } foreach (FastReport.Data.Relation rl in report.Dictionary.Relations) { rl.Enabled = true; } ``` FastReport .NET and the print service are installed on Server_1, but all printers will be located on Server_2. Is it possible to send a report to the print queue from another server? Yes, it is possible. You need to configure a network printer in the system. When converting RDL reports from SSRS, only the report display is transferred, but not the DataSets? Data sources are not transferred during the conversion. I have a data row with a label. If the value is 0.00, I need to hide the entire row along with the label. Is this possible? You need to add an event handler BeforePrint to the band. There, check this value, if it is 0.00, then set the Visible property of the band to false. Additionally, you may need to set the height of the band to 0. Does FastReport .NET support integration with a database using DTO? (no direct access to the database) It depends on what DTOs are there. They can be passed as objects to the report as a data source. There is a similar example in the demo projects. In the [FastReport .NET]\Demos\C#\DataFromBusinessObject folder. In FastReport .NET, can I get rid of Microsoft.CodeAnalysis.CSharp.dll, Microsoft.CodeAnalysis.VisualBasic.dll, and Microsoft.CodeAnalysis.dll, which are generated during deployment? If they are excluded, an error occurs when preparing the report. How can you remove them? These libraries are necessary for the operation of our script in FastReport .NET. Removing them is not possible. Is it possible to convert existing XtraReport reporting forms to frx format? Yes. In our reports, the data source is a DataSet. Is it possible to display the DataSet structure in the form of a tree in the FastReport .NET report designer, taking into account the relations between tables in it? It will not be possible to display the DataSet structure in the form of a tree, taking into account the relations between tables in it. Can you set the displayed names for fields, tables, and relations in the FastReport editor (similar to DisplayName in DevExpress)? There is something similar, the Alias property. Is there a report designer for Angular applications? You can use FastReport .NET and the Online Designer. We received the source code of the library from you, everything builds, but two libraries are already built there: FastReport.Compat.dll and FastReport.DataVisualization.dll. Where can we get the source code for these libraries? **[FastReport.Compat](https://github.com/FastReports/FastReport.Compat)** and **[Datavisualization](https://github.com/FastReports/winforms-datavisualization)** There is a web application developed with Flutter, and a back-end web service developed with C# .NET. Can FastReport .NET be used to create reports on the back-end, generating PDF files and displaying them in the Flutter application? Yes, FastReport .NET can be used for this purpose. Is it possible to use LINQ in the FastReport .NET report script if you need to find one or more rows from the BusinessObjectDataSource? Yes, it is possible. Suppose we have a .NET assembly: a DLL with a DataConnection, written similarly to the samples. That means we have our own data provider. Is it possible to connect this .NET assembly to the Online Designer? How? Possibly through `FastReport.Utils.RegisteredObjects.AddConnection()` Is there a converter for templates from .FRX to .FR3? Yes. With the template designer, you can save templates in a number of formats, including .FR3. In the designer, select "Save As...", and in the save dialog, select "FastReport VCL report (.fr3)". How can I get the old version of the product? If you are using our private nuget server, then you can choose the version you want there. You can also request the desired version from us. Is it possible to connect an Excel file as a database and build a report? Direct connection is not planned. Depending on your file, you may be able to convert it to another format, such as CSV, and FastReport will be able to use that format as a database. Is it possible to connect to DataSource in FastReport .NET? Yes. What databases and DBMSs can you connect to? Cassandra ClickHouse Couchbase ElasticSearch Excel Firebird Json Linter MongoDB MsSql MySql OracleODPCore Postgres RavenDB SQLite Databases compatible with the ones listed above are also supported. We are constantly improving our products, so the list is not exhaustive. If you contact our support, we will provide you with detailed information about compatibility with the database management system you are interested in. Does FastReport .NET support Vertica and Clickhouse databases? It supports СlickHouse, but does not support Vertica. Is it possible to export the PDF as text instead of an image? Unlike FastReport Open Source, FastReport .NET exports to PDF not in image format, but in text. Is it possible to export PDFs with interactive input fields? Yes. Is there an option to embed fonts when exporting to PDF? Yes. Is it possible to export the report to PDF with the report structure? Yes. Is it possible to use a digital signature when exporting to PDF? Yes. Is there an export of the report to cloud services? Yes. Can I send the report by email? Yes. What office document formats does export support? RTF, Excel 2007, Excel 97, Word 2007, PowerPoint 2007, Open Office Calc, Open Office Writer, XML, XAML, LaTeX What types of documents for different types of printers does export support? PostScript, PPML, ZPL, dot matrix printers. What PDF standards does FastReport .NET export support? PDF: 1.5 and 1.7, PDF / A (1, 2, 3), PDF / X (3, 4) What types of exports are available in FastReport .NET? In what formats will I receive documents and reports? PDF: 1.5 and 1.7, PDF / A (1, 2, 3), PDF / X (3, 4); Office: RTF, Excel 2007, Excel 97, Word 2007, PowerPoint 2007, Open Office Calc, Open Office Writer, XML, XAML, LaTeX; Web: HTML, MHT; Graphics: BMP, PNG, GIF, JPEG, TIFF, EMF, SVG, DXF, PPML, PostScript; Data Base: CSV, DBF, Json; As well as: Text , ZPL, XPS. The Visual Studio toolbox does not contain .NET FastReport components Add components to the toolbox manually: Click ""Select items"" in the right-click menu hovered over the Visual Studio toolbar and select FastReport.dll from the GAC (C:\Windows\Microsoft.NET\assembly\GAC_MSIL\FastReport) folder. Why are there no libraries for the .NET Framework 2.0 in the installation since version 2020.3? We have decided to stop supporting the old framework and Visual Studio 2005. We have some difficulties with supporting different code snippets for legacy frameworks. If you continue to use the .NET Framework 2.0 in your applications, please email us or use .NET FastReport version 2020.2 or earlier. Can I use watermarks? You can, but they will look like a picture. Will there be a full-fledged HTML object for displaying HTML files? It is planned. Can I work with MSChart in FastReport .NET? Yes. Is there support for embedding RichText in .NET FastReport? Yes. Is there support for dialog forms in FastReport .NET? Yes. Where to look for sources after purchase? You need to download the product installer in your **[client panel](https://cpanel.fast-report.com/)** After installing the full version of FastReport .NET, reports continue to be generated with limitations. Delete FastReport.NET Trial. Make sure that there are no .NET FastReport libraries in the C:\Windows\assembly and C:\Windows\Microsoft.NET\assembly\GAC_MSIL directories. If libraries were found, delete them. Install the full version of the program. Is there a console installer? No. Can I add the report generator to my product so that my clients have the ability to modify reports? Or does each client need to purchase their own license? You can add the FastReport.NET designer for end-users without additional licensing. This means that you can add the report generator to the product without the source code and outside the development environment. Where can I get a trial or demo version with FastReport.Core.Skia? Upon request. What are the limitations in the trial version of FastReport .NET? The "DEMO VERSION" label is put on each page, and random fields are replaced. Will there be support for SkiaSharp (Replace System.Drawing.Common to SkiaSharp)? There is support for Skia. Are EMF, WMF image formats supported under FastReport .NET Skia? No, these formats are only supported on Windows, while Skia is a cross-platform library Is there support for Xamarin.Forms? No, it is not planned. Is there support for Blazor? Yes: both Server and WebAssembly. Is there support for Maui? No, it is not planned. Do you provide technical support for FastReport .NET? Yes, for clients with an active subscription. Is there support for WinUI? No, it is not planned. What types of web projects can FastReport.NET be used in? ASP.NET, ASP.NET MVC, .NET Core, Blazor Server, Blazor WebAssembly Is there a template designer in FastReport.NET? Yes, the designer is included in the product. Does FastReport .NET work on mobile devices? Now no, it is not planned. You can use the Web version. In which IDEs can I use FastReport .NET? Visual Studio, Visual Studio Code, JetBrains Rider, as well as any other editors that support .NET How do I save a FastReport .NET report in LaTeX? See more in the **[article](https://www.fast-report.com/blogs/export-latex-dotnet)**. What are the differences between FastReport .NET and Skia and GDI+? You can see it **[here](https://www.fast-report.com/blogs/fastreport-core-skia)**. How can I configure the display of certain export filters in the FastReport .NET preview? **[Article](https://www.fast-report.com/blogs/disable-printing)** My subscription has expired. Where can I download the latest available version? Write to us at **[support](/support)** and we will send you the latest version available to you. Is there a converter for templates from .FR3 to .FRX? Yes. **[Download link](https://www.fast-report.com/pbc_download/fr3tofrx.exe)** Can I use FastReport Online Designer with FastReport .NET? Yes, FastReport .NET can be used with Online Designer. FastReport .NET Ultimate and WEB Online Designer packages already contain Online Designer. For other packages you will have to buy Online Designer separately. Where can I go for FastReport .NET technical support? Users can send requests via email to **support@fast-report.com**, through the request form on the website from the **[client panel](https://cpanel.fast-report.com/)**, or online chat Is there an application to preview the prepared report? Yes, it can be used in commercial development, as long as you comply with the EULA. See **[file LICENSE.md](https://github.com/FastReports/FastReport/blob/master/LICENSE.md)** How to install your license packages into our product using Linux, MacOS or Windows? That said, we wouldn't have to install the latest version of FastReport products manually using an installer downloaded from a site that only works on Windows? We have prepared a universal solution to this question in the form of our private NuGet server Fast Reports. Read more about it in the next **[article](https://www.fast-report.com/blogs/private-nuget-server)**. If your subscription expires, you can continue to use the Fast Reports package source, but you will not have access to the latest versions of the packages. Therefore, the latest available version of the package will be determined by the condition: The release date of the selected version < The expiration date of the eligible subscription Important! If you try to download a package with a release date later than the end date of the eligible subscription, the Fast Reports NuGet server will return the most recent available version of the package according to your subscription. However, we do not recommend referencing an unavailable version of the package, as this leads to a Warning when restoring the project and delays the package download. How do I download the FastReport .NET package from nuget? See more in this **[article](https://www.fast-report.com/blogs/private-nuget-server)**. Is there support for Avalonia UI? Yes. See details of **[FastReport Avalonia](https://www.fast-report.com/products/avalonia)**. What are the fundamental differences between FastReport Open Source and the commercial version? The differences are presented in the **[table](https://www.fast-report.com/designers-comparison)** Where can I download the FastReport .NET CoreWin demo? It can be found by following the **[link](https://www.fast-report.com/downloads/fast-report-net)**. Where can I find the FastReport .NET documentation? It can be found by following the **[link](https://www.fast-report.com/public_download/docs/FRNet/online/en/index.html)**. Where can I find a FastReport .NET demo for ASP.NET? Here: **[Live ASP.NET demo](https://www.fast-report.com:2013/)** Where can I find a FastReport .NET demo for ASP.NET MVC? Here: **[Live ASP.NET MVC demo](https://www.fast-report.com:2013/razor/)** Where can I find a demo of FastReport .NET with Online Designer? Here: **[Online Designer demo](https://www.fast-report.com:2015/razor/Home/Designer)** Where can I find the FastReport .NET demo for .NET Core? Here: **[Live .NET Core demo](https://www.fast-report.com:2018/)** Where can I find a demo of FastReport .NET for Blazor Server? Here: **[Blazor Server demo](https://fast-report.com:5000/)** Is there support for Blazor WebAssembly? Implemented. Read about it in this **[article](https://www.fast-report.com/blogs/blazor-webassembly-manual)**. Is there WPF support? Yes, we have **[FastReport WPF](https://www.fast-report.com/products/wpf)** product. Where can I find the FastReport .NET demo application (trial version)? It can be found by following the **[link](https://www.fast-report.com/downloads/fast-report-net)**. How do I migrate a project from FastReport OpenSource to the commercial version of FastReport .NET? See more in this **[article](https://www.fast-report.com/blogs/Migrate-FastReport-Open-Source-to-FastReport-Core)**. Are named expressions similar to calculated fields in DevExpress supported in FastReport .NET? No, named expressions are not supported in FastReport .NET. I cannot add controls to the form in Visual Studio 2013. Make sure that FastReport.Editor.dll, FastReport.VSDesign.dll, FastReport.Web and FastReport.dll are registered in the GAC (see the directories from p. 3). If not, register them. For this open Visual studio tools folder(C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts), open Developer Command Prompt for..., and write on the command line ``` gacutil -i ""reference path+ name.dll""(gacutil -i ""Program Files\FastReports\FastReport.Net\Framework 4.0\FastReport.dll""). ``` **[Learn more about GAC registration.](https://msdn.microsoft.com/en-us/library/dkkx7f79(v=vs.110).aspx)** After that, add the FastReport controls to the Visual Studio Toolbox: right-click on the toolbar -> Choose Items -> Select FastReport.dll from the GAC and click OK. Can custom fonts be used? Yes, see the **[Article](https://www.fast-report.com/blogs/fonts-reports-without-installing)** Does FastReport .NET work on Linux? Yes, FastReport .NET supports Linux in Ultimate, WEB, Avalonia, and Mono packages. How to embed a report in HTML format in a message and send it by email using the code? Use this code snippet: ``` Report report = new Report(); report.LoadPrepared(""preparedreport.fpx""); HTMLExport htmlExport = new HTMLExport() { SubFolder = false, Navigator = false, Pictures = true, EmbedPictures = true, SinglePage = true, Layers = true, HasMultipleFiles = false }; EmailExport email = new EmailExport(); //email mailer settings email.Account.Address = ""Email@gmail.com""; email.Account.Name = ""Usename""; email.Account.Host = ""smtp.gmail.com""; email.Account.Port = 25; email.Account.UserName = ""Email""; email.Account.Password = ""password""; email.Account.MessageTemplate = ""Test""; email.Account.EnableSSL = true; //email addressee settings email.Address = ""Destinationaddress@gmail.com""; email.Subject = ""Embedding of html""; email.Export = htmlExport; //Set export type email.SendEmail(report); //Send email ``` How to hide buttons in FastReport .NET preview? **[Article](https://www.fast-report.com/blogs/disable-printing)** How to create a line with breaks in MSChartObject? First you need to create a `System.Windows.Forms.DataVisualization.Charting.Series` object, which is the basic for Series in MSChartObject and draw a line in it. Then you need to assign the created series to the object, which is basic for MSChartObject (MSChart1.Chart.Series.Add(series) Don't forget to include the `System.Windows.Forms.DataVisualization.dll` library (in the Report-> Script menu) and the System.Windows.Forms.DataVisualization.Charting namespace. Example of a line with breaks: ``` using System.Windows.Forms.DataVisualization.Charting; namespace FastReport { public class ReportScript { private void MSChart1_BeforePrint(object sender, EventArgs e) { Series series = new Series(""sample""); series.ChartType = SeriesChartType.Line; series.BorderWidth = 2; series.MarkerSize = 5; series.Points.Add(new DataPoint(0, 1)); series.Points.Add(new DataPoint(1, 2)); DataPoint dp = new DataPoint(2, double.NaN); dp.IsEmpty = true; series.Points.Add(dp); series.Points.Add(new DataPoint(3, 5)); series.Points.Add(new DataPoint(4, 8)); MSChart1.Chart.Series.Add(series); } } } ``` What are the system requirements for FastReport .NET? Hardware requirements: 1 GHz processor, 512 MB RAM Minimum disk space (32-bit or 64-bit OS): 20 MB Requires .NET support Minimum version .NET Framework: .NET Framework 4.6.2 Does FastReport .NET have a report object that allows you to upload a PDF document inside a report (similar to the TfrxPDFView object in FastReport VCL)? Not now. Does FastReport .NET work on CentOS and Debian? Yes, FastReport .NET Сore works on CentOS and Debian. Is the FastReport .NET report generator only for the Blazor server and not for hybrid mode? Blazor Hybrid is not supported. The Blazor, WASM, and Blazor Server platforms are supported now. Is there support for Uno? No, it is not planned. Is there support for Uno.WinUI? No, it is not planned. What type of licensing is used in FastReport .NET? The **[FastReport .NET License](https://www.fast-report.com/license/license-agreement-net)** is available at this link Can I connect a CSV file as a database and build a report? Yes, see more in the **[article](https://www.fast-report.com/blogs/build-daily-graphics-csv)**. How to render a report using WebApi + VueJs? **[Article](https://www.fast-report.com/blogs/fastreport-core-in-vue-js)** Does FastReport .NET support RFID label design and printing? It is available, read about it in the **[article](https://www.fast-report.com/blogs/rfid-tags-zpl-fastreport-net)**. ### FastReport .NET 1.1 released! URL: https://www.fast-report.com/news/fastreport-net-1.1 Summary: FastReport .NET 1.1 released! FastReport .NET 1.1 released! New version of lead product of Fast Reports for .NET-platform FastReport .NET 1.1 released! What is new? Version 1.1 --------------- + added new UI styles - Office2007Blue, Office2007Silver, Office2007Black, VistaGlass. You can choose the designer and the preview form appearance using the EnvironmentSettings component (its UIStyle property) + added CSV export + added Text/Dot-matrix export + added Designer.exe and Viewer.exe end-user applications + added DesignerControl control + added the "Format Painter" command to the standard toolbar + added two new system variables - "TotalPage#" and "Page#" + added design-time support for BindingSource + added the property "RTFExport.ImageFormat" + added HideIfNoData, NoDataText properties to BarcodeObject + added new demo project - MdiDesigner + added "Table/Fit Dynamic Table To Page" report + added "Dialogs/Cascaded Data Filtering" report + added "Interactive Reports/Interactive Matrix With Chart" report + added "Dialogs/Labels With Dialog" report + added Chinese (simplified) localization + added Arabic localization + added export of transparent colors and pictures (alpha blending) in PDF format + added export of lines, arrows, rectangle shapes, shadows in PDF format + added export of page watermarks in PDF format + added export of dash-dot patterns in PDF format + added export of horizontal and vertical lines, rectangle shapes, shadows in Excel(xml), RichText, OpenOffice and HTML formats * enhanced support of Unicode in PDF export * MSChart object moved to main FastReport.dll, no need to plug-in it anymore * FastReport.Dock library now replaced with FastReport.Bars - fixed bug with designer in Vista 64-bit - fixed bug with subreport & breaked band - fixed Matrix object bug (break spanned cell) - fixed bug with creating an event handler for multiple selected objects - fixed bug in PDF export with right border of table object - fixed focus lost when closing the preview window - fixed error with text justification - fixed error in data window (when you pass bad DataRelation object) - fixed bug in VS IDE (designer silently closes after you close the preview) - fixed bug with clipboard keys in TextObject in-place edit mode - fixed bug with MS SQL guid-type parameter - fix in business objects processing - fixed bug with subreport's PrintOnParent - fixed issue with printing static & dynamic TableObjects on the same band - fixed bug with report parameters - fixed bug with SQL parameters - fixed duplicate table names issue - fixed TableRow, TableColumn "Visible" property - fixed Matrix "Count" function - fixed bug with TableObject break - fixed bug with relations and empty data columns - fixed rotation of text in Excel(xml), RichText, OpenOffice, HTML and PDF export - fixed bug with subreport and "RepeatOnEveryPage" flag - fixed bug with inserting items of "generic" data type from "Data" window to a script - fixed bug with incorrect escaping of "Script" node content in the .frx file - fixed bug with delays in the designer when selecting a lot of objects - fixed bug with PictureObject.Tile - fixed bug with page breaks and margins in XML export - fixed bug with export of different border lines in Excel(xml), RichText, OpenOffice, HTML and PDF export - fixed bug with underlined and strikeout text in PDF export - fixed bug with borders of TableObject in PDF export - fixed bug with document title in PDF export FastReport.NET is a full-featured reporting solution for Windows Forms and ASP.NET. It can be used in Microsoft Visual Studio 2005 and 2008. It is compatible with .NET Framework 2.0 and higher. Main features: - own report visual advanced report designer. It does not depend on development environment and can be integrated to end-users' application; - optimized for corporate heavy load, big data mining processing and preparing really big reports. ### FastReport .NET 1.2 released! URL: https://www.fast-report.com/news/fastreport-net-1.2 Summary: FastReport .NET 1.2 released! FastReport .NET 1.2 released! What is new in version 1.2? + added Functions in the "Data" window + added new report objects - CellularTextObject, ZipCodeObject + added report's Email settings (see Report|Options... menu, "Email" tab) + added multi-frame TIFF export + added RC4 128-bit encryption in PDF export + added "Visible" flag in the highlight editor. Now the highlight condition may hide the object + added TextObject's AutoShrink, AutoShrinkMinSize properties + added DataBand's RowCount property + added ReportPage.ManualBuild event + added PictureObject.Angle property + added AfterData event to all report objects + added CommandTimeout property to all connections + added export of watermarks in HTML format + added export of underlined TextObject (Underlines = true) in PDF format + added Swedish, Chinese (Traditional), Czech, Turkish, Spanish localizations + added new demo reports in the "Report Objects" category + added new demo projects in the Demos folder * POSSIBLE BREAKING CHANGE! changes in the business objects engine.  * improved performance (loading and running reports with lot of objects) * you can use Anchor property of report objects when printing hierarchical bands * changed default extension of resulting file in Excel(XML) export from *.xls to *.xml * changes in Excel(XML) export - added export of numeric values * changes in Matrix object * improvements in hierarchical reports (header/footers, totals) - fixed bug in VB.Net report language - fixed bug in Viewer.exe (exception if window is too small) - fixed bug with selecting Report in the ReportTree in VS design-mode - fixed bug when using WebReport with MasterPage - fixed bug with RTL in HTML export and WebReport - fixed bug with RTL in RichText(rtf) export - fixed bug in MS Chart (border width is not scaled properly when printing) - fixed bug with preview window's "Search" dialog - fixed bug with Nullable column type - fixed bug in PDF export when exporting complex fills - fixed bug with export different frame styles in XML and RichText formats - fixed bug when editing prepared report - fixed printing of CellularTextObject - fixed bug with dialogue form - fixed bug with Entity Framework in ASP.NET mode - fixed bug in PageSetup dialog in preview - fixed bug with rendering side-by-side Matrix objects - fixed bug in Label wizard - fixed bug with send email via MAPI ### FastReport .NET 1.3 released! URL: https://www.fast-report.com/news/fastreport-net-1.3 Summary: FastReport .NET 1.3 released! FastReport .NET 1.3 released! What is new in version 1.3? --------------- + added monochrome TIFF export + added Excel 2007 export + added PowerPoint 2007 export + added MHT (web-archive) export + added DBF export + added ODBC connection + added Oracle ODP.NET connection + added ability to print copy name on the printed page (see  + "Features/Print Copy Names" report) added built-in support for  + cascaded data filtering (DetailControl property). See the  + "Dialogs/Cascaded Data Filtering" report added "apply" flags to the  + style elements added band's context menu items for easy creation of  + child band and detail data band added TextObject.NullValue property  + (to replace null values with specified string) added  + TextObject.ProcessAt property (allows to print totals in the header)  + added the ImageExport.MonochromeTiffCompression property added  + HTMLExport.WidthUnits, HTMLExport.HeightUnits properties (allows  + selection between Pixel and Percent) added the Message-HTML (MHT,  + MHTML, web-archive) mode in HTML export (HTMLExport.Format property)  + added Config.DesignerSettings.FilterConnectionTables event added  + DataSourceBase.Load event to load detail rows in code added Croatian  + localization added Persian localization added new demo projects in the  + Demos\VB.Net folder added "Script/Sort Group By Total" report * improved "Keep with data" mechanism - fixed bug with Matrix and Table objects (Visible property is not working) - fixed bug with MS SQL connection (can't use tables in schemas other than dbo.*) - fixed bug in Medium Trust mode - fixed bug in business objects (duplicate datasource names) - fixed bug in dialogue forms (switch to the dialog page may throw an exception) - fixed bug in query builder - fixed bug with OutlineExpression and RepeatOnEveryPage - fixed bug with KeepChild - fixed bug with exporting barcodes - fixed bug in dialogue controls (Enabled & data filtering) - fixed bug with RepeatOnEveryPage band with child - fixed Matrix&Table bug (infinite loop if there is not enough space to print a column) - fixed bug in PDF export (file structure) - fixed designer exception when copying the total - fixed exception when closing the designer - fixed bug with disabling the navigator in HTML export - fixed bug with size of WebReport in percents - fixed PDF export (digits substitution in Arabic) - fixed bug with sorting on a calculated column - fixed bug in the PDF export (export of band with zero height and non-solid fill) - fixed bug in the text/expression editor (drag&drop items from the data tree) - fixed bug in the Excel 2007 export - fixed bug in the printer settings dialog (printer properties) - fixed bug with Outline when several reports are joined into one - fixed search in the preview - fixed bug in the group when there is no data to display FastReport.NET is a full-featured reporting solution for Windows Forms and ASP.NET. It can be used in Microsoft Visual Studio 2005/2008 and Delphi Prism. It is compatible with .NET Framework 2.0 and higher.   With FastReport.NET, you can create application-independent reports. In other words, FastReport.NET can be used as a standalone reporting tool. ### FastReport .NET 1.4 released! URL: https://www.fast-report.com/news/fastreport-net-1.4-release Summary: FastReport .NET 1.4 released! FastReport .NET 1.4 released! Good news - New version of Fast report generator for .Net (FastReport .Net v.1.4) released! What's new? Version 1.4 --------------- + added Visual Studio 2010 support + added support of font subsets in PDF export added SQL CE connection  + added HierachyRow# system variable which returns the row number like  + "1.2.1" in the hierarchical report added support for table schema in  + OleDB and ODBC connectors added NumToWordsEs function for spanish  + added Dutch localization added Ukrainian localization added  + Config.ReportSettings.DefaultPaperSize property added HTMLExport.Print  + property (show the browser's print dialog when html document is  + opened, available only in "single page" mode) added  + HTMLExport.PageBreaks property (insert hard page breaks in "single  + page" mode) added ForceLoadData property to all datasources added  + band.FirstRowStartsNewPage property added Parameter.Description  + property added Config.TempFolder property added  + report.ReportInfo.PreviewPictureRatio property added  + DataBand.PrintIfDatasourceEmpty property added  + ChildBand.PrintIfDatabandEmpty property added  + Config.DesignerSettings.Restrictions.DontCreateData restriction to  + disable the "Data|Add Data Source..." menu - fixed bug with Row# and StartNewPage - fixed bug with Nullable custom functions - fixed bug with bands which CanBreak and StartNewPage properties set to true - fixed bug in HTML export (skip of styles when many pages exported in "single page" mode) - fixed bug with registration of plugins - fixed bug with dialog controls attached to a calculated column - fixed bug in the query builder (wrong join type) - fixed dialogue forms controls order - fixed bug with Dock != None and CanGrow, CanShrink - fixed bug in HTML export - fixed bug with "Save printer in the report file" option - fixed bug in Chart object (ClearValues method does not work) - fixed bug in the Data Wizard - fixed bug in totals when the "Convert null values" option is off - fixed bug with saving report as VB class - fixed outline in a hierarchical report - fixed bug in the Chart object (when trying to group unsorted data by months) - fixed bug in the Data Wizard under Vista OS - fixed bug with embedded TTC fonts in PDF export - fixed bug when exporting TableObject with invisible rows * improved "Data Wizard" dialog (loading the table list is much faster now) * designer command DesignerControl.cmdData replaced with cmdAddData and cmdChooseData commands * reduced the resulting file size in HTML export * improved performance with very deep business objects * tables in the "Data Wizard" window are sorted now, "Sort tables" button removed * small improvements in the Data window (ability to move up/down the report parameters using Ctrl+Up/Down keys) * the installer is now automatically adds all FastReport.Net assemblies to the GAC * assembly FastReport.dll split into two parts - FastReport.dll, FastReport.Web.dll ### FastReport .NET 1.5 released! URL: https://www.fast-report.com/news/fastreport-net-1.5-release Summary: FastReport .NET 1.5 released! FastReport .NET 1.5 released! What's new? Version 1.5 --------------- + added import from RDL format (Report Definition Language) + added XPS export + added Word 2007 (docx) export + added DataBand.ResetPageNumber property + added properties PDFExport.JpegQuality and PDFExport.RichTextQuality (default value is 90 in both) + added Slovak localization + added support for custom functions in the matrix totals + added calculation of percents in the Matrix object + added TotalsFirst option for the matrix totals + added property HTMLExport.Layers and a checkbox in the dialog of the HTML export (enable layers in HTML file) + added Config.ReportSettings.ReportPrinted event + added DataLoaded event to all dialog controls that support data filtering + added inline printing from browser in WebReport + added property WebReport.PrintInPdf (enable for PDF printing or disable for browser printing) + added properties WebReport.PrintWindowWidth, WebReport.PrintWindowHeight + added properties WebReport.ShowWord2007Export, WebReport.DocxMatrixBased * DbfExport properties FieldNamesFileName, LoadFieldNamesFromFile replaced with FieldNames property * improved TextObject.Duplicates - fixed text object's html tags + "underline" font style - fixed "keep with data" + multicolumn databand - fixed bug with paper size - fixed bug when rendering several side-by-side Table objects - fixed bug with report outline - fixed bug in RTF export with similar pictures - fixed bug with CheckedListBoxControl + cascaded filter - fixed bug with subreport and multi-column band - fixed bug with FirstTabOffset - fixed bug with static query parameters and master-detail report - fixed bug in the PowerPoint export - fixed bug with Matrix and EvenStyle  ### FastReport .NET 2013 released! URL: https://www.fast-report.com/news/fastreport-net-2013.1 Summary: FastReport .NET 2013 released! FastReport .NET 2013 released! Main news: 1. Dialogue forms in web-reports - now end-users can control the internet/intranet reports building (Web forms + Win forms and Professional Editions). 2. Now you can insert Map objects to a report. (Win Forms Edition and higher) 3. Save prepared reports in clouds (Win Forms Edition and higher). Full list of news in version 2013.1 --------------- + added dialogs in WebReport (some controls and features are in development now) + added Map object + added map editor in designer + added save in cloud Dropbox from preview + added save in cloud SkyDrive from preview + added AJAX in WebReport + added new customizable toolbar in WebReport + added AdjustSpannedCellsWidth property in Matrix and Table objects + added Wysiwyg property in Word 2007 export + added PrintOn.SinglePage to the PrintOn property (doublepass must be enabled) + added anchors support in the PDF export + added Armenian localization + added Label property to chart series - fixed bug when saving report to .cs/.vb file - fixed drag&drop bug in the code editor - fixed bug in the TXT export - fixed bug in the Word 2007 export in layer mode - fixed bug with number format in Excel exports - fixed bug in VB.Net code generator And that's not all - we plan to add more features soon. Check our daily builds. It is good time for order, upgrade or prolongation of FastReport.NET ### FastReport .NET 2013.2 MVC URL: https://www.fast-report.com/blogs/net-2013.2-mvc We have released FastReport .NET 2013.2 with MVC support. And I'd like to inform all WebReport developers about some changes. First . An extension of the handler in web.config was changed. You need replace old string «FastReport.Export.aspx» to new string «FastReport.Export.axd» everywere. Web application without these changes will throw an exception and you will see text with error and instructions for changes in web.report. You can check the handler of WebReport by typing in the address bar : http://site_address/app_folder/ FastReport.Export.axd (replace site_address and app_folder with your values). In the successfull request case you'll see FastReport version number and server time. Second. We have added support of ASP.NET MVC framework. You will not have any troubles with using our control in ASPX (MVC 2) – You'll just enough drag control from Toolbox to the page. WebReport will set all needed changes in web.config automatically. Let see the demo of WebReport in aspx in folder \Demos\C#\MvcDemo. Also I should say how to use the WebReport in Razor (MVC 3,4).  You will need add lines with handler defenitions in web.config in root folder of your web-application.  Add line in section for using in IIS7: Add line in section for using in IIS6: Then you should modify web.config in folder with Views.  Add lines in section : Add lines in file _Layout.cshtml in tag : @WebReportGlobals.Scripts() @WebReportGlobals.Styles() Now you can draw the report on the View . Go to the controller and create a WebReport : WebReport webReport = new WebReport(); // create object webReport.Width = 600;  // set width webReport.Height = 800; // set height webReport.Report.RegisterData(dataSet, "AppData"); // data binding webReport.ReportFile = this.Server.MapPath("~/App_Data/report.frx");  // load the report from the file ViewBag.WebReport = webReport; // send object to the View Go to View and add the line : @ViewBag.WebReport.GetHtml() Similar code to create WebReport you can also write directly in View. Let see the demo of WebReport in Razor in folder \Demos\C#\MvcRazor. There are various samples for load the report, including preprepared , and there is an example of using event StartReport. Do not forget to add the missing dll in bin directory . Tags: .NET, .NET, FastReport, FastReport, MVC, MVC ### FastReport .NET 2013.2 released! URL: https://www.fast-report.com/news/fastreport-net-2013.2 Summary: FastReport .NET 2013.2 released! FastReport .NET 2013.2 released! We glad to inform you about new version of FastReport.Net with support MVC is one of the most modern technology for web development. MVC is available in Win+WebForms and Professional editions. Read our blog to get more information. Besides, we added  Google Drive for saving your reports to the cloud.  + added support of ASP.NET MVC framework (ASPX, Razor) in WebReport + added new demos using WebReport in MVC - \Demos\C#\MvcDemo, \Demos\C#\MvcRazor + added save in cloud Google Drive from preview + added Greek localization * IMPORTANT! changed extension of WebReport handler (from FastReport.Export.aspx to FastReport.Export.axd), please check existing web.config - fixed bug in Dropbox export when Application Key and Secret - fixed bug in Dropbox with NullReferenceException - fixed bug with encoding when importing dDase file of Map in DBX export - fixed excel numeric formats bug - fixed bug with broken formats after matrix optimization in Excel 2007 export - fixed bug with font transparency of empty cells in Excel 2007 export - fixed bug with cell duplication on merged cells in Excel 2007 export - fixed bug with embedding of monospaced fonts in PDF and XPS exports - fixed bugs in WebReport with styles - fixed bug with WebReport.RepotDone - fixed bug with MasterPages in WebReport - fixed bug with printing chart legend - fixed bug in PictureObject ### FastReport .NET 2013.3 released! URL: https://www.fast-report.com/news/fastreport-net-2013.3 Summary: FastReport .NET 2013.3 released! FastReport .NET 2013.3 released! FastReport.NET presents new opportunity for building safe and secure application on FastReport.Service (WCF Service Library). This library can be used for stand-alone application Windows Service and Web-Service in your product. Also added new demos: WCFWindowsService, WCFWebService, WCFClient, WCFWebClient.  + added new object SparklineObject (compact chart based on MSChartObject) + added save to FTP from preview + added Windows Communication Foundation (WCF) Service Library FastReport.Service.dll + added demo of Windows Service \Demos\C#\WCFWindowsService with WCF Service Library + added demo of WCF web-service \Demos\C#\WCFWebService + added demo of WCF Windows client \Demos\C#\WCFClient + added demo of WCF web-client \Demos\C#\WCFWebClient + added new methods WebReportGlobals.ScriptsWOjQuery() and WebReportGlobals.StylesWOjQuery() for disable jQuery in WebReport (MVC Razor) + added property WebReport.ExternalJquery (default: false) for enable or disable jQuery in WebReport (ASPX) + added WeekOfYear function + added Slovenian localization * report.RegisterData(ds) replace existing datasources - fixed bug with the re-export to PDF from code - fixed bug in PDF export with print from Acrobat Reader with hyperlinks in document - fixed bug in Excel 2007 export with styles for multi-page report template - fixed bug in Excel 2007 export with empty page name - fixed bug in PDF export with double frame borders ### FastReport .NET 2015 with online web report designer URL: https://www.fast-report.com/news/fastreport-net-2015.1 Summary: FastReport .NET 2015 with online web report designer. New version of FastReport.Net 2015.1 included new online designer web-components. FastReport .NET 2015 with online web report designer. New version of FastReport.Net 2015.1 included new online designer web-components. New version of FastReport .NET 2015.1 included new online designer web-components. We started developing online designer for our users who want more opportunities in corporate reporting. You can open and construct report-templates and reports with this tool in any modern browser. Online designer works quickly and smoothly even on slow devices and this is definitely its strongest side. You can try here:  online visual report designer .  Do not forget to test in on tab computers! The online designer is available in Professional Edition only. You can get upgrade to highest edition in customer panel . Report construction becomes more pleasant and comfortable with each new version of FastReport. We added new interface styles and Ribbon toolbar in v. 2015.1. New styles: Office 2010 (Silver), Office 2010 (Blue), Office 2010 (Black), Visual Studio 2010, Visual Studio 2012 (Light), Office 2013. Others features: + added RESTful service in FastReport.Service.dll + added new Aztec, Plessey barcode + added GS1-128 (formerly known as UCC-128 or EAN-128) barcode. Currently supports only numeric values. + added new properties in WebReport: DesignReport, DesignScriptCode, DesignerPath, DesignerSavePath, DesignerSaveCallBack, PrintInBrowser, SinglePage + added property CSVExport.NoQuotes that disables quotation marks in CSV export * updated demos \Demos\C#\MvcRazor,\Demos\C#\WCFWebService,\Demos\C#\WCFWebClient * updated japanese, greek resources - fixed bug with export in PDF/A - fixed bug in WebReport with 'Access to the path \FastReport\ is denied' - fixed bug with memory leak in PDF export - fixed bug with Gauge object in Word 2007 export - reduced memory consumption in WebReport - fixed bug with caching of report results by browser in WebReport ### FastReport .NET 2015.2 is here! URL: https://www.fast-report.com/news/fastreport-net-2015.2 Summary: FastReport .NET 2015.2 is here! FastReport .NET 2015.2 is here! We are glad to announce the release of the newer version of FastReport .NET. The main changes include improvement of WebReport and On-line Designer objects interaction , bug patch and rework of the current functionality . And not only that. Here's a full change list: [Core] * updated Japanese resources - fixed bug with opening frx/fpx files with Unicode signature in begin of file - fixed bug with CantFindObject exception in report reader in WebMode - fixed bug with saving empty Excel 2007 files - fixed RichTextQuality in PDF export [Designer] + added Preview button in File menu in Ribbon toolbar [WebReport] + added export in Prepared report * page breaks in export to Excel 2007 from WebReport now disabled by default - fixed bug with exception CantFindObject in WebReport - fixed bug with preview from designer in ASPX mode - fixed bug with designer position - fixed bug with report load in designer in ASPX mode [Service] + added report exporting methods in Service [On-line Report Designer] + added barcodes Aztec, Plessey, GS1-128/EAN-128 + added support of hierarchical data arrays with BusinessObjects + added Aliases for data sources + added copy/paste of TableObject and MatrixObject + added enable/disable of rows/columns in tabled objects + added MatrixObject + added more space between bands + band height reduced twice on mobile devices + cancel of creating object by ESC + added scale of report page with "ctrl + mousewheel" + added save of report on keys "ctrl + s" + added corners highlight of selected objects + added objects SimpleGauge, LinearGauge * changed panels with properties and events * improved work with TableObject * changed design of trees in Report Tree, data and in Expression Editor * improved of parse of report with error reporting * the icons are same as in desktop designer * added tab View change of settings of grid and units * changes in style of object creation * changed search algorithm of objects on page with selection - fixed bug with duplicate component/bands names - fixed bug with cell deletion in table object - fixed bug with deletion of child bands in last band of page - fixed bug with band resize to 0 - fixed bug with save of included objects in frx report - fixed bug in TableObject with adding of rows and columns - fixed bug in TableCell with RowSpan and ColSpan - fixed bug with table witdh and height - fixed bug with selecting of non valid fields - fixed bug with showing of messages when toolbar is hidden - fixed bug with moving of child cells of table beside a left side - fixed bug with adding of new object on the mobile devices - fixed bug with create object on scaled page - fixed bug with create object inside a cell of table - fixed bug with positioning of LineObject in Firefox ### FastReport .NET 2017.3 URL: https://www.fast-report.com/news/fastreport-net-2017.3 Summary: FastReport .NET 2017.3 FastReport .NET 2017.3 In the new version of FastReport .NET 2017.3 we added 2 new barcodes: Intelligent Mail Barcode operated by USPS and MaxiCode that carries freight information during transport. Also added ability to attach files to the PDF which allows creating e-invoices in ZUGFeRD format. And there’s now an example of using FastReport .Net with ASP.NET Web API framework.  All changes: [Core] + added Intelligent Mail (USPS) barcode + added MaxiCode barcode + added property Report.ReportInfo.Tag + added property Report.ReportInfo.SaveMode + added support functions with optional parameters * added thread-safe collections support for .net 4 [Designer] + added ability of multi-line editing of Report.ReportInfo.Description and Report.ReportInfo.Tag - fixed bug with wrong width of different lines of border [Exports] + added ability to embed any file in PDF export with methods: PDFExport.AddEmbeddedXML, PDFExport.AddEmbeddedFile - fixed creating blank page after a table in RTF and Word2007 exports - fixed bug with bands Exportable property - fixed appearance of dates in Excel2007 export - fixed bug with padding and height of text in PDF export - fixed bug with black boxes in exports [Extras] + added new example for working with ZUGFeRD and PDF/A-3b \Demos\C#\ZUGFeRD + added new example for Web API \Demos\C#\Web\WebApi - fixed bug with relative path to JSON file in JSON connector [WebReport] + added properties WebReport.RequestHeaders, WebReport.ResponseHeaders + added catching of exceptions on call of WebReport.DesignerSaveCallBack - fixed page margins in printing from browser - fixed bug with lines in HTML export and WebReport - fixed TTF exceptions processing for PDFExport [Online Designer] + added support of new property ReportInfo.Tag in Report object - fixed muli-level view of childs links - property Padding can contain only integer values ### FastReport .NET and jQuery URL: https://www.fast-report.com/blogs/fastreport-net-jquery The object WebReport from FastReport .NET use jQuery library. You already can use this library in your own project. To avoid duplication of boot scripts and styles jQuery to the client browser when working with markup Razor, you need to use the following lines in _Layout.cshtml :         @WebReportGlobals.ScriptsWOjQuery()         @WebReportGlobals.StylesWOjQuery() instead of the others , which include all jQuery files :         @WebReportGlobals.Scripts()         @WebReportGlobals.Styles() You need to set the property ExternalJquery = true ( default false) when you working with ASPX markup . Tags: .NET, .NET, FastReport, FastReport, MVC, MVC ### FastReport .NET and Visual Studio 2017 URL: https://www.fast-report.com/blogs/net-compatibility-visual-studio In this article, I would like to do a test of compatibility of FastReport .Net and the latest version of MS Visual Studio Enterprise 2017. In the function of the first test, I will create a simple application in WindowsForms. Then, I will add the Report component and launch a report in the designer. First of all, you need to add FastReport components into the Toolbox. To do this, open the Toolbox, and right-click on it. In the context menu select "Add Tab": I named the tab "FastReport". Now you need to add components to this tab. Right-click on the tab. Select the “choose items“ from the context menu: There will a window of components selection for the toolbox appear: Click the "Browse" button: Then, select the libraries FastReport.dll and FastReport.Web.dll from the folder "FastReports/FastReport.Net/Framework 4.0". FastReport.Net components have been added to the tool palette. Drag the Report component and two buttons to the form: Double-click on the first button, and add the following code: ``` private void button1_Click(object sender, EventArgs e) { report1.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); report1.Prepare(); report1.Show(); } ``` Here, we load a report into the Report object. Then, we build a report, and ,f inally, we display it. Now double-click the second button, and add the following code:        ``` private void EditReportBtn_Click(object sender, EventArgs e) { report1.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); report1.Design(); } ``` Also, load the report into Report object, and call the editor for this report. Now run the application and test it. First, click the first button. This way, we are getting our report in preview mode: If you click the second button, the report designer will be launched: So, we are convinced, that FastReport.Net reports are built and run in the designer in the new version of MS Visual Studio 2017. Now let us examine website reports. To do this, create an ASP.Net application, filled with examples. Open a Default.aspx Web page and witch to a visual editing mode:  Now, drag a WebReport component on a Web page from the toolbox:  I deleted unrequired content from this page and left only the title and the report object. In the upper right corner of the WebReport object there is a dropdown menu. Click it and select the Design Report. In the Report Designer open the desired report and close the designer. The report has already got into cache. Now run the Web application: Well, a web report can also work in VS 2017 without any problems. The article has increased our knowledge in the basic functions FastReport.Net, and all of them successfully work in the new version of Visual Studio. Summing up the results of the test in the article, it is possible to conclude, that there is a full compatibility of FastReport.Net 2017.1.18 and Microsoft Visual Studio 2017 RC Enterprise. Tags: .NET, .NET, Visual Studio, Visual Studio, FastReport, FastReport ### FastReport .NET bands URL: https://www.fast-report.com/blogs/fastreport-net-bands A report page in FastReport.Net must contain at least one band - a container for objects. But for one it might seem too complicated. Why don't we place objects directly on pages without additional containers? However, it is rather difficult to imagine how the system would work without using any bands. The containers are clearly divided according to their functionality and display order. Headings will always be at the top, data - in the middle, and the totals - at the bottom. We can rearrange the data anyhow in a band and this does not require creating special tables. In order to learn how to work in FastReport.Net, you need to study the bands. This is the fundamentals. So, in this article, we will consider what bands are presented in FR.Net. We will study their purpose, the order of output in the construction and their behavior. Here is a list of all available bands: Report title - is displayed once at the very beginning of a report, but it is possible to output it after the Page Title; Report footer - is displayed at the very end of a report, but before the foot of a page; The title of the page - is displayed at the beginning of each page; Page footer - is displayed at the end of each page; The title of the column - is displayed at the top of each column; Cellar column - is displayed at the end of each column; Data - is the most important band as it "knows" how to display all the data from the source. It means that it is displayed for each line of data in the source, which it is connected to. The "Data" band is displayed after all the header bands; Data header - is displayed once before the "Data" band, which it is attached to (there may be many "Data" bands and you can add header data for each); Data cellar - is displayed once immediately after the "Data" band, which it is attached to; Group header - appears after a page header or a column header, but before the "Data" band; Group cellar - is displayed after the "Data" band; A child - can be created for any band. It inherits the type of the parent band; Background - just a background for each page of the report. Let us take a close look at how the bands are built in the designer on the report page: In the given picture the report page looks like a layered pie. The data is output approximately in the middle of it. However, this is just a template. In a constructed report everything looks differently because many bands are displayed several times. It is essential to understand the order of them, that is, which band will be displayed next. In this case, there will be no questions when creating a report. With header bands everything is more or less clear. They are intended for displaying report headers and column headings of tables: The footer bands are used to output the total sum according to data, a number of lines or a page number. The most interesting band is the "Data" band. As it was mentioned earlier, it connects to the data source: It only displays data from the selected table. If you need to display data from several tables, you will have to create other "Data" bands. The given image shows that in addition to selecting the data source, sorting and filtering are available too. This is very convenient, and it eliminates the necessity to sort and filter the data when creating the source. In addition, the filtering condition can contain a parameter, the value of which we will pass from the dialog form or through the URL (for web reports). Now let us overview a usage of container-bands. We can print data from the table the following way: Or this way: In the first example, we have displayed a traditional list, whereas in the second one - we have compiled the fields into the employee's card. In both cases, it is just one data line. The band allows to place objects within itself freely. Let us consider the following simple list with date: As you can see, some of the data has been transferred to the other line, but the next line is displayed at the top. You can set the band property "Can grow" for the band: The same property is enabled for text objects, whose data is not displayed completely: Now the data is fully output. The band itself chooses the height, depending on the size of the objects, located inside. Objects have many other properties, which are responsible for displaying. In the context of the "Data" band I would like to talk about the "Child" band. Usually the "Chld" band is used in conjunction with the "Data" band. This link is used for reports like "Master - Detail". In his case, the associated tables are used: As it is seen in the picture, the main "Data" band has a subordinate "Data" band. Thus, the subordinate "Data" band is displayed every time after the main one. For each entry in the Categories table, the records of the Products table, corresponding to the key field, are displayed. This is how it looks when displaying: If you display the Products table not in the subordinate "Data" band, but in a separate one, you get the following picture: First, all the bands of the Categories table will be displayed, and after, all the bands of the Products table will be displayed too. Now a few words about the columns. The "Data" band can be set to display data on the columns. In this case, the "Column header" band and the "Column footer" band will be used. For example, let us set a number of columns "2" in the properties of the report page: Here is the result: The number of columns is unlimited. The report page has 2 more interesting properties: "Unlimited Width" and " Unlimited Height" of a report. Infinite width is relevant for growing breadths of matrixes. The matrixes can increase their height. So, we include both  of these properties and get a giant matrix: To see the data, you have to print it on a plotter. It appears, that the properties have been created exactly for plotter printing or printing in a large format. Let us examine the "Group header" band and the "Group footer" band. Usually they are used in pair. When you add the "Group header" bands, the basement is automatically added, and the "Data" band is located between them. As you understand from the name of bands, they form groups. To group the data, it is necessary to set the condition: In this case, the process of grouping will be conducted according to the first letter of the product name. A group cellar may contain a sum total for the data or the amount: The "background" band is used to display a background image, filling or a gradient. It is displayed on each page of your report. However, it is possible to configure the pages, for which it should be displayed: The height of the part of a page, which is to to be painted, is adjusted by stretching the band. In this article we have examined the main aspects of the useges of the bands in FastReport.Net. Tags: .NET, .NET, FastReport, FastReport, Filtering, Filtering ### FastReport .NET Core URL: https://www.fast-report.com/blogs/fastreport-net-core FastReport .NET 2017.4 now supports .NET Core, so users can utilize FastReport .NET in Windows, Linux and Docker containers. For using it under Linux one needs XServer, the "libgdiplus" and the "libx11-dev" libraries. The package includes a demo version, which allows to check whether FR.Net is working on your device. It can be found in the "\Demos\Core\FastReportCore.MVC" folder. FastReport .NET Core corresponds with .NET Standard 2.0. Now you can connect FastReport .NET Core using the NuGet package manager. To connect FastReport .NET via NuGet you need to: - Open the VisualStudio settings and go to the "NuGet Package Manager" -> "Package Sources"; - Add a new package, using the green plus button; - Enter the desired package name in the "Name" field; - In the "Source" field, select path to the FastReport repository (by default in C:\Program Files\FastReports\FastReport.Net\Nugets); - Click "Update", and then click "OK".  Now you can find and download FastReport .NET Core in NuGet. At the moment, there is no WebReport. Dialogs, charts (MsChart) and RTF (RichObject) are not supported, but all these things are planned to be established within a short time. There are no SQL connections, but the CSV and the XML connections are built in. If you want to use the SQL connection, you need to use the additional library and register the data from the application. There is also no visual designer, but a support to work with the online designer is planned to be provided. You can get a prepared report (*.fpx) from the report template (*.frx) or get documents (pdf, html, etc.). To start working you need 3 additional libraries from NuGet: a) System.Drawing.Common ; b) Microsoft.CodeAnalysis.CSharp; c) Microsoft.CodeAnalysis.VisualBasic. Tags: .NET, .NET, FastReport, FastReport, Core, Core, Libgdiplus, Libgdiplus ### FastReport .NET documentation URL: https://www.fast-report.com/news/update-documentation-net Summary: FastReport.NET documentation FastReport.NET documentation The full user documentation for FastReport.Net is now available in German . You can download it  here ! ### FastReport .NET documentation is now available in Turkish URL: https://www.fast-report.com/news/documentation-net-turkish Summary: We are happy to inform you that the FastReport .NET documentation is now available in Turkish! It will help you work with our report generator more comfortably in your native language. We are happy to inform you that the FastReport .NET documentation is now available in Turkish! It will help you work with our report generator more comfortably in your native language. We are happy to inform you that the FastReport .NET documentation is now available in Turkish! It will help you work with our report generator more comfortably in your native language. You can access the documentation here. We hope this update makes working with FastReport .NET easier and more convenient for you. ### FastReport .NET is one of the best Reporting, Analysis and Visualization tools URL: https://www.fast-report.com/news/readers-choice-award Summary: Visual Studio Magazine Announces 2022 Reader's Choice Award Winners! FastReport .NET received 3rd place according to the Visual Studio Magazine Announces. Visual Studio Magazine Announces 2022 Reader's Choice Award Winners! FastReport .NET received 3rd place according to the Visual Studio Magazine Announces. 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 .NET on mobile devices URL: https://www.fast-report.com/blogs/net-mobile-devices Modern mobile technologies provide worldwide access to any information. FastReport .NET brings reports in your favorite tablet or phone, and helps you communicate with dialogs. Today we test preview of the reports FastReport .NET on some mobile devices with touch-oriented UI. We have created the web application to generate sample report of FastReport .NET together with MVC ASP .NET Framework. All screenshots are clickable. I show original screenshot of report from desktop application. WebReport class of FastReport .NET build a report and convert it to HTML. At the stage of building HTML we have a several limitations. All objects are converted to a tabular format that can have some distortion when displaying any overlapping objects. Also, some types of background fills are unavailable because of reducing of traffic. Toolbar of object WebReport specially developed for using with the touch screen. For example, we open a zoom menu on tapping on the magnifying glass icon and apply scale with tap on the zoom value. The toolbar supports the large buttons, which also help in the preview of the report. When you create a report, you should remember that some fonts may not be available on various mobile platforms. In particular, our test report uses the font Tahoma, which is missing in iOS. Let's go testing. The first device is tablet Asus Nexus 7 with the operating system Android and 7" screen. Asus Nexus 7, Google Chrome: Asus Nexus 7, Boat browser: Asus Nexus 7, Firefox: Asus Nexus 7, Firefox - report with dialog: Next item is tablet Apple Ipad 3 with 10" screen. Tahoma font is missing in iOS as you see. Report with dialog on iPad3: Finally, a few screenshots from the mobile phones. Apple Iphone 5: Sony Xperia Mini Pro: Conclusion: FastReport .NET supports displaying in mobile browsers with touch-oriented UI, but you should take into mind the features of mobile systems in the development of reports. In particular, you need to use a font that is present on all mobile platforms. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC ### FastReport .NET packages and .NET 5.0 URL: https://www.fast-report.com/blogs/fastreport-net-packages-net-5.0 Summary: We tell you about the support .NET 5.0. on Windows OS in FastReport.NET.Demo packages , FastReport.NET , FastReport.NET.Pro . We tell you about the support .NET 5.0. on Windows OS in FastReport.NET.Demo packages , FastReport.NET , FastReport.NET.Pro . We tell you about the support .NET 5.0. on Windows OS in FastReport.NET.Demo packages , FastReport.NET , FastReport.NET.Pro . UPD: Applies to the versions of FastReport .NET before 2022.2. License packages are now available on our  NuGet server . With the release of FastReport .NET 2021.1 we’re happy to announce two important things: addition of the FastReport.NET package and the support of .NET 5.0. .NET5.0 support was added for FastReport.Core and FastReport.CoreWin (special version of FastReport .NET with UI for .NET Core3.1 and .NET 5.0 that’s built for OS Windows). Package FastReport.NET works only on OS Windows and is available in several editions: FastReport.NET.Demo - This package is available at nuget.org and in our official Trial installer, and it allows you to evaluate the product capabilities for various target frameworks on OS Windows. It has restrictions that are present in our other Demo edition products (5 page limit for exports, watermarked export pages, etc.). It includes FastReport .NET for .NET Framework 4.0 and higher, FastReport.CoreWin for .NET Core 3.1 and for .NET 5.0 and higher. FastReport.NET - This package is available in our official installer for licensed owners of the following editions: FastReport .NET WinForms and FastReport.Net Web. It includes FastReport .NET for .NET Framework 4.0 and higher. FastReport.NET.Pro - This package is available in our official installer for licensed owners of the following editions: FastReport.NET Professional and Enterprise. It includes FastReport .NET for .NET Framework 4.0 or higher, FastReport.CoreWin for .NET Core 3.1 and for .NET 5.0 and higher. We have listened to our clients’ feedback and decided not to add a -demo suffix for the Demo editions, because nuget treats packages with the suffix after a dash ‘-’ as prerelease packages, and a lot of people couldn’t find our product on nuget.org because of this. To have the Demo package displayed in the Visual Studio‘s search, you had to check the “Include prerelease” checkbox: In the close future we will fix this situation for the FastReport.Core-demo package and it will be called FastReport.Core.Demo. Tags: .NET, Visual Studio, FastReport, Core, C#, .NET5, NuGet ### FastReport .NET released! URL: https://www.fast-report.com/news/release-fastreport-net Summary: FastReport .NET released! FastReport .NET released! We are glad to announce a new product - FastReport.NET.  FastReport.NET is a full-featured reporting solution for developers who use Microsoft Visual Studio 2005 and 2008. FastReport.NET is written in C# and compatible with .NET Framework 2.0 and higher. ### FastReport .NET report types URL: https://www.fast-report.com/blogs/net-report-types In this article we are going to demonstrate the types of reports, that we can create in FastReport .NET. An inexperienced user of our report generator might think that the reports are only lists or grouped lists. However, the capabilities of the report generator are much wider than just displaying some lists of data. Due to the built-in script and dialog forms, reports can have logic. Charts and embedded maps allow you to transfer your reports from simple accounting to an information-cognitive area. Here is a list of report types: 1) Simple list; 2) Master-Detail; 3) Master - Master; 4) Report with grouping; 5) Label; 6) Multi-column report; 7) "Booklet" report; 8) Subreport report; 9) Inherited report; 10) Report with a chart; 11) Report with cards; 12) Matrix report; 13) Report with a dialogue form; 14) Report with the script; 15) Interactive report.  But first things first. So, the first type of report: 1)      Simple list. provides simple displaying of data from a database table in one list like a page in Excel. It can be only one table or data from key-linked tables, but they are displayed in one data band. For example: Or like this: In the example, we have just arranged the fields from the data source vertically. This type is the most common because it is simple and quick at creating reports. 2) When we need to output data from different tables, linked by a key, we can use the  Master-Detail type. Here, the data for each table is output in different Data bands. However, there is only one main band and there is its subordinate band. This means that for each record in the main band, all records ,corresponding to the key in the subordinate band, will be displayed. Using this way it is convenient to display, for example, categories of goods with lists of goods: 3)      Master - Master. In the previous example, we used two Data bands. One of which depended on the other one. A report like "Master - Master" also uses several Data bands, but they are not connected and do not depend on each other. In fact, they are several separate lists, which are displayed sequentially. 4)      Report with grouping. It is clear from the name of the type, that here we speak about grouping of data according to all  given conditions. For example, grouping by the first letter of the product name: As a result, we have a visual list with a division into groups. There and then, you can organize a report outline, where groups will be displayed. When selecting groups in the report outline, you will be moved to the corresponding group in the report: 5)      Report "Label".   It allows you to use the label templates. There is a set of built-in label templates from different manufacturers: You can also create your own template, in which you will specify the size of the label and the number of labels on the page: This way you can create labels of the right size. Let us take a look at the example: 6)      Multi-column report. This type of a report can be combined with any other type. Its essence is in splitting the data into columns, like on a newspaper page. You can specify the number of columns in the page settings. Another option is to adjust the number of columns in the properties of the Data band. This type of a report is for you if you display several columns on a page and you would like to use the rest of the empty space. 7)      Report type "Booklet". The essence of this type of reports is to provide your report with some presentability, namely, a title page, a table of contents and conclusion. Such a booklet can be printed and distributed in paper form as a finished document. This can be achieved by adding new pages to your report. You add the necessary pages and then build in the desired order by dragging tabs of the pages to the left at the bottom of the designer. This is how a multi-page "Booklet" type report looks like: 8)      Subreport. This type of reports allows to put a report into another one. That is, you put a "Subreport" object in the desired place in your report. This creates a new report page, on which you design a subreport. When building a report, where the object is placed, the embedded report will display a report, that you have constructed on another page. After that, the output of the main report items will continue. One may say: why should I make a separate report on the other page, if it can be done the same on the first page without a nested report? It is partly true. If a report is not complex, there is no point in dividing it into different pages indeed. The advantage of embedded reports is obvious, when creating complex, overloaded with a large number of report elements. After all, if you need to rearrange your complex report, it will require moving a large number of elements on the page. The process of formatting will be violated. This is all very time-consuming. Concerning an embedded report, you simply move the subreport object to the other location on the page and that is all. Also, there are no problems with formatting. Here is an example of a nested report: Pay attention to the white area. This table is derived from a nested report. Look at the report template: We can arbitrarily change the embedded report and at the same time it will always be displayed in the right place without violating the formatting. 9)      Inherited report. In the continuation of the topic with embedded reports, we will also examine the inherited ones. In this case, you have a base report in a separate file. Then you create the inherited from the base report and have the template already prepared. You just add new items. In this case, you can always change the base report, and in all inherited reports, its template will also change. This is the main advantage of the inherited reports. When can this be useful? For example, you create a series of reports for an enterprise. A report from the series contains a header with the name of the company and other data - this is a template, adopted for all documents of the enterprise. If the address of the company or phone, or any other parameter changes, you will need to make only one edit in the base template, not in each of the reports, created for the enterprise. D you agree, that it is convenient? How to make a base template?  Create a new report and decorate it in the style of an enterprise template. How to make an inherited report? Create a new report and select "Inherited report": You will be prompted to select the base report file on the local disk. 10)   Report with a chart . Maybe I should not consider this type of reports  a separate one because you can embed the chart in any of the previously discussed types. But you still should to pay much attention to the diagrams. Most of all, charts are placed in separate reports or on separate pages. FastReport offers an impressive set of chart types: Diagrams can be three-dimensional. You just need to mark the parameter when creating your series. 11)  Report with a map.  The same as charts, you can build maps into your reports. You load a map file into a Map object and you can view it in the report, using a mouse like Google maps: I would like to say, that you can move your map by dragging it with the mouse, and also zoom it in, using the scroll wheel. Such a report gives some kind of interactivity. A user interacts with a report to obtain the necessary information. In addition, you do not need to download maps as pictures, which will take up a lot of space. The interactive map is convenient and compact. 12)   Matrix report (summary). You may have encountered (cross-tabulated) tables in Excel. However, it is important o remind you what a cross table is. It is a table with two inputs, one of which is columns  and the second one is a row. At the intersection of a column and a row there is a cell with data. The simplest example is the multiplication table: A typical matrix. The same way, you can compose the data, for example, on sales: We deduce the sales amounts for each employee by years. In this format, it is very convenient and fast to analyse large data. Look at what the same data would look like in a simple list: Indeed, it is not convenient to examine such a list. How to deduce this amount of data for each employee? You should group it. All this causes inconvenience and consumes time for analysis. Thus, a matrix makes it possible to structure and summarize large amounts of data, which is a sort of simplification of OLAP. 13)   Report with the script. As you already understood, the examined reports in FastReport have a built-in script, that allows you to manage the report objects in the code fully. Each object, as it is supposed, has events in addition to properties. For example, using the BeforePrint event, you can convert data before displaying. After the AfterPrint event, you can automatically send the report by email: FastReport .NET allows to write a script in two languages C # and VB .NET. The data-processing tool in the report generator is extensive, but there are still situations when it is not enough. In such cases, it is better to apply the report script. Thus, the script allows us to: - manage the display of report objects (color, location, visibility, etc.); - convert data - perform complex calculations or transform data types; - manage the formation of some objects, such as matrix or table (add / delete columns and rows). For example, here is such a simple handler for the BeforePrint event for a text object, that allows it to be shifted with each subsequent displaying: ``` private void Text1_BeforePrint(object sender, EventArgs e) { Text1.Left = left; left += 30; } ``` 14) Report with a dialogue form . Reports of this type contain one or more dialog forms, that are displayed before the report is built. Thus, you can back up any data on the form and manage the report's behavior. For example, you can select some data to filter: And the drop-down lists are filled with data from the source. A fairly large set of controls is available for the dialog form. I think all your needs they will satisfy. Basically, dialogs are used for filtering or setting the value of report parameters. However, you can place controls on the form, and in the report script you can process the values of these elements and control the report's behavior: hide bands, sort data to open lists, etc. 14) Interactive report. This is a report, that allows a user in addition to view information and interact with it. For example, clicking on an item moves to the specified location in the report, or build a detailed report on the other page. Any of the presented reports can be interactive. You just need to add a hyperlink or create a report plan, which you can use to navigate through groups or specific values. For example, here is a list of categories with hyperlinks: Click on the hyperlink: Then, get a detailed report for this category. So, in this article we have examined the main 15 types of reports, that you can build with FastReport .NET. This set should be enough for all the events of life, and if not - soon there will be new ones. Tags: .NET, .NET, FastReport, FastReport ### FastReport .NET WCF - simple example URL: https://www.fast-report.com/news/simple-example-wcf-blog Summary: FastReport .NET WCF - simple example FastReport .NET WCF - simple example Today we review the simplest way to use the library FastReport.Service.dll as WCF service. This  example  does not require programming and is intended for testing of library and configuration file. To complete the task , we use  the program WcfSvcHost.exe, that comes with Visual Studio Read more... ### FastReport 2.54 VCL URL: https://www.fast-report.com/news/fastreport-vcl-2.54 Summary: FastReport 2.54 VCL FastReport 2.54 VCL - added Delphi 2005 support - bug fixes ### FastReport 3 beta testing URL: https://www.fast-report.com/news/fastreport-3-beta-test Summary: FastReport 3 beta testing FastReport 3 beta testing Welcome to beta testing of the FastReportT 3!  Rewritten class architecture.  Storing reports in XML format.  Full WYSIWYG (now for text objects too).  Text rotation 0..360 degrees.  Memo object supports simple html-tags (font color, b, i, u, sub, sup).  Styles.  Text flow.  URLs, Anchors  Dot matrix reports.  One script in the report (like an unit in the Delphi).  Multi-language architecture allows you to use many languages (Pascal, C++, Basic, Java).  Access to any object inside your application (in case you've allowed this). Standard libraries to access to base classes, controls and forms. Easily expandable library architecture.  Debugger  Improved Object Inspector.  Zooming.  Rulers, guides.  Wizard for base type reports.  Full Undo/Redo. ### FastReport 3 Enterprise Client/Server URL: https://www.fast-report.com/news/fastreport-vcl-3-enterprise Summary: Standalone server application (without the need of IIS, Apache or other web-server technologies) has a big performance, low response time, low use. Standalone server application (without the need of IIS, Apache or other web-server technologies) has a big performance, low response time, low use. - standalone server application (without the need of IIS, Apache or other web-server technologies) has a big performance, low response time, low use of system resources, in compare with solutions based on CGI technology; - run any reports on the server side, on client request, without direct connection of the client to the database server; - use of HyperText transfer protocol (HTTP, RFC 2068 [2]) allows you to use many of existing applications such as web-browsers (Internet Explorer, Netscape Navigator, Mozilla, Opera etc), proxy-servers, web-servers (Internet Information Server, Apache etc), together with FastReport 3 Enterprise without any additional requirements; - managing the connection logs, error logs, any additional system information, allows you to keep a statistics, quickly track down the bugs and unauthorized access attempts; - use of authentification and allow/deny IP lists allows you to restrict the access to the server; - you can use FastReport client components for interaction between your client application and the server. You can use any web-browser as well; - your reports may have a dialogue forms that will be used for entering some values before running a report; - supported formats of the prepared reports are: HTML, PDF, RTF, XML, XLS, JPEG, Text. ### FastReport 3 Enterprise Client/Server Demo URL: https://www.fast-report.com/news/fastreport-vcl-3-demo Summary: The server part (the FRServer.exe file) represents a powerful HTTP server with a capacity of report generation in HTML, PDF, RTF, XLS, XML, TXT. The server part (the FRServer.exe file) represents a powerful HTTP server with a capacity of report generation in HTML, PDF, RTF, XLS, XML, TXT. FastReport 3 Enterprise Demo contains compiled server and client programs. The server part (the FRServer.exe file) represents a powerfull HTTP server with a capacity of report generation in HTML, PDF, RTF, XLS, XML, TXT, JPEG formats, and also in the FastReport 3 (FP3) native report. The usage of any HTTP browser can be used as a client (Internet Explorer, Mozilla, Opera etc.). For query and displaying of files in the FastReport 3 (FP3) format it is necessary to use the Client Demo contained in the delivery package (the FRClient.exe file), built on the basis of the FastReport 3 Enterprise client components. Download demo now ### FastReport 3.01 URL: https://www.fast-report.com/news/fastreport-vcl-3.01 Summary: FastReport 3.01 FastReport 3.01 + added German, French, Ukrainian, Brazil, Hungarian resources + added TfrxReport.EnabledDatasets property + added TfrxCrossView.PlainCells property + added separate packages for DB and IBO + added separate FastScript packages for DB, BDE, IBX, ADO * changes in RTF and PDF exports - bug fixes ### FastReport 3.02 URL: https://www.fast-report.com/news/fastreport-vcl-3.02 Summary: FastReport 3.02 FastReport 3.02 + added Serbian resources + added DelphiFastZLib library instead of zlib standard unit to avoid   conflict between FR3 and JediVCL + added group/ungroup feature in the designer + added utility for quick recompiling FR packages * changes in the Chart object - require to rebuild your reports that contain    the Chart object! - bug fixes ### FastReport 3.03 URL: https://www.fast-report.com/news/fastreport-vcl-3.03 Summary: FastReport 3.03 FastReport 3.03 + added Czech, Turkish resources + added TfrxUserDataset.Fields, TfrxUserDataset.OnGetValue properties + edition 1.01 of the documentation (page numbers added) + added TfrxDataBand.KeepHeader property - bug fixes ### FastReport 3.04 URL: https://www.fast-report.com/news/fastreport-vcl-3.04 Summary: FastReport 3.04 FastReport 3.04 + added Taiwan, Italian, Slovene, Spanish, Catalon, Dutch resources + added "frxPBarcode.pas" unit for PSOFT BarcodeLibrary ( http://www.psoft.sk ) + added DayOf, MonthOf, YearOf functions + added "Multi-language wizard" for quick creation of the multi-language resource file + added TfrxReport.OldStyleProgress, OnProgressSTart, OnProgress, OnProgressStop properties - bug fixes ### FastReport 3.05 URL: https://www.fast-report.com/news/fastreport-vcl-3.05 Summary: FastReport 3.05 FastReport 3.05 - added TfrxReport.ShowProgress property  - bug fixes ### FastReport 3.07 URL: https://www.fast-report.com/news/fastreport-vcl-3.07 Summary: FastReport 3.07 FastReport 3.07 + added Delphi2005 packages + added TfrxReport.Modified property + added TfrxReport.EngineOptions.DestroyForms property + added Polish, Swedish, Romanian resources + added expressions support to the Cross-tab object * changes in aggregate functions call: <> symbols aren't needed anymore * changes in IIF function: now it works like macro + Forms support by TfrxReportClient + Report cache on server side + CGI wrapper for using with Apache/IIS (see cgi_readme.txt) - bug fixes ### FastReport 3.08 URL: https://www.fast-report.com/news/fastreport-vcl-3.08 Summary: FastReport 3.08 FastReport 3.08 + added TfrxMemoView.Clipped property + added TfrxReport.OnAfterPrintReport event + added baClient to Align property + added Danish, Chinese resources + now you can use national chars in the script identifier names + added TfrxPDFExport.PrintOptimized property + improved speed of the Excel export filter + added log rotate function in Client/Server version - bug fixes ### FastReport 3.09 URL: https://www.fast-report.com/news/fastreport-vcl-3.09 Summary: FastReport 3.09 FastReport 3.09 - improved HTML export filter - bug fixes ### FastReport 3.10 URL: https://www.fast-report.com/news/fastreport-vcl-3.10 Summary: FastReport 3.10 FastReport 3.10 - added Swiss, Portuguese, Latvian resources - added TfrxReport.OnEndDoc event - added TfrxReportServer.OnAfterBuildReport event - improved export filters - added shadows in HTML, PDF, XLS, XML, RTF exports - added page frames in HTML, PDF, XLS, XML exports - added backgrounds in HTML, PDF, XLS, XML exports - added resources for navigator in the HTML export filter - added TfrxXLSExport.AsText property - added outline in PDF export filter (TfrxPDFExport.Outline proper - added TfrxPDFExport.Author, TfrxPDFExport.Subject properties - added "Stream" property in all export filters - fixed the bug of the diagonal line export - fixed numbers format bug in XML export filter - fixed the bug of greek symbols export to PDF format - fixed the bug print of the report result after using the dialog form - fixed the bug of the multiple show the same dialog web form - report session bug fixes - fixed the bug of log rotate function properties - fixed the bug of the thick lines print on the second page - fixed the AV bug on the many pages export (more 50 pages) ### FastReport 3.11 URL: https://www.fast-report.com/news/fastreport-vcl-3.11 Summary: FastReport 3.11 FastReport 3.11 + added Greek resources + added HTML tags support in PDF export + added Hebrew, Turkish and Arabic languages in the PDF export filter + added property TfrxPDFExport.Background (default = False) + added properties TfrxRTFExport.Creator and TfrxPDFExport.Creator + improved quality of the PDF export filter + password protected reports is now working in client/server mode (IMPORTANT: Do not use this feature in one time with the server authentification) + verbose output of the server errors in the HTML mode - fixed name of the properties TfrxServerConnection.Proxy and TfrxServerConnection.ProxyPort (press 'ignore' button on load prompt in yours projects for autofix form components) - fixed clean of the report cache on TfrxReportServer.Stop method - fixed background draw in HTML export filter in server mode - many bug fixes ### FastReport 3.12 URL: https://www.fast-report.com/news/fastreport-vcl-3.12 Summary: FastReport 3.12 FastReport 3.12 + added TfrxReport.StoreInDFM property + added TfrxShapeView.Curve property + added TfrxReport.PreviewOptions.OutlineExpand property + added compatibility code in XLS export - TfrxXLSExport.FastExport property, set FastExport := False if you have OLE error with Excel + added TfrxXLSExport.PageBreaks property + improved XLS, PDF, HTML exports  - fixed URLs and anchors feature in HTML export - fixed bug with font widths in PDF export - fixed bug PrintOnParent in exports (Enterprise) + added TfrxServerConfig.ReportsList property + added 'getvariable' URL parameter for query of internal server variables + added internal server variables SERVER_REPORTS_LIST, SERVER_REPORTS_HTML + added function TfrxReportClient.GetServerVariable(const VariableName: String): String; + improved TfrxReportServer performance + added NT service demo (see project \Demos\ClientServer\Service) + added online documentation in the Server demo - fully rewritten Advanced Client demo (see project \Demos\ClientServer\Client\Advanced) - changed reports in Server demo (see project \Demos\ClientServer\Server) - changed html files in Server demo (see project \Demos\ClientServer\Server) - bug fixes ! Attention: reports with TfrxRichView (RTF) don't work in Server mode when server cache is on. ### FastReport 3.13 URL: https://www.fast-report.com/news/fastreport-vcl-3.13 Summary: FastReport 3.13 FastReport 3.13 + added "ExportNotPrintable" property in all export filters + added "Resolution", "SeparateFiles" properties in BMP, JPEG, TIFF export filters + improved TfrxHTTPClient RFC 2068 compatibility (when working with non-FastReport servers) - fixed Outline bug in PDF export filter - fixed RTL (Hebrew, Arabic language) bug in PDF export filter - fixed resolution bug in TIFF export filter - bug fixes ### FastReport 3.14 URL: https://www.fast-report.com/news/fastreport-vcl-3.14 Summary: FastReport 3.14 FastReport 3.14 + added FastQueryBuilder (button in SQL editor window) + added TfrxOverlay.PrintOnTop property + added TfrxDMPCommand component to print ESC-sequences. Use Command property to set sequence: DMPCommand1.Command := '#27#40' (alternate form '1B28') + added TfrxReport.OnRunDialogs script event. Use this event to handle report dialogs manually + added Description property to all report components * changed internal datasets behaviour, now they can be added to any report page without using dialogs * changed internal datasets architecture (common class TfrxCustomDatabase, QBuilder support) - fixed bug with brush styles - fixed bug in Report Server with fetch of report from the cache with equal variables - fixed bug in XML export filter with fkNumber format of the memo ### FastReport 3.15 URL: https://www.fast-report.com/news/fastreport-vcl-3.15 Summary: FastReport 3.15 FastReport 3.15 + added new wizards (db connection, table, query) + added FlowTo property for TfrxDMPMemoView + added Bulgarian resources + added FibPlus support (you should install Source\FIB\frxFIBx.dpk,  dclfrxFIBx.dpk packages manually) + added ability to composite prepared reports. Example: frxReport1.PrepareReport; frxReport2.PrepareReport; frxReport1.PreviewPages.AddFrom(frxReport2); frxReport1.ShowPreparedReport; + added UseFileCache, DefaultPath properties in all export filters + improved PDF, XLS export filters * changed resources structure * changed DBX components to work with bidirectional dataset - fixed bug with copies collation - fixed bug with shifting horizontal lines - fixed DMPLineView.Align = baWidth behaviour - fixed bug with TfrxDBLookupComboBox (incorrect work with field aliases) - fixed bug with build list of avialable reports on the FastReport Server ### FastReport 3.16 released URL: https://www.fast-report.com/news/fastreport-vcl-3.16 Summary: FastReport 3.16 released FastReport 3.16 released + added unicode support in TfrxMemoView + added GIF format export TfrxGifExport + added e-mail export (SMTP) TfrxMailExport + added new text export filter TfrxSimpleTextExport + added CSV export filter TfrxCSVExport + case sensitivity in C++Script + added X axis type option to chart object + added ability to use [] instead of <> (like in FR2.5) + [FQB] joins between fields of the compatible types + added TfrxDesigner default settings (font, paper, rtl, script language).  + added TfrxDMPExport.OnTranslate event * changed rules of export a rich-text objects - fixed bug in server with single "pagenav" (Page Navigator) parameter - fixed picture.url bug - fixed bug in PDF export with horizontal/vertical lines - [FQB] fixed 'Control has no parent window' error in Delphi 5 - fixed bug in crosstab (wrong row/column sizes) - fixed baClient for page objects - fixed memory leak in Server mode  - fixed TFMTBCDField bug (wrong sum calculation) - fixed bug with master-detail DBX ### FastReport 3.17 released URL: https://www.fast-report.com/news/fastreport-vcl-3.17 Summary: FastReport 3.17 released FastReport 3.17 released + added Farsi language resources + added pdf and e-mail export buttons in preview toolbar + added popup menu in Preview + added full screen mode in Preview (F11 hot-key) * improved PDF export filter * restricted some properties of HTML and image export by e-mail - [FQB] fixed for order by DESC of any field - fixed bug with blank DefaultPath property in all exports - fixed Null to OleStr bug - fixed D5/WideStrings bug - fixed bug with jscript/basicscript - fixed ibo bug (cannot assign blob to TWideStrings) - fixed picture bug (error if blob is not valid) - fixed Cut/Copy/Paste hotkey actions in Object Inspector - fixed bug with undo in password protected reports - fixed bug with list of password protected reports in server - fixed bug with Memo.Lines property - IBO fixes ### FastReport 3.17 Studio released URL: https://www.fast-report.com/news/fastreport-studio-3.17 Summary: FastReport 3.17 Studio released FastReport 3.17 Studio released + added the export image options command-line keys (/dpi=xx /quality=xx /mono /unite /crop ) + added emulation of the runtime mode in standalone designer (/runtime command-line key) + added GIF export + added Language selector in Designer (View menu) + added pdf and e-mail export buttons in preview toolbar + added right mouse button menu in Preview + added full screen mode in Preview (F11 hot-key) + added User Manual + added Programmer Manual + added Command-Line Manual + added IfrxView interface + added new demo reports with charts + added language resources support * changed the registry key of Connection aliases from HKCU to HKLM * rewrited Visual C++ demo * changed installer  - Fixed bug in Command-line export featutre - fixed bug with Designer windows - fixed event OnClickObject ### FastReport 3.18 released URL: https://www.fast-report.com/news/fastreport-3.18 Summary: FastReport 3.18 released FastReport 3.18 released * D2006 ready + added strikeout text support in HTML export + added char spacing support in PDF export + added support of BALTIC_CHARSET (windows-1257) in PDF export + added support TfrxShapeView diagonal lines in PDF export + added FRF import unit. To use it, simply include frx2xto30.pas into your "uses" list. - fixed inplace editing of the Text object - fixed bug with export to the monochrome TIFF format (error with the MS Paint and Photo Editor)  - fixed dbx components bug - fixed paper bins selection - fixed bugs in e-mail export (Lines and Signature properties,  bad attachment, bad address syntax with some smtp servers) - fixes of the export filters interface - fixed GIF export filter - fixed bug with xp style (av when closing expr editor) - fixed av when selecting sysmemo and memo - fixed the default export file name in the "Save Dialog" - fixed TfrxServerConfig.LoadFromFile ### FastReport 3.19 released URL: https://www.fast-report.com/news/fastreport-3.19 Summary: FastReport 3.19 released FastReport 3.19 released + added separate frxTee package for TeeChart + added CJK Font support in PDF export + added frxHiButtons.pas unit (hi-color button images). Just add to your uses list. + added "Classes" tab to DataTree + added TfrxBarcodeView.WideBarRatio property - multi-thread fixes - fixed bug with cross+subreport - fixed bug with CloseDatasource = True - fixed bug in old-style cross - fixed bug in XLS(OLE) export with extra long text line - fixed bug in PDF export with non-TrueType fonts - fixed memo.loadfromfile - fixed bug with installer - fixed print report title twice - fixed startnewpage+reprintonnewpage - fixed char spacing in PDF export - fixed baClient align - fixed dot-matrix (designer, engine) - fixed app icon bug - FS: multithread fix - preview fixes - frf importer fixes ### FastReport 3.20 released URL: https://www.fast-report.com/news/fastreport-3.20 Summary: FastReport 3.20 released FastReport 3.20 released + improved RTF export + added handling font.charset (set to DEFAULT_CHARSET if you want unicode) + added EmptyLines property in XLS and XML export  (if set to 'false' then all empty lines is eliminated, good for export without  page breaks for output a solid table) + added ParagraphGap support in PDF export + enhanced speed and reduced output file size of PDF export + update German resources + update Turkish resources + added TfrxReport.OnBeforeConnect event + added ADO, IBX support in frf importer unit + added CommandTimeout property to ADO query + added pbExportQuick item in TfrxPreviewButtons set  (PDF and E-mail export buttons in Preview) * AVG function now counts only non-Null values * RichView object is now WYSIWYG - [server] fixed bug with parameters in report refresh - fixed bug in RTF export with font style attributes - fixed bug with frames in PDF export - fixed paper size bug - fixed ParagraphGap in PDF export - fixed stack overflow error with report summary band - fixed error with dialog form - fixed big with TProgressBar property out of range on exports of blank page in HTML - fixed bug in PDF export with zero width/height of bitmap - [FS] fixed OLE Ecxeption message - fixed bug with checkbox object - fixed bug with datatree window - fixed error with chart datetime - fixed bug with inspector window in debug mode - fixed undo of password protected report - fixed some dataset problems - fixed ask save changes in designer - fixed PDF export (font color clNone looks as clBlack)  ### FastReport 3.21 released URL: https://www.fast-report.com/news/fastreport-3.21 Summary: FastReport 3.21 released FastReport 3.21 released + [server] added lot of properties in configuration file (config.xml) + [server] added CSV, BMP, GIF, TIFF output formats + [server] added caching of reports in memory * [server] changed format of configuration file (important! see details in server_changes.txt) * [server] property TfrxServer.Configuration is obsolete * [server] updated server/service demo * [server] modified log-writer, statistic, cache modules - [server] lot of minor fixes + added TfrxHTMLExport.UseGif property + added unicode support in HTML, "Rich Text" (RTF) and XML exports + added TfrxXLSExport.SuppressPageHeadersFooters and TfrxXLSExport.SuppressPageHeadersFooters properties; + added TfrxReport.OnPreview event + added TfrxReport.OnPrintPage event + [FQB] property fqbCore.UsingQuotes added for support of quoted field names + added Slovak language resources + added clipping in the preview + added TfrxPreview.BackColor, FrameColor properties + added printer fonts to fontname combobox + added transparency/backcolor to rich object + added TfrxDesigner.OnInsertObject Event * changes in the databand editor * "Pictures" checkbox changed to combobox (none/jpeg/bmp/gif) in HTML export dialog  * "Styles" checkbox changed to "Continuous" in XLS and XML export dialog * bcb2006 compatibility * update Danish resources * update Dutch resources  * update Brazilian resources - fixed bug with incorrect codepage detection for page navigator in HTML export - fixed bug with incorrect export of EAN barcodes (digits beyond of border were croped) - fixed incorrect page breaks in RTF export - fixed shift problem - fixed monochrome bitmaps stretching - fixed TfrxDateEditControl - fixed copying grouped objects - fixed vband&overlay error - fixed setting of printer parameters - fixed KeepFooter + aggregate functions - fixed TfrxADOTable.IndexFieldNames property - fixed ado query parameters - fixes in database/table/query wizard - fixed bug with font charset in RTF export - fixed preview painting bug - fixed bug with rich when no printers installed - fixed copies in dmp export - fixed rtf expression parser - fixed bug with mdi preview - fixed bug with RTL reading brackets in PDF export - fixed input chinese chars in dialog controls - fixed shift behavior - fixed bug with right align and non-zero charspacing in PDF export - fixed bug with underline in HTML export - fixed overlay+keeptogether bug - fixed bug with bcb5 (cannot use function with parameters) - fixed large font issues - fixed html tags ### FastReport 3.22 for Delphi released URL: https://www.fast-report.com/news/fastreport-3.22 Summary: FastReport 3.22 for Delphi released FastReport 3.22 for Delphi released + added full TeeChart Pro support
+ added property TfrxHTMLExport.Centered in HTML export
+ added "Continuous" checkbox in RTF export dialog
+ added TfrxRTFExport.SuppressPageHeadersFooters property
+ added TfrxCheckBox.UncheckStyle property
+ added property TfrxGroupFooter.HideIfSingleDataRecord
+ added text shift on non-zero char spacing in PDF export
+ added Croatian resources
* update the main demo (ADO support, added new reports)
* added the object name to the error message in some cases
* TfrxGradientView is not exported in HTML, RTF, XLS formats
* preserve object names when working with clipboard
* improved HTML, RTF exports
* improved XML, Excel exports (thanks for Bali)
* increased timeout in E-Mail export
* update Danish resources
* update Portuguese resources
  - fixed bug with empty page in HTML export
- fixed IIF bug
- fixed bug with "ShowProgress := False" in XLS export
- fixed bug in XML export
- fixed error with reportsummary band
- fixed memory leaks when script has errors
- fixed shift issues
- fixed brush style bsBDiagonal and bsFDiagonal in PDF export
- fixed bug with incorrect codepage of TfrxRichView in RTF export
- fixed bug with margins in PDF export
- fixed bug with blobfields in bds2006
- fixed bug with stretched images
- [server] fixed bug with reports cache
- [server] fixed bug with Idle time leak
- [server] minor bug fixes ### FastReport 3.23 for Delphi released URL: https://www.fast-report.com/news/fastreport-3.23 Summary: FastReport 3.23 for Delphi released FastReport 3.23 for Delphi released + added save to stream possibility in Jpeg, Gif, Tiff, Bmp exports + added new control for page headers/footers mode selection in RTF export dialog + added new property TfrxRTFExport.HeaderFooterMode  (you can select between hfText, hfPrint, hfNone - default is hfText) + [server] added property TfrxReportServer.WebServer + added property TfrxHTMLExport.EmptyLines * e-mail export now inherits the attachment file name from exports file name * update French resources * update Danish resources * update German resources - fixed bug in TIFF export (monochrome) - fixed bug in PDF export when Outline is empty and checked - fixed large font issues - some fixes for bar codes in PDF export - add-in components fixes (AV when open some projects) - fixed bug with preview (position of the page when resizing the window) - fixed bug with RichText objects intersection in RTF export - fixed bug with format of the float numbers in XLS export - fixed bug with export of barcodes with zoom more than two - fixed error when page number does not exist in page range in exports dialog - [server] fixed bug with ampersand in query parameters - fixed bug with XML export (XML Parsing Error) - fixed bug with HideIfSingleDataRecord ### FastReport 4 demo is available! URL: https://www.fast-report.com/news/fastreport-4-demo-is-available Summary: What's new in the FastReport 4? Report Designer, Report Preview, Print, Report Core. Download the compiled demo of FastReport 4 here: download What's new in the FastReport 4? Report Designer, Report Preview, Print, Report Core. Download the compiled demo of FastReport 4 here: download What's new in the FastReport 4? Report Designer : new XP-style icons the "Data" tab with all report datasets ability to draw diagrams in the "Data" tab code completion (Ctrl+Space) breakpoints watches report templates Report Preview : thumbnails Print : splitting a big page to several small pages printing several small pages on one big duplex handling from print dialogue Report Core : "endless page" mode images handling, increased speed the "Reset page numbers" mode for groups reports scripting (Rijndael algorithm) report inheritance drill-down groups frxGlobalVariables object "cross-tab" object enhancements line object can have arrows ### FastReport 4 released! URL: https://www.fast-report.com/news/release-fastreport-4 Summary: FastReport 4 released! FastReport 4 released! Dear friends! FastReport 4 for Delphi / C++Builder / BDS released! Report Designer: - new XP-style interface - the "Data" tab with all report datasets - ability to draw diagrams in the "Data" tab - code completion (Ctrl+Space) - breakpoints - watches - report templates - local guidelines (appears when you move or resize an object) - ability to work in non-modal mode, mdi child mode Report Preview: - thumbnails Print: - split a big page to several small pages - print several small pages on one big - print a page on a specified sheet (with scale) - duplex handling from print dialogue - print copy name on each printed copy (for example, "First copy", "Second copy") Report Core: - "endless page" mode - images handling, increased speed - the "Reset page numbers" mode for groups - reports crypting (Rijndael algorithm) - report inheritance (both file-based and dfm-based) - drill-down groups - frxGlobalVariables object - "cross-tab" object enhancements: - improved cells appearance - cross elements visible in the designer - fill corner (ShowCorner property) - side-by-side crosstabs (NextCross property) - join cells with the same value (JoinEqualCells property) - join the same string values in a cell (AllowDuplicates property) - ability to put an external object inside cross-tab - AddWidth, AddHeight properties to increase width&height of the cell - AutoSize property, ability to resize cells manually - line object can have arrows - added TfrxPictureView.FileLink property (can contain variable or a file name) - separate settings for each frame line (properties Frame.LeftLine, TopLine, RightLine, BottomLine can be set in the object inspector) - PNG images support (uncomment {$DEFINE PNG} in the frx.inc file) - Open Document Format for Office Applications (OASIS) exports, spreadsheet (ods) and text (odt) Enterprise components: - Users/Groups security support (see a demo application Demos\ClientServer\UserManager) - Templates support - Dynamically refresh of configuration, users/groups Let's try leader tool! ### FastReport 4.1 released URL: https://www.fast-report.com/news/fastreport-4.1 Summary: FastReport 4.1 released FastReport 4.1 released We wish you a Merry Christmas and Happy New Year! 1. FastReport 4.01 released What is new? ------------ + added ability to show designer inside panel (TfrxReport.DesignReportInPanel method). See new demo Demos\\EmbedDesigner + added TeeChart7 Std support + [server] added "User" parameter in TfrxReportServer.OnGetReport, TfrxReportServer.OnGetVariables and TfrxReportServer.OnAfterBuildReport events + added Cross.KeepTogether property + added TfrxReport.PreviewOptions.PagesInCache property - barcode fix (export w/o preview bug) - fixed bug in preview (AV with zoommode = zmWholePage) - fixed bug with outline + drilldown - fixed datasets in inherited report - [install] fixed bug with library path set up in BDS/Turbo C++ Builder installation - fixed pagefooter position if page.EndlessWidth is true - fixed shift bug - fixed design-time inheritance (folder issues) - fixed chm help file path - fixed embedded fonts in PDF - fixed preview buttons - fixed bug with syntax highlight - fixed bug with print scale mode - fixed bug with control.Hint - fixed edit preview page - fixed memory leak in cross-tab 2. Special Christmas Offer from Fast Reports. ============================================= Only two weeks. Only for upgrade FastReport 3 to 4 Standard, Professional and Enterprise. Use this links for ordering FastReport with discount: from FastReport 3 to 4 Standard: https://secure.shareit.com/shareit/cart.html?PRODUCT[300134419]=1&languageid=1¤cies=all&COUPON1=X-masGift from FastReport 3 to 4 Professional: https://secure.shareit.com/shareit/cart.html?PRODUCT[300134420]=1&languageid=1¤cies=all&COUPON1=X-masGift from FastReport 3 to 4  Enterprise: https://secure.shareit.com/shareit/cart.html?PRODUCT[300134421]=1&languageid=1¤cies=all&COUPON1=X-masGift 3. We have moved to new address: ================================ off. 502, Oborony str. 24 344082, Rostov-on-Don, Russia Phone: +7 863 2270740 Fax:   +7 863 2270736 ### FastReport 4.2 VCL released URL: https://www.fast-report.com/news/fastreport-4.2 Summary: FastReport 4.2 VCL released FastReport 4.2 VCL released + added support for CodeGear Delphi 2007 + added export of html tags in RTF format + improved split of the rich object + improved split of the memo object + added TfrxReportPage.ResetPageNumbers property + added support of underlines property in PDF export * export of the memos formatted as fkNumeric to float in ODS export - fixed bug keeptogether with aggregates - fixed bug with double-line draw in RTF export - fix multi-thread problem in PDF export - fixed bug with the shading of the paragraph in RTF export when external rich-text was inserted - fixed bug with unicode in xml/xls export - fixed bug in the crop of page in BMP, TIFF, Jpeg, Gif - "scale" printmode fixed - group & userdataset bugfix - fixed cross-tab pagination error - fixed bug with round brackets in PDF export - fixed bug with gray to black colors in RTF export - fixed outline with page.endlessheight - fixed SuppressRepeated & new page - fixed bug with long time export in text format - fixed bug with page range and outline in PDF export - fixed undo in code window - fixed error when call DesignReport twice - fixed unicode in the cross object - fixed designreportinpanel with dialog forms - fixed paste of DMPCommand object - fixed bug with the export of null images - fixed code completion bug - fixed column footer & report summary problem ### FastReport 4.3 released! URL: https://www.fast-report.com/news/fastreport-4.3 Summary: FastReport 4.3 released! FastReport 4.3 released! FastReport® VCL is an add-on component that allows your application to generate reports quickly and efficiently. FastReport® provides all the necessary tools to develop reports, including a visual report designer, a reporting core, and a preview window. It can be used in the Borland Delphi and Borland C++Builder environments. What is new in the version 4.3 --------------- + added support for C++Builder 2007 + added encryption in PDF export + added TeeChart Pro 8 support + added support of OEM code page in PDF export + added TfrxReport.CaseSensitiveExpressions property + added "OverwritePrompt" property in all export components + improved RTF export (WYSIWYG) + added support of thai and vietnamese charsets in PDF export + added support of arrows in PDF export * at inheritance of the report the script from the report of an ancestor is added to the current report (as comments) * some changes in PDF export core - fixed bug with number formats in Open Document Spreadsheet export - fixed bug when input text in number property(Object Inspector) and close Designer(without apply changes) - fixed bug in TfrxDBDataset with reCurrent - fixed bug with memory leak in export of empty outline in PDF format - line# fix (bug with subreports) - fixed bug with edit prepared report with rich object - fixed bug with shadows in PDF export - fixed bug with arrows in designer - fixed bug with margins in HTML, RTF, XLS, XML exports - fixed bug with arrows in exports - fixed bug with printers enumeration in designer (list index of bound) - fixed papersize bug in inherited reports ### FastReport 4.4 released! URL: https://www.fast-report.com/news/fastreport-4.4 Summary: FastReport 4.4 released! FastReport 4.4 released! What is new in the version 4.4 --------------- + added support for CodeGear RAD Studio 2007 + improved speed of PDF, HTML, RTF, XML, ODS, ODT exports + added TfrxReportPage.BackPictureVisible, BackPicturePrintable properties + added rtti for the TfrxCrossView.CellFunctions property + added properties TfrxPDFExport.Keywords, TfrxPDFExport.Producer, TfrxPDFExport.HideToolbar, TfrxPDFExport.HideMenubar, TfrxPDFExport.HideWindowUI, TfrxPDFExport.FitWindow, TfrxPDFExport.CenterWindow, TfrxPDFExport.PrintScaling + added ability recompile frxFIB packages in "recompile wizard" + added ability to set color property for all teechart series which support it + added, setting frame style for each frame line in style editor + added TfrxPreview.Locked property and TfrxPreview.DblClick event + added 'invalid password' exception when load report without crypt + added new parameter to InheritFromTemplate (by default = imDefault) imDefault - show Error dialog, imDelete - delete duplicates, imRename - rename duplicates + added property TfrxRTFExport.AutoSize (default is "False") for set vertical autosize in table cells * redesigned dialog window of PDF export * improved WYSIWYG in PDF export - fixed bug, the PageFooter band overlap the ReportSummary band when use EndlessHeight - fixed bug with lage paper height in preview - fixed bug with outline and encryption in PDF export - fixed bug with solid arrows in PDF export - fixed bug when print TfrxHeader on a new page if ReprintOnNewPage = true and KeepFooter = True - fixed bug when used AllowSplit and TfrxGroupHeader.KeepTogether - fixed page numbers when print dotMatrix report without dialog - fixed bug with EndlessHeight in multi-columns report - fixed font dialog in rich editor - [fs] fixed bug when create TWideStrings in script code - fixed bug with dialog form when set TfrxButtonControl.Default property to True - fixed twice duplicate name error in PreviewPages designer when copy - past object - fixed bug with Preview.Clear and ZmWholePage mode - fixed bug with using "outline" together "embedded fonts" options in PDF export - fixed multi-thread bug in PDF export - fixed bug with solid fill of transparent rectangle shape in PDF export - fixed bug with export OEM_CODEPAGE in RTF, Excel exports - fixed bug with vertical size of single page in RTF export - fixed bug with vertical arrows in PDF export - fixed memory leak with inherited reports ### FastReport 4.5 released! URL: https://www.fast-report.com/news/fastreport-4.5 Summary: FastReport 4.5 released! FastReport 4.5 released! Version 4.5 --------------- + added ConverterRB2FR.pas unit for converting reports from Report Builder to Fast Report + added ConverterQR2FR.pas unit for converting reports from QuickReport to FastReport + added support of multiple attachments in e-mail export (html with images as example) + added support of unicode (UTF-8) in e-mail export + added ability to change templates path in designer + added OnReportPrint script event + added PNG support in all version (start from Basic) + added TfrxDMPMemoView.TruncOutboundText property - truncate outbound text in matrix report when WordWrap=false + added new frames styles fsAltDot and fsSquare + added new event OnPreviewDblClick in all TfrxView components + added ability to call dialogs event after report run when set DestroyForms = false + added ability to change AllowExpressions and HideZeros properties in cross Cells (default=false) + added IgnoreDupParams property to DB components + added auto open dataset in TfrxDBLookupComboBox + added new property TfrxADOQuery.LockType + added define DB_CAT (frx.inc) for grouping DB components + added TfrxPictureView.HightQuality property(draw picture in preview with hight quality, but slow down drawing procedure) + [FRViewer] added comandline options "/print filename" and "/silent_print filename" + added unicode input support in RichEditor + added new define HOOK_WNDPROC_FOR_UNICODE (frx.inc) - set hook on GetMessage function for unicode input support in D4-D7/BCB4-BCB6 + added ability chose path to FIB packages in "Recompile Wizard" + added new function TfrxPreview.GetTopPosition, return a position on current preview page + added new hot-keys to Code Editor - Ctrl+Del delete the word before cursor, Ctrl+BackSpace delete the word after cursor(as in Delhi IDE)  + added "MDI Designer" example - all language resources moved to UTF8, XML - fixed bug with html tags [sup] and [sub] - fixed width calculation in TfrxMemoView when use HTML tags - fixed bug with suppressRepeated in Vertical bands - fixed bug when designer not restore scrollbars position after undo/redo - fixed visual bug in toolbars when use Windows Vista + XPManifest + Delphi 2006  - fixed bug in CalcHeight when use negative LineSpace - fixed bug in frx2xto30 when import query/table components, added import for TfrDBLookupControl component - fixed bug with Cross and TfrxHeader.ReprintOnNewPage = true - fixed  converting from unicode in TfrxMemoView when use non default charset - [fs] fixed bug with "in" operator - fixed bug with aggregate function SUM  - fixed bug when use unicode string with [TotalPages#] in TfrxMemoView - fixed bug with TSQLTimeStampField field type - fixed designer dock-panels("Object Inspector", "Report Tree", "Data Tree")  when use designer as MDI or use several non-modal designer windows - fixed bug with hide/show dock-panels("Object Inspector", "Report Tree", "Data Tree"), now it restore size after hiding - fixed bug in XML/XLS export - wrong encode numbers in memo after CR/LF - fiexd bug in RTF export  - fixed bug with undo/redo commands in previewPages designer - fixed bug with SuppressRepeated when use KeepTogether in group - fixed bug with SuppressRepeated on new page all events fired twice(use Engine.SecondScriptcall to determinate it)­ ### FastReport 4.6 VCL Documentation updated URL: https://www.fast-report.com/news/update-documentation-fastreport-vcl Summary: FastReport 4.6 VCL Documentation updated FastReport 4.6 VCL Documentation updated "Help file" - added description of new properties and methods. "Programmer's manual" - added several new chapters, added code example for BCB "User's Manual"  - a few  changes. ### FastReport 4.8 released! URL: https://www.fast-report.com/news/fastreport-vcl-4.8 Summary: FastReport 4.8 released! FastReport 4.8 released! ! + added support of Embarcadero Rad Studio 2010 (Delphi/C++Builder) ! + added TfrxMailExport.OnSendMail event  ! + [enterprise] added Windows Authentification mode ! + adedd checksum calculating for  2 5 interleaved barcode ! * [enterprise] improved CGI for IIS/Apache server ! * changed PDF export: added full unicode support, improved performance, decreased memory requirements   old PDF export engine saved in file frxExportPDF_old.pas + added TfrxDBDataset.BCDToCurrency property + added TfrxReportOptions.HiddenPassword property to set password silently from code + added TfrxADOConnection.OnAfterDisconnect event  + added TfrxDesigner.MemoParentFont property + added new TfrxDesignerRestriction: drDontEditReportScript and drDontEditInternalDatasets + added TfrxGroupHeader.ShowChildIfDrillDown property   + added confirmation reading for TfrxMailExport + added TimeOut field to TfrxMailExport form  + added ability to use keeping(KeepTogether/KeepChild/KeepHeader) in multi-column report + added ability to split big bands(biggest than page height) by default  - changed inheritance mechanism, correct inherits of linked objects (fixups) - fixed bug with Mirror Mrgins in RTF, HTML, XLS, XML, OpenOffice exports - fixed bug when cross tab cut the text in corner, when corner height greater than column height - improved WatchForm TListBox changet to TCheckListBox - improved AddFrom method - copy outline - Improved functional of vertical bands, shows memos placed on H-band which doesn't across VBand, also calculate expression inside it and call events (like in FR2) - Improved unsorted mode in crosstab(join same columns correctly) - Improved converter from Report Builder - Improved TfrxDesigner.OnInsertObject, should call when drag&drop field from data tree - improved DrillDownd mechanism, should work correct with master-detail-subtetail nesting  - fixed bug with DownThenAcross in Cross Tab - fixed several bugs under CodeGear RAD Studio (Delphi/C++Builder) 2009  - fixed bug with emf in ODT export - fixed bug with outline when build several composite reports in double pass mode - fixed bug when group doesn't fit on the whole page - fixed "Page" and "Line" variables inside vertical bands - fixed bug with using KeepHeader in some cases - fixed bug with displacement of subreport when use PrintOnParent property in some cases - fixed small memory leak in subreports - fixed problem with PageFooter and ReportSymmary when use PrintOnPreviousPage property - fixed bug when designer shows commented functions in object inspector - fixed bug when designer place function in commented text block - fixed bug when Engine try to split non-stretcheable view and gone to endless loop - fixed bug with HTML tags in memo when use shot text and WordWrap - [enterprise] fixed bug with variables lost on refresh/export - fixed bug whih PDF,ODT export in Delphi4 and CBuilder4 - fixed bug with some codepage which use two bytes for special symbols (Japanese ans Chinese codepages) - fixed bug when engine delete first space from text in split Memo - fixed bug in multi-column page when band overlap stretched PageHeader - fixed bug with using ReprintOnNewPage ### FastReport 5.6 with RAD Studio 10.2 Tokyo support URL: https://www.fast-report.com/news/fastreport-vcl-5.6 Summary: FastReport 5.6 is here with Embarcadero RAD Studio 10.2 Tokyo support. FastReport 5.6 is here with Embarcadero RAD Studio 10.2 Tokyo support. With support of new IDE new version brings few new features and lots of improvements. Also we're making FastReport 5 better not only for Delphi, but for Lazarus too. New version gives ability to build Lazarus application with GTK widgets. What else?  + Added Embarcadero RAD Studio 10.2 Tokyo support for x32 and x64 windows platforms + Added Sup, Sub tag support for TfrxHTMLExport + Added TfrxPDFExport.SaveOriginalImages property. True by default + Added GS1 support for Code128C, EAN128C barcodes + Added sorting of printers by name in the printer's list + Added Norwegian resources + Added TfrxFDTable support in the frxFDRTTI + Added #0..#31 chars support in the Code128A + Added TfrxBarcodeView.TestLine property + Added TfrxRichEditor form state storing + [Lazarus] Added support of GTK widget - Fixed frx2xto30.pas for XE2 and later - Increased PaperSizes count limit to 512 - [Lazarus] Fixed scrolling in designer - Fixed smMaxHeight in TfrxRichView - Fixed TfrxXLSXExport for file with 1000 worksheets - Fixed TfrxPreviewPages.ClearPageCache - Fixed TfrxIBXQuery.ExecSQL - Fixed new event insert if main procedure of the script have line with "// begin" - Fixed component's name after Drag&Drop from Data Tree for fields with Unicode characters - Fixed TfrxBarcodeView baCenter, baRight align - Fixed reprint on new page and group keeping bug - Fixed update parameters after loading for TfrxADOQuery - Fixed preview's toolbar for RAD Studio Berlin 10.1 Update 2 when VCL styles applied - Fixed TfrxReport.PrintOptions.Duplex usage - Fixed printing of PNG images - Fixed TfrxReport.ReportOptions.Author in the DOCX, PPTX and XLSX exports - Fixed vsExport usage for export filters - Fixed export of non-alphanumeric chars (<, >, &) inside HTMLTags in the ODF export - [FastScript] Fixed Format function - Fixed HTMLTags in the TfrxMemoView - Fixed calculation of hyperlink expressions - Fixed image size in the DOCX export - Fixed MSI barcode - Fixed exporting of objects' hyperlinks to encrypted PDF - Fixed export to continuous XLSX for reports with many pictures - Fixed export of frames with width < 1 to HTML - Fixed export of empty pages to XLSX - Fixed band's with barcodes stretching - Fixed KeepChild behavior for TfrxReportTitle child bands - Fixed custom number format in the ODF export - [Lazarus] Fixed printer selection in the print dialog - Fixed export of hyperlinks with hkPageNumber kind when page number greater than pages count - Fixed component's name after Drag&Drop from Data Tree for some cases - Fixed "Divizion by zero" error with pmSplit print mode - Fixed PrintOnSheeet in the Print Dialog for some cases - [Lazarus] Fixed default printer in the print dialog - Fixed export images to BIFF8 for x64 - [Lazarus] Fixed printer selection before print properties dialog - Fixed RAD Studio 10.1 Berlin size of dialog page issue in the designer - Fixed exporting of numbers with '%' in the format string (like #,##0.###%) in the BIFF8 export - [Enterprise] Fixed "Report not found" error message - Fixed "Print to file" option for GDI reports - Fixed export to PDF with embedded fonts and empty memos - Fixed export to PDF for HAlign = haBlock (GapX used now) - Fixed font's embedding for protected PDF if EmbedFontsIfProtected = False and EmbeddedFonts = True - Fixed exporting of TfrxShapeView to XLSX and DOCX exports - Fixed exporting of Unicode characters in the memos with HTML tags to DOCX for non-Unicode IDE - Fixed TfrxPreviewButtons in the frxClassRTTI - Fixed parent for objects for some cases - Fixed font's name in the ODF export ### FastReport Avalonia is now included in Ultimate .NET URL: https://www.fast-report.com/news/avalonia-ultimate-net Summary: Now part of the Ultimate .NET includes a new cross-platform library for generating reports on macOS, Linux and Windows. Now part of the Ultimate .NET includes a new cross-platform library for generating reports on macOS, Linux and Windows. We have expanded the list of components available for developing your business projects. Now, the subscription to the Ultimate Edition .NET has become even more advantageous! The edition includes a new cross-platform library for generating reports and documents with the ability to print output files on macOS, Linux, and Windows, supporting Avalonia UI, .NET 6, and higher. At the same time, the subscription price has not changed. FastReport Ultimate .NET is a cost-effective solution for creating projects on all modern .NET platforms, including ASP.NET, Blazor, WASM, WPF, WinForms, Avalonia UI, Mono, and others. With your team, you can work both in the desktop designer and directly from the browser. The Ultimate edition also includes components for data visualization, specifically business graphics with a set of charts and OLAP products for fast processing of large data sets. Owners of the existing Ultimate .NET subscription can now test FastReport Avalonia for free in their personal account . ### FastReport Cloud URL: https://www.fast-report.com/products/cloud Summary: Cloud SaaS service for building reports and generating documents Cloud SaaS service for building reports and generating documents FastReport Cloud - a set of cloud services for reliable data storage, convenient creation of reports, and their export to various formats FastReport Cloud Cloud SaaS service for building reports and generating documents Buy Try for free Documentation ## FastReport Cloud — a set of cloud services for storing reports and templates. Set up automatic data export, connect your team for convenient collaboration from anywhere in the world, and forget about the need to develop your application. Built-in report designer Report templates can be created and edited on any platform, even from a mobile device. Safety All the benefits of cloud-based file creation and storage with reliable protection. We have collected all the mechanisms for safe operation: secure login, digital signature, access control, and personal data protection. Cloud solution The entire infrastructure is located in the cloud; you just need to connect to FastReport Cloud from your application or open it in a browser from any device. Anytime. Anywhere. And you will have access to all the power of creating reports and documents. Manage templates and reports FastReport Cloud allows you to store templates and reports in a virtual file system. All necessary operations with files are available: downloading, copying, renaming, deleting, and moving. Collaboration You can add multiple users to a workspace and everyone will be able to access the workspace: templates, reports, data sources, and other resources. Permission system A flexible permission system allows you to set different levels of access for team or group members. While one group of users can create new reports in the designer, another group can build and print PDF reports from templates. Connect our solution to your system in a couple of clicks How to Create a PDF Report in FastReport Cloud Recently, we launched the FastReport Cloud service, which allows you to create, store, and export reports directly from the cloud storage. In this article, we will look at an example of exporting a report to PDF using FastReport Cloud. In this article, we will look at an example of exporting a report to PDF format using FastReport Cloud, a SaaS service for storing, creating, and exporting documents. Publisher — the Ideal Solution for Small and Medium-Sized Businesses The FastReport product line for creating, storing, and transmitting documents has been expanded with a new development. Since May 2025, it includes products such as Cloud, Corporate Server, and Publisher. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. Cloud Services for Business: Advantages and Opportunities In recent years, cloud technologies have become an integral part of business. Companies of various sizes and industries are increasingly turning to cloud services to enhance the efficiency, flexibility, and security of their operations. In this article, we will explore the main cloud services, their benefits, and their impact on business. In this article, we will explore the main cloud services, their benefits, and their impact on business. Any other questions? Contact the manager ### FastReport Cloud and FastReport Corporate Server comparison table URL: https://www.fast-report.com/cloud-and-corporate-server-comparison-table Summary: Table with differences between FastReport Cloud and FastReport Corporate Server Table with differences between FastReport Cloud and FastReport Corporate Server Features FastReport Cloud FastReport Corporate Server Resources Shared resources by subscription plan x - Dedicated server - x Deployment Public Cloud x - Hybrid Cloud x x Private Cloud - x OEM Cloud - x Private Internet cluster - x Local Intranet cluster - x CRM/ERP integration - x Kubernetes infrastructure integration - x OpenShift infrastructure integration - x Services FastReport Engine x x User management x x Scheduler x x External database access x x Local network database access - x Administration access - x Cluster management access - x Cluster monitoring (Grafana, Zabbix) - x Data backups - x Security Teamwork with reports and documents x x User groups x x User audit x x Open ID auth x x Two-Factor Authentication (2FA) x x Custom Authentication (LDAP, etc) - x Logs - x Application Integration REST API x x .NET C# x x Java x x JavaScript x x Python x x C++ x x Golang x x Support Helpdesk support x x Dedicated support - x Deployment support - x Integration support - x Recovery support - x Update and migration support - x ### FastReport COM/ActiveX from C# applications on x64 URL: https://www.fast-report.com/blogs/calling-fastreport-com-activex Summary: Simple solution: It is necessary to set 32-bit platform in project options. Here is an example (note: platform target is x86): Simple solution: It is necessary to set 32-bit platform in project options. Here is an example (note: platform target is x86): Simple solution: It is necessary to set 32-bit platform in project options. Here is an example (note: platform target is x86): Calling "FastReport COM/ActiveX" from C# applications on 64-bit platforms. Simple solution : It is necessary to set 32-bit platform in project options. Here is an example (note: platform target is  x86 ): Perfect solution : Download demo version of FastReport.NET. Use this tool for conversion FR3 templates to FRX temaplates If you have VCL version, then you can use following tip: How to convert fr3 to frx. Finally, you should manually create data source objects, and assign them to report objects. Why second solution is perfect? Because your will get fully managed solution without additional COM wrappers - FastReport Studio is a 32-bit COM server, which called from a 64-bit application that is not good for performance. In addition, most of the attractive features of managed code can not be used when working through COM technology. In other words - if your choice is a managed application, it is better to use reporting tools based on managed code - you will save a lot of time and nerves. Tags: C# ### FastReport Comparison URL: https://www.fast-report.com/fast-report-comparison Summary: Here you can compare Fast Reports report generator tools for various languages and IDEs Here you can compare Fast Reports report generator tools for various languages and IDEs Here you can compare Fast Reports report generator tools for various languages and IDEs, various platforms and operating systems. Let's compare cross-platform report generators, their functionality and relative advantages. The table covers desktop reporting, web-reporting (independent as well as with different server support), databases, multi-platform reporting, export filters and conversion from other report generators. This table will help in selecting the right reporting tool for your projects. Feature FastReport FMX FastReport VCL FastReport .NET FastReport WPF FastReport Avalonia FastReport Mono FastReport Open Source Frameworks VCL - x - - - - - LCL - x - - - - - FMX x - - - - - - .NET Framework 4.6.2-4.8.1 - - x x x x x ASP.NET - - x x - x - ASP.NET MVC - - x x - x - ASP.NET MVC Core - - x x - - x .NET Core 2.0-3.1 - - - - - - x .NET 5 - - x - - - x .NET 6, .NET 7, .NET 8 - - x x x - x Blazor Server - - x x - - - Blazor WebAssembly (WASM) - - x x - - - Mono - - - - - x - IDE Embarcadero RAD Studio 2010 - x - - - - - Embarcadero RAD Studio XE - x - - - - - Embarcadero RAD Studio XE2-XE8 - x - - - - - Embarcadero RAD Studio 10 Seattle - x - - - - - Embarcadero RAD Studio 10.1 Berlin - x - - - - - Embarcadero RAD Studio 10.2 Tokyo - x - - - - - Embarcadero RAD Studio 10.3 Rio - x - - - - - Embarcadero RAD Studio 10.4 Sydney x x - - - - - Embarcadero RAD Studio 11 Alexandria x x - - - - - Embarcadero RAD Studio 12.1 Athens x x - - - - - Embarcadero Delphi Prism - - x x - x - Lazarus - x - - - - - Microsoft Visual Studio - - x x x x x MonoDevelop - - - - - x - Visual Studio Code - - x x x x x JetBrains Rider - - x x x x x Operating System Microsoft Windows x x x x x x x Apple macOS x - x x x x x Linux x x x x x x x Graphic core requirements GDI - x - - - - - GDI+ x - x x x - x D2D x - - - - - - Quarz x - - - - - - GTK - x - - - - - libgdiplus - - x x x x x SkiaSharp - - x x x - - Report engine Bands x x x x x x x Code based x x x x x x x  XML report templates x x x x x x x Report script languages Pascal Script x x - - - - - C++ Script x x - - - - - J Script x x - - - - - VB Script x x - - - - - C# - - x x x x x VB.NET - - x x x x x Report script engine FastScript x x - - - - - CodeDOM - - x x x x - Roslyn - - x x x - x Data Base support ClickHouse - - x x x x x Elastic Search - - x x x x x Couchbase - - x x x x x CSV - - x x x x x Firebird x x x x x x x Google BigQuery - - x x x - - IBM DB2 - x x x x - - JSON - x x x x x x MongoDB - - x x x x x MS Access x x x x x - - MS SQL x x x x x x x MySQL x x x x x x x NosDB - - x x x - - ODBC x x x x x - - OLE DB x x x x x - - Oracle x x x x x x x PostgreSQL - x x x x x x RavenDB - - x x x x x Sharepoint - - x x x - - SqlAnywhere - - x x x - - SqlCe - - x x x - - SQLite - x x x x x x VistaDB - - x x x - -  XML x x x x x x x Internal application datasets x x x x x x x Custom connections x x x x x x x Reporting features Dialogue forms x x x x x x - Report inheritance x x x x x x x Master-detail-subdetail x x x x x x x Drill-downs x x x x x x x Groupping x x x x x x x Sorting x x x x x x x Headers and Footers x x x x x x x URLs and hrefs x x x x x x x HTML tags in text object x x x x x x x Unlimited page sizes x x x x x x x Preview component x x x x x x - Design-time visual report designer x x x x x - - Run-time visual report designer x x x x x x - High DPI support - x x x x - - Visual SQL Builder - x x x x - - Localization languages 32 33 29 29  29 29 - Bundled applications Designer - - x x x - x Viewer x x x x x - x Printing Print to different printer trays - x x x x x - Dot-matrix printer support - x x x - - - Advanced printing modes x x x x x x - Report objects Text x x x x x x x Shape x x x x x x x Picture x x x x x x x SVG - - x x x x x Sub-report x x x x x x x System text x x x x x x x Chart x x x x x x - Barcode x x x x x x x 2D barcode x x x x x x x Map - x x x x x - Zip code - x x x x x x Cellular - x x x x x x OLE - x - - - - - Rich Text - x x x x x - Gradient x x x x x x x Cross-tab (Matrix) x x x x x x x Advanced Matrix (AdvMatrix) - - x x x x - Table - x x x x x x Container - - x x x - - Gauge x x x x x x x Checkbox x x x x x x x Sparkline - - x x x x - HTML - x x x x x x Digital signature - x x x x x - Web-reporting Integrated HTTP server - x - - - - - CGI - x - - - - - ISAPI - x - - - - - ASP .NET - - x x - x - MVC - - x x - x x Web API - - x x - - x WCF - - x - - - - Support of Online Designer - - x x x x x Export in formats PDF x x x x x x PDFSimple PDF/A - x x x x x - PDF/X - - x x x x - Images Jpeg/PNG/BMP/GIF/TIFF/EMF x x x x x x x SVG - x x x x x - Rich Text x x x x x x - Word OOXML (docx) - x x x x x - PowerPoint OOXML (pptx) - x x x x x - HTML x x x x x x x HTML5 (layered) - x x x x x x MHT (web archive) - - x x x - - Microsoft XPS - - x x x x - Excel OLE - x - - - - - Excel XML x x x x x x - Excel binary (biff8 xls) - x x x x x - Excel OOXML (xlsx) - x x x x x - PostScript - x x x x x - PPML - x x x x x - LaTeX - - x x x x - DXF - - x x - - - ZPL - x x x x x - JSON - - x x x x - Comma separated values (CSV) x x x x x x - DBF (table) - x x x x x - Plain Text x x x x x x - Open Document Speadsheet (OpenOffice) x x x x x x - Open Document Text (OpenOffice) x x x x x x -  XAML - - x x x x - Transports Email - x x x x x - FTP - x x x x x - DropBox - x x x x x - Box - x x x x x - GoogleDrive - x x x x x - OneDrive - x x x x x - Convertors from Quick Report - x - - - - - Report Builder - x - - - - - Rave Reports - x - - - - - List&Label - - x x x x - DevExpress - - x x x x - Microsoft Reporting Services (RDL, RDLC) - - x x x x - Crystal Reports - - x x x - - StimulSoft - - x x x x - Jasper Library - - x x x x - FastReport/FreeReport VCL 2.* - x - - - - - FastReport .NET - x - x x - - FastReport VCL - - In plans - - - - Distribution Windows Installation file x x x x x - - ZIP archive - - - - - x x NuGet - - x x x x x DEB - - - - - x - RPM - - - - - x - GitHub - - - - - - x Full sources x x x x x x x Support Online helpdesk x x x x x x - Online chat x x x x x x - E-mail x x x x x x - GitHub Issues - - - - - - x Phone x x x x x x - - Free Download - ### FastReport components help in fighting against COVID-19 URL: https://www.fast-report.com/blogs/fastreport-helps-fighting-covid19 Summary: FastReport .NET became a part of software solution that helps to fight against COVID-19 in Italy FastReport .NET became a part of software solution that helps to fight against COVID-19 in Italy FastReport .NET became a part of software solution that helps to fight against COVID-19 in Italy For decades, the FastReport and FastCube libraries have been helping to organize fast reporting and powerful multidimensional analytics in various applications and industries. Particularly in Medicine. Dozens of development companies from all over the world (China, Africa, USA, Europe) responded to our offer to get a library for developments in medical science for free . Today we want to tell you about only one of these cases – from our clients – Ascom UMS, Italy. Ascom is a global provider of healthcare solutions. The company is especially known for its software packages in the field of intensive care and resuscitation. Italy became one of the first EU countries to fall under the powerful wave of the new virus. We are proud that our colleagues, IT specialists from Ascom, have also come out to fight a new challenge for all mankind! Indeed, to successfully fight the virus it is necessary to comprehensively understand what we are facing. As Nicola Franchi (the R&D manager from the Italian division of Ascom) notes, FastReport.Net with .net Core support came in handy here. See for yourself: Ascom has created a remote patient surveillance tool. Continuous monitoring aim is to reduce complications so that healthcare providers spend less time on administrative work and better provide medical care. To fight the COVID-19 pandemic, Ascom has developed a package within the Digistat Suite called Wearable Monitor. It is used to monitor patients undergoing treatment at home and allows you to notice changes in the patient’s condition in the early stages. Each patient receives a set of wearable devices that continually sends data to the app so that doctors in healthcare facilities can instantly identify the deterioration caused by the coronavirus. The devices are able to measure not only heart rate, temperature and physical activity, but also the rhythm of respiration and saturation - the level of oxygen in the blood. The latter are critical in surveillance of the condition of patients with coronavirus. Digistat Suite is a solution that collects statistics from connected sensors for further analytics and detecting abnormal readings for decision making. The main processing and storage of medical information occur under the control of .NET Core. The output of the resulting reports and documents, their delivery and saving in various formats take place in FastReport .NET. Nicola Franchi, Ascom UMS “We found it very easy to integrate FastReport .NET in our .NET Core project, thanks to the delivery package and the clarity of API. Even if .NET Core is a quite new technology, FastReport .NET performs well and we were able to provide to clinicians the reports they need with small development effort” Picture 1: Agreement that the patient signs upon the wearable devices delivery. Picture 2: Summary table of all current patients, their addresses and current vitals Picture 3: History of the patient and all his parameters We bow our knee to these people, helping all of us. We will be able to defeat the COVID-19 pandemic with the joint efforts of professionals from all industries! Tags: FastReport ### FastReport Corporate Server URL: https://www.fast-report.com/products/corporate-server Summary: A scalable dedicated server for generating and storing documents A scalable dedicated server for generating and storing documents FastReport Corporate Server consists of a set of cloud services for managing documents and generating reports in various formats. FastReport Corporate Server A scalable dedicated server for generating and storing documents Request a callback Documentation ## FastReport Corporate Server is designed for storing, managing, creating, and exporting reports and documents. The server provides a high level of security and the ability to integrate with other corporate systems. Online designer Report templates can be created and edited on any platform, even from a mobile device. Private cloud The entire infrastructure is located in the client's circuit. Flexible management of the document and report creation taking into account the company's security policy. Sharing Templates, reports, and other files can be shared via a link. The person will have access via a link to read or edit the file through Online Designer. Collaboration You can add multiple users to a workspace, and everyone will be able to access the workspace: templates, reports, data sources, and other resources. Manage templates and reports Store templates and reports in a virtual file system. All common file operations are available: downloading, copying, renaming, and transferring. Permission system A flexible permission system allows you to set different levels of access for team or group members. While one group of users can create new reports in the designer, another group can build and print PDF reports from templates. Publisher — an ideal solution for small and medium businesses Request a callback Connect our solution to your system in a couple of clicks How to Create a PDF Report in FastReport Cloud Recently, we launched the FastReport Cloud service, which allows you to create, store, and export reports directly from the cloud storage. In this article, we will look at an example of exporting a report to PDF using FastReport Cloud. In this article, we will look at an example of exporting a report to PDF format using FastReport Cloud, a SaaS service for storing, creating, and exporting documents. Publisher — the Ideal Solution for Small and Medium-Sized Businesses The FastReport product line for creating, storing, and transmitting documents has been expanded with a new development. Since May 2025, it includes products such as Cloud, Corporate Server, and Publisher. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. Cloud Services for Business: Advantages and Opportunities In recent years, cloud technologies have become an integral part of business. Companies of various sizes and industries are increasingly turning to cloud services to enhance the efficiency, flexibility, and security of their operations. In this article, we will explore the main cloud services, their benefits, and their impact on business. In this article, we will explore the main cloud services, their benefits, and their impact on business. Any other questions? Contact the manager ### FastReport Desktop URL: https://www.fast-report.com/products/desktop Summary: A report and document generator for Windows and Linux. Connect to a database, Excel, CSV, or JSON file, create a template in the visual editor—and generate hundreds of documents manually or on a schedule. Save them as PDFs or Excel files, print them, or send them automatically to recipients. A report and document generator for Windows and Linux. Connect to a database, Excel, CSV, or JSON file, create a template in the visual editor—and generate hundreds of documents manually or on a schedule. Save them as PDFs or Excel files, print them, or send them automatically to recipients. A standalone Low-code solution for automatic generation and distribution of reports from databases with export to any format. FastReport Desktop A report and document generator for Windows and Linux. Connect to a database, Excel, CSV, or JSON file, create a template in the visual editor—and generate hundreds of documents manually or on a schedule. Save them as PDFs or Excel files, print them, or send them automatically to recipients. Buy Try for free Documentation Low-code solution FastReport Desktop requires no programming skills. Create templates and generate documents without involving developers. Create documents of any complexity Add tables, images, charts, formulas, barcodes, maps, and interactive elements—without having to manually format each document. Customize the template yourself Update the details, structure, filters, or design without modifying the source system or waiting for a developer. Use existing data Connect to MS SQL, PostgreSQL, Oracle, MySQL, MongoDB, SQLite, Excel files, CSV, JSON, and other data sources. Seamless Migration from Other Solutions Our report generator instantly converts your reports from List&Label, DevExpress, Microsoft Reporting Services/SSRS (RDL, RDLC), Crystal Reports, StimulSoft, and Jasper Library into the FastReport format. Your data stays with you The program runs on a computer or within your company's infrastructure on Windows and Linux. Your data remains within your company and is not transferred to external services. How to Configure an AI Agent for FastReport .NET: Architecture, Limitations, and Report Migration Working with reports often turns into a routine: editing XML templates (.frx), configuring data bindings, and adapting legacy formats. To automate this work, a specialized AI agent was created. This agent understands the FastReport .NET architecture and strictly follows enterprise development standards. AI feature for FastReport .NET: automated migration of reports from Crystal Reports and StimulSoft, refactoring for .NET 8/9, template generation, and protection against data leaks. How to export a report from FastReport .NET to DXF DXF (Drawing Exchange Format) is an open format for exchanging graphic data, developed by Autodesk for storing and transferring two-dimensional and three-dimensional drawings. Due to wide support from various CAD systems, DXF has become one of the most common formats for exchanging engineering and technical documentation between applications. In this article, we will consider methods of exporting a report to the DXF format, and also see what the resulting output looks like after opening the file in a CAD application. In this article, we will consider methods of exporting a report to the DXF format, and also see what the resulting output looks like after opening the file in a CAD application. How to Export a Report from FastReport .NET to PostScript FastReport .NET supports exporting reports to many popular formats, such as PDF, Excel, Word, and others. However, professional printing, plotters, and specialized printing equipment often require the PostScript (.ps) format. In this article, we will look at exporting a FastReport .NET report to the PostScript format, using a practical example to examine parameter configuration and programmatic implementation. In this article, we will look at exporting a FastReport .NET report to the PostScript format, using a practical example to examine parameter configuration and programmatic implementation. Any other questions? Contact the manager ### FastReport Desktop 2021.1 URL: https://www.fast-report.com/news/fastreport-desktop-2021.1 Summary: FastReport Desktop 2021.1 FastReport Desktop 2021.1 In the new version of FastReport Desktop we have added support for high-resolution screens in the designer and preview of the prepared reports. We also added new exports DXF, XODT, XODS, PDF/A-1a, PDF/A-2u. Added new Visual Studio-styled icons. You may switch between icon packs in the "View/Options/User Interface" window (or, "File/Options/User Interface" if you use ribbon UI): The new icons are well suited for hiDPI screens.  There are also new barcodes: Swiss QR Code, ITF-14, Deutsche Post Identcode, Deutsche Post Leitcode, Japanese PostNet: Added ability for the Text object to display DB filed names in a simplified form when designing a report. You can activate this option in the "View/Options/Objects appearance" window. This option is off by default. When you turn it on the Text object with a single DB field will display the field name part only, with no datasource name: Added ability to set up each cell in the Matrix object's corner area. To do this use the cell's context menu and its commands "Split cell", "Merge cells": Added ability to connect to ElasticSearch. Connection is available in data wizard and from code. Significantly improved and redesigned connection to the CSV data source. VisibleExpression, PrintableExpression and ExportableExpression properties appeared. You can use them to adjust the values of the Visible, Printable and Exportable properties depending on some condition: Full list of changes:  [Engine] + added connection to ElasticSearch + added new barcodes: Japanese PostNet, ITF-14, Deutsche Post Leitcode, SberBank QR, Swiss QR Code + added CountDistinct aggregate function (report totals and Matrix object totals) + added support of TLS 1.2 + added new 2 types of UncheckedSymbol for CheckBox + added ability to load XML data source by URL + added functions of converting numbers to words for Polish, Indian, Persian, Ukranian language + added rupee symbol for Indian currency + added the Report.Prepare (int pagesLimit) method, which allows to prepare a limited number of pages + added ability to align barcodes + added property PictureObject.ImageSourceExpression that allows to set expression containing source of image + added possibility to use expression in brackets in VisibleExpression, PrintableExpression and ExportableExpression properties + added the PictureObject.ImageFormat property, which allows to select the image storage format + added property MatrixObject.PrintIfEmpty, which allows displaying the matrix even if it is empty + added property Page.LastPageSource, which allows to configure the printer tray for printing the last page of the report + added VisibleExpression, PrintableExpression, and ExportableExpression properties + added property Report.Tag + added "AutoEncode" property for DataMatrix Barcode. By default, if true, it encodes the &1; as a symbol of FNC1. If false, the character is encoded as is. + added "OnScriptCompile" event that called when report's script compiles + added new TextQuality: SingleBitPerPixel and SingleBitPerPixelGridFit + added an ability to split table rows + added RUB, BYN and BBYN currencies to ToWordsRu function + added an ability to change decimal digits for Number, Currency and Percent formats when UseLocale property is true + added property "SplitRows" for MatrixObject. By default, its value is False and in this case rows with the same vaues are joined. If True - rows are split (like TableObject) * optimized copying streams in some cases * optimized and unified converter RichText to report objects * optimized work of VisibleExpression, PrintableExpression and ExportableExpression properties for bands * improved algorithm of converting RTF to report objects > these properties allow to set the value of the Visible, Printable, and Exportable properties, depending on the fulfillment of the specified condition - fixed a bug with incorrect tab width when TextObject.TextRenderType = TextRenderType.HtmlTextRenderer - fixed a bug with SubreportObject on a page footer band which caused StackOverflow exception - fixed a bug with Dock and Anchor properties of objects inside table/matrix cells - fixed a bug leading to System.ArgumentException when drawing PictureObject located outside the band - fixed a bug with incorrect work of right anchor (Anchor = AnchorStyles.Right) when page has unlimited width - fixed a bug with replacing a custom font with a default font when preparing a report - fixed a bug with vertical alignment when converting RTF (by default, now Top instead of Center) - fixed a bug with converting RTF tables to report objects - fixed a bug with page sizes could reset after preview - fixed a bug with printing a RichText object on large Windows scaling was happening incorrectly - fixed a bug leading to System.ArgumentOutOfRangeException in Substring functions - fixed a bug leading to System.ArgumentException when drawing PictureObject with some images - fixed a bug when tables were not displayed when connecting to Advantage Database via ODBC - fixed a bug where RichText went outside the page - fixed a bug with recompiling the report script that interacted with ChildBand - fixed a bug with incomplete copying of the matrix when copying the report page - fixed bugs when importing DevExpress reports - fixed bugs when importing RDL reports - fixed a bug when a band with the FillUnusedSpace property enabled was not displayed again, although there is enough free space - fixed bugs when importing List and Labels reports - fixed a bug where the AutoSize property for SvgObject did not work correctly - fixed a bug with TextObject.AutoShirnk=FontSize when TextObject's size is very small - fixed a bug with incorrect TotalPages variable value when it used in VisibleExpression - fixed a bug with converting RichText when RichObject.Text is null - fixed a bug with web response stream reader when connecting to remote JSON - fixed a bug while compiling the report with some expressions in the properties VisibleExpression, PrintableExpression and ExportableExpression - fixed a bug with incorrect checksum calculation in Deutsche Post Identcode barcode - fixed a bug where the designer crashed when the "Start new page" property is enabled for the page header child band - fixed a bug where the value of an expression was displayed by the text of this expression - fixed incorrect drawing of ITF-14 barcode - fixed a bug with transparency of RichObject - fixed a bug with text object visibility when Highlight.Visible parameter is enabled - fixed a bug with work of property PrintableExpression - fixed a bug with connection to PostgreSQL 12 and newer - fixed a bug when shifting SubReport to a new page didn't work correctly - fixed a bug when the data footer break away from the data when property "keep with data" is enabled - fixed generation of barcode GS1-128 - fixed incorrect value of Total, if it refers to another Total - fixed a bug where the table was not transferred correctly - fixed a bug with parsing xml with hexidecimal values, e.g. "To create it: " - fixed bug with trying to convert DBNull in empty string when ConvertNulls is disabled - fixed a bug when PageFooter with PrintOn=LastPage causes to print it on penultimate page [Designer] + added HiDPI support + new icons added. Use the designer's "View|Options|User interface" dialog to switch between icon packs. + added simplified display of DB field names in the designer + added collapse all/expand all button and search field for Report tree and Data tree + improved the behavior of the page panel + added ability to copy data source + added import of DevExpress reports saved in XML format + added the ability to add text and pictures by dragging and dropping them from the browser + added the ability to edit the number of rows and columns of the table by dragging the mouse + added loading of RTF texts, tables and styles when converting DevExpress file + added possibility to load CSV files via URL + added backlighting of the band that the selected element will located on when dragging is completed + added an ability to open subreport page by double-clicking on its object + added an ability to change fonts for Code Tab, Text Editor and Expression Editor + added an ability to replace pictures with drag & drop + added an ability to open report file by drag & dropping + added an ability to scroll the report horizontally while holding down the Shift key + added ability to drag & drop picture in format png, jpeg, jpg, gif, ico, bmp, tif, tiff, emf, wmf and text files in format txt, rtf + added ability to paste picture and text on page from clipboard + added ability to create new report page using: "+" button on the pages panel, double-click on empty space on the pages panel, "Ctrl+N" shortcut * when changing the window, the context menu now closes * now during autosave the selected item from the properties window is not reset * changed focus order of elements when clicking "tab" on a tab with creating swiss QR - fixed a bug leading to the crash of the report designer with an incorrect table in the data source. - fixed a bug with index of bounds in SQLBuilder in Designer - fixed a bug where the dialog page did not open if it had a GridControl  - fixed bugs in Right to Left mode - fixed a bug when rescaling the dialog form - fixed a bug with adding a barcode, leading to creation of a barcode with the wrong type - fixed a bug when dragging from functions created a NUD and an empty TextObject - fixed a bug when the RichTextBoxControl was not rendered correctly in the dialog workspace - fixed scaling issues in the WelcomeForm and Wizard windows - fixed a bug with copying an object, when an object with the same name was created - fixed a bug with empty database name after reloading the report - fixed a bug when double click to arrow buttons on report tab creates a new report page - fixed a bug where switching properties to alphabetical order did not work - fixed a bug with loading page size when converting DevExpress file - fixed a bug, when empty string in Datamatrix barcode causes exception - fixed a bug where the gauge window had the wrong width - fixed a bug where drag&drop to the matrix didn't work - fixed a bug leading to System.FormatException when opening DevExpress files - fixed a bug "Count cannot be less than zero." when opening DevExpress files - fixed a bug with moving objects in the report tree while holding down the Ctrl key - fixed a bug with drop down menu of select color button - fixed a bug when changing parameters after adding a line caused exception - fixed a bug with creating the Intelligent Mail barcode - fixed a bug with JSON-connection in Connection Wizard - fixed a bug with incorrect drawing of horizontal guides - fixed a bug when the width of objects was reset after closing Preview with enabled right anchor - fixed a bug when trying to set an incorrect RowSpan value to a MatrixObject cell - fixed a bug with dropping color, width and style in Border editor - fixed a bug with resizing PolyLineObject/PolygonObject, when it's copied with Ctrl+Drag - fixed a bug with inactive context menu "Size Mode" for SVG object - fixed a bug when subreport cannot be deleted when page linked to it was deleted before - fixed a bug when the buttons in the "Panel" in the "View" tab did not match the "Visible" property of the corresponding windows  [Preview] + added "About" button in toolbar of preview window + added an ability to scroll the report horizontally while holding down the Shift key + added exports menu editor > new editor is available in user interface options; exports can now be removed from exports menu * data source menu in Text Editor is now hidden in Preview * "Delete Page" button now disabled in Preview when only one page generated - fixed a bug with saving prepared reports containing converted RichObject - fixed a bug where the percentage of scale in Preview could be displayed incorrectly - fixed a bug leading to System.ObjectDisposedException when re-preparing the report - fixed a bug where the report could only be saved in the Box, regardless of the cloud storage selected in the menu   [Exports] + added exports to DXF, XODT, XODS, PDF/A-1a, PDF/A-2u + added support of ODF 1.2 in export to ODT/ODS + added option when export to Word 2007 "Do not add section breaks on page breaks". By default, both page breaks and section breaks are added. + added property ReportPage.ExportAlias, which allows to set the page name when exporting to Excel 2007 + added ability to split pages in export to XML + added support for Padding property in Word2007 export * now, in Excel 2007 export for sheets without pictures, files with a description of pictures and relations to them are not created * optimized saving of embedded fonts in PDF-export. File size has decreased significantly. - fixed page-break in Html export (PageBreaks property) - fixed SVG export with "Multiply export" parameter - fixed SVG export bug on hidpi monitor - fixed the names of files saved in the zip archive - fixed tab symbols width when export RichObject - fixed XPS export bug where documents exported on Linux would not open on Windows - fixed bugs with incorrect work of Anchor and Dock properties when exporting pages with unlimited width - fixed a bug in Excel 2007 export of text objects with enabled HtmlParagraph render type. Disable WYSIWYG export option to  export text instead of images. - fixed a bug of export to ODF when the document did not open in MyOffice - fixed a bug with closing cell with RichText when exporting to RTF - fixed a bug when exporting objects with rendering mode HtmlParagraph  - fixed a bug with exporting line with arrow cap in layered export to Word 2007 - fixed a bug with exporting line with arrow cap in export to PowerPoint 2007 - fixed saving report to Box - fixed saving report to OneDrive - fixed saving report to Google Drive - fixed a bug leading to System.OutOfMemoryException when exporting to PDF - fixed a bug with creation of incorrect file when exporting to Excel 2007 with big amount of pages and page breaks option - fixed a bug where export to image did not take into account the transparent background of the report - fixed a bug leading to System.NullReferenceException when exporting to Excel 2007 - fixed validation errors in export to ODT/ODS - fixed a bug in ODT-export when the file did not open correctly in Word 2019 - fixed a bug with incorrect line position when exporting to Word 2007 - fixed a bug when exporting to Excel 2007 in the "Seamless table" mode leading to table breaks, incorrect merging cells and incorrect exporting of images - fixed a bug where links with Russian letters did not work in PDF export - fixed a bug where the dates of creation and editing of the document did not match the equivalents in the metadata in PDF/A-1a export - fixed a bug while exporting to Excel 97 causes exception "Huge SAT not implemented" - fixed a bug with exporting texts containing ampersand '&' in Excel 2007 export - fixed a bug while exporting MapObject to PowerPoint - fixed a bug with saving default theme in export to Excel 2007 - fixed a bug with exporting gradient fills with owner or user password in export to PDF - fixed a bug with encryption of digital signature in PDF-export when protecting a document with a password - fixed a bug with paragraph offset in export to OpenOffice Writer - fixed a bug with exporting strings containing only spaces in DXF export - fixed a bug in PDF export, leading to disappearance of spaces when there are tabs in the report - fixed a bug with exporting page footers when export to Excel 2007 in seamless table mode - fixed a bug with exporting "\" character in Excel 2007 export - fixed a bug with incorrect indents in export to OpenOffice Writer - fixed a bug with incorrect size of picture in export to RTF - fixed a bug with page breaks in export to OpenOffice Writer - fixed a bug with paragraph offset in export to OpenOffice Writer - fixed a bug with text justify in exports to OpenOffice Writer and OpenOffice Spreadsheet - fixed a bug in Excel export (BIFF8) - fixed a bug with printing of layered Html export, when the report contains pages with landscape orientation - fixed a bug where exporting to EMF called an exception - fixed display of objects with negative height/width for layered Html-export - fixed bugs when exporting a multi-page report in XML - fixed a bug when PDF export generated incorrect file when EmbeddingFonts and InteraciveForms properties equal True - fixed view of background on BarcodeObject at Pdf and Html export - fixed bugs when displaying Shape, Barcode, Polygon etc. with fill (or background) in all exports with table layout ### FastReport Desktop release - our product for reporting automation URL: https://www.fast-report.com/news/release-fastreport-desktop Summary: Release of a new autonomous Low-code solution for creating and automated generation of reports for business - FastReport Desktop. Release of a new autonomous Low-code solution for creating and automated generation of reports for business - FastReport Desktop. Our stand-alone Low-code solution will help you to automate the generation and transmission of reports from multiple databases (and even several at the same time). Set up export of reports and send them to databases in a couple of clicks! Buying this product you’ll get: Visual designer for creating and editing reports. Builder in the form of a console utility for building and processing reports. GUI configurator for creating builder tasks. A convenient scheduler for completing tasks on a schedule. Viewer for displaying and printing ready-made reports. In the Standard edition, these utilities have to be manually connected to your project. In the Professional edition, we did it for you. A common interface of utilities and a report manager will help you set up business processes much faster. FastReport Desktop  will be an excellent replacement for the previous FastReport for DBA solution. Existing FastReport for DBA license will be changed to FastReport Desktop Professional Single at no additional cost. All clients will retain their remaining days on previously purchased licenses. If you have any further questions, please, email us at  support@fast-report.com . ### FastReport Embarcadero Edition URL: https://www.fast-report.com/fastreport-embarcadero-edition Summary: Get FastReport VCL Embarcadero Edition for free Get FastReport VCL Embarcadero Edition for free FastReport VCL - is an add-on component that allows your application to generate reports quickly and efficiently. FastReport provides all the necessary tools to develop reports, including a visual report designer, a reporting core, and a preview window. It can be used in the Delphi, C++Builder and RAD Studio environments. FastReport Embarcadero Edition is available only to registered users of: Embarcadero® Delphi XE2, Embarcadero ® C++Builder XE2, Embarcadero® Delphi XE3, Embarcadero ® C++Builder XE3, Embarcadero® Delphi XE4, Embarcadero ® C++Builder XE4 Embarcadero® Delphi XE5, Embarcadero ® C++Builder XE5, Embarcadero® Delphi XE6, Embarcadero ® C++Builder XE6, Embarcadero® Delphi XE7, Embarcadero ® C++Builder XE7, Embarcadero® Delphi XE8 and Embarcadero ® C++Builder XE8, Embarcadero® Delphi 10 Seattle, Embarcadero ® C++Builder 10 Seattle, Embarcadero® Delphi 10.1 Berlin, Embarcadero ® C++Builder 10.1 Berlin, Embarcadero® Delphi 10.2 Tokyo and Embarcadero ® C++Builder 10.2 Tokyo environments, Embarcadero® Delphi 10.2 Tokyo and Embarcadero ® C++Builder 10.2 Tokyo environments (Community Edition), Embarcadero® RAD Studio 10.3 Rio,  Embarcadero® RAD Studio 10.4 Sydney,  Embarcadero® RAD Studio 11.2 Alexandria, Embarcadero® RAD Studio 12 Athens  (provided by Embarcadero GetIT).  You can download FastReport VCL Embarcadero Edition  from the following link Compare FastReport Embarcadero Edition to other editions to see all the benefits. ### FastReport FMX 1.1 released! URL: https://www.fast-report.com/news/fastreport-fmx-1.1 Summary: FastReport FMX 1.1 released! FastReport FMX 1.1 released! Report generator for Embarcadero FireMonkey IDE.  + Added support of Embarcadero RAD Studio XE4 (iOS not supported) + Added support of FireMonkey FM3 + Added support of internal datasets: IBX, DBX, ADO (Win) + Added new internal dataset TfrxClientDataset (allow to load XML tables from the report) + Added linear barcodes component (2_5_interleaved, 2_5_industrial, 2_5_matrix, Code39, Code39 Extended, Code128, Code93, Code93 Extended, MSI, PostNet, Codebar, EAN8, EAN13, UPC_A, UPC_E0, UPC_E1, UPC Supp2, UPC Supp5, EAN128) + Added Hint system in the report designer, preview and the report + Added 2D barcodes: PDF417, DataMatrix + Added TfrxDBLookupComboBox control - for compatibility with FR4VCL reports - Fixed error when TfrxPreview wasn't available in the component palette - Fixed some printing problems in XE3 - Fixed error with toolbar buttons icons in the report designer - Fixed AV in some report editors - Fixed errors in some dialog form components - Fixed Font height rounding when zooming report - Fixed error when trying to set Color property from the report script code FastReportFMX customers can upgrade to new version for free. FastReport VCL customers can buy via cpanel with 50% discount. What's New in RAD Studio XE4 - Multi-device, true native app development - Develop apps for iPhone and iPad - iOS user interface controls - Rapid prototyping - IBLite and SQLite iOS database support - Multi-tier client support for DataSnap, web services and enterprise databases - Access more databases, on more devices, more easily with FireDAC - FireMonkey FM3 Application Platform. More information on the Embarcadero website . ### FastReport FMX commerce beta launched URL: https://www.fast-report.com/news/commercial-beta-fastreport-fmx Summary: FastReport FMX commerce beta launched FastReport FMX commerce beta launched Dear Fiends , We are pleased to inform you of the release for sales of FastReport FMX beta. All purchasers of FastReport FMX beta will be updated to the final FastReport FMX release. Use it , test it and e mail us with comments. Multi - platform r eport g enerator for Apple Mac OS X and Microsoft Windows . Compatible with Embarcadero RAD Studio XE2 (FMX library). Report generator FastReport FMX is the first multi - platform solution for including Business Intelligence into software based on the Embarcadero FireMonkey IDE (Delphi for MS Windows and Apple Mac OS X). PS: Existing customer s can get a 50% discount on FastReport FMX . ### FastReport FMX Demo Update URL: https://www.fast-report.com/news/fastreport-fmx-demo-update Summary: We have updated the demo of our cross-platform report generator for FireMonkey. Now the report designer is available both on Windows and on MAC OS X! We have updated the demo of our cross-platform report generator for FireMonkey. Now the report designer is available both on Windows and on MAC OS X! We have updated the demo of our cross-platform report generator for  FireMonkey . Now the report designer is available both on  MS Windows  and on  MAC OS X ! Take a part in the beta-testing: download it and evaluate it.  Download here: OSX demo, Win32 demo.  Your opinion is important to us!  You can see screenshots here.  The C ommercial C omponents set will be coming soon. Keep monitoring our news! ### FastReport FMX for Apple macOS X URL: https://www.fast-report.com/news/release-fastreport-fmx Summary: FastReport FMX for Apple macOS X FastReport FMX for Apple macOS X Fast Reports anno u nces the first professional report generator for Apple macOS X - FastReport FMX.  It is a reporting tool for the Fire Monkey environment ( packaged in Embarcadero Technologies Delphi XE2 which supports Apple macOS X and MS Windows).  A d emo version is available for download on the Fast Reports web site. Fast Reports plans to open sales of the full version in May 2012. Download links: OSX demo, Win32 demo ### FastReport FMX with XE3 support released! URL: https://www.fast-report.com/news/fastreport-fmx-1.0 Summary: FastReport FMX with XE3 support released! FastReport FMX with XE3 support released! FastReport FMX now supports FireMonkey 2 (Embarcadero RAD Studio XE3, Delphi XE3) as well as the previous version of FireMonkey (Embarcadero RAD Studio XE2, Delphi XE2).  W e have fixed a se ries of bugs and improved the speed and stability of reporting on Windows and on Mac OS X. For example – the bug with setting up FastReport VCL and FastReport FMX in the same IDE. You also need to download the current build of FastReport VCL from your customer panel.  All users of FastReport FMX beta can download the release for free and all users of FastReport VCL can purchase it with a discount via their customer panel . ### FastReport for DBA 2021.1 URL: https://www.fast-report.com/news/fastreport-dba-2021.2 Summary: FastReport for DBA 2021.1 FastReport for DBA 2021.1 In the new version of FastReport for DBA we have added support for high-resolution screens in the designer and preview of the prepared reports. We also added new exports DXF, XODT, XODS, PDF/A-1a, PDF/A-2u. Added new Visual Studio-styled icons. You may switch between icon packs in the "View/Options/User Interface" window (or, "File/Options/User Interface" if you use ribbon UI): The new icons are well suited for hiDPI screens.  There are also new barcodes: Swiss QR Code, ITF-14, Deutsche Post Identcode, Deutsche Post Leitcode, Japanese PostNet: Added ability for the Text object to display DB filed names in a simplified form when designing a report. You can activate this option in the "View/Options/Objects appearance" window. This option is off by default. When you turn it on the Text object with a single DB field will display the field name part only, with no datasource name: Added ability to set up each cell in the Matrix object's corner area. To do this use the cell's context menu and its commands "Split cell", "Merge cells": Added ability to connect to ElasticSearch. Connection is available in data wizard and from code. Significantly improved and redesigned connection to the CSV data source. VisibleExpression, PrintableExpression and ExportableExpression properties appeared. You can use them to adjust the values of the Visible, Printable and Exportable properties depending on some condition: Full list of changes:  [Engine] + added connection to ElasticSearch + added new barcodes: Japanese PostNet, ITF-14, Deutsche Post Leitcode, Swiss QR Code + added CountDistinct aggregate function (report totals and Matrix object totals) + added support of TLS 1.2 + added new 2 types of UncheckedSymbol for CheckBox + added ability to load XML data source by URL + added functions of converting numbers to words for Polish, Indian, Persian, Ukranian language + added rupee symbol for Indian currency + added the Report.Prepare (int pagesLimit) method, which allows to prepare a limited number of pages + added ability to align barcodes + added property PictureObject.ImageSourceExpression that allows to set expression containing source of image + added possibility to use expression in brackets in VisibleExpression, PrintableExpression and ExportableExpression properties + added the PictureObject.ImageFormat property, which allows to select the image storage format + added property MatrixObject.PrintIfEmpty, which allows displaying the matrix even if it is empty + added property Page.LastPageSource, which allows to configure the printer tray for printing the last page of the report + added VisibleExpression, PrintableExpression, and ExportableExpression properties + added property Report.Tag + added "AutoEncode" property for DataMatrix Barcode. By default, if true, it encodes the &1; as a symbol of FNC1. If false, the character is encoded as is. + added "OnScriptCompile" event that called when report's script compiles + added new TextQuality: SingleBitPerPixel and SingleBitPerPixelGridFit + added an ability to split table rows + added RUB, BYN and BBYN currencies to ToWordsRu function + added an ability to change decimal digits for Number, Currency and Percent formats when UseLocale property is true + added property "SplitRows" for MatrixObject. By default, its value is False and in this case rows with the same vaues are joined. If True - rows are split (like TableObject) * optimized copying streams in some cases * optimized and unified converter RichText to report objects * optimized work of VisibleExpression, PrintableExpression and ExportableExpression properties for bands * improved algorithm of converting RTF to report objects > these properties allow to set the value of the Visible, Printable, and Exportable properties, depending on the fulfillment of the specified condition - fixed a bug with incorrect tab width when TextObject.TextRenderType = TextRenderType.HtmlTextRenderer - fixed a bug with SubreportObject on a page footer band which caused StackOverflow exception - fixed a bug with Dock and Anchor properties of objects inside table/matrix cells - fixed a bug leading to System.ArgumentException when drawing PictureObject located outside the band - fixed a bug with incorrect work of right anchor (Anchor = AnchorStyles.Right) when page has unlimited width - fixed a bug with replacing a custom font with a default font when preparing a report - fixed a bug with vertical alignment when converting RTF (by default, now Top instead of Center) - fixed a bug with converting RTF tables to report objects - fixed a bug with page sizes could reset after preview - fixed a bug with printing a RichText object on large Windows scaling was happening incorrectly - fixed a bug leading to System.ArgumentOutOfRangeException in Substring functions - fixed a bug leading to System.ArgumentException when drawing PictureObject with some images - fixed a bug when tables were not displayed when connecting to Advantage Database via ODBC - fixed a bug where RichText went outside the page - fixed a bug with recompiling the report script that interacted with ChildBand - fixed a bug with incomplete copying of the matrix when copying the report page - fixed bugs when importing DevExpress reports - fixed bugs when importing RDL reports - fixed a bug when a band with the FillUnusedSpace property enabled was not displayed again, although there is enough free space - fixed bugs when importing List and Labels reports - fixed a bug where the AutoSize property for SvgObject did not work correctly - fixed a bug with TextObject.AutoShirnk=FontSize when TextObject's size is very small - fixed a bug with incorrect TotalPages variable value when it used in VisibleExpression - fixed a bug with converting RichText when RichObject.Text is null - fixed a bug with web response stream reader when connecting to remote JSON - fixed a bug while compiling the report with some expressions in the properties VisibleExpression, PrintableExpression and ExportableExpression - fixed a bug with incorrect checksum calculation in Deutsche Post Identcode barcode - fixed a bug where the designer crashed when the "Start new page" property is enabled for the page header child band - fixed a bug where the value of an expression was displayed by the text of this expression - fixed incorrect drawing of ITF-14 barcode - fixed a bug with transparency of RichObject - fixed a bug with text object visibility when Highlight.Visible parameter is enabled - fixed a bug with work of property PrintableExpression - fixed a bug with connection to PostgreSQL 12 and newer - fixed a bug when shifting SubReport to a new page didn't work correctly - fixed a bug when the data footer break away from the data when property "keep with data" is enabled - fixed generation of barcode GS1-128 - fixed incorrect value of Total, if it refers to another Total - fixed a bug where the table was not transferred correctly - fixed a bug with parsing xml with hexidecimal values, e.g. "To create it: " - fixed bug with trying to convert DBNull in empty string when ConvertNulls is disabled - fixed a bug when PageFooter with PrintOn=LastPage causes to print it on penultimate page [Designer] + added HiDPI support + new icons added. Use the designer's "View|Options|User interface" dialog to switch between icon packs. + added simplified display of DB field names in the designer + added collapse all/expand all button and search field for Report tree and Data tree + improved the behavior of the page panel + added ability to copy data source + added import of DevExpress reports saved in XML format + added the ability to add text and pictures by dragging and dropping them from the browser + added the ability to edit the number of rows and columns of the table by dragging the mouse + added loading of RTF texts, tables and styles when converting DevExpress file + added possibility to load CSV files via URL + added backlighting of the band that the selected element will located on when dragging is completed + added an ability to open subreport page by double-clicking on its object + added an ability to change fonts for Code Tab, Text Editor and Expression Editor + added an ability to replace pictures with drag & drop + added an ability to open report file by drag & dropping + added an ability to scroll the report horizontally while holding down the Shift key + added ability to drag & drop picture in format png, jpeg, jpg, gif, ico, bmp, tif, tiff, emf, wmf and text files in format txt, rtf + added ability to paste picture and text on page from clipboard + added ability to create new report page using: "+" button on the pages panel, double-click on empty space on the pages panel, "Ctrl+N" shortcut * when changing the window, the context menu now closes * now during autosave the selected item from the properties window is not reset * changed focus order of elements when clicking "tab" on a tab with creating swiss QR - fixed a bug leading to the crash of the report designer with an incorrect table in the data source. - fixed a bug with index of bounds in SQLBuilder in Designer - fixed a bug where the dialog page did not open if it had a GridControl  - fixed bugs in Right to Left mode - fixed a bug when rescaling the dialog form - fixed a bug with adding a barcode, leading to creation of a barcode with the wrong type - fixed a bug when dragging from functions created a NUD and an empty TextObject - fixed a bug when the RichTextBoxControl was not rendered correctly in the dialog workspace - fixed scaling issues in the WelcomeForm and Wizard windows - fixed a bug with copying an object, when an object with the same name was created - fixed a bug with empty database name after reloading the report - fixed a bug when double click to arrow buttons on report tab creates a new report page - fixed a bug where switching properties to alphabetical order did not work - fixed a bug with loading page size when converting DevExpress file - fixed a bug, when empty string in Datamatrix barcode causes exception - fixed a bug where the gauge window had the wrong width - fixed a bug where drag&drop to the matrix didn't work - fixed a bug leading to System.FormatException when opening DevExpress files - fixed a bug "Count cannot be less than zero." when opening DevExpress files - fixed a bug with moving objects in the report tree while holding down the Ctrl key - fixed a bug with drop down menu of select color button - fixed a bug when changing parameters after adding a line caused exception - fixed a bug with creating the Intelligent Mail barcode - fixed a bug with JSON-connection in Connection Wizard - fixed a bug with incorrect drawing of horizontal guides - fixed a bug when the width of objects was reset after closing Preview with enabled right anchor - fixed a bug when trying to set an incorrect RowSpan value to a MatrixObject cell - fixed a bug with dropping color, width and style in Border editor - fixed a bug with resizing PolyLineObject/PolygonObject, when it's copied with Ctrl+Drag - fixed a bug with inactive context menu "Size Mode" for SVG object - fixed a bug when subreport cannot be deleted when page linked to it was deleted before - fixed a bug when the buttons in the "Panel" in the "View" tab did not match the "Visible" property of the corresponding windows  [Preview] + added "About" button in toolbar of preview window + added an ability to scroll the report horizontally while holding down the Shift key + added exports menu editor > new editor is available in user interface options; exports can now be removed from exports menu * data source menu in Text Editor is now hidden in Preview * "Delete Page" button now disabled in Preview when only one page generated - fixed a bug with saving prepared reports containing converted RichObject - fixed a bug where the percentage of scale in Preview could be displayed incorrectly - fixed a bug leading to System.ObjectDisposedException when re-preparing the report - fixed a bug where the report could only be saved in the Box, regardless of the cloud storage selected in the menu   [Exports] + added exports to DXF, XODT, XODS, PDF/A-1a, PDF/A-2u + added support of ODF 1.2 in export to ODT/ODS + added option when export to Word 2007 "Do not add section breaks on page breaks". By default, both page breaks and section breaks are added. + added property ReportPage.ExportAlias, which allows to set the page name when exporting to Excel 2007 + added ability to split pages in export to XML + added support for Padding property in Word2007 export * now, in Excel 2007 export for sheets without pictures, files with a description of pictures and relations to them are not created * optimized saving of embedded fonts in PDF-export. File size has decreased significantly. - fixed page-break in Html export (PageBreaks property) - fixed SVG export with "Multiply export" parameter - fixed SVG export bug on hidpi monitor - fixed the names of files saved in the zip archive - fixed tab symbols width when export RichObject - fixed XPS export bug where documents exported on Linux would not open on Windows - fixed bugs with incorrect work of Anchor and Dock properties when exporting pages with unlimited width - fixed a bug in Excel 2007 export of text objects with enabled HtmlParagraph render type. Disable WYSIWYG export option to  export text instead of images. - fixed a bug of export to ODF when the document did not open in MyOffice - fixed a bug with closing cell with RichText when exporting to RTF - fixed a bug when exporting objects with rendering mode HtmlParagraph  - fixed a bug with exporting line with arrow cap in layered export to Word 2007 - fixed a bug with exporting line with arrow cap in export to PowerPoint 2007 - fixed saving report to Box - fixed saving report to OneDrive - fixed saving report to Google Drive - fixed a bug leading to System.OutOfMemoryException when exporting to PDF - fixed a bug with creation of incorrect file when exporting to Excel 2007 with big amount of pages and page breaks option - fixed a bug where export to image did not take into account the transparent background of the report - fixed a bug leading to System.NullReferenceException when exporting to Excel 2007 - fixed validation errors in export to ODT/ODS - fixed a bug in ODT-export when the file did not open correctly in Word 2019 - fixed a bug with incorrect line position when exporting to Word 2007 - fixed a bug when exporting to Excel 2007 in the "Seamless table" mode leading to table breaks, incorrect merging cells and incorrect exporting of images - fixed a bug where links with Russian letters did not work in PDF export - fixed a bug where the dates of creation and editing of the document did not match the equivalents in the metadata in PDF/A-1a export - fixed a bug while exporting to Excel 97 causes exception "Huge SAT not implemented" - fixed a bug with exporting texts containing ampersand '&' in Excel 2007 export - fixed a bug while exporting MapObject to PowerPoint - fixed a bug with saving default theme in export to Excel 2007 - fixed a bug with exporting gradient fills with owner or user password in export to PDF - fixed a bug with encryption of digital signature in PDF-export when protecting a document with a password - fixed a bug with paragraph offset in export to OpenOffice Writer - fixed a bug with exporting strings containing only spaces in DXF export - fixed a bug in PDF export, leading to disappearance of spaces when there are tabs in the report - fixed a bug with exporting page footers when export to Excel 2007 in seamless table mode - fixed a bug with exporting "\" character in Excel 2007 export - fixed a bug with incorrect indents in export to OpenOffice Writer - fixed a bug with incorrect size of picture in export to RTF - fixed a bug with page breaks in export to OpenOffice Writer - fixed a bug with paragraph offset in export to OpenOffice Writer - fixed a bug with text justify in exports to OpenOffice Writer and OpenOffice Spreadsheet - fixed a bug in Excel export (BIFF8) - fixed a bug with printing of layered Html export, when the report contains pages with landscape orientation - fixed a bug where exporting to EMF called an exception - fixed display of objects with negative height/width for layered Html-export - fixed bugs when exporting a multi-page report in XML - fixed a bug when PDF export generated incorrect file when EmbeddingFonts and InteraciveForms properties equal True - fixed view of background on BarcodeObject at Pdf and Html export - fixed bugs when displaying Shape, Barcode, Polygon etc. with fill (or background) in all exports with table layout ### FastReport for Lazarus is now available on Linux! URL: https://www.fast-report.com/news/trial-lazarus-linux-academic Summary: Update of editions for FastReport VCL and FastReport for Lazarus with the installer on Linux via DEB or RPM. Update of editions for FastReport VCL and FastReport for Lazarus with the installer on Linux via DEB or RPM. 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 . ### FastReport goes Open Source URL: https://www.fast-report.com/news/fastreport-goes-open-source Summary: FastReport goes Open Source FastReport goes Open Source We are very pleased to announce the launch of our Open Source project - Fast Report Open Source. We are hoping to develop a friendly community of .Net Core developers who will share our eagerness to create fast, powerful and convenient reporting tool for Windows, Windows Server, Linux and MacOS.  We also encourage you to be a part of the global reporting team! Join us on GitHub:  github.com/FastReports/FastReport ### FastReport goes printless* URL: https://www.fast-report.com/news/april-fool-2017 Summary: FastReport goes printless* FastReport goes printless* The newest report generator FastReport Desktop Green Edition has a disabled Print option.  Therefore you will never have to deal with empty paper trays, "Low ink" indicators and shredders again. It's a real thing! Check out our infomercial and never return to printing again!  *Happy April Fools' ### FastReport is discontinuing support for older Delphi versions URL: https://www.fast-report.com/blogs/discontinuing-support-older-delphi Summary: With the latest release of FastReport VCL 2023.2, older versions of Delphi are no longer supported. We explain in detail why. With the latest release of FastReport VCL 2023.2, older versions of Delphi are no longer supported. We explain in detail why. With the latest release of FastReport VCL 2023.2, older versions of Delphi are no longer supported. We explain in detail why. We no longer support older versions of Delphi with the latest release. We will tell you why. Even though we have been using Delphi since 1995, it is evolving and has undeniable advantages in the work of programmers. FastReport products for Delphi do not stand still as well, and we try to offer developers new and more modern features with each release. Important update: FastReport VCL no longer supports Delphi versions below 2010. We'll explain why. You may be wondering: why update Delphi, and what are the advantages of newer versions? The main ones are many new features that boost productivity in high-end application development. In this article, we will try to talk about the main changes in Delphi since version 7 and answer questions about the end of support for Delphi's old versions. 1. What versions are no longer supported in the FastReport VCL product? Borland Delphi 7 Borland Delphi 8 Borland Delphi 2005 Borland Delphi 2006 CodeGear Delphi 2007 Delphi 2009 Guaranteed support for FastReport VCL 2023.2 is available only starting with Delphi 2010 . 2. Why are we deprecating older versions of Delphi below 2010, and what is the deterrent to development for this deprecation? An important stage in the VCL development of report generators was the end of support for obsolete non-Unicode versions. It will help us work more intensively on improvements in FastReport and introduce more modern features with each release. Since the release of 2023.1 FastReport VCL supports Delphi versions starting with 2010. Several factors influenced this decision: Lack of native Unicode support in older versions, which imposes various restrictions on localization and working with strings and text; The need to support a lot of functions that become unnecessary when using new Delphi versions; There are no Generics and anonymous methods, which impose additional costs for human resources to support functions that could be implemented easier on standard IDE modules; It is not possible to use new VCL components, the independent implementation of which increases the development time. Their performance management also requires resources; 3. What is the advantage of moving to Delphi versions above 2010, and what technologies will we be able to use? Namespaces for multiple modules, the for... in...do loop, the inline directive for functions, and other code optimizations In Delphi, the compiler allows procedures and functions to have an inline directive, which improves performance. When a procedure or function meets certain conditions, the compiler inserts code at the exact point of invocation instead of generating a regular call. The inlining method can optimize performance and generate code that runs faster but at the cost of increasing code size. In this case, the binary generated by the compiler will be larger. The inline directives, like other directives, are used to declare and define functions and procedures. Fast code refactoring  Code refactoring is restructuring and modifying existing code without changing its functionality. Refactoring can speed up, simplify, and improve the performance and readability of application code. The refactoring service in Delphi analyzes and performs code redistribution operations. The service also displays changes in preview mode and the refactoring panel at the bottom of the code editor. Refactoring candidates appear as tree nodes that you can open to view additional items to be refactored. Warnings and errors are also displayed on this panel. You can access the refactoring service through the context and main menu. Unit Testing  New versions of Delphi include the open-source DUnit testing framework for creating and running automated tests. This framework facilitates test creation for application classes and methods. When used with refactoring, this feature can improve the stability of your application. Thanks to the timely launch of tests with changes in the project source code, you can find and fix errors in the early development stages. End-to-end support for Unicode at the language, library, and development environment levels Unicode is a standard that allows you to get a computer representation and work with any writing system. - The Unicode Standard: Version 5.0. 5. ed. Addison-Wesley Professional, 2006. 1472p A large number of character sets in different languages, such as Asian variants, can be represented using Unicode. The most common encodings are UTF (Unicode Transform Format) and UCS (Universal Character Set). See for more information on Unicode:  https://en.wikipedia.org/wiki/Unicode . One of the important changes in new versions of Delphi is that string types are now based on UNICODE. Data types such as AnsiString and WideString based on the ANSI standard and beyond are still workable given the size of strings in bytes. List of changes for Unicode support: String now means UnicodeString, not AnsiString Char now means WideChar (2 bytes, not 1), which is a UTF-16 character PChar means PWideChar AnsiString stands for the "old" String type No change: AnsiString WideString AnsiChar, PAnsiChar Short string contains AnsiChar elements The implicit conversion continues to work The active code page controls the mode (ANSI or Unicode), and ANSI strings are still supported. Operations that do not depend on character size: String concatenation Standard functions for working with strings. For example, Length, Copy, Pos, etc. Operators. For example , , CompareStr(), CompareText(), etc. FillChar() Windows API Many companies distribute their applications and/or exchange information with countries where Unicode support is critical. Generics "Generic" is a term for a generic type. It refers to using the language syntax for predefining data types in certain container types, such as arrays or collections. Generics allow you to write generic code that works with a specific data type, i.e., with a class or class method. You can also specify the type during runtime. Support for Generics has been introduced since Delphi 2009. Delphi RTL includes out-of-the-box implementations of collections (defined in the "Generics.Collections" module): TList TQueue TStack TDictionary TObjectList TObjectQueue TObjectDictionary TThreadedQueue Anonymous Methods An anonymous method is a procedure or function that does not have a name associated with it. Anonymous methods are parts of code that can be associated with variables or used as parameters for other methods. In addition, anonymous methods can use variables in the context in which they are defined. Declaring and using anonymous methods does not require complex syntax. The syntax is similar to closures in other programming languages. New VCL components (Custom Hints, Ribbon Controls, etc.) Direct-2D support  Direct2D API—program interface designed to interact with GDI, GDI+, and Direct3D. Direct2D redirects all drawing operations to the GPU (Graphic Processing Unit) instead of the CPU. It gives more resources to the application. Starting from Microsoft Windows 7, the ability to use Direct2D was added: API for hardware-accelerated 2D graphics output, allowing for improved performance when displaying 2D objects, bitmaps, and text. New versions of Delphi have Direct2D support at the IDE level. IDE Insight, Source Code Formatter, Search taskbar A new IDE Insight service has been added that allows you to enter a name and select project options and developer preferences from a list of suitable options. IDE Insight input fields include options for commands, files, components, and projects, among many categories. The Delphi environment offers code formatting according to templates by default. Also, IDEs now offer a fully customizable code formatting service activated by enabling CTRL+D. It ensures that the modules are formatted according to the predefined settings. Moreover, you can format all the modules included in the project using the project manager. Background compilation  In Delphi 2010, compilation can be done in the background. Thus, you can run the compilation process in a separate or parallel thread and continue working in the IDE while the project is being compiled. For example, during compilation, you can edit files and set or change breakpoints. Extended RTTI Run-time type identification (RTTI) provides information about objects, allowing them to interact within the application. The Delphi IDE is another good RTTI use case when using the object inspector, code editor, and modeling tools. Other programming languages have evolved to change the way we program, and Java and .NET applications demonstrate these innovations perfectly because modern programming languages offer new levels of dynamic interaction. Delphi 2010, thanks to Delphi's broad RTTI support for Win32, now has all the power of .NET and Java. The new RTTI system (RTTI.pas) is fully object-oriented and allows you to create and implement more dynamic interactions between objects. Operator overloading In new versions of Delphi, you can overload certain functions or "operators" in records. The names of the operand functions correspond to the symbolic representation in the source code. Class Helpers A "helper" is a type of class that introduces additional methods and properties by associating them with another class. These methods and properties can be used in the context of an associated (or derived) class. Class helpers are a way to extend a class without inheriting it. The "helper" class introduces additional scope only when the compiler finally determines the identifier name. Strict Private and Strict Protected Newer versions of Delphi have two options that control the visibility of class attributes: strict private and strict protected. Strict private: class attributes are visible only within the class in which they are declared. These attributes are invisible from methods declared in the same module or from those not being part of the class. Strict protected: Specifies that class attributes are accessible to descendants. Breakpoints in threads, "freeze/unfreeze" threads New memory manager and new RTL features Some RTL features have been improved to increase performance. The new FASTMM memory manager for Win32 applications allows Delphi 2006 applications to perform better and detect memory leaks by declaring ReportMemoryLikeonShudown := True anywhere in your code. Starting with Delphi 2006, in addition to detecting memory leaks, the speed of applications has also improved significantly. Classes for object-oriented I/O in files and directories Starting with Delphi 2010, a new IOUtils module has been added that includes three static classes: TDirectory, TPath, and TFile. In turn, these classes expose several static methods useful for I/O tasks. Most methods are feature and signature compatible with the .NET System.IO.Directory, System.IO.Path, and System.IO.File classes. 4. What should users do if they want FastReport VCL with Delphi 7-2009 (will it be possible to download FastReport VCL up to the 2023.2 version. Where and how to download it if available)? You can get the latest version of FastReport VCL with the Delphi 7-2009 support upon technical support request. 5. What is the technical support for FastReport VCL with Delphi 7-2009 (will it be unavailable, or will it be paid, will there be a transitional period)? As we no longer guarantee functionality in IDE versions below Delphi 2010, we discontinue technical support for issues related to these versions. Critical bugs resulting in the total failure of FastReport VCL with Delphi 7-2009 support can be fixed upon request at the developer's discretion. Rejection of outdated versions of Delphi 7-Delphi 2009 will allow us to redistribute the resources of the development team for more efficient development, reduce the time to implement new functions and devote more time to finding faults in FastReport VCL, which in turn will lead to more stable work of the software product. Our goal is to create a powerful and fast report generator for all developers, and we are sure this step will make our product even better. Tags: VCL, FastReport, Delphi ### FastReport is included now into the developer solution – Firebird.IBPhoenix URL: https://www.fast-report.com/news/firebird-IBPhoenix Summary: FastReport is included now into the developer solution – Firebird.IBPhoenix FastReport is included now into the developer solution – Firebird.IBPhoenix We are happy to inform our users that FastReport is included now into the developer solution for one of the most popular open-source databases – Firebird (www.firebirdsql.org). IBPhoenix (www.ibphoenix.com), the main company behind Firebird development, released Firebird Developer Pack 2007, which contains all necessary tools for development applications with Firebird, and as important part includes FastReport Standard Firebird Edition. Using Firebird Developer Pack 2007 and FastReport, Firebird developers now can easily create fast, robust and affordable reporting and business intelligence solutions. ### FastReport License Agreement: Translation from Legalese into Human URL: https://www.fast-report.com/blogs/licensing-explanation Summary: A plain-language explanation of the key restrictions in the FastReport license agreement, along with an invitation to discuss custom usage and partnership opportunities. A plain-language explanation of the key restrictions in the FastReport license agreement, along with an invitation to discuss custom usage and partnership opportunities. A plain-language explanation of the key restrictions in the FastReport license agreement, along with an invitation to discuss custom usage and partnership opportunities. Not long ago, at a seminar following a presentation, I received a great question about our new license agreement: "We’ve been using your libraries and components for generating reports for many years, but in 2024 you changed the terms to stricter ones. Do you want all our money?" Well, no, of course not! We want much more! :) But seriously — let’s figure it out together: https://www.fast-report.com/license/license-agreement-delphi 3. LICENSEE OBLIGATIONS; WARRANTIES; AND PROHIBITED CONDUCT 3.1 Prohibited Conduct. The Licensee shall not: (c) publish or otherwise make the Software available to any third party, or copy, lease, distribute, transfer, or reprint the Software or any part of it, except as explicitly stated in this Agreement and allowed by the purchased License; (d) change the names of files in the Software; (e) remove any references to the intellectual property or copyright of Fast Reports; (f) include the Software in a development environment, framework, report generator, or ERP, CRM, BPM, or ECM system without prior written permission from Fast Reports; (g) create a Solution that does not differ significantly from the Software, or whose main functionality is largely based on the functionality of the Software; (h) develop and/or distribute stand-alone report generators based on the Software; (i) develop and/or distribute a Solution (free, shareware, commercial, or otherwise) that directly or indirectly competes with the Software; (j) use the Source Code of the Software to create any software or product (free, shareware, commercial, or otherwise) that directly or indirectly competes with Fast Reports’ Software; (k) directly or indirectly disclose the Source Code or any solutions discovered through use of the Software to any party involved in the creation of software that directly or indirectly competes with Fast Reports’ Software; (l) distribute the Source Code of the Software; (m) hack, reverse engineer, translate, or decompile the Software, or use its Source Code and/or other components to create other programs or applications (including, but not limited to, freeware, shareware, or commercial software) that directly or indirectly compete with or replicate the functionality of the Software, without prior written permission from Fast Reports; (n) disclose the Source Code, Object Code, program code, or other parts of the Software, or methods of implementing its functionality, to any person involved in creating other programs or applications that directly or indirectly compete with or replicate the functionality of the Software, without prior written permission from Fast Reports. What does this actually mean? Let me try to translate it from legalese into plain human language. 1. Regular, specialized products do not require any additional licensing, even if they use an independent visual report designer. 2. You may not distribute our source code (which is obvious). And what isn't allowed? 3. You can’t create report generators. We’ve clearly specified this in item (h), as well as in (i) — “products that compete with ours,” and (g) — “products whose main functionality is based on ours.” Here’s a particularly important point. I originally formulated it for our lawyers as: “a product that itself produces products or artifacts containing report generators.” The lawyers rewrote it as: 4. Including the Software in a development environment, framework, report generator, or ERP/CRM/BPM/ECM system (item f). Why? Because systems like ERP, CRM, BPM, and ECM are often highly configurable, essentially development platforms or tools. Was this clause present in the previous license agreement? Yes, it was — practically in the same wording. Do our competitors have similar clauses? Yes, we’ve specifically researched the EULAs of our respected competitors. One way or another, such restrictions are always there. Does this mean “it's impossible to use and completely prohibited unless we talk to you”? No! If something seems impossible, but you really want to do it, you can always discuss it and come to an agreement. Think of this as an invitation to a new level of cooperation ! We already have many OEM partners around the world using FastReport in their development environments, in CRM/ERP systems, and even in their own report generators for other platforms. In fact, with Embarcadero, we have a very similar partnership: we provide licenses for distribution within their development tools! :) We even have a dedicated department to handle these kinds of requests. They’re not "sharks" — they’re kind and attentive colleagues. If you have specific needs or want to extend the functionality of the Software, we’re always open to discussion. We're ready to explore collaboration opportunities. And in any case, you can always write to me directly. Sincerely, Michael Philippenko Tags: FastReport, License Agreement ### FastReport Mono URL: https://www.fast-report.com/blogs/fastreport-mono You've probably heard that our team is working on porting the FastReport.NET to the Mono platform - we told this at our conference, held last year in Rostov-on-Don. Then followed a long silence, and now we are ready to show where do we go. The main feature of this demo is that it can work in Windows as well as in Linux. In order to run it under Windows, simply unzip the archive to any directory and run Demo.exe. Running the demo under Linux is somewhat more complicated. To get started, make sure you have installed the necessary libraries. The easiest way to install of development environment MonoDevelop with required libraries. To properly generate reports that contain built-in scripts, you need to install an additional package "mono-gmcs". This demo assumes that the font files are stored in the /usr/share/fonts/truetype directory. This is true for all modern versions of Linux. You should set an environment variable (FONTDIR) when the font files are located in another directory. Use following command: export FONTDIR = /my/fonts/path where /my/fonts/path is the path to the font directory. An interesting effect is observed when testing FastReport.Momo on MacOS X - a very long launching. However, after the launch of the FastReport.Momo it very quickly generates reports. Do not forget to set the font's path under MacOS X using an FONTDIR environment variable. Otherwise many exports will wont work. Notices, bugreports, and issues can be left on this blog, or send to the support@fast-report.com. Tags: MacOS, Mono, FastReport ### FastReport Mono 2013 released URL: https://www.fast-report.com/news/fastreport-mono-2013.1 Summary: FastReport.Mono 2013 released FastReport.Mono 2013 released What's news in our crossplatform reporting tool? Use the opportunity to publish reports on the web - version FastReport.Mono 2013 allows to use the report generator conjunctly with  the Apache web server. You'll find the example of WEB reporting in the folder "Demos/C#/Web". Do not limit yourself by using only the classic bar codes. In version FastReport.Mono 2013 added support of two-dimensional bar  code - QR-code. Using the QR-code allows to increase up to 100 times the amount of encoded information over traditional barcodes. - added WEB reporting server - improved look of navigator of generated HTML documents - added "Data Only" property to Xlsx export (Excel 2007 and later version) - added new barcode - QR-code - improved look of RichText object - fixed bug in BusinessObjects data source - improved logic of bands placement - optimization of two-pass report generation - added CC field to the E-mail client - added WYSIWYG  property to Excel 2007 export - memory optimization of big blob data - many minor fixes ### FastReport Mono 2016.2 released: overview of new features URL: https://www.fast-report.com/news/fastreport-mono-2016.2 Summary: What's new in FastReport Mono 2016.2? New build of FastReport Mono allows to use report generator on Linux in standalone mode without X Window System. What's new in FastReport Mono 2016.2? New build of FastReport Mono allows to use report generator on Linux in standalone mode without X Window System. What's new in FastReport Mono 2016.2? ✔ New build of FastReport Mono allows to use report generator on Linux in standalone mode without X Window System ✔ Improved quality of PDF export - fixed calculation of font metrics ✔ Speed up embedding fonts in PDF and XPS documents + added message window to script editor - fixed date format * improved PDF export + added < BR > html tag - fixed width of space and missing characters in PDF export - fixed crash on run in console mode (withut X Window Server) under Linux. Just add single line into your code: Utils.Config.DisableUIEvents = true; - fixed bug with Two-Pass single page ### FastReport Mono 2018 released: overview of new features URL: https://www.fast-report.com/news/fastreport-mono-2018 Summary: In the latest version of FastReport Mono we significantly renewed and improved WebReport - added support of interactivity and Online Designer. New exports into JSON, LaTeX. Added support of Maps and new data source - CSV. In the latest version of FastReport Mono we significantly renewed and improved WebReport - added support of interactivity and Online Designer. New exports into JSON, LaTeX. Added support of Maps and new data source - CSV. In the latest version of FastReport Mono we significantly renewed and improved WebReport - added support of interactivity and Online Designer. New exports into JSON, LaTeX. Added support of Maps and new data source - CSV. Version 2018 --------------------------------------------------- + added support Online Designer in WebReport + added outline (TOC) of report in WebReport + added property WebReport.DesignerConfig for storing custom configuration of Online Designer + added properties WebReport.RequestHeaders, WebReport.ResponseHeaders + added catching of exceptions on call of WebReport.DesignerSaveCallBack + added ToolbarBackgroundStyle.None (you can use WebReport.ToolbarColor instead bitmap from style) + added properties WebReport.UnlimitedWidth, WebReport.UnlimitedHeight for enable Unlimited size for all report pages (default: false - use report settings) + added property WebReport.Dialogs for enable or disable all report dialogs (default: true - enabled) + added property WebReport.ShowBackButton to display the "Back" button (return to previous report in the tabbed report) + added property WebReport.LogFile to log the errors in WebReport, may be combined with WebReport.Debug + added property WebReport.EnableMargins to use page margins in the output (default: false) + added support of Page.Fill in WebReport + added support of WebReport background color - WebReport.BackColor (default value: White) + added hyperlinks on bookmarks functionality (works only with Layers = true) + added hyperlinks on page number functionality (works only with Layers = true) + added click event handler functionality (works only with Layers = true) + added detailed reports - hyperlinks on hidden report page or report file (works only with Layers = true) + added new property WebReport.ShowTabCloseButton (default value: false) + added new property WebReport.TabPosition (default value: TabPosition.InsideToolbar) + added new example for Single Page Application \Demos\C#\Web\SPADemo + added new enum member TabPosition.Hidden for hidding tabs from toolbar + added properties Left, Top, Width, Height in CustomDrawEventArgs (can be used in WebReport.CustomDraw) + added showing Print Dialog in print in PDF + added properties WebReport.DocxRowHeightIs, WebReport.PdfShowPrintDialog + added function WebReport.PrintInPdf(bool ShowPrintDialog) for setup showing the Print Dialog in PDF + added event for rendering the custom objects in Web or overriding rendering of standard objects (WebReport.CustomDraw), works only with enabled WebReport.Layer + added support of layered HTML in WebReport (WebReport.Layers) with better WYSIWYG + added property WebReport.RefreshTimeout (time for report refresh in seconds, 0 - refresh disabled), this property may be useful for Dashboard functionality + added autosave report templates in designer + added abilty to save prepared reports into cloud storage + added export to JSON fomat + added export to LaTeX format + improved export to SVG format + improved export to graphics bitmap formats + improved Gauge object + added Map object + added new shapes + added new data source CSV format - fix PostgreSQL issue + added experimental implementation of RichText object + data access objects has been ported from FR.NET + added support of OTF files with CFF fonts (OTTO fonts) - fix font weight (!!! you should manually delete previous font.list file - ~/.local/share/FastReport/font.list or C:\Users\YourFolder\Local Settings\FastReport\font.list) - fix command line build under Linux and OSX (xbuild instead of mdtool) - fix clipping area in preview window under Linux and OSX - fixed path to TrueType fonts - fixed horizontal justify for "space before new line" case ### FastReport Mono How to run demo.exe under MacOS X URL: https://www.fast-report.com/news/fastreport-mono-macos-blog Summary: We are often asked: "You have the professional multi-platform report generator for MONO - FastReport.Mono. We are often asked: "You have the professional multi-platform report generator for MONO - FastReport.Mono. FastReport Mono - How to run demo.exe under MacOS X We are often ask ed : "You have the professional multi-platform report generator for MONO - FastReport Mono. Great! But how we can run the report demo under Apple MacOS X? ” Our developer Alex Mandrykin answers this in our  blog . ### FastReport Mono released URL: https://www.fast-report.com/news/release-fastreport-mono Summary: We are pleased to announce a new product - FastReport.Mono. FastReport.Mono is a multi-platform reporting solution. We are pleased to announce a new product - FastReport.Mono. FastReport.Mono is a multi-platform reporting solution. We are pleased to announce a new product - FastReport Mono. FastReport Mono is a multi - platform reporting solution. It can be used with Windows, Linux, Mac OS X and any operating system that supports Xamarin Mono. ### FastReport Mono. What is it? What for is it? URL: https://www.fast-report.com/blogs/what-is-mono Summary: Learn how to use Mono in reporting. Find more useful tips and articles in our blog. Learn how to use Mono in reporting. Find more useful tips and articles in our blog. Learn how to use Mono in reporting. Find more useful tips and articles in our blog. Mono is an open source development platform based on the .NET Framework, allowing developers to create cross-platform applications. The implementation of Mono .NET is based on the ECMA standards for C # and Common Language Infrastructure. Initially, Mono was developed by Novell, then it was developed by Xamarin, and now by Microsoft. The Mono project has an active and enthusiastic community. Mono includes both developer tools and the infrastructure needed to run .NET client and server applications. The Mono platform consists of several components: The C # compiler supports C # standard 1.0, 2.0, 3.0, 4.0, 5.0 and 6.0 (ECMA). Mono Runtime is the ECMA Common Language Infrastructure (CLI) framework. The runtime is provided by the Just-in-Time (JIT) compiler, the Ahead-of-Time compiler (AOT), the library loader, garbage collector, and so on. The .NET Framework class library. The Mono platform provides the implementation of libraries WinForms, ADO.Net, ASP.Net and others. Mono Class Library - Many classes have been created with additional functionality specifically for Mono, which go beyond the base class library provided by Microsoft. Despite the prejudiced attitude of developers to the Mono platform, many well-known companies use it. For example: • Novell uses Mono for client and server applications; • Unity Technologies uses Mono in the Unity 3D computer game simulation tool. This makes it possible to create cross-platform video games; • Artisteer uses Mono to transfer its web designer to another platform. Starting with version 2.2, you can run your software with Mono. Since there are not so many cross-platform generators, but really good ones can be counted on fingers, FastReports decided to create a report generator for Mono. Moreover, there is a ready-made popular report generator FastReport.Net, on the basis of which FastReport.Mono has been created. It appeared in 2013, and at that time it repeated the functionality of FastReport.Net. For now, however, there are differences between them. To be honest, FastReport.Net has made great progress. Nevertheless, FastReport.Mono remains a strong competitor in its niche. Moreover, personally I do not know other report generators under the Mono framework with such rich functionality. What does FastReport.Mono offer? • User-friendly and functional report designer; • Connection to any database, and not only. Even text files can be data sources, not to mention XML and JSON; • Presence of built-in report script. That gives the report huge opportunities. After all, you can use the Mono libraries directly in the report, to produce data transformations, and also work with report objects; • Web reports, based on ASP.Net; Let's take a closer look. With FastReport.Mono you can work in different operating systems. Well, of course, Mono is a cross-platform framework. Therefore, there are available systems: Windows, MacOs, the Linux family. To work with Mono, and accordingly with FastReport.Mono, the following development environments are suitable: Microsoft Visual Studio (under Windows), MonoDevelop (Windows, MacOs, Linux) and Embarcadero Delphi Prism (Windows, MacOs, Linux). Programming languages for working with FR.Mono: C #, VB.Net, Oxygene (Embarcadero Delphi Prism). The language of the built-in report script: C #, VB.Net. Everything is the same as in FastReport.Net. The data sources available by default are XML, CSV. And to connect to databases, you need to use the data source of the user application, or external connectors that are installed in the system. Interesting features of the report generator: • dialog forms - before displaying a report, you can display a form with controls. In this way, the report user can set the report display options. For example, filter the required values; • report inheritance - the ability to use the report as an initial template for others. This is convenient when you make many similar reports. In addition, changes to the base report will be displayed in all inherited reports. This can be attributed to the pluses as well. After all, you do not need to change a large number of reports if you need to edit the base template; • Preview report component - allows you to view the report and do its export, send email, and manage viewing by displaying a report plan, navigate between pages; • The report designer can be called separately as a standalone program, can be called up during the development of the user application, and during the execution of the user application. The latter option is very interesting. In fact, you embed the designer in your program and give the user the ability to edit the reports themselves. • Advanced print mode - another thoughtful tool. Print settings are very rich. Web reports are implemented through ASP.Net and ASP.Net MVC. What can I say -  it is a modern and popular approach. The list of possible export reports is quite large: Acrobat PDF; Images Jpeg/PNG/BMP/GIF/TIFF; RichText; Word OOXML (docx); PowerPoint OOXML (pptx); HTML; MHT (web archive); Microsoft XPS; Excel OLE; Excel XML; Excel binary (xls); Excel OOXML (xlsx); Comma separated values (CSV); DBF (table); Open Document Speadsheet (OpenOffice); Open Document Text (OpenOffice); Email; PostScript; Json; LaTex; FTP; Text File / Matrix Printer; Clouds (DropBox); Clouds (Box); Clouds (FastReport Cloud); Clouds (GoogleDrive); Clouds (OneDrive). Pay attention, the last elements of the list - Clouds – are essentially saving the report to cloud services. The format of the report file is frx, the same as in FastReport.Net. Yes, in fact, the reports are compatible between FR.Net and FR.Mono. Developers, choosing a logo for FastReport.Mono, showed wit. Judge for yourself. Here is the logo of the Mono platform: But the logo FastReport.Mono: In conclusion, I want to note that the transfer of FastReport.Net to the Mono platform was a strategically correct decision. Tags: .NET, MacOS, Mono, FastReport, C# ### FastReport Online Designer 2021.4.5 URL: https://www.fast-report.com/news/fastreport-online-designer Summary: FastReport Online Designer update release 2021.4.5. FastReport Online Designer update release 2021.4.5. New objects We have added a new object "Radial counter": This object allows you to visualize values. This counter has several types: Circle Semicircle Quadrant We have added a new object "Container": This object allows you to group other objects. We have added a new object "Digital Signature": This object is a signature field during PDF export. By clicking it in Acrobat Reader, you can attach your certificate. Note: Make sure the IsDigitalSignEnable property in PDFExport is set to true. We have added new shapes - pentagon, hexagon, heptagon, octagon: New opportunities Now you can set the angle of inclination of a text object. This can be done using the top control: Or using the Angle property: We have added the ability to set a different host for the backend To set a different host, you need to set the configuration in FastReport Online Designer Builder: After that, the compiled version of the designer will make requests to the specified host. It is also possible to set the host by adding the hostAPI property to the window before loading the designer: window.hostAPI = 'https://myawesomehost.com/'. We have added the ability to use your fonts Previously, you could not add your fonts in the designer. Now you can specify the address of the font server where the designer will receive them. To do this, you need to set the configuration in FastReport Online Designer Builder: After that, the designer will contact the specified address to get a new font, while sending family GET parameters (the family of the requested font) and report_id (the identifier of the current report template). Full list of changes FastReport Online Designer 2021.4.5 ---------------------------- + RadialGauge object was added; + Container object added; + DigitalSignature object was added; + the ability to set the rotation angle for the TextObject was added; + the ability to specify a different host for the designer backend was added; + new figures: pentagon, hexagon, heptagon, octagon; + the ability to set the address where the designer is going to receive fonts; - the autosize for some barcodes was fixed; - re-selection of the data source for the date band was fixed; - color selection for some browsers was fixed; - the display of some figures during report preparation was fixed; - the display of some barcodes was fixed; - incorrect size of Landscape pages when calling a preview from Online Designer was fixed; - loading fonts was fixed; - object insertion was fixed; * bundle size was optimized. ### FastReport products support the latest version of RAD Studio — 13.1 Florence URL: https://www.fast-report.com/news/fastreport-florence-13-1 Summary: Starting from version 2026.1.7, FastReport products for Delphi support the most up-to-date version of the development environment — RAD Studio 13.1. Starting from version 2026.1.7, FastReport products for Delphi support the most up-to-date version of the development environment — RAD Studio 13.1. Starting from version 2026.1.7, FastReport products for Delphi support the most up-to-date version of the development environment — RAD Studio 13.1. And in April, FastReport 2026.2 will be released with even more updates! Why is support for RAD Studio 13.1 Florence important? Developers have enhanced support for new platforms, improved stability, and increased IDE performance. But the key change is the introduction of Windows on ARM support in Delphi. Delphi now includes a native ARM compiler (Arm64EC). Applications can run directly on ARM-based devices without Intel emulation. This makes them faster and more stable, without unnecessary layers. However, FastReport VCL doesn't support the Arm64EC platform. At the same time, little to no code changes are required. The same projects can be compiled for Win32, Win64, and ARM. Essentially, this adds another platform while keeping the development process familiar. As a result, this update doesn’t disrupt existing workflows — it extends them. You can simply take an existing project, rebuild it for the new architecture, and get a more modern and high-performance application. You can purchase the latest version of FastReport for Delphi here . ### FastReport Publisher URL: https://www.fast-report.com/products/publisher Summary: A full-featured document generator for small and medium-sized businesses within their infrastructure. A full-featured document generator for small and medium-sized businesses within their infrastructure. A ready-made solution for creating, storing, and distributing reports through a graphical interface and via API, with database connectivity. FastReport Publisher A full-featured document generator for small and medium-sized businesses within their infrastructure. Buy for $1,990 Try for free Documentation On-premise solution The Publisher is fully deployed within your infrastructure - in a data center or on local servers. This is convenient, secure, and critically important for companies working with personal or commercial data. Simple installation The solution is delivered as containers and can be easily deployed in Docker. The package also includes an Installation Wizard for quick setup with Docker Compose. Members-only access Each user has their own profile, login, and access level. This ensures that your data is only available to authorized people. Your fonts — your style Upload TTF files and design report templates in line with your corporate identity. Don’t limit yourself to standard Arial or Times New Roman. Printing — fast and easy Print documents directly from your browser or export them to PDF. No extra steps required, works even from mobile devices. Multiple data sources Publisher connects to many sources: ClickHouse, CSV, Firebird, JSON, MongoDB, MS SQL, MySQL, Oracle, PostgreSQL, XML, and more. Just set up the connection and pull the necessary data into your reports. Works with any programming language How to Transition from FastReport Publisher to the Corporate Server We have already reviewed the differences between Publisher, Corporate Server, and Cloud in the previous article. In this material, we will discuss the reasons for replacing Publisher with the Corporate Server along with a migration plan. In this material, we will discuss the reasons for replacing Publisher with the Corporate Server along with a migration plan. Publisher — the Ideal Solution for Small and Medium-Sized Businesses The FastReport product line for creating, storing, and transmitting documents has been expanded with a new development. Since May 2025, it includes products such as Cloud, Corporate Server, and Publisher. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. Any other questions? Contact the manager ### FastReport Publisher - FAQ URL: https://www.fast-report.com/faqs/publisher Summary: Learn how to use the full-featured FastReport Publisher document generator in the infrastructure of small and medium-sized businesses. Learn how to use the full-featured FastReport Publisher document generator in the infrastructure of small and medium-sized businesses. Do I need to have programming experience to use FastReport Publisher? **No, you don’t.** Publisher is a low-code solution. Thanks to the User Panel, Administrator Panel, and visual Online Designer, reports can be created without knowledge of programming languages. Advanced functionality with APIs and scripts is available for developers. What report formats are supported? **More than 30 formats:** PDF, Word, Excel, PowerPoint, HTML, OpenOffice, XPS, SVG, LaTeX, JSON, CSV, and even ZPL and DXF. Choose the appropriate format when exporting—everything is already built-in. Can I install Publisher on my company’s internal network without Internet access? **Yes.** FastReport Publisher supports self-hosted installation: deploy it on your server in a closed network. Are my data sources supported? Most likely — yes. Publisher works with ClickHouse, MongoDB, MS SQL, MySQL, PostgreSQL, Oracle, CSV, JSON, XML, and others. If your source is not there—write to us, we will add it. How are users authenticated? Each user has a profile. Authorization via login/password is supported. There is also a built-in system of roles and access rights. If you need to connect external OAuth providers, consider using the Corporate Server. Can I create a report in the browser from my phone? Yes. The online designer is adapted for mobile devices. You can open, edit, and even export reports directly from your phone or tablet. Are company fonts supported? Upload your TTF files and use them in templates. This allows you to maintain your brand identity in every document. How does document delivery work? You can automatically send reports to email, to a folder via FTP, to Webhook or external clouds. If you need integration with your CRM, use the API. Is FastReport VCL supported? Yes. You can save reports from FastReport VCL directly to Publisher and download them back. How many users are supported? 15 users are supported by default. Configuring rights and roles allows you to flexibly scale the system to a larger number of employees. Contact us to connect additional users. Is there technical support? **Yes, of course.** We provide technical support through a ticket system. You can also get advice on implementation and custom integration. What if I need several workspaces (for departments/branches)? The system has the ability to create **isolated workspaces**. If you need more than is provided by default, write to us, we will extend the limit. Is it necessary to involve a DevOps specialist to install FastReport Publisher? If your organization has such specialists, then it will be a plus: changing the configuration, setting up CI/CD or switching to the senior solution—FastReport Corporate Server will be easy and fast. But in any case, the Publisher delivery includes an Installation Wizard, with which you can easily configure everything in a few clicks. What operating systems are supported? All OSs that support Docker: Windows, Linux (Debian, Ubuntu), macOS, and others. We have docker images based on both Debian. Also, a convenient “Installation Wizard” is available for Windows, with which even the least sophisticated user can install FastReport Publisher. What are the minimum system requirements? FastReport Publisher will run on almost any modern laptop, PC, or server with the following parameters: **Hardware:** - Processor: 2x1.80 GHz (x86_64) - RAM: 8 GB - Storage: 20 GB of disk space, it is recommended to take into account additional space for logs, cache and temporary report files **Software:** - Docker Engine: 19.03.0 or later - docker-compose: v2.12.2 or later What file formats are used to save templates and reports? By default, the formats of the FastReport .NET report generator are used: for templates—*.frx, for finished reports—*.fpx. It is also possible to store documents in FastReport VCL format—*.fr3 and *.fp3. What examples of Publisher implementation are you aware of? With the help of Publisher, you can solve a wide range of tasks: from standard tasks of the company’s document flow, printing utility bills to printing tickets for ballet, test results, and personalized gift packaging. And thanks to a convenient file system and the function of sending to mail and file storage, documents will easily find their client. ### FastReport Server 1.0 URL: https://www.fast-report.com/news/fastreport-server-1.0 Summary: FastReport Server 1.0 FastReport Server 1.0 New to the FastReport product suite, FastReport Server is a powerful enterprise reporting solution for creating and delivering reports. FastReport Server serves as the foundation of a broader Business Intelligence (BI) strategy by providing the most requested pieces of information reliably and securely - via the web or embedded in enterprise applications. FastReport Server includes a collection of reporting services that addresses all steps in the reporting process: data access and report design, report delivery and management, integration and standalone deployment. FastReport Server is the ideal small-scale report-delivery solution for small to medium size businesses. ### FastReport Server 2.0 released URL: https://www.fast-report.com/news/fastreport-server-2.0 Summary: FastReport Server 2.0 released FastReport Server 2.0 released All registered users of FastReport Server now get one license of FastReport Studio Business Edition.  You can get this license in Customer User Panel. Demo version of FastReport Studio is included in each install package of Server. * changed kernel to FastReport 4 + added configurations values refresh in run-time  + added reports list refresh in run-time + added templates support ("templates" folder), note: all template files have UTF8 encoding + added start in tray (command line: "start frxservice /tray", service should be stopped) + added Open Document Format support, export in Open Office files *.ods and *.odt + added scheduler feature in Server Configurator + added print to network printers from browser (see config.xml "AllowPrint", set to "no" by default), note: experimental feature + improved speed and stability - bug fixes ### FastReport Server 2.1 released! URL: https://www.fast-report.com/news/fastreport-server-2.1 Summary: FastReport Server 2.1 released! FastReport Server 2.1 released! + Added Windows Authentification mode * Improved CGI for IIS/Apache server * Advanced log information on errors * Stability improvements * Speed improvements - Bug fixes ### FastReport Server 2.2 released! URL: https://www.fast-report.com/news/fastreport-server-2.2 Summary: FastReport Server 2.2 released! FastReport Server 2.2 released! + added variables "AUTHLOGIN" and "AUTHGROUP" inside the any report   + now any report file can be matched with any (one and more) group, these reports are accessible only in matched groups + now you can set-up cache delays for each report file (reports.xml) + added new properties editor for reports in Configuration utility (see Reports tab) + added property "Xml" - "SplitType" in server configuration - allow to select split on pages type between none/pages/printonprev/rowscount + added property "Xml" - "SplitRowsCount" in server configuration - sets the count of rows for "rowscount" split type + added property "Xml" - "Extension" in server configuration - allow select between ".xml" and ".xls" extension for output file + added property "Html" - "URLTarget" in server configuration - allow select the target attribute for report URLs + added property "ReportsFile" - path to file with reports to groups associations and cache delays  + added property "ReportsListRenewTimeout" in server configuration + added property "ConfigRenewTimeout" in server configuration + added property "MimeType" for each output format in server configuration  + added property "BrowserPrint" in server configuration - allow printing by browser, added new template nav_print_browser.html + added dynamic file name generation of resulting formats (report_name_date_time) + added Windows x64 support (in WOW mode) * SERVER_REPORTS_LIST and SERVER_REPORTS_HTML variables (list of available reports) depend from user group (for internal authentification) * changed PDF export: added full Unicode support, improved performance, decreased memory requirements - fixed bug in garbage collector (Session Manager) - fixed bug with designer executable crash - fixed bug with variables lost on refresh/export ### FastReport Server 2.3 released! URL: https://www.fast-report.com/news/fastreport-server-2.3 Summary: FastReport Server 2.3 released! FastReport Server 2.3 released! v2.3  ==============  + added "scripts" folder for additional units ("uses" directive in report script)  + added logs for scheduler (add info in scheduler.log)  + added property "Reports" - "Scripts" in server configuration - set the path for "uses" directive in report script  + added property "Http" - "MaxSession" in server configuration - set the limit of maximum session threads, set 0 for unlimit  + added property "Reports" - "MaxReports" in server configuration - set the limit of maximum report threads, set 0 for unlimit  + added property "Logs" - "SchedulerLog" in server configuration - set the scheduler log file name  + added property "Scheduler" - "Active" in server configuration - enable of scheduler  + added property "Scheduler" - "Debug" in server configuration - enable writing of debug info in scheduler log  + added property "Scheduler" - "StudioPath" in server configuration - set the path to FastReport Studio, leave blank for default  * used FastReport 4.10 core  - fixed bug with MIME types in http header (content-type)  - fixed bug with default configuration (with missed config.xml)  - fixed bug with error pages  - fixed bug with "Export Setup" button in editor of scheduled task in configuration utility ### FastReport server in development URL: https://www.fast-report.com/news/fastreport-server-test Summary: FastReport server in development FastReport server in development Welcome to test our FastReport server. Now available on-line test version of the server. ### FastReport Studio 3.16 beta URL: https://www.fast-report.com/news/fastreport-studio-3.16 Summary: FastReport Studio 3.16 beta FastReport Studio 3.16 beta FastReport Studio is solution for developers who use following products in their work: Microsoft(R): Microsoft Visual Studio, Microsoft Access, Microsoft Excell, Microsoft FoxPro, and also Oracle PowerBuilder etc. FastReport Studio includes independent report designer, development means and also great number of demo reports and source texts of samples. Added User Manual, Programmer Manual, Command-Line Manual. Added Unicode support and wizards for even simpler and more comfortable automatic report generating and also built-in visual SQL-query builder for databases are worth mentioning. ### FastReport Studio 3.19 URL: https://www.fast-report.com/news/fastreport-studio-3.19-release Summary: FastReport Studio 3.19 FastReport Studio 3.19 + added new Delphi for .NET demo + added new C# demo: Report client for FastReport Server + added new C# demo: Picture - shows how to use IfrxPictureView interface + added new interface IfrxPictureView + improved interface (new buttons, splash and startup window) + added scheduler service (you can schedule your report and receive it by e-mail) + added configuration utility + added context help in designer (F1 key) + added method LoadPreparedReportFromStream(IStream *) to TfrxPreviewX + added method SavePreparedReportToStream(IStream *) to TfrxReport + added new interface:  IfrxDataBand * fixed C++ demos: variable demo, callback demo * updated C++ thread_test demo * updated C# DataSetDemo: added FrxDataSet class * updated C++ DynamicReport demo * updated: Method CreateReportObject() of IfrxReport interface has been changed in accordance to new requirements * updated Visual FoxPro demo * updated C# DataSetDemo: added FrxDataView class + sorting example ### FastReport Studio 3.20 URL: https://www.fast-report.com/news/fastreport-studio-3.20 Summary: FastReport Studio 3.20 FastReport Studio 3.20 + added interface IfrxFont. + added IfrxFrame interface + added IfrxDisplayFormat interface + added method ResetDataSet into IfrxDataBand interface + added support of NET streams  + fixed OnSaveReport event (added SaveAs argument) + added IfrxShapeView interface + added C# example of OnLoadreport and OnSaveReport events. + added OnLoadreport and onSaveReport events to IfrxDesignerEvents interface + added IfrxPage interface and GetPage enumerator for IfrxReport + improved RTF export + enhanced speed and reduced output file size of PDF export + added ParagraphGap support in PDF export + update German resources + update Turkish resources * AVG function now counts only non-Null values * RichView object is now WYSIWYG * lot of fixes and small updates * fixed IfrxMemmoView interface (added lot of properties - align, color, and etc) * modified OnSaveReport event of TfrxDesigner * property EnableLoadSaveEvents of IfrxDesigner interface splitted to EnableLoadEvent and EnableSaveEvent * updated C++ demo Variable (added lot of comments and emo report changed) * updated C# DataSetDemo example - fixed bug in AddVariable method of TfrxReport interface - fixed bug in RTF export with font style attributes - fixed bug with frames in PDF export - fixed paper size bug - fixed ParagraphGap in PDF export - fixed stack overflow error with report summary band - fixed error with dialog form - fixed big with TProgressBar property out of range on exports of blank page in HTML - fixed bug in PDF export with zero width/height of bitmap - fixed bug with checkbox object - fixed bug with datatree window - fixed error with chart datetime - fixed bug with inspector window in debug mode - fixed undo of password protected report - fixed some dataset problems - fixed ask save changes in designer - fixed PDF export (font color clNone looks as clBlack)  ### FastReport Studio 3.21 released URL: https://www.fast-report.com/news/fastreport-studio-3.21 Summary: FastReport Studio 3.21 released FastReport Studio 3.21 released + added new VB6 demos: Pictures,UserDataset and Dynamic report. + added IPersistPropertyBag interface to TfrxPreviewX ActiveX object + added Delphi for .NET example - keep reports in database + added IfrxRichView interface + added new Delphi for .NET demos (DataSetDemo and StreamExample) + added unicode support in HTML, "Rich Text" (RTF) and XML exports + added clipping in the preview + added printer fonts to fontname combobox + added transparency/backcolor to rich object * initial support of VB6 events  * modified C# Pictures example: Now it shows pictures from a demo table. * modified C# StreamExample: Now it demonstrates how to keep reports on database server. * added streaming methods to IfrxPictureView interface * changes in the databand editor * "Pictures" checkbox changed to combobox (none/jpeg/bmp/gif) in HTML export dialog  * "Styles" checkbox changed to "Continuous" in XLS and XML export dialog * update Danish resources * update Dutch resources  * update Brazilian resources - fixed C++ ActiveX demo - fixed method SelectDataset of IfrxReport. - fixed 'Size' property of the .NET Stream warapper - fixed IfrxReport::SelectDataset method. Corrected behaviour for deselection (Selected = false). - fixed IfrxComponent::FindObject method. It does not throw exception anymore in .NET environment - fixed ADO DataBase property of ADO Query and ADO Table. Now it can be set to zero. - fixed bug with incorrect codepage detection for page navigator in HTML export - fixed bug with incorrect export of EAN barcodes (digits beyond of border were croped) - fixed incorrect page breaks in RTF export - fixed shift problem - fixed monochrome bitmaps stretching - fixed copying grouped objects - fixed vband&overlay error - fixed setting of printer parameters - fixed KeepFooter + aggregate functions - fixed ado query parameters - fixes in database/table/query wizard - fixed bug with font charset in RTF export - fixed preview painting bug - fixed bug with rich when no printers installed - fixed copies in dmp export - fixed rtf expression parser - fixed bug with RTL reading brackets in PDF export - fixed input chinese chars in dialog controls - fixed shift behavior - fixed bug with right align and non-zero charspacing in PDF export - fixed bug with underline in HTML export - fixed overlay+keeptogether bug - fixed large font issues - fixed html tags ### FastReport Studio 3.22b released! URL: https://www.fast-report.com/news/fastreport-studio-3.22 Summary: FastReport Studio 3.22b released! FastReport Studio 3.22b released! Changes in FastReport Studio 3.22 * updated documentation + added new control for page headers/footers mode selection in RTF export dialog + added Frame, ShiftMode, and Align proprty to IfrxView interface + added IfrxSubreport interface + added IfrxHeader interface + added IfrxFooter interface + added IfrxMasterData interface + added IfrxDetailData interface + added IfrxSubdetail interface + added IfrxDataBand4 interface + added IfrxDataBand5 interface + added IfrxDataBand6 interface + added IfrxPageHeader interface + added IfrxPageFooter interface + added IfrxColumnHeader interface + added IfrxColumnFooter interface + added IfrxGroupHeader interface + added IfrxGroupFooter interface + added IfrxChild interface + added IfrxOverlay interface + added VB6 demo which shows how to use FindObject method, TfrxADODatabase and TfrxADOQuery objects + added IfrxStretcheable interface + added C# demo for Master/Detail relations for ADO objects + added IfrxChartAxis interface + added new types of TeeChart series + added new C# example: MailExportDemo. This example demonstrates how to use TfrxGzipCompressor and SendMail method of IfxrBuiltinExports interface. + added TfrxGzipCompressor object. + added timeout property to TfrxADOQuery + added timeout properties to TfrxADOConnection + added new C++ TeeChart demo + added new C# TeeChart demo + added new VC++ Crosstabs demo * updated CreateReportObject and CreateReportObjectEx methods of IfrxReport interface * IfrxReport->IfrxPrintOptins->PageNumbers sets the range of pages for print and export * updated TeeChart to version 7. * e-mail export now inherits the attachment file name from exports file name * update Danish resources * update German resources * preserve object names when working with clipboard * improved HTML, RTF exports * improved XML, Excel exports (thanks for Bali) * increased timeout in E-Mail export * update Danish resources * update Portuguese resources - fixed bug with export of barcodes with zoom more than two - fixed error when page number does not exist in page range in exports dialog - fixed bug with XML export (XML Parsing Error) - fixed bug with HideIfSingleDataRecord - fixed bug with empty page in HTML export - fixed IIF bug - fixed bug in XML export - fixed error with reportsummary band - fixed memory leaks when script has errors - fixed shift issues - fixed brush style bsBDiagonal and bsFDiagonal in PDF export - fixed bug with incorrect codepage of TfrxRichView in RTF export - fixed bug with margins in PDF export - fixed bug with stretched images ### FastReport Studio 3.23 released! URL: https://www.fast-report.com/news/fastreport-studio-3.23 Summary: FastReport Studio 3.23 released! FastReport Studio 3.23 released! Changes in FastReport Studio 3.23 - fixed bug with styles and numbers format in the XML export - fixed bug with continuous mode in the XML export - fixed bug with character height in PDF export - fixed aggregare error (comma in the field name) * update Portuguese resources - fixed compatibility with TLargeIntField - fixed bug with DefaultPath in XLS export+ added Charset property to IfrxFont interface + added OldStyleProgress property to IfrxReport interface + added new VB6 example of using ActiveX previews * ActiveX implemetation fixes  - fixed bug with RichText objects intersection in RTF export + added IfrxCustomCrossView, IfrxCrossView, IfrxDBCrossView interfaces ! renamed elements of frxSeriesSortOrder enumeration due to naming conflict: soNone -> so_None, soAscending -> so_Ascending, soDescending -> so_Descending ### FastReport Studio 4.5 released! URL: https://www.fast-report.com/news/fastreport-studio-4.5 Summary: FastReport Studio 4.5 released! FastReport Studio 4.5 released! + added activation + added support of multiple attachments in e-mail export (html with images as example) + added support of unicode (UTF-8) in e-mail export + added ability to change templates path in designer + added OnReportPrint script event + added TfrxDMPMemoView.TruncOutboundText property - truncate outbound text in matrix report when WordWrap=false + added new frames styles fsAltDot and fsSquare + added new event OnPreviewDblClick in all TfrxView components + added ability to change AllowExpressions and HideZeros properties in cross Cells (default=false) + added IgnoreDupParams property to DB components + added auto open dataset in TfrxDBLookupComboBox + added new property TfrxADOQuery.LockType + added TfrxPictureView.HightQuality property(draw picture in preview with hight quality, but slow down drawing procedure) + added unicode input support in RichEditor + added new function TfrxPreview.GetTopPosition, return a position on current preview page + added new hot-keys to Code Editor - Ctrl+Del delete the word before cursor, Ctrl+BackSpace delete the word after cursor(as in Delhi IDE)  - all language resources moved to UTF8, XML - fixed bug with html tags [sup] and [sub] - fixed width calculation in TfrxMemoView when use HTML tags - fixed bug with suppressRepeated in Vertical bands - fixed bug when designer not restore scrollbars position after undo/redo - fixed bug in CalcHeight when use negative LineSpace - fixed bug with Cross and TfrxHeader.ReprintOnNewPage = true - fixed  converting from unicode in TfrxMemoView when use non default charset - [fs] fixed bug with "in" operator - fixed bug with aggregate function SUM  - fixed bug when use unicode string with [TotalPages#] in TfrxMemoView - fixed bug with TSQLTimeStampField field type - fixed bug in XML/XLS export - wrong encode numbers in memo after CR/LF - fiexd bug in RTF export  - fixed bug with undo/redo commands in previewPages designer - fixed bug with SuppressRepeated when use KeepTogether in group ### FastReport Studio 4.6 released! URL: https://www.fast-report.com/news/fastreport-studio-4.6 Summary: FastReport Studio 4.6 released! FastReport Studio 4.6 released! + added IfrxCheckBoxView interface + added encryption for password protected reports. Please, backup your password protected reports prior to use this version. + added property 'Visible' to IfrxComponent interface + added method SetGlobalVariable to IfrxReport interface + added StrikeOut property to IfrxFont interface + added support of Enhanced Metafile (EMF) images in Rich Text (RTF), Open Office (ODS), Excel (XLS) exports + added tag, the text concluded in tag is not broken by WordWrap, it move entirely  + added ability to move band without objects (Alt + Move) + added ability to output pages in the preview from right to left ("many pages" mode), for RTL languages(PreviewOptions.RTLPreview)  + added new property Hint for all printed objects, hints at the dialog objects now shows in StatusBar  + added new property TfrxReportPage.PageCount like TfrxDataBand.RowCount + added sort by name to data tree + added TfrxStyles class in script rtti + changes in the Chart editor: ability to change the name of the series, ability to move created series, other small changes  + [fs] fixed type casting from variant(string) to integer/float - changes in report inherit: FR get relative path from current loaded report(old reports based on application path works too) - fixed bug in CrossTab when set charset different from DEFAULT_CHARSET - fixed bug in RTF export with some TfrxRichView objects - fixed bug when print on landscape orientation with custom paper size - fixed bug when use network path for parent report - fixed bug with Band.Allowslit = True and ColumnFooter - fixed bug with drawing subreport on stretched band - fixed bug with embedded fonts in PDF export - fixed bug with long ReportTitle + Header + MaterData.KeepHeader = true - fixed bug with RTL in PDF export - fixed bug with SubReport in multi column page - fixed bug with Subreport.PrintOnParent = true in inherited report - fixed bug with the addition of datasets by inheritance report  - fixed bug with width calculation when use HTML tags in memo  - fixed flicking in preview when use OnClickObject event - fixed free space calculation when use PrintOnPreviousPage - fixed preview bug with winXP themes and in last update - fixed subreports  inherit - Thumbnail and Outline shows at right side for RTL languages  - [fs] fixed bug with late binding ### FastReport Studio 4.7 released! URL: https://www.fast-report.com/news/fastreport-studio-4.7 Summary: FastReport Studio 4.7 released! FastReport Studio 4.7 released! FastReport Studio 4.7 released! • Added new demonstration program for Sybase PowerBuilder • Improved DrillDownd mechanism, should work correct with master-detail-subtetail nesting • Extened functionality of Vertical Bands • Extended interface of TfrxADOQuery object - added ability to dynamically set Master/Detail relation between SQL queries and dynamically set parameters of SQL queries. • Extended interface of TfrxReport object. • Extended functionality of build-in FastScript language. • Improved export abilites. • Improved compability with scripting languages like VB Script. • Fixed several demo programms. • Extended functionality of TfrxLineView object - now you can dynamically create LineView object and control its properties by external application. • Extended functionality of TfrxADOTable object - added new properties for access to table header - field names, field types and field size. • Fixed bug in vertical bands • Fixed small memory leak in subreports • Fixed minor bugs in Object Inspector and extended functionality of Objct Inspector • Fixed bug when Engine try to split non-stretcheable view and gone to endless loop • Fixed bug with HTML tags in memo when use shot text and WordWrap • Fixed MailExport and extended its diagnostic messages. FastReport Studio – is a “win32” report generator for software developers and business users.  Our customers can order FastReport Studio with discount. ### FastReport Studio 4.8 released! URL: https://www.fast-report.com/news/fastreport-studio-4.8 Summary: FastReport Studio 4.8 released! FastReport Studio 4.8 released! + added ability to split big bands(biggest than page height) by default  + added ability to use keeping(KeepTogether/KeepChild/KeepHeader) in multi-column report + added BDE engine + added DBX engine + added confirmation reading for TfrxMailExport + added new enumerations drDontEditReportScript and drDontEditInternalDatasets to TfrxDesignerRestriction + added new TfrxDesignerRestriction: drDontEditReportScript and drDontEditInternalDatasets + added PrnOutFileName property to printer options + added RTF 4.1 support for TfrxRichText object + added TfrxDesigner.MemoParentFont property + added TfrxGroupHeader.ShowChildIfDrillDown property   + added TfrxPrintOptions.PrnOutFileName property to set ability to print to file + added TfrxReportOptions.HiddenPassword property to set password silently from code + added TimeOut field to TfrxMailExport form  + added checksum calculating for  2 5 interleaved barcode * changed PDF export: added full unicode support, improved performance, decreased memory requirements - changed inheritance mechanism, correct inherits of linked objects (fixups) - fixed "Page" and "Line" variables inside vertical bands - fixed ActiveForm  ActiveX object - fixed bug in multi-column page when band overlap stretched PageHeader - fixed bug when cross tab cut the text in corner, when corner height greater than column height - fixed bug when designer place function in commented text block - fixed bug when designer shows commented functions in object inspector - fixed bug when engine delete first space from text in split Memo - fixed bug when Engine try to split non-stretcheable view and gone to endless loop - fixed bug when group doesn't fit on the whole page - fixed bug with displacement of subreport when use PrintOnParent property in some cases - fixed bug with DownThenAcross in Cross Tab - fixed bug with emf in ODT export - fixed bug with HTML tags in memo when use shot text and WordWrap - fixed bug with Mirror Mrgins in RTF, HTML, XLS, XML, OpenOffice exports - fixed bug with outline when build several composite reports in double pass mode - fixed bug with some codepage which use two bytes for special symbols (Japanese ans Chinese codepages) - fixed bug with using KeepHeader in some cases - fixed bug with using ReprintOnNewPage - fixed designer restrictions constants - fixed problem with PageFooter and ReportSymmary when use PrintOnPreviousPage property - fixed small memory leak in subreports - improved AddFrom method - copy outline - improved DrillDownd mechanism, should work correct with master-detail-subtetail nesting  - improved functional of vertical bands, shows memos placed on H-band which doesn't across VBand, also calculate expression inside it and call events (like in FR2) - improved script compilation - improved unsorted mode in crosstab(join same columns correctly) - improved WatchForm TListBox changet to TCheckListBox ### FastReport Supports .NET 10: New Opportunities for Business Development URL: https://www.fast-report.com/news/support-net-10 Summary: A new release has been launched, offering full support for the .NET 10 platform within the FastReport .NET reporting engine and libraries Business Graphics, FastCube, FastScript. A new release has been launched, offering full support for the .NET 10 platform within the FastReport .NET reporting engine and libraries Business Graphics, FastCube, FastScript. Our team is pleased to announce a significant milestone in the product’s evolution: a new release has been launched, offering full support for the .NET 10 platform within the FastReport .NET reporting engine. This update enables you to utilize the latest framework capabilities when creating complex reports and expand the functionality of your solutions. Among the key .NET 10 innovations that are especially valuable for business projects are: 1. Improved JIT compiler performance — reduced application startup and execution time, which is critical for high-load systems. 2. Enhanced asynchronous programming capabilities — simplified handling of long-running operations (data queries, report exports) without blocking the user interface. 3. Updated JSON API — faster serialization and deserialization of data commonly used in integrations with enterprise systems. 4. Increased security through new vulnerability protection mechanisms, which are essential when processing confidential business information. Integration of .NET 10 in FastReport .NET provides direct access to these features during report creation. You can now: Build reports using asynchronous data sources; Optimize generation speed thanks to improved JIT performance; Easily integrate reports into microservice architectures with JSON-based data exchange. Support for .NET 10 has also been added to the Business Graphics .NET data visualization library, the FastCube .NET C# library for real-time analytical processing, and FastScript .NET — a cross-platform library for executing complex C# scripts in environments without code generation. At Fast Reports, we consistently adhere to the principle of promptly and efficiently adopting new technologies. Our goal is to provide developers with tools that enable them to create modern, high-performance, and secure business solutions. Support for .NET 10 is another step in this direction, confirming our commitment to innovation and market needs. ### FastReport VCL URL: https://www.fast-report.com/products/fast-report-vcl Summary: VCL-component set for generating reports and documents for Delphi, C++Builder, RAD Studio and Lazarus VCL-component set for generating reports and documents for Delphi, C++Builder, RAD Studio and Lazarus VCL-component set for generating reports and documents for Delphi, C++Builder, RAD Studio and Lazarus FastReport VCL VCL-component set for generating reports and documents for Delphi, C++Builder, RAD Studio and Lazarus Download the demo Online demo Documentation Reports outside of templates Create labels, price tags, geo-reports with maps, infographics, along with traditional tabular and multi-level hierarchical reports. The "Text" object can show one or more lines of text. It can contain text mixed with expressions and database fields, supports simple HTML tags (b,i,u,strike,sub,sup,font color). All types of text alignment, text rotation at any angle, filling, framing are supported. The "Table" object provides the convenience of creating and editing tabular reports. A large selection of supported barcodes PDF417, DataMatrix, Aztec, MaxiCode and many others. Support for geographical maps of OSM and ESRI formats, as well as GPX routes. Indicators for data visualization. Shape, Diagram, Line, Table, Rich Text, "Checkbox", Image, Gradient, OLE Object, Pivot Table, etc. Links to page objects inside and outside the report. Building multiple reports in one preview window. The preview allows you to generate, print or export the received report to one of the many formats and send it by e-mail. The user can edit data and change some properties of objects in the preview without the report designer! Print. FastReport offers a wide range of printing options: cutting large pages into small ones, printing several small pages on a large one, printing with scaling. Support for matrix printers. FastReport XML (yes, FastReport stores reports in true XML format - you can be sure of the safety of your data!). Sending the report by email via SMTP/MAPI. Export to many formats PDF, HTML, HTML5, SVG, RTF, XLS, XML, BMP, JPEG, TIFF, E-mail, CSV, TXT, GIF, ODS, ODT, Excel (98, 2000, XP). Many of these formats are government and business standards for document management. Export complex objects such as RichText, Chart, Maps to vector primitives. Data Security Protect your templates and reports with strong data encryption. Adapt all source codes to your solutions. We place great importance on the protection of your data. Source code. Professional and Enterprise Editions of the product include all the source code for FastReport. This is very beneficial for companies that want to adapt the product to their own special needs. Avoid ‘rogue’ components and be in full control of all your software code, giving you absolute security! Reports only have access to data specified by your application and data can be made read-only. Encrypted templates and reports (by Rijndael-like algorithm). Data can be protected by a secure document password. Be confident in the security and confidentiality of your reports! Flexibility and interactivity Connect your own objects, export filters, functions, database engines without problems using the open FastReport architecture. Built-in script shell that supports 4 languages: PascalScript, C++ Script, BasicScript, and JScript. Interactive forms, drill-down (drop) reports, call another report with detailed information from the preview window with one mouse click. Flexible and open architecture. If FastReport doesn’t do enough for you, you can enhance it by creating and connecting your own objects (export filters, functions, and database engines) to your reports. Inheritance of report templates. Reports can be independent of your application, so the application does not require recompilation when a user requires changes in a report. Storage of documents Save and upload report templates and prepared reports to different file repositories. I/O transport filters allow you to save and load report templates and prepared reports to different file storages, as well as save exported files. The following remote storage is supported: Email, FTP, DropBox, Skydrive, Box.com , Google Drive. Easy integration with any data FastReport VCL supports connection to many popular databases and third-party libraries, such as: ADO, BDE, DBX, IBX, FIBPlus, FireDAC and others. FastReport supports many libraries for database access: FireDAC, ADO, BDE, DBX, IBX, and FIBPlus, so providing access to practically all databases, including Oracle and many third-party libraries. Data generated within your application. Passing out of both static and dynamic records. Internationality Work comfortably in any language of the world and even in several languages at the same time! FastReport VCL supports more than 32 localization languages. UNICODE. Reports can use any language in the world, and even multiple languages simultaneously, maintaining true internationality! The FastReport interface is localized in dozens of languages. The file format allows reports to be translated at a local level. Documentation and help files are available in English, German, Polish. Learn more Learn more Client-Server components Learn more Full Review of FastGrid Library's Capabilities FastReport VCL Ultimate users have probably already noticed that the installer now includes two new options: FastEditors VCL and FastGrid VCL. A new demo has also been added to the DemoCenter: FastGrid VCL Demo. An overview of the FastGrid library for VCL and Lazarus: data visualization, editing, and structuring. Sorting, filtering, grouping, convenient data editors — all in one article! New Report Validation System in FastReport VCL We have frequently received requests from technical support for functionality to automatically validate reports, and we are pleased to announce its inclusion in the 2026.2.0 release. The "File" menu in the report designer now features "Validate" and "Validation Rule Settings" options. This allows users not only to check reports but also to manage the set of rules, including the creation of custom ones In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. Using Watermarks in FastReport VCL The latest versions of FastReport VCL now feature watermarking functionality. Watermarks are labels embedded in electronic documents, images, videos, audio, or other digital content. Their purpose is to confirm authorship, protect against copying, and track file distribution. In this article, we'll take a detailed look at creating and using watermarks in FastReport VCL reports. An example of watermark use is available in the Demo included with FastReport VCL. The article provides a detailed overview of the watermark functionality in FastReport VCL — covering both the visual interface and programmatic methods using Delphi code and report scripts. Any other questions? Contact the manager ### FastReport VCL - FAQ URL: https://www.fast-report.com/faqs/fastreport-vcl Summary: Learn all about FastReport VCL, its functionalities, and how to optimize your reporting solutions. Learn all about FastReport VCL, its functionalities, and how to optimize your reporting solutions. Do you provide technical support for FastReport VCL? Yes, for customers with an active subscription Is there a paid enhancement to the FastReport VCL functionality? Yes, on a contractual basis. Do I need to attach a FastReport VCL license file to my product under development? Registration of a single software license gives you the right to write and compile your own application programs that use the software contained in the Product. All copies of the software that you write and distribute must indicate the Licensor's copyright. You can find more information in the license agreement. Please explain in detail what is the difference between the main types of licensing? Basically, our products have three types of licensing: Single License for one seat (for one developer). Team License – 4 seats. Additionally, it includes a license for the Build server. Site License – an unlimited number of seats registered at the same geographical address. Additionally, it includes a license for the Build server. How much does it cost to renew FastReport VCL licensing? And what will I get from it? You can renew your licensing in your control panel. Renewals include technical support and product updates. It is available at 1/2 of the full price per year. When your license has expired, you have two options: - Renew your license. This will allow you to receive technical support and product updates. - Continue to use FastReport VCL. In this case, you will not be able to use the latest product updates and receive technical support. Is it possible to use FastReport VCL on the server? Yes, on a Windows server if you are using Embarcadero's IDE or if you are using Lazarus, on a Windows server with Linux (multithreading limitations), FastReport VCL, starting with the Enterprise version, includes a set of server components Which IDE versions does FastReport VCL support? With the release of FastReport VCL 2023.2, only IDEs from Delphi 2010 to the most recent versions are supported. Can I dynamically change the localization of the designer and the preview window? Make the language file a mkall.bat utility (located in the language directory) and include the language dynamically: ``` uses frxRes; frxResources.LoadFromFile('english.xml'); ``` How do I convert reports from Report Builder to Fast Report? Add the ConverterRB2FR module to the uses section. In run-time, in the Fast Report designer, you will be able to open Report Builder reports and resave them in the Fast Report format. In the script, I'm trying to set boundaries for Memo: Memo1.Frame.Typ := [ftLeft, ftRight, ftTop, ftBottom]. I get an error. The Fast Report script does not support multiples. You need to do this: ``` Memo1.Frame.Typ := ftLeft + ftRight + ftTop + ftBottom; ``` When the project is being compiled, the following message is displayed 'Class TfrxButtonControl not found' (TfrxRichView, TfrxCrossView, TfrxOLEView,TfrxBarCodeView, TfrxCheckBoxView, TfrxGradientView, TfrxChartView, TfrxADOQuery etc.). Add TfrxDialogControls (TfrxRichObject, TfrxCrossObject, TfrxOLEObject, TfrxBarCodeObject, TfrxCheckBoxObject, TfrxGradientObject, frxChartObject, TfrxADOComponents etc) to the report from the Fast Report Component palette or add frxDCtrl, frxRich, frxCross, frxOLE, frxBarcode, frxChBox, frxGradient, frxChart, frxADOComponents modules to the uses section. How to insert your report name in the preview title? To insert your report name in the title, run: ``` frxReport1.ReportOptions.Name := 'My report'; ``` I have lost the object inspector in the report designer (data tree, standard toolbar) In the designer, go to the View|Settings menu and click the Restore Settings button How can I put the latest record from the database on a separate page? ``` procedure MasterData1OnBeforePrint(Sender: TfrxComponent); begin if MasterData1.DataSet.RecNo = MasterData1.DataSet.RecordCount-1 then Engine.NewPage; end; ``` How do I convert reports from QuickReport to Fast Report? Add the ConverterQR2FR module to the uses section and: ``` conv := TConverterQr2Fr.Create; conv.Source := QuickRep1; conv.Target := FReport; conv.Convert; FReport.SaveToFile('converted_fromQR.fr3'); ``` In the preview, the text displayed in TfrxMemoView is different from TfrxRichView, even though the font type and size are the same. Set the `TfrxRichView.Wysiwyg` property to False. After closing the preview window, Delphi fails to retrieve the values of the report variables Before generating the report, add: ``` frxReport1.EngineOptions.DestroyForms:=False; ``` How to load an RTF file in a script into TfrxRichView component? Use this code: ``` Rich1.RichEdit.Lines.LoadFromFile() ``` How do I stop building a report? Use this code: ``` frxReport1.Engine.StopReport; ``` How to display columns not from top to bottom, but from left to right? If you set the number of columns for a page, then the entries will be displayed from bottom to top, and if you set the number of columns for a band, then from left to right. In the designer, the text in the memo is unreadable when typing text in a memo with a font size set to 6 pt. In the designer, go to the View|Settings menu and uncheck the Use object font option The colors in the band titles disappeared. What to do? Enable the "Show band titles" option in the designer in the View-Settings menu I have created a report using Wizard. Now I can't change the color, font of the report elements Wizard created the report using styles. You need to either change the appropriate style or clear the style of the object I cannot change the connection parameters for the ADODataBase in the script, and the application shows an error "Operation is not allowed because object is open." It was possible in version 3. How can I resolve the issue of changing the database connection details? Try setting ``` ADODataBase.Connected=False ``` before changing the connection settings, and then reconnect How can you print empty cells to the end of the page if MasterData1 contains 3-5 rows of data? Add another`MasterData2` to the report with empty cells and manage the `MasterData2.RowCount` value in the script in the data footer engine How can I repeat the printing of MasterData the required number of times? The number is specified in one of the record fields. Add the `DetailData` band to the report. Set `DetailData.RowCount=1` (This is required!) In the `MasterData1OnBeforePrint` event, set `DetailData.RowCount:=` On the `DetailData` band, place a memo with fields from the dataset linked to `MasterData.` Set the `MasterData` height to 0: `MasterData.Height=0` In the report script, the values of Page1.PaperHeight, Page1.TopMargin, etc., are represented in mm, while the values of the height of objects are represented in pixels. How to convert mm to pixels? Use the constants `fr01cm` (to convert mm to pixels), `fr1cm` (to convert cm to pixels) in the script Depending on certain conditions, I want to hide/show specific pages of the report in the script, but the code Page1.Visible := False does not hide Page1. You can set the visibility of the report page before it starts rendering, for example, in the main report procedure. Your code will not work in `Page1.OnBeforePrint`. In the FastReport2 version, when creating a MasterBand, it is possible to select Virtual DataSet. FR4 does not have such item Set the band's `RowCount` property Does FastReport work with Delphi XE7 to build a 64-bit application? Yes Which driver is used to connect ODBC for SQL Server? ADO, but you can use others as well Is it true that using TfrxBDEComponents is impossible and instead you always need to use TfrxDBDataset and TDataSet? Yes, you either need to make internal datasets yourself or look for implementations I have several custom non-convertible QR components (e.g., TMyQRLabel, which only modify default properties). Is there a way to convert them? Yes, you can add a condition with `TQRLabel` in your class name in the converter module. Is there a way to pass code in events when using QR code, for example, before printing for the band? The script does not convert If the QR report inherits from another QR report, the conversion fails. Is there a way around this? Support for inherited forms is not yet available. How do I load and unload from the database? When reading, an "invalid format" error appears. ``` Set Stream.Position := 0; ``` I need to pass a Unicode string to the report. How can I do that? Pass the string in UTF8 encoding. For example, the character "diameter" can be passed with the following code: ``` frxReport1.Script.Variables['test']:= UTF8Decode('⌀'); ``` When building a report with a cross table, there is an error «Could convert variant of type (String) into type (Double)». If string values are used in a cross table cell, then you need to disable the aggregate function in the "Cross Tables" editor. Do you have a Technical Support Statement? Yes, you can find at: **[Technical Support Statement](https://www.fast-report.com/technical-support-regulations)** Where can I contact FastReport VCL technical support? Users can send requests via email to support@fast-report.com, through the request form on the website from the **[client panel](https://cpanel.fast-report.com/)**, or via **[online chat](https://www.fast-report.com/)** How can I add a button to the preview window? Use this code: ``` uses frxClass, frxPreview, ComCtrls, ToolWin, Buttons; ... procedure TForm1.ButtonClick(Sender: TObject); begin ShowMessage('My Button pressed'); end; procedure TForm1.frxReport1Preview(Sender: TObject); var Button: TSpeedButton; begin // Add a new button Button := TSpeedButton.Create(TfrxPreviewForm(frxReport1.PreviewForm).ToolBar); Button.Parent:=TfrxPreviewForm(frxReport1.PreviewForm).ToolBar; Button.Caption:='My Button'; Button.Width:=60; Button.Left:=650; // New button handler Button.OnClick:=ButtonClick; end; ``` You can also add a button to the standard Preview not from the OnPreview event, but from the OnEndDoc event. This option is useful for two cases: 1) When the handler of this button does something with the preview data. In this case, it is undesirable to create the button from OnPreview, as it will be active even during report generation. 2) When the additional button should appear under certain conditions, which are set in the pre-print dialog (frxDialogPage). For PDF Export Button ``` uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, frxClass, frxExportPDF, frxPreview, frxDsgnIntf, Menus; type TForm1 = class(TForm) frxReport1: TfrxReport; frxPDFExport1: TfrxPDFExport; SaveDialog1: TSaveDialog; procedure FormCreate(Sender: TObject); procedure frxReport1Preview(Sender: TObject); procedure PDFExport(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.PDFExport(Sender: TObject); begin if SaveDialog1.Execute then begin frxPDFExport1.FileName:=SaveDialog1.FileName; TfrxPreview(frxReport1.Preview).Export(frxPDFExport1); end; end; procedure TForm1.FormCreate(Sender: TObject); begin frxReport1.ShowReport; end; procedure TForm1.frxReport1Preview(Sender: TObject); var i, j, mi: integer; begin TfrxPreviewForm(frxReport1.PreviewForm).PdfB.OnClick:=PDFExport; for i := 0 to frxExportFilters.Count - 1 do begin if TfrxCustomExportFilter(frxExportFilters[i].Filter).ClassName = 'TfrxPDFExport' then mi:=i; end; TfrxPreviewForm(frxReport1.PreviewForm).ExportPopup.Items[mi].OnClick:=PDFExport; for i:=0 to TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items.Count-1 do begin if TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[i].Caption=TfrxPreviewForm(frxReport1.PreviewForm).ExportB.Hint then begin for j:=0 to TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[i].Count-1 do if TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[i][j].Caption=TfrxPreviewForm(frxReport1.PreviewForm).ExportPopup.Items[mi].Caption then TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[i][j].OnClick:=PDFExport; end; if TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[i].Caption=TfrxPreviewForm(frxReport1.PreviewForm).PdfB.Hint then TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[i].OnClick:=PDFExport; end; end; end. ``` There is a list of reports. For preview, when selecting a report, you need to show the user only the first page of the report. How to do it? Use the code ``` procedure TForm1.frxReport1Progress(Sender: TfrxReport; ProgressType: TfrxProgressType; Progress: Integer;) begin if Progress > 1 then frxReport1.Engine.StopReport; end; procedure TForm1.Button1Click(Sender: TObject); begin frxReport1.PrepareReport(); while frxReport1.PreviewPages.Count > 1 do frxReport1.PreviewPages.DeletePage(1); frxReport1.ShowPreparedReport; end; ``` The TfrxPreview component does not have a button panel similar to the one in the standard preview window. Is it possible to create your own panel similar to the standard one? Of course, you can. You can create a panel with buttons and use the following `TfrxPreview` methods for each ``` frxPreview1.Print button; frxPreview1.LoadFromFile; frxPreview1.SaveToFile; frxPreview1.Export(Filter); frxPreview1.Find; frxPreview1.Zoom:=frxPreview1.Zoom + 0.25; frxPreview1.Zoom:=frxPreview1.Zoom - 0.25; frxPreview1.OutlineVisible := frxPreview1.OutlineVisible; frxPreview1.ThumbnailVisible:=not frxPreview1.ThumbnailVisible; frxPreview1.PageSetupDlg; frxPreview1.Edit; frxPreview1.First; frxPreview1.Prior; frxPreview1.PageNo := 1; frxPreview1.Next; frxPreview1.Last; ``` How do I hide a menu button in the designer? Similar to the preview window: ``` procedure TForm1.frxDesigner1Show(Sender: TObject); begin if Sender is TfrxDesignerForm then begin TfrxDesignerForm(Sender).OpenB.Visible := False; end; end; procedure TForm1.frxDesigner1Show(Sender: TObject); var i: integer; begin if Sender is TfrxDesignerForm then begin for i:=0 to TfrxDesignerForm(Sender).ObjectsTB1.ButtonCount-1 do if TfrxDesignerForm(Sender).ObjectsTB1.Buttons[i].ImageIndex in [30, 32] then //the COPY APPEARANCE and SERVICE TEXT buttons are hidden TfrxDesignerForm(Sender).ObjectsTB1.Buttons[i].Visible:=False; TfrxDesignerForm(Sender).DataTree.FunctionsTree.Visible:=False; TfrxDesignerForm(Sender).DataTree.ClassesTree.Visible:=False; end; end; ``` How to implement editing of TfrxRichView and TfrxPictureView in the preview window using the standard TfrxRichView and TfrxPictureView editing dialog boxes? Use the code ``` uses frxRich, frxRichEditor, frxDesgn; procedure TForm1.frxReport1ClickObject(Sender: TfrxView; Button: TMouseButton; Shift: TShiftState; var Modified: Boolean); begin if Sender is TfrxRichView then with TfrxRichEditorForm.Create(Form1) do begin RichView := TfrxRichView(Sender); Modified := ShowModal = mrOk; Free; end; end; uses frxDesgn, frxEditPicture; procedure TForm1.frxReport1ClickObject(Sender: TfrxView; Button: TMouseButton; Shift: TShiftState; var Modified: Boolean); begin if Sender is TfrxPictureView then with TfrxPictureEditorForm.Create(Form1) do begin Image.Picture.Assign(TfrxPictureView(Sender).Picture); Modified := ShowModal = mrOk; if Modified then TfrxPictureView(Sender).Picture.Assign(Image.Picture); Free; end; end; ``` How do I change the connect string for TfrxADODataBase to avoid getting an error message if the user's connect string is different from the connect string set by the developer in the report template? To implement this functionality, you need to disable the connection when loading a report in the `TfrxReport.OnBeforeConnect` event ``` var Form1: TForm1; Connect: Boolean; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Connect:=False; frxReport1.LoadFromFile('C:\test.fr3'); Connect:=True; TfrxADODataBase(frxReport1.FindObject('ADODatabase1')).Connected := False; TfrxADODataBase(frxReport1.FindObject('ADODatabase1')).DatabaseName := 'Provider=Microsoft.Jet.OLEDB.4.0; User ID=Admin; Data Source=C:\Program Files\FastReports\FastReport 4\Demos\Main\demo.mdb'; TfrxADODataBase(frxReport1.FindObject('ADODatabase1')).Connected := True; frxReport1.ShowReport(); end; procedure TForm1.frxReport1BeforeConnect(Sender: TfrxCustomDatabase; var Connected: Boolean); begin if not Connect then Connected:=False; end; ``` How can I change the paper type when printing a report? You can access all fields of the DEVMODE structure in the `OnPrintPage` event. For example, to change the DM_MEDIATYPE field, you can use the following code (and similarly for other fields): ``` uses frxprinter; procedure frxReport1PrintPage(Page: TfrxReportPage; CopyNo: Integer); procedure ChangeMediaType(mType: Integer); begin if frxPrinters.Printer is TfrxPrinter then with TfrxPrinter(frxPrinters.Printer) do begin DeviceMode.dmFields := DeviceMode.dmFields or DM_MEDIATYPE; DeviceMode.dmMediaType := mType; SetPrintParams(Page.PaperSize, Page.PaperWidth, Page.PaperHeight, Page.Orientation, Page.Bin, Integer(Page.Duplex), frxReport1.PrintOptions.Copies); end; end; begin if idx = 0 then ChangeMediaType(DMMEDIA_TRANSPARENCY) else if idx = 1 then ChangeMediaType(DMMEDIA_GLOSSY) else ChangeMediaType(DMMEDIA_STANDARD); inc(idx); end; ``` Two TfrxReportPage objects are generated in the report. On the first page, data for the front side of the sheet is printed, and on the second page, data for the back side is printed. For duplex printing, it is necessary to print the front and back sides alternately. How can this be implemented? You can re-sort the preview pages after the report is generated: ``` var i, j: integer; page : TfrxReportPage; begin frxReport1.PrepareReport(); j := frxReport1.PreviewPages.Count div 2; page := TfrxReportPage.Create(nil); for i := 0 to j - 2 do begin page.AssignAll(frxReport1.PreviewPages.Page[j + i]); frxReport1.PreviewPages.AddEmptyPage(i * 2 + 1); frxReport1.PreviewPages.ModifyPage(i * 2 + 1, page); frxReport1.PreviewPages.DeletePage(j + i + 1); end; page.Free; frxReport1.ShowPreparedReport; end; ``` Can I add text (such as a watermark) to pages that have already been formed? You can add text as a preview in the `TfrxReport.OnEndDoc` event ``` procedure TForm1.frxReport1EndDoc(Sender: TObject); var p: TfrxReportPage; m: TfrxMemoView; i: integer; begin frxReport1.Preview.Lock; for i := 0 to frxReport1.PreviewPages.Count - 1 do begin p:=TfrxReportPage(frxReport1.PreviewPages.Page[i]); m:=TfrxMemoView.Create(p); m.CreateUniqueName; m.SetBounds(0, 0, (p.PaperWidth - p.RightMargin - p.LeftMargin) * fr01cm, (p.PaperHeight - p.TopMargin - p.BottomMargin) * fr01cm); m.Text := 'Demo'; m.Rotation := 45; m.Font.Size := 128; m.VAlign := vaCenter; m.HAlign := haCenter; frxReport1.PreviewPages.ModifyPage(i,p); end; frxReport1.Preview.UnLock; end; //and before directly printing a page in an event TfrxReport.OnPrintPage procedure TForm1.frxReport1PrintPage(Page: TfrxReportPage; CopyNo: Integer); var m: TfrxMemoView; begin m:=TfrxMemoView.Create(page); m.CreateUniqueName; m.SetBounds(0, 0, (page.PaperWidth - page.RightMargin - page.LeftMargin) * fr01cm, (page.PaperHeight - page.TopMargin - page.BottomMargin) * fr01cm); m.Text := 'Demo'; m.Rotation := 45; m.Font.Size := 128; m.VAlign := vaCenter; m.HAlign := haCenter; end; ``` How do I programmatically hide a column in DBCrossView? Try just setting the `width=0` ``` procedure Cross1OnCalcWidth(ColumnIndex: Integer; ColumnValues: Variant; var Width: Extended); begin if ColumnIndex=0 then Width:=0; end; ``` In the report script, I need to set the file name for the export filter, but the export filter classes are missing from the script. How can I add them? In Delphi: ``` frxReport1.Script.AddClass(TfrxCustomExportFilter, 'TComponent'); frxReport1.Script.AddClass(TfrxCustomImageExport, 'TfrxCustomExportFilter'); frxReport1.Script.AddClass(TfrxBMPExport, 'TfrxCustomImageExport'); frxReport1.Script.AddClass(TfrxRTFExport, 'TfrxCustomExportFilter'); ... frxReport1.Script.AddObject('frxRTFExport1',frxRTFExport1); frxReport1.Script.AddObject('frxBMPExport1',frxBMPExport1); ... In the script: Code frxRTFExport1.FileName := 'myFilename.rtf'; ``` How can I get access to RTF text? (something like string s:=Rich.RichText.Lines.RTF) In the code above, when you click on TfrxRichView, its contents are copied to Memo1 in the dialog form: ``` procedure Rich1OnPreviewClick(Sender: TfrxView; Button: TMouseButton; Shift: Integer; var Modified: Boolean); var st: TMemorystream; begin st:=TMemoryStream.Create; Rich1.RichEdit.StreamFormat := 0; Rich1.RichEdit.Lines.SaveToStream(st); st.Position := 0; Memo1.Lines.LoadFromStream(st); st.Free; DialogPage1.ShowModal; end; ``` How do I add the SendToBack function to my script? Use the code ``` constructor TFunctions.Create(AScript: TfsScript); begin inherited Create(AScript); with AScript do begin with TfsClassVariable(Find('TfrxView')) do AddMethod('procedure SendToBack',CallMethod); end; end; initialization fsRTTIModules.Add(TFunctions); ``` Is it possible to change the font style in TfrxMemoView depending on the state of the group header (collapsed/expanded)? To do this, you need to register a custom function in the report script that will return the state of the group header ``` function TForm1.frxReport1UserFunction(const MethodName: String; var Params: Variant): Variant; begin if MethodName = 'CHECKDRILLSTATE' then Result := frxReport1.DrillState.IndexOf(Params[0]); end; procedure TForm1.FormShow(Sender: TObject); begin frxReport1.AddFunction('function CheckDrillState(DrillName : string): integer'); end; ``` and in the report script itself, check the state of the group header and set the required font style ``` procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent); begin if CheckDrillState(GroupHeader1.DrillName) <> - 1 then Memo6.Font.Style := fsBold else Memo6.Font.Style := 0; end; ``` Building a list of functions: Use the code ``` unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, frxClass, fs_itools, fs_xml, frxRes, frxrcDesgn, frxDesgn, ComCtrls; type TForm1 = class(TForm) frxReport1: TfrxReport; TreeView1: TTreeView; procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormShow(Sender: TObject); var XML: TfsXMLDocument; procedure SetImageIndex(Node: TTreeNode; Index: Integer); begin Node.ImageIndex := Index; Node.StateIndex := Index; Node.SelectedIndex := Index; end; procedure AddFunctions(xi: TfsXMLItem; Root: TTreeNode); var i: Integer; Node: TTreeNode; s: String; begin s := xi.Prop['text']; if xi.Count = 0 then s := Copy(s, Pos(' ', s) + 1, 255) else { function } s := frxResources.Get(s); { category } if CompareText(s, 'hidden') = 0 then Exit; Node := TreeView1.Items.AddChild(Root, s); if xi.Count = 0 then Node.Data := xi; if Root = nil then Node.Text := frxResources.Get('dtFunc'); if xi.Count = 0 then SetImageIndex(Node, 52) else SetImageIndex(Node, 66); for i := 0 to xi.Count - 1 do AddFunctions(xi[i], Node); end; begin XML := TfsXMLDocument.Create; TreeView1.Images := frxResources.MainButtonImages; frxReport1.Script.AddRTTI; GenerateXMLContents(frxReport1.Script, XML.Root); TreeView1.Items.BeginUpdate; TreeView1.Items.Clear; AddFunctions(XML.Root.FindItem('Functions'), nil); TreeView1.FullExpand; TreeView1.TopItem := TreeView1.Items[0]; TreeView1.Items.EndUpdate; end; end. ``` How to create a report where a dialog box appears at the beginning of its execution Create a report where a dialog box appears at the beginning. In the dialog, choose one of two options: continue executing the current report or call a new report from it. When calling a new report, you need to close the preview form of the first report. Otherwise, you will get the following behavior: after calling the second report from the first one, it will execute, show the data, and when closing the preview window of the second report, you will see an empty preview window of the first report. Next, use a custom function in Delphi: ``` procedure TForm1.FormCreate(Sender: TObject); begin frxReport1.AddFunction('function CloseReport'); frxReport1.LoadFromFile('testReport1.fr3'); frxReport1.ShowReport(); end; function TForm1.frxReport1UserFunction(const MethodName: String; var Params: Variant): Variant; begin if MethodName='CLOSEREPORT' then frxReport1.PreviewForm.Close; end; //in the script: procedure Button1OnClick(Sender: TfrxComponent); var rep: TfrxReport; begin rep := TfrxReport.Create(Report); rep.EngineOptions := Report.EngineOptions; rep.LoadFromFile('TestReport2.fr3'); rep.ShowReport; CloseReport; end; ``` How can I print the page number on the back of each sheet of the report? Only by adding a page with a page number. You can generate a report, add the same number of pages with numbers, and then re-sort them ``` var i, j: integer; page : TfrxReportPage; begin j := frxReport1.PreviewPages.Count div 2; page := TfrxReportPage.Create(nil); for i := 0 to j - 2 do begin page.AssignAll(frxReport1.PreviewPages.Page[j + i]); frxReport1.PreviewPages.AddEmptyPage(i * 2 + 1); frxReport1.PreviewPages.ModifyPage(i * 2 + 1, page); frxReport1.PreviewPages.DeletePage(j + i + 1); end; page.Free; frxReport1.ShowPreparedReport; end; ``` How to override the button handler in the standard preview window? The following handler overrides the Open button handler ``` uses frxClass, frxPreview, frxPreviewPages, frxRes; type TForm1 = class(TForm) frxReport1: TfrxReport; procedure frxReport1Preview(Sender: TObject); procedure NewOnClick(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.frxReport1Preview(Sender: TObject); begin if frxReport1.PreviewForm is TfrxPreviewForm then begin TfrxPreviewForm(frxReport1.PreviewForm).OpenB.OnClick := NewOnClick; TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[3].OnClick := NewOnClick; end; end; procedure TForm1.NewOnClick(Sender: TObject); var OpenDlg: TOpenDialog; begin if frxReport1.Engine.Running then Exit; OpenDlg := TOpenDialog.Create(nil); try OpenDlg.Options := [ofHideReadOnly]; OpenDlg.Filter := frxResources.Get('clFP3files') + ' (*.fp3)|*.fp3'; if OpenDlg.Execute then begin TfrxPreview(frxReport1.Preview).LoadFromFile(OpenDlg.FileName); frxReport1.PreviewForm.Caption := OpenDlg.FileName; end; finally OpenDlg.Free; end; end; end. ``` How can you code dataset navigation that is connected to a report but not connected to any band in the report script? Use this code: ``` var DS: TfrxDataSet; begin DS:=Report.GetDataset('Items'); DS.First; while not DS.Eof do begin ShowMessage(DS.Value('Part Name')); DS.NEXT; end; end. ``` In a report, I need to fit text into a fixed-width TfrxMemoView by decreasing the font size. How to implement it? Use the `TfrxMemoView.CalcWidth` function in the handler TfrxMemoView.OnAfterData: ``` procedure Memo1OnAfterData(Sender: TfrxComponent); begin Memo1.Font.Size:=10; if Memo1.CalcWidth>Memo1.Width-Memo1.GapX*2 then Memo1.Font.Size:=Trunc(Memo1.Font.Size*((Memo1.Width-Memo1.GapX*2)/Memo1.CalcWidth)); end; ``` How do I disable the use of the global dataset list when using TfrxReport in a thread? By default, FR uses a global list of datasets that is initialized in the `frxClass` module, when an instance of `TfrxDBDataset` is created, it is added to this list. In this regard, it is not possible to use datasets with the same names (even in different threads). To use a local list of datasets, you need to use the following code (starting from version 4.5.46): ``` frxReport.EngineOptions.UseGlobalDataSetList := False; frxReport.EnabledDataSets.Clear(); frxReport.EnabledDataSets.Add(frxDataSet); frxReport.LoadFromFile(ReportName); ``` How do I use FastReport VCL in multiple threads? Before running the report, you need to set: ``` TfrxReport.EngineOptions.EnableThreadSafe := True; TfrxReport.EngineOptions.SilentMode := True; ``` Is FastScript compatible with multithreading? Compatible, but there are features, described on page 54 Another way to use TfsScript without fsGlobalUnit (for example, in multi-threaded environment) https://www.fast-report.com/public_download/docs/FRVCL/FSVCLDeveloperManual-en.pdf How can you migrate an array of variables from Delphi to FastReport? Use this code: ``` var a: variant; begin a := VarArrayOf([1,2,3]); frxReport1.Script.Variables['a'] := a; end; ``` ### FastReport VCL 2.53 URL: https://www.fast-report.com/news/fastreport-vcl-2.53 Summary: FastReport VCL 2.53 FastReport VCL 2.53 - improved FastReport 3 compatibility - fixed Excel XML export margins error - updated language resources (czech, romanian) - minor exports bug fixes - minor engine bug fixes ### FastReport VCL 2.55 released URL: https://www.fast-report.com/news/fastreport-vcl-2.55 Summary: FastReport VCL 2.55 released FastReport VCL 2.55 released * changed RTF and XLS export filters (TfrRtfAdvExport, TfrOLEExcelExport) - fix FielIsNull() - fix stretched bug in TfrPictureView - fix TfrReport.Clear - fix bug with number of copies in 'Print' window. - fix TfrButtonControl.SaveToFR3Stream - fix TfrView.SaveToFR3Stream - fixed bug with stretched breaked bands - bug fixes ### FastReport VCL 3.24 released! URL: https://www.fast-report.com/news/fastreport-3.24 Summary: FastReport VCL 3.24 released! FastReport VCL 3.24 released! Changes: + added TfrxMemoView.Wysiwyg property (note - block align will be disabled if you set this property to False!) + added some dbxdatabase properties * update Portuguese resources - fixed bug with shiftmode - fixed bug in taborder editor - bug with splitted richedit - bug with multi-monitor configuration - fixed bug with anchor+keeptogether - fixed bug with printtoprevpage - fixed bug with styles and numbers format in the XML export - fixed bug with continuous mode in the XML export - fixed bug with character height in PDF export - fixed aggregare error (comma in the field name) - fixed compatibility with TLargeIntField - [server] fixed bug with threads in client - fixed bug with DefaultPath in XLS export ### FastReport VCL 4.10 released! URL: https://www.fast-report.com/news/fastreport-vcl-4.10-release Summary: FastReport VCL 4.10 released! FastReport VCL 4.10 released! FastReport VCL 4.10 ------------------------- + added support of Embarcadero Rad Studio XE (Delphi EX/C++Builder EX)  + added support of TeeChart 2010 packages (new series type aren't support in this release)  + added a property TruncateLongTexts to the XLS OLE export that allows to disable truncating texts longer than a specified limit  + added option EmbedProt which allows to disable embedding fonts into an encrypted PDF file  + added TfrxDateEditControl.WeekNumbers property  - fixed bug in the XLS XML export about striked-out texts  - fixed bug about exporting an empty page via the XLS OLE export  - fixed bug in the PDF export about coloring the background of pages  - fixed bug in embedded designer when using break point in script  - fixed bug with lost of focus in font size combo-box in designer  - fixed bug with truncate of font size combo-box in Windows Vista/7 in designer (lost of vertical scroll bar)  - fixed bug when lost file name in inherited report  - fixed bug in multi-page report with EndlessHeight/EndlessWidth  - fixed bug wit TfrxHeader.ReprintOnNewpage and KeepTogether  - fixed bug in multi-column report with child bands  - improved split mechanism (added TfrxStretcheable.HasNextDataPart for complicated data like RTF tables)  - improved crosstab speed when using repeat band with crosstab object ### FastReport VCL 4.11 released! URL: https://www.fast-report.com/news/fastreport-vcl-4.11-release Summary: FastReport VCL 4.11 released! FastReport VCL 4.11 released! FastReport VCL 4.11 ------------------------- + added BIFF8 XLS export filter + added to ODF export the Language property + [enterprise] added "scripts" folder for additional units ("uses" directive in report script) + [enterprise] added logs for scheduler (add info in scheduler.log) + [enterprise] added property "Reports" - "Scripts" in server configuration - set the path for "uses" directive in report script + [enterprise] added property "Http" - "MaxSessions" in server configuration - set the limit of maximum session threads, set 0 for unlimit + [enterprise] added property "Reports" - "MaxReports" in server configuration - set the limit of maximum report threads, set 0 for unlimit + [enterprise] added property "Logs" - "SchedulerLog" in server configuration - set the scheduler log file name + [enterprise] added property "Scheduler" - "Active" in server configuration - enable of scheduler + [enterprise] added property "Scheduler" - "Debug" in server configuration - enable writing of debug info in scheduler log + [enterprise] added property "Scheduler" - "StudioPath" in server configuration - set the path to FastReport Studio, leave blank for default - [enterprise] fixed bug with MIME types in http header (content-type) - [enterprise] fixed bug with default configuration (with missed config.xml) - [enterprise] fixed bug with error pages - fixed bug in XML export with the ShowProgress property - fixed bug in RTF export with font size in empty cells - fixed bug in ODF export with UTF8 encoding of the Creator field - fixed bug in XML export with processing special characters in strings - fixed bug in ODF export with properties table:number-columns-spanned, table:number-rows-spanned - fixed bug in ODF export with the background clNone color - fixed bug in ODF export with a style of table:covered-table-cell - fixed bug in ODF export with table:covered-table-cell duplicates - fixed bug in ODF export with excessive text:p inside table:covered-table-cell - fixed bug in ODF export with language styles - fixed bug in ODF export with spaces and tab symbols - fixed bug in ODF export with styles of number cells - fixed bug in ODF export with the background picture - fixed bug in ODF export with charspacing - fixed bug in ODF export with number formatting - fixed bug in ODF export with table-row tag - fixed bug in XLS(OLE) export with numbers formatting - fixed bug in RTF export with processing RTF fields - fixed bug with processing special symbols in HTML Export - fixed bug with UTF8 encoding in ODF export - fixed bug in PDF export with underlined, struck-out and rotated texts ### FastReport VCL 4.12 released URL: https://www.fast-report.com/news/fastreport-vcl-4.12-release Summary: FastReport VCL 4.12 released FastReport VCL 4.12 released Version 4.12 — what ’ s new : + added support for Embarcadero Rad Studio XE 2 (x32/x64)   Added full support for Embarcadero Rad Studio XE 2 for 32 - bit   and 64 - bit compilers + added export of Excel formulas in BIFF export   A report can contain memos starting with the "=" sign follow ed by an Excel formula. These memos are exported as formulas to a n xls file. Export of formulas is controlled by the TfrxBIFFExport.ExportFormulas property. Read m ore about this in our blog + added converter from Rave Reports - ConverterRR2FR.pas   A module that allow s conver sion of ‘ Rave Report ’ reports to ‘ FastReport ’ format + added Cross . KeepRowsTogether property   This property allow s t he display of whole row data (within nested rows) on one page without break ing it + added export of external URLs in PDF export   A component on a report can have an external URL assigned to it , like " https://www.fast-report.com ". These components are exported to PDF s as clickable areas + added property DataOnly to exports.   The DataOnly property can filter out non-data report components wh en exporting. This allows the export of only those components that are considered to bedata + optimized merging of cells in BIFF export   BIFF export has been optimized for certain kind of reports contain ing many memos which must be represented as several Excel cells + picture format in all exports switched to PNG The default format for exported pictures has become PNG. For example, if a report contain s pictures and i s exported to RTF, then the resultant RTF file will contain PNG pictures. The PNG format is ne cessary to reduce the data size of exported pictures and increase their quality --------------- + added support for Embarcadero Rad Studio EX2 (x32/x64) + added export of Excel formulas in BIFF export + added export of external URLs in PDF export + added converter from Rave Reports - ConverterRR2FR.pas + added Cross.KeepRowsTogether property + optimised merging cells in BIFF export + added property DataOnly to exports + picture format in all exports switch ed to PNG + improved number format processing in BIFF export + added property DataOnly to exports + added property TfrxODFExport.SingleSheet + added property TfrxSimpleTextExport.DeleteEmptyColumns + added property TfrxBIFFExport.DeleteEmptyRows + added progress bar to BIFF export - fixed bug with frame for some barcode types - fixed wrong metafile size in EMF export - fixed processing of negative numbers in OLE export - fixed bug in handling exceptions in OLE export - fixed bug in creation of the progress bar (applicable to many exports) - fixed bug in string processing in ODF export - fixed bug in number formatting in OLE export - fixed bug in rotating texts 90, 180 and 270 degrees in PDF export - fixed bug in processing of headers and footers in ODF export - fixed bug in computing object bounds in Text export - fixed bug in UTF 8 encoding in ODF export - fixed hiding gridlines around non - empty cells in BIFF export  - fixed image blurring when exporting - fixed word wrapping in Excel XML export ### FastReport VCL 4.13 released! URL: https://www.fast-report.com/news/fastreport-vcl-4.13 Summary: FastReport VCL 4.13 released! FastReport VCL 4.13 released! We are pleased to release a new version of FastReport VCL for Embarcadero RAD Studio XE. FastReport VCL 4.13 officially supports the latest version, XE3, of RAD Studio. You can download a stable version from your customer panel for free. Support for Lazarus Beta is included in FastReport Professional Edition and above . The c urrent version allows preview ing , print ing and report template s under Windows and Linux platform s (qt). Other changes: + published Quality property of TfrxPDFExport object + published UseMAPI property of TfrxExportMail object + published PictureType property   in ODF export - fixed compatibility with FastReport FMX installed in the same IDE. This version can co - exist with FastReport FMX installed in the IDE - fixed bug with expressions in RichEdit - fixed bug in multi-column reports - fixed exception in the report designer - fixed bug with URLs in Open Document Text and Open Document  Spreadsheet exports - fixed format string in XLS OLE export - fixed format string in XLS BIFF8 export - fixed output of check boxes on highlighted lines in PDF export - fixed bug with PDF anchors - fixed bug when using two or more macros in memo - other minor bug fixes ### FastReport VCL 4.14 released! URL: https://www.fast-report.com/news/fastreport-vcl-4.14 Summary: FastReport VCL 4.14 released! FastReport VCL 4.14 released! + Added Embarcadero RAD Studio XE4 support - [Lazarus] fixed bug with text output - [Lazarus] fixed bug with some visual controls in designer - [Lazarus] improved interface of the report preview and designer - [Lazarus] fixed bug with boolean propertyes in script code and expressions - fixed bug with endless loop in TfrxRichView - fixed bug with Unicode in TfrxMemoView appeared in previous release - improved MAPI interface in TfrxExportMail export - fixed some problems with allpication styles XE2/XE3 - improved compatibility with Fast Report FMX ### FastReport VCL 4.6 released! URL: https://www.fast-report.com/news/fastreport-vcl-4.6 Summary: FastReport VCL 4.6 released! FastReport VCL 4.6 released! + added & , < , > to XML reader + added tag, the text concluded in tag is not broken by WordWrap, it move entirely  + added ability to move band without objects (Alt + Move) + added ability to output pages in the preview from right to left ("many pages" mode), for RTL languages(PreviewOptions.RTLPreview)  + added ability to storing picture cache in "temp" file (PreviewOptions.PictureCacheInFile) + added EngineOptions.UseGlobalDataSetList (added for multi-thread applications) - set it to False if you don't want use Global DataSet list(use Report.EnabledDataSet.Add() to add dataset in local list)  + added new property Hint for all printed objects, hints at the dialog objects now shows in StatusBar  + added new property TfrxDBLookupComboBox.AutoOpenDataSet (automatically opens the attached dataset after onActivate event)  + added new property TfrxReportPage.PageCount like TfrxDataBand.RowCount + added new property WordWrap for dialog buttons (Delphi 7 and above).  + added sort by name to data tree + added TfrxDesigner.TemplatesExt property + added TfrxStyles class in script rtti + changes in the Chart editor: ability to change the name of the series, ability to move created series, other small changes  + [enterprise] added configurations values refresh in run-time  + [enterprise] added new demo \Demos\ClientServer\ISAPI + [enterprise] added output to server printers from user browser (see config.xml "AllowPrint", set to "no" by default), note: experimental feature + [enterprise] added reports list refresh in run-time + [enterprise] added templates feature + [enterprise] improved speed and stability + [fs] added TfsScript.IncludePath property + [fs] added TfsScript.UseClassLateBinding property  + [fs] fixed type casting from variant(string) to integer/float - changes in report inherit: FR get relative path from current loaded report(old reports based on application path works too) - corrected module for converting reports from Report Builder - fixed bug in CrossTab when set charset different from DEFAULT_CHARSET - fixed bug in RTF export with some TfrxRichView objects - fixed bug when print on landscape orientation with custom paper size - fixed bug when use network path for parent report - fixed bug with Band.Allowslit = True and ColumnFooter - fixed bug with drawing subreport on stretched band - fixed bug with embedded fonts in PDF export - fixed bug with long ReportTitle + Header + MaterData.KeepHeader = true - fixed bug with minimizing of Modal designer  in BDS2005 and above - fixed bug with paths in HTML export  - fixed bug with RTL in PDF export - fixed bug with SubReport in multi column page - fixed bug with Subreport.PrintOnParent = true in inherited report - fixed bug with SYMBOL_CHARSET in PDF export - fixed bug with the addition of datasets by inheritance report  - fixed bug with width calculation when use HTML tags in memo  - fixed compatibility with WideStrings module in BDS2006/2007 - fixed flicking in preview when use OnClickObject event - fixed free space calculation when use PrintOnPreviousPage - fixed preview bug with winXP themes and in last update - fixed subreports  inherit - Thumbnail and Outline shows at right side for RTL languages  - [fs] fixed bug with late binding ### FastReport VCL 4.7 with Delphi 2009 support released! URL: https://www.fast-report.com/news/fastreport-vcl-4.7 Summary: FastReport VCL 4.7 with Delphi 2009 support released! FastReport VCL 4.7 with Delphi 2009 support released! + CodeGear RAD Studio (Delphi/C++Builder) 2009 support + [enterprise] enchanced error description in logs + added properties TfrxHTMLExport.HTMLDocumentBegin: TStrings,    TfrxHTMLExport.HTMLDocumentBody: TStrings, TfrxHTMLExport.HTMLDocumentEnd: TStrings + improved RTF export (with line spacing, vertical gap etc) + added support of Enhanced Metafile (EMF) images in Rich Text (RTF), Open Office (ODS), Excel (XLS) exports + added OnAfterScriptCompile event  + added onLoadRecentFile Event + added C++ Builder demos + added hot-key Ctrl + mouseWheel - Change scale in designer + added TfrxMemoView.AnsiText property - fixed bug in RTF export with EMF pictures in OpenOffice Writer - fixed some multi-thread isuues in engine, PDF, ODF exports - [enterprise] fixed integrated template of report navigator - [enterprise] fixed bug with export in Internet Explorer browser - fixed bug with font size of dot-matix reports in Excel and XML exports - fixed bug in e-mail export with many addresses - fixed bug in XLS export (with fast export unchecked and image object is null) - [enterprise] fixed bug in TfrxReportServer.OnGetVariables event - fixed bug in Calcl function - fixed memory leak in Cross editor - fixed progress bar and find dialog bug in DualView - fixed bug in PostNET and ean13 barcodes - fixed bug with TruncOutboundText in Dot Matrix report  - fixed bugs with break points in syntaxis memo - improved BeforeConnect event in ADO   - fixed bug in inhehited report with internal dataset - fixed bug in TfrxPanelControl with background color(Delphi 2005 and above) And remember - upgrade for all users of FastReport 4.* - free! ### FastReport VCL 4.9 released! URL: https://www.fast-report.com/news/fastreport-vcl-4.9 Summary: FastReport VCL 4.9 released! FastReport VCL 4.9 released! FastReport VCL 4.9 ============== ability to print/export transparent pictures (properties TfrxPictureView.Transparent and TfrxPictureView.TransparentColor) (PDF export doesn't supported) + added new "split to sheet" modes for TfrxXMLExport  + added support of /PAGE tag in TfrxRichView, engine automatically break report pages when find /PAGE tag   + added ability to hide Null values in TfrxChartView (TfrxChartView.IgnoreNulls = True) + added ability to set any custom page order for printing (i.e. 3,2,1,5,4 ) + [enterprise] added variables "AUTHLOGIN" and "AUTHGROUP" inside the any report   + [enterprise] now any report file can be matched with any (one and more) group, these reports are accessible only in matched groups + [enterprise] now you can set-up cache delays for each report file (reports.xml) + [enterprise] added new properties editor for reports in Configuration utility (see Reports tab) + [enterprise] added property "Xml" - "SplitType" in server configuration - allow to select split on pages type between none/pages/printonprev/rowscount + [enterprise] added property "Xml" - "SplitRowsCount" in server configuration - sets the count of rows for "rowscount" split type + [enterprise] added property "Xml" - "Extension" in server configuration - allow select between ".xml" and ".xls" extension for output file + [enterprise] added property "Html" - "URLTarget" in server configuration - allow select the target attribute for report URLs + [enterprise] added property "ReportsFile" - path to file with reports to groups associations and cache delays  + [enterprise] added property "ReportsListRenewTimeout" in server configuration + [enterprise] added property "ConfigRenewTimeout" in server configuration + [enterprise] added property "MimeType" for each output format in server configuration  + [enterprise] added property "BrowserPrint" in server configuration - allow printing by browser, added new template nav_print_browser.html + [enterprise] added dynamic file name generation of resulting formats (report_name_date_time) * [enterprise] SERVER_REPORTS_LIST and SERVER_REPORTS_HTML variables (list of available reports) depend from user group (for internal authentification) + added drawing shapes in PDF export (not bitmap) + added rotated text in PDF export (not bitmap) + added EngineOptions.IgnoreDevByZero property allow to ignore division by zero exception in expressions + added properties TfrxDBLookupComboBox.DropDownWidth, TfrxDBLookupComboBox.DropDownRows + added event TfrxCustomExportFilter.OnBeginExport + added ability to decrease font size in barcode object + added ability to inseret FNC1 to "code 128" barcode + added event TfrxPreview.OnMouseDown + added support of new unicode-PDF export in D4-D6 and BCB4-BCB6 * improved AddFrom method - anchor coping - fixed bug with strikeout text in PDF export - fixed bug with incorrect export of TfrxRichView object in RTF format (wrong line spacing) - [enterprise] added critical section in TfrxServerLog.Write - fixed bug with setting up of the Protection Flags in the PDF export dialog window - fixed bug in PDF export (file structure) - fixed bug with pictures in Open Office Writer (odt) export - [enterprise] fixed bug with TfrxReportServer component in Delphi 2010 - fixed minor errors in Embarcedero RAD Studio 2010 - fixed bug with endless loop with using vertical bands together with page header and header with ReprintOnNewPage - fixed bug when using "Keeping" and Cross tables (incorrect cross transfer) - fixed bug with [CopyName#] macros when use  "Join small pages"  print mode - fixed bug  when try to split page with endless height to several pages (NewPage, StartNewPage) - fixed bug with empty line TfrxRichView when adding text via expression - fixed bug when Footer prints even if main band is invisible (FooterAfterEach = True) - fixed resetting of Page variable in double-pass report with TfrxCrossView - fixed bug with loosing of  aligning when split TfrxRichView - fixed buzz in reports with TfrxRichView when using RTF 4.1 And FastScript v1.96 released ============== + added support of Embarcedero Rad Studio 2010 added new RTTI functions * improver script run speed * improved work for Lazarus ### FastReport VCL 5 demo is available URL: https://www.fast-report.com/news/fastreport-vcl5-demo Summary: FastReport VCL 5 demo is available FastReport VCL 5 demo is available You can download demo version of FastReport VCL 5 here Whats new: Classes New fill types available in the Memo object: gradient and glass. Memo object can have several highlight conditions. The highlight condition now includes the following style settings: frame, font, fill and an object visibility. You may turn on and off each setting. Memo object can have several format settings. When a Memo object contains multiple expressions in a text, you may specify a format for each expression. Added Filter property to data bands. You may filter out data rows without using a script. Changes in the report file format: collections like datasets, variables, formats, highlights are written as nested properties for better readability. Old files (FR VCL 3 and 4) are fully supported. Added MouseEnter, MouseLeave events to report objects. Added Visibility property (set of flags - vsPreview, vsPrint, vsExport). New objects New 2D barcodes - PDF417, DataMatrix, QR Code. New barcodes - Code128, EAN128 with auto encoding. Interactivity New interactive report types: detail report and detail page. When you click an interactive object, a new report is built and displayed in a separate tab in the preview window. Added interactivity in the Chart object. Clicking on a chart element, you may build a detail report. Exports New exports: HTML5 (div), DOCX, XLSX, PPTX. Improvements in RTF, XLS, XML, HTML, ODF exports: support of different frame lines in a single Memo object. Improved font embedding in the PDF export: font subset is embedded instead of a whole font. This will significantly reduce a file size. GUI New icons in the designer and preview windows. Improved appearance of the Data tree: new icons for different field types. New/improved dialogs: highlight, frame, fill, hyperlink, databand editors. ### FastReport VCL 5 is released! URL: https://www.fast-report.com/news/fastreport-vcl-5-released Summary: Telling you about the features of FastReport VCL 5 - next generation of FastReport library Telling you about the features of FastReport VCL 5 - next generation of FastReport library FastReport VCL version 5.0 initial release Classes: - New fill types available in the Memo object: gradient and glass. - Memo object can have several highlight conditions. The highlight condition now includes the following style settings: frame, font, fill and an object visibility. You may turn on and off each setting. - Memo object can have several format settings. When a Memo object contains multiple expressions in a text, you may specify a format for each expression. - Added Filter property to data bands. You may filter out data rows without using a script. - Changes in the report file format: collections like datasets, variables, formats, highlights are written as nested properties for better readability. Old files (FR VCL 3 and 4) are fully supported. - Added MouseEnter, MouseLeave events to report objects. - Added Visibility property (set of flags - vsPreview, vsPrint, vsExport). New objects: - New 2D barcodes - PDF417, DataMatrix, QR Code. - New barcodes - Code128, EAN128 with auto encoding. Interactivity: - New interactive report types: detail report and detail page. When you click an interactive object, a new report is built and displayed in a separate tab in the preview window. - Added interactivity in the Chart object. Clicking on a chart element, you may build a detail report. Exports: - New exports: HTML5 (div), DOCX, XLSX, PPTX. - Improvements in RTF, XLS, XML, HTML, ODF exports: support of different frame lines in a single Memo object. - Improved font embedding in the PDF export: font subset is embedded instead of a whole font. This will significantly reduce a file size. GUI: - New icons in the designer and preview windows. - Improved appearance of the Data tree: new icons for different field types. - New/improved dialogs: highlight, frame, fill, hyperlink, databand editors. Client/Server: - New navigation toolbar with touch support - Works via AJAX technology - Optimized exchange protocols - Reduced response time ### FastReport VCL 6 FAQ URL: https://www.fast-report.com/news/faq-fastreport-vcl-6 Summary: FastReport VCL 6 FAQ FastReport VCL 6 FAQ 1. When will FastReport VCL 6 be released? We plan on releasing on March 1, 2018 2. What’s new? Look here: brief review  3. What versions of Delphi / RAD Studio / C++ Builder will be supported? All the versions from v.7 to the current one as of today. As tech partner of Embarcadero we add support of the latest versions as soon as possible. 4. Can I get FastReport 6 for free and before the official release? Yes, if: a) you buy FastReport 5 license right now and get FastReport 6. b) as always, we will be glad to give license of FastReport 6 to our partners 5. I bought FastReport 5 while ago - what can I do? If you bought license after August 31, 2017 you'll get upgrade to FastReport VCL 6 for free! - Look at your CP. Is it there? If you bought license before September 1, 2017 you can get FastReport VCL 6 (the same edition) with 20% discount. Look at CP -> upgrades. 6. Oops. I only have license of FastReport 4 (3, 2). Is there any discount for me? Why not? Look at CP -> upgrades and get 20% discount! 7. Is it possible to use FastReport VCL 6 in new project? Is it still Beta? It is stable enough now. And traditionally, all our official Beta-testers of 6th version will get release. Wait, how do I use it? Where is the new documentation with description of new functions and features? At the moment we are working on updating the documentation. For now we wrote several "how-to" articles (and continue writing new ones) - check them out here By the way we plan seminars and webinars about new possibilities of FastReport VCL 6. Stay tuned for more news! ### FastReport VCL 6 is officially released! URL: https://www.fast-report.com/news/fastreport-vcl-6.0 Summary: FastReport VCL 6 is officially released! FastReport VCL 6 is officially released! FastReport VCL 6 is the next generation of reporting library for Delphi! What’s new in FastReport VCL 6? Improved report engine expands editing and interactivity abilities. Report objects can be selected and edited instantly even from the preview Expressions post processing and new duplicates processing. Transport input-output filters: now you can save your reports to various cloud storages: DropBox, OneDrive, Box.com, Google Drive or send it by email New report objects: Table object – for super easy creating and editing of tabular reports Map object that supports OSM, ESRI and GPX Gauge object New barcodes: Aztec, MaxiCode and linear USPS Improved export filters to PDF, SVG, HTML5 will let you process complicated objects like RichText, Diagrams, Maps and exports them directly as vector/text format And of course report designer couldn’t be left without upgrade: Improved Guide lines allow to move and resize docked objects. Extended script debugger Improved code completion Copying and pasting of not only report objects, but their content as well Enabling and disabling the quick editors Fixes and improvements during beta ---------------------------- + Added Cellular Text object + Added TfrxPageControl.OnChanging event + Added new Interactive map layer (it possible to draw on map layer) + Added ability to copy/paste table's rows/columns + Added events for PageControl component + Added Object selection in report preview (Hold Shift and mouse click + move. Use PreviewOptions.Buttons to turn it off) + Added New copy/paste editors (it's possible to copy content of objects) + Added TfrxPageControl.HotTrack property + Added Band.AlignChildren in script Rtti + Added Rtti module for Table object (and example how to use it) + Added TfrxPageControl for dialog form + Added Gauge control for dialog form - Added IO packages to recompile.exe - Improved export of Table and CellularText objects - Improved compatibility with components designed for FR5 (like FastCube report components) - Improved vector export engine - Guidelines now works with table rows/columns - Optimized Table object XML serialization - InPlace editors now stores state in system Registry - Fixed codepage in TfrxRichView under Windows 10 - Fixed resorces in export dialogs - Fixed Height calculation of TfrxMemoView with vertical font rotation - Fixed DropDown inplace editor - Fixed copy/paste codepage for Table object - Fixed copy/paste of whole Table object - Added missing text resources - Fixed problem with wrong text wrap in PDF export (in some cases) - Fixed problem with "tight" text in PDF export (symbols overlap each other) - Fixed problem with AutoWidth and Preview - Fixed Error message after closing IDE - Fixed compatibility with C++Builder - Fixed IO filters issue - Removed unused Options from "Options dialog" - Several visual improvements of Designer and Preview UI - Added missing icons for TfrxComponent's - Fixed Horizontal and Vertial text align in SVG and HTML5 exports - Fixed missing IOTransport package for Delphi 2010 - Fixed bug with TfrxMemoView.Unerlines - Fixed AV in the PDF export - Fixed MirrorMargins in PDF export - Fixed missing resources for some languages - Fixed preview save dialog without Transport filters - Fixed compressed report - Fixed text kerning in PDF export - Fixed duplicated field in TfrxDBDataSet - Fixed issue with Table object in some exports filters - Fixed compatibility with old E-mail export filter (better to use new Transports) - Fixed Interactive maps with detailed report - Fixed problem with map editor (adjust maps to wrong layers) - Fixed missing default string resources - Fixed error in Code Completion thread when using fsGlobalUnit - Fixed Break points saving in file - Fixed container dialog controls behavior in report designer workspace - Fixed save to file IOTransport registration - Fixed IOTransport network path - Fixed several issues with TfrxPageControl - Moved some fixes and improvements from Fast Report 5 branch - Fixed InPlace data editor ### FastReport VCL and FMX in Embarcadero Community edition URL: https://www.fast-report.com/news/vcl-fmx-community-edition Summary: FastReport VCL and FMX are included in Embarcadero Community edition FastReport VCL and FMX are included in Embarcadero Community edition For the first time embarcadero is releasing their community edition and Fast Report VCL and FMX are already an essential part of it! Get the best reporting even if your business is just starting to grow! Learn about the conditions here . Community Edition is a full-featured and free IDE to build applications for iOS, Android, Windows and macOS from a single codebase using the robust and easy-to-learn Delphi language. It's the perfect way to get started learning a new programming language or explore multi-device app development. Embarcadero's Community Edition is available for Delphi and C++Builder. It includes a streamlined IDE, code editor, integrated debugger, two-way visual designers to speed development, hundreds of visual components, and a limited commercial use license. ### FastReport VCL documentation update URL: https://www.fast-report.com/news/fastreport-vcl-documentation-update Summary: We have updated the English FastReport VCL documentation: - User's manual - Programmer's manual - Developer's manual. We have updated the English FastReport VCL documentation: - User's manual - Programmer's manual - Developer's manual. We have updated the English FastReport VCL documentation:  - User's manual - Programmer's manual - Developer's manual. Take a look . ### FastReport VCL now officially supports RAD Studio 13 Florence URL: https://www.fast-report.com/news/rad-studio-13 Summary: Update 2025.2.8 for FastReport VCL (and all its delivery options) with support for RAD Studio 13 Florence is already available in your personal account. Update 2025.2.8 for FastReport VCL (and all its delivery options) with support for RAD Studio 13 Florence is already available in your personal account. Our team has completed work to ensure full compatibility of FastReport VCL (and all its editions) with RAD Studio 13. We thoroughly tested the changes while maintaining backward compatibility with older Delphi versions. Support for RAD Studio 13, Delphi 13, and C++Builder 13 provides developers with access to new IDE features, improved performance and application stability, as well as reduced debugging time. Update 2025.2.8 with built-in support for RAD Studio 13 is already available in your customer panel. ### Fastreport VCL RAD Edition URL: https://www.fast-report.com/news/fastreport-vcl-rad-edition Summary: Fastreport VCL RAD Edition Fastreport VCL RAD Edition Fast Reports, Inc. has announced that its key report generator, FastReport VCL RAD Edition, will be supplied as part of Embarcadero RAD Studio XE2 (Pulsar), a new version of the comprehensive application development suite.  Difference s between editions: ### FastReport VCL — Update to Version 2026.1 URL: https://www.fast-report.com/news/release-fastreport-vcl-2026.1 Summary: In version 2026.1 for FastReport VCL, the report engine features have been expanded: new properties for the dynamic table builder and report band management, improved designer, and more. In version 2026.1 for FastReport VCL, the report engine features have been expanded: new properties for the dynamic table builder and report band management, improved designer, and more. The new version expands the capabilities of the reporting engine: new properties have been added for the dynamic table builder and report band management, the report designer has been improved (specifically, a “Snap to Grid” alignment mode has been added), and new functions have been implemented in FastQueryBuilder . Furthermore, report objects have been enhanced, new capabilities for working with PDF have been added (automatic font substitution, color profile selection), changes have been made to DOCX and XLSX export, and converters from other reporting systems have been updated. A key change is the provision of full compatibility with Embarcadero RAD Studio 13 (including Delphi 13 and C++Builder 13), while maintaining backward compatibility with older versions of Delphi. Embarcadero RAD Studio 13 Support Our team has completed work to ensure full compatibility of FastReport VCL (and all its distribution variants) with RAD Studio 13. We have thoroughly tested the changes, preserving backward compatibility with older versions of Delphi. Support for RAD Studio 13, Delphi 13, and C++Builder 13 gives developers access to new IDE features, improved application performance and stability, and reduces debugging time. Reporting Engine: New Features The reporting engine is constantly being improved, offering more and more tools for report creation. The dynamic table builder has received two new properties: FitPartsToPageWidth and MinimumTableWidth. These help manage the pagination process of tabular reports. Using the FitPartsToPageWidth property, you can stretch each part of the table to the maximum page width, filling the free space. The MinimumTableWidth property sets the minimum table size before pagination, proportionally stretching it to the specified size. This is useful for synchronizing multiple tables. Managing report bands is now easier. Group headers and footers have a new property: KeepWithData. It specifies that a group header or footer should remain together with the data record when moving to a new page. This property is similar to KeepHeader and KeepFooter, but works with group bands. The capabilities for controlling the output of report objects have also been expanded. The new PrintOn property offers a set of flags for fine-tuning. For example, you can output an object only on headers that are repeated on a new page (the ptRepeatedBand flag) or only on the first page of the report (the ptFirstPage flag). Report Designer and UI Our template designer has received several new features that simplify working with reports. Now you can use the “Snap to Grid” alignment mode. In this mode, objects always snap to the grid when moving or resizing. Previously, the grid step was used for objects, meaning they could be moved off the grid if they weren’t initially placed on it. By default, the old “Grid Step” mode remains active. The new mode enables precise object alignment even in existing reports. All major text editors now support text replacement, in addition to search. The chart editor has added the ability to clone chart series for quick creation of new series. FastQueryBuilder FastQueryBuilder  now features search and replace functions in its editors, just like the report designer. Report Objects Improvements Several report objects have received new features that will make your reports even more flexible and convenient. Table cells can now align objects in a new way. The TfrxContainerPadding.FromCenter property has been added for this purpose. It allows inverting the client alignment area, making automatic alignment inside cells more flexible. The PDFView object has a new mode of operation, pdOneToOneNormalizeAutoRotation, for the DetailStretchMode property. In this mode, landscape-oriented pages are automatically rotated when output in the report. Watermark settings have become even more convenient. You can now adjust the transparency of the watermark text. Support for Macro PDF417 has been added. A comprehensive set of properties has been introduced to the standard PDF417 object, allowing for detailed configuration in accordance with the standard’s requirements. Additionally, the QR barcode now supports the GS1 standard. Export Filters With the 2026.1 update, PDF export has gained automatic font substitution. This long-awaited improvement eliminates the need to search for Unicode fonts. The export filter itself determines the font used by the system to display the text and includes it in the PDF file. PDF export now uses Windows system functions, allowing for a result that is as close as possible to the preview. Another new feature for PDF export is the ability to select a color profile for reports in PDF/A-3U format. Three options are available: Standard RGB Typographic CMYK Grayscale. You can choose the color model depending on your tasks: whether it is standard grayscale printing or typographic printing in CMYK. Furthermore, other export formats have been improved. For example, watermark export has been fixed in DOCX and XLSX, and an option to disable gridlines during export has been added to XLSX. Converters from Other Reporting Systems Converter filters are now collected in separate frxReportConverters packages. They can be easily added to your application using components from the palette (TfrxSaveFRX, TfrxOpenQuickReport, TfrxOpenReportBuilder, TfrxOpenFRF, TConverterDMP2GDI, TConverterGDI2DM). Bugs in the filters have also been updated and fixed. FastReport FMX PDF export now includes support for invoices according to the ZUGFeRD standard. An example of using this functionality can be found in the InvoiceDemo. The “SimpleText” layout engine has received a significant update. The new version works much faster than the old one with large amounts of text (when HTML tag output is disabled) and fixes layout issues. Version 2026.1 VCL.Core ---------------   [Engine] + Full support for RAD Studio 13 has been added. + New functions, including min, max, and others, have been added. + Company name, version number, and website link have been added to the component context menu on the form. * Documentation has been updated. - An issue where the default indexed getter with a const reference in C++ Builder generated incorrect header files has been fixed.   [Graphic] - CreateBitmap. has been fixed. - An issue where a zero pen width in an SVG image was rendered with a device context width of 1 pixel has been fixed. - Conversion from BMP32 to PNG format has been fixed. - A memory access violation related to SVG image handling has been fixed. - Export of semi-transparent PNG images has been fixed. FMX.Core --------------- [Engine] + Support for min, max, and other new functions has been added. + Company name, version number, and a link to the company website have been added to the component context menu on the form. + Support for RAD Studio 13 has been added.  * Documentation has been updated.  - Compatibility issue with the order of enumeration aliases in RAD Studio 13 for FMX has been fixed. [Graphic] - CreateBitmap. has been fixed. VCL.Controls ---------------   [Engine] + Replace functionality has been added to the Memo family. - Known issues in TfrTreeView and TfrShellTreeView have been resolved. - Known issues in the component editors for TfrTreeView and TfrShellTreeView have been addressed.   [UI] - Modifying Canvas.Font in the OnCustomDrawItem event now works correctly. - Functionality of node tooltips has been corrected. - Node highlighting on mouse hover now works properly. - The display and hiding of node tooltips has been fixed. - Behavior of the blinking caret when MultiByte is enabled has been corrected. Lazarus.Controls --------------- [Engine] + Replace functionality has been added to the Memo family. - Known issues in TfrTreeView and TfrShellTreeView have been resolved. - Known issues in the component editors for TfrTreeView and TfrShellTreeView have been resolved. - AV errors in the TfrTreeView and TfrShellTreeView editors in Lazarus have been fixed. [UI] - Modifying Canvas.Font in the OnCustomDrawItem event now works correctly. - Functionality of node tooltips has been corrected. - Node highlighting on mouse hover now works properly. - Rendering of tree lines in the Lazarus IDE has been corrected. - The display and hiding of node tooltips has been fixed. - Slow rendering performance on Linux systems has been improved. VCL.FastCube --------------- [Engine] - An issue where the Advanced Demo would open with errors in Embarcadero RAD Studio 2010 has been resolved. - A bug preventing cells from being rendered during grouping has been fixed. [Exports] - Issues with exporting to ODS and XLSX formats have been corrected. FMX.FastCube --------------- [Engine] - A bug preventing cells from being rendered during grouping has been fixed. [UI] - Unnecessary padding in value drop-down lists for filtering has been removed. Lazarus.FastCube --------------- [Engine] - A bug preventing cells from being rendered during grouping has been fixed. [Exports] - An issue with exporting to XLS format in Lazarus has been resolved. - Issues with exporting to ODS and XLSX formats have been corrected. VCL.FastQueryBuilder --------------- [Engine] + A search button has been added to the text editors. + The ability to escape table names has been implemented. Lazarus.FastQueryBuilder --------------- [Engine] + A search button has been added to the text editors. + The ability to escape table names has been implemented. VCL.FastScript --------------- [Engine] + The TfrxWatermarks.Add method is now available in the script. - The issue where enabling the MultiByteLang property disabled italic styling for comments has been fixed. [RTTI] + TStringStream has been added. Lazarus.FastScript --------------- [Engine] + The TfrxWatermarks.Add method is now available in the script. - The issue where enabling the MultiByteLang property disabled italic styling for comments has been fixed. [RTTI] + TStringStream has been added. VCL.FastReport --------------- [Client-Server] + A base API for FastReport Online Designer has been added. + A data API for FastReport Online Designer has been added to the “Client-Server” component. - The issue with duplicate export entries in the general export list within the report server has been resolved. [Designer] + Pressing the Enter key in the ReportTree now activates the editor. + The scrollbar position is now preserved when changing the zoom level in the designer. + A new AlignToGrid property has been added, replacing the old GridStepMode. * Minor enhancement to the StatusBar within the Designer. * The designer’s redraw logic when moving guide lines has been optimized, resulting in more frequent updates. - An issue preventing the setting of a negative Left coordinate has been resolved. - The selection behavior of the active guide line has been corrected. - Grid snapping behavior when working with table templates has been improved. - A bug where moving an object past the left guide would incorrectly shift the right guide has been fixed. - The GuidesAsAnchor designer option has been corrected. - The MouseWheel event behavior in the designer has been fixed. - The “Access Denied” error that could occur when using the designer via RDP connection from the IDE has been resolved. - Dialogs in the embedded designer have been corrected. - An issue where enabling the MultiByteLang property disabled italic styling for comments has been resolved. - A bug causing selected objects to randomly move to different pages has been fixed. - Drag & Drop functionality for objects onto TfrxReportPage has been corrected. [Engine] + A search button has been added to text editors. + The TfrxContainerPadding.FromCenter property for table cells, which inverts the client padding area for the alignment mechanism, has been added. + The TfrxCustomTableBuilder.FitPartsToPageWidth property for the dynamic table builder has been added, enabling automatic stretching of a table split part to the full page width. + The TfrxCustomTableBuilder.MinimumTableWidth property for the dynamic table builder has been added, which sets the minimum width of the entire resulting table before splitting. + The PrintOn property for report components has been added, defining where a component can be printed during report generation. + The KeepWithData property for group headers and footers has been added, functioning similarly to the KeepHeader/KeepFooter properties. + Chart series cloning in the chart editor has been added. - An issue when printing PDFView from x64 applications has been resolved. - The “List index out of bounds (-1)” error that occurred when pressing “Ctrl+C” while the designer was displayed has been fixed. * Engine variable initialization has been moved to the start of the main script block execution. - The behavior of smMaxHeight, where a band no longer stretches when an object grows beyond the size of its parent container, has been restored. - Conversion of vector watermark images to raster format to support semi-transparency has been fixed. - Watermarks in composite reports have been fixed. - The behavior of the ClearLastReport state when generating a report from the ShowReport method has been corrected. - The even/odd page mode for watermarks in composite reports has been corrected. [Exports] + Support for PDF/A-3U, DeviceCMYK, and DeviceGray has been added. + A GridLines property has been added for XLSX export. + Font substitution has been implemented in the PDF exporter. * PDF export now writes additional debug information about the creation environment. * The USP library has been moved to a lazy-loading module. * Watermark export for DOCX and XLSX has been improved. - The export of empty TfrxMemoView with fkDateTime format to XLSX has been fixed. - The IsDigits function in the frxExportXML module has been fixed. - Issues with partial font embedding in PDF export have been resolved. - RTF export with non-standard ParagraphGap values has been fixed. - The export of semi-transparent PNG images has been fixed. [Other] + Support for TfrxCrypt and TfrxRichObject has been added for the 64-bit IDE. * Portuguese language resources have been updated. * Japanese language resources have been updated. * Converters from other reporting systems have been moved into separate packages. - Source code compilation for Delphi 10.3.1 has been fixed. [Preview] * The Escape button has been disabled for the built-in preview. - Printing, saving, and exporting of an empty report have been fixed. - Entering the number of copies in the print dialog has been fixed. [Report object] + Watermark editing from a script has been added. + Support for TfrxBarcodeLogo in scripts has been added. + Macro support has been added to the PDF417 barcode. + A new pdOneToOneNormalizeAutoRotation option for the DetailStretchMode property has been added to the PDFView class. + Support for the GS1 QR barcode has been added. + TfrxDBDialogControls and TfrxGaugeDialogControls components have been added to the IDE. - Font selection in some dialogs has been fixed. FMX.FastReport --------------- [Designer] + The OnLoadReport and OnSaveReport events in the TfrxDesigner have been fixed. [Engine] - Clipping of long text when splitting a Memo object into multiple parts has been fixed. [Exports] + Support for ZUGFeRD in PDF export has been added.  - The IsDigits function in the frxExportXML module has been fixed. [Other] * Portuguese language resources have been updated. Lazarus.FastReport --------------- [Client-Server] + A data API for FastReport Online Designer has been added to the “Client-Server” component. - An issue causing duplicate exports in the general export list within the report server has been fixed. [Designer] + Pressing the Enter key in the ReportTree now activates the editor. + The scrollbar position is now preserved when changing the zoom level in the designer. + A new AlignToGrid property has been added, replacing the old GridStepMode. * Minor enhancement to the StatusBar within the Designer. - An issue preventing the setting of a negative Left coordinate has been resolved. - The selection behavior of the active guide line has been corrected. - Grid snapping behavior when working with table templates has been improved. - A bug where moving an object past the left guide would incorrectly shift the right guide has been fixed. - The GuidesAsAnchor designer option has been corrected. - The MouseWheel event behavior in the designer has been fixed. - Dialogs in the embedded designer have been corrected. - An issue where enabling the MultiByteLang property disabled italic styling for comments has been resolved. - A bug causing selected objects to randomly move to different pages has been fixed. - Drag & Drop functionality for objects onto TfrxReportPage has been corrected. [Engine] + A search button has been added to text editors. + The TfrxContainerPadding.FromCenter property for table cells, which inverts the client padding area for the alignment mechanism, has been added. + The TfrxCustomTableBuilder.FitPartsToPageWidth property for the dynamic table builder has been added, enabling automatic stretching of a table split part to the full page width. + The TfrxCustomTableBuilder.MinimumTableWidth property for the dynamic table builder has been added, which sets the minimum width of the entire resulting table before splitting. - The “List index out of bounds (-1)” error that occurred when pressing “Ctrl+C” while the designer was displayed has been fixed. + The PrintOn property for report components has been added, defining where a component can be printed during report generation. + The KeepWithData property for group headers and footers has been added, functioning similarly to the KeepHeader/KeepFooter properties. * Engine variable initialization has been moved to the start of the main script block execution. - The behavior of smMaxHeight, where a band no longer stretches when an object grows beyond the size of its parent container, has been restored. - Conversion of vector watermark images to raster format to support semi-transparency has been fixed. - Watermarks in composite reports have been fixed. - The behavior of the ClearLastReport state when generating a report from the ShowReport method has been corrected. - The even/odd page mode for watermarks in composite reports has been corrected. [Exports] + Support for PDF/A-3U, DeviceCMYK, and DeviceGray has been added. + The export of empty TfrxMemoView with fkDateTime format to XLSX has been fixed. + A GridLines property has been added for XLSX export. * The PDF export behavior has been changed; it now writes additional debug information about the creation environment. * The USP library has been moved to a lazy-loading module. * Watermark export for DOCX and XLSX has been improved. - The behavior of OpenAfterExport when exporting to multiple files has been fixed. - The IsDigits function in the frxExportXML module has been fixed. - RTF export with non-standard ParagraphGap values has been fixed. [Other] * Portuguese language resources have been updated. * Japanese language resources have been updated. - An issue where PopUp was disabled for some TabControls in GTK2 has been fixed. [Preview] * The Escape button has been disabled for the built-in preview. - Printing, saving, and exporting of an empty report have been fixed. - Entering the number of copies in the print dialog has been fixed. [Report object] + Watermark editing from a script has been added. + Support for TfrxBarcodeLogo in scripts has been added. + Macro support has been added to the PDF417 barcode. + A new pdOneToOneNormalizeAutoRotation option for the DetailStretchMode property has been added to the PDFView class. + Support for the GS1 QR barcode has been added. + TfrxDBDialogControls and TfrxGaugeDialogControls components have been added to the IDE. - An issue in GTK2 (Linux) where text rotation (Rotation <> 0) caused the WYSIWYG property to be ignored has been fixed. - An issue with HTMLView in Linux Lazarus has been fixed. ### FastReport VCL: How 25 Years of Innovation Changed the Approach to Reporting in VCL Applications URL: https://www.fast-report.com/blogs/fastreport-vcl-25-years Summary: We decided to take a look back to demonstrate how reporting technologies have changed and to trace the key stages of FastReport VCL development in each version. We decided to take a look back to demonstrate how reporting technologies have changed and to trace the key stages of FastReport VCL development in each version. FastReport VCL is a report generation tool that has become an essential part of developers' arsenal on the Delphi platform over more than a quarter of a century. Since its inception in the late 1990s, the product has evolved from a simple template designer into a comprehensive system that supports interactive elements, vector graphics, and integration with modern IDEs. We decided to take a look back to demonstrate how reporting technologies have changed and to trace the key stages of the product's development in each version. FastReport VCL is a report generation tool that has become an essential part of developers' arsenal on the Delphi platform over more than a quarter of a century. Since its inception in the late 1990s, the product has evolved from a simple template designer into a comprehensive system that supports interactive elements, vector graphics, and integration with modern IDEs. We decided to take a look back to demonstrate how reporting technologies have changed and to trace the key stages of the product's development in each version. FastReport VCL has come a long way from a basic report generator to a versatile tool for modern applications.  The Birth of the Idea for the Future Product The need to create a custom reporting component arose in 1997 during the development of a payroll accounting system. The specificity of such a system involves a large number of reporting forms and the need for easy customization of their appearance. Existing reporting systems did not possess the necessary features, so the decision was made to develop a proprietary report generator. In the very first version of the generator, only one band was used—the data row, which allowed for the creation of multi-level reports. Later, in 1998, the report generator was formalized as a component (initially it was just a set of plug-in modules). From this point on, the product was named "FastReport" and began to rapidly expand its functionality. The First Version and Customer Recognition The first release of the product for Delphi 2–3 consisted of a basic report designer with standard support for data sources and printing functionality. It immediately allowed the creation of reports from code. It supported programmatically generating reports without a designer, followed by integration into Delphi applications. FastReport VCL boasted high performance and a small code footprint (less than 1 MB), which was a key advantage for Delphi developers in the late 1990s. Since its inception, FastReport VCL has become the flagship product in the entire lineup and received significant recognition among our customers. By 2001, the product ranked second in a survey of the most popular report generators among Delphi developers (Delphi Magazine). The second version followed, expanding export capabilities and compatibility. FastReport VCL 2.0: A Technological Leap in Development The second version of FastReport VCL brought significant improvements in development support. Among these were integration with C++Builder 6, CLX, and Kylix, as well as enhancements to CrossTab reports. Update 2.5 introduced important features: Export to XLS format via OLE; Export to image formats: BMP, JPEG, and TIFF (both color and black-and-white options); Beta version of RTF support; Programmatic page editing before printing. Additionally, basic report scripts were introduced in the form of event handlers for objects, improvements to CrossTab functionality, and the option to disable syntax highlighting. Later, version 2.3 of FastReport VCL became free under the new name FreeReport and served as the foundation for LazReport. The entire product line received recognition from the community. FastReport VCL won the "Delphi Product of 2002" award as the best report generator and ranked second in the "Delphi Informant Magazine" survey, receiving 20% of the votes. This underscored the contribution of our products to the advancement of reporting tools. In the third version, the focus shifted to expanding report capabilities, improving printing functionality, and integrating with other components, including databases. Expansion of Components and Export Options in FastReport VCL 3 FastReport VCL 3 is an updated product with a new architecture. The report format is now XML, and Unicode support allows the product to be used worldwide. FastReport VCL 3 became so extensive that it included several different component sets. It was from this version that the fully functional scripting engine, FastScript, emerged, featuring debugging capabilities for reports and support for four scripting languages, along with the SQL query builder, FastQueryBuilder. The report designer became more user-friendly. It introduced features like scaling, a report grid, support for nested properties in the object inspector, and much more. The most notable and significant changes in FastReport VCL 3 included: The introduction of internal data sources; Fully functional report dialog forms; Addition of support for TeeChart Pro;  Expanded export options to PDF, HTML, and RTF; New components for creating a fully functional WEB reporting server, with all the features of the product. These updates and new server capabilities made FastReport a powerful tool for the rapid generation of complex documents. Some reports from this version can also be opened in modern versions of FastReport. FastReport VCL 4: Flexibility, Performance, and a New Era of Report Debugging The release of FastReport VCL 4 was a logical continuation of the previous version. The product received a full debugging environment, support for report inheritance, and formats such as ODF, ODT, and XLS. The new version improved compatibility with the latest versions of RAD Studio and added support for FireDAC components. Printing on dot matrix printers and exporting to PDF were also significantly enhanced. During this period, new components for OLAP solutions were integrated into FastReport. These innovations made the product incredibly flexible and high-performing. User convenience continued to evolve as well. A dedicated page for internal data sources was introduced, allowing for the creation of flowcharts. Cross-tab functionality was expanded, a side-by-side printing mode was added, and the ability to use objects within cells was implemented. Debugging reports became much more convenient with the introduction of the Watches window and breakpoints. To facilitate the transition from other report generators, converters from QuickReport, ReportBuilder, and RaveReports were added. The report engine gained support for inheritance. This version laid the foundation for separate products, FastReport FMX and FastReport for Lazarus. The latest updates provided full support for Unicode development environments and x64 platforms. From QR Codes to DOCX: How FastReport VCL 5 Became More Powerful and User-Friendly With the release of the fifth version of FastReport VCL , the product became even more interactive. The preview window introduced the ability to open tabs with different reports, and "detailed reports" were added, allowing users to open a breakdown from the main report in a new tab. The report object set was expanded to include 2D barcodes (QR, DataMatrix, PDF417), linear barcodes with auto-encoding such as Code128 (GS1), EAN128, and native integration with FireDAC. Export filters now support file formats like DOCX, XLSX, HTML5, and PPTX, as well as improvements in existing formats, including support for PDF/A. The client-server components received a significant interface update. FastReport for Lazarus was also updated and gained support for the capabilities of FastReport VCL 5. Optimizations for printing on dot matrix printers and a refreshed interface design made version 5 the most flexible tool for Delphi, capable of creating complex analytical reports. These innovations reduced the size of PDF files and sped up the performance of server components, providing high efficiency for any business tasks. FastReport VCL 6—Not Just Reports, but Interactive Analytics in RAD Studio 10.4 The sixth generation of FastReport VCL ushered in a new era of interactive reports. Users were able to edit elements directly in the preview window using built-in editors. This version introduced new report objects: maps that support loading geospatial data from databases (OSM, ESRI), tables with a dynamic table builder for complex reports, a "CellularText" component, "Gauges" for report forms and dialogs, as well as "PageControl" for dialog forms. The release significantly expanded functionality through integration with cloud storage services (Dropbox, Google Drive, OneDrive, Box). Users can now save and load reports and exports to these services. Export filters received support for new formats, including PostScript, ZPL, and PPML. Special attention was given to WYSIWYG export and vector formats, including PDF with support for interactive forms and SVG. The report engine gained new features, such as an object offset and stretching mechanism, deferred expression processing, and mirroring elements on the page. The SQL editor introduced syntax configuration. Additionally, a pool of deferred commands was added, allowing reports to rebuild themselves from scripts. These enhancements, combined with an advanced script debugger and support for RAD Studio 10.4, made FastReport a powerful analytics platform for modern cross-platform applications. Transition to a Subscription Model and Updates in 2021 Starting in 2021, the distribution of FastReport VCL shifted to a subscription model , coinciding with the transition to annual version numbering. The main focus was on modernizing visual standards and enhancing security. Full support for SVG vector graphics was implemented, along with the ability to add digital signatures to PDF documents. To expand reporting functionality, a new HTML View object was introduced, allowing for the embedding of web content visualization, as well as support for specialized medical barcodes, such as Two-Track Pharmacode. Significant optimizations were made to improve performance when working with large data volumes. Additionally, the ability to insert fragments of PDF documents into reports and to load data from external sources across all supported protocols was added. Enhancing Security and Interactivity in 2022 The FastReport VCL 2022 version continued to develop in the direction of security and user interaction. Support for multiple digital signatures in PDF documents was implemented, along with the ability to fill interactive elements (such as ListBox and ComboBox) directly within the report. To simplify design, layout control tools were included: automatic guides and highlighting of object intersections. Key new features included integration with cloud services (Gmail, Outlook, Yandex Disk) and the introduction of a step-by-step script debugger. Support for modern technologies was maintained and expanded, including FireDAC, geospatial data, and high-quality printing on dot matrix printers. 2023 — A Unified Ecosystem and Digital Signatures Continuing to build on previous achievements, the 2023 releases introduced automation and styling features. Stable support for Linux was added, paving the way for cross-platform development. The FastReport VCL 2023 lineup transformed from a product into a unified ecosystem with a shared Core library. An innovative style sheet system was introduced, allowing for instant changes to the appearance of reports without the need for reconstruction. Technological enhancements include support for advanced digital signatures (GOST, CADES), multi-threaded printing, and intelligent text scaling according to object sizes. A significant step was the discontinuation of support for Delphi 7, with support now available for Delphi versions starting from 2010. The focus has shifted to modern standards: integration with NextCloud, expansion of cryptographic functions, and optimization of PDF file sizes. These updates simplified work with current IDE versions, added new security tools, and increased the flexibility of report customization. A Focus on Cross-Platform Development Starting in 2024 FastReport VCL 2024: A New Level of Development Convenience and Support for Modern Environments, Including Embarcadero RAD Studio 12. The updated text editor features syntax highlighting and automatic bracket matching. A tool for precise data field configuration without the need to connect to a database has been introduced. The technological stack expanded with support for S3 cloud storage (AWS) and a high-performance TfrTreeView component for handling large data volumes in both VCL and Lazarus. This component is successfully utilized within FastReport itself. FastReport VCL 2025–2026: The product has become cross-platform and interactive. Key innovations include the implementation of RFID tags (TfrxDeviceCommand), a fully functional Online Designer, and the FastGrid library for professional data handling in Delphi and Lazarus. Versions from this period showcased an updated visual style, an advanced watermarking system, and a flexible editor for customizing watermarks. Users can now easily add protective inscriptions and images. With native support for TLS/XOAUTH in email transports and integration with the current version of RAD Studio 12.3–13, FastReport has provided developers with modern tools for creating secure business applications. New Achievements FastReport VCL continues to evolve, adapting to the needs of developers. Currently, the latest versions of FastReport are implementing support for semi-transparent images. Additionally, we are committed to maintaining and enhancing older components. For example, the number of language packs has significantly increased: FastReport now supports over 30 languages. Export functionality is becoming more robust: PDF export now supports multiple standards, which are added as they emerge. FastReport promptly supports new versions of Delphi and Lazarus, typically within 1–2 months of a release, and sometimes even faster. Conclusion Over the past 25 years, FastReport VCL has evolved from merely a tool for generating reports into a comprehensive platform for developing complex, interactive, and secure reporting solutions within the Delphi and Lazarus ecosystems. Its evolution from a basic component with minimal functionality to a modern solution supporting vector graphics, cloud storage, digital signatures, and cross-platform development reflects not only technical progress but also a deep understanding of developers' needs. Each version has brought significant improvements—from the introduction of the XML format and scripting engine to the support of modern security standards and integration with cloud services—enabling the product to remain relevant in the rapidly changing technology landscape. Today,  FastReport VCL represents a mature, scalable, and flexible system capable of tackling tasks of any complexity—from simple print forms to analytical dashboards with geodata visualization and dynamic real-time reports. The shift to a subscription model and the unified Core architecture has facilitated the creation of a cohesive ecosystem, simplifying the maintenance and development of projects. Ongoing support for new versions of RAD Studio, prompt adoption of innovations, and attention to detail—from precise layout to multi-threaded printing—confirm that FastReport VCL remains a leader in its niche, setting standards for quality and performance for generations of developers. Tags: VCL, Lazarus, FastReport, Delphi ### FastReport Viewer URL: https://www.fast-report.com/products/viewer Summary: A free utility for viewing finished documents created by FastReport products in FP3 and FPX formats. A free utility for viewing finished documents created by FastReport products in FP3 and FPX formats. A free utility for viewing finished documents created by FastReport products in FP3 and FPX formats. FastReport Viewer A free utility for viewing finished documents created by FastReport products in FP3 and FPX formats. Try for free Answers to Frequently Asked Questions about the FP3 Format The FP3 format often raises questions — especially among users who need to quickly open, view, or convert a prepared report without delving into development details. At the same time, confusion can arise right from the start: the FP3 extension is used in different software environments and may refer to completely unrelated file types. For example, from FastReport reports to 3D planning projects and even medical data. We have collected the 11 most frequently asked questions users encounter and prepared clear answers that take real-world tasks into account. You will learn how FP3 differs from other formats (in particular, from the FR3 template), which tools can help you work with such files, how to convert them to PDF and other formats, and how to solve common technical issues. We'll break down 11 common questions about the FP3 format: what these files are, how they differ from FR3 files, which programs can open them, and how to convert them to PDF. Opening FP3 files using FastReport Viewer FP3 files are reports created with the popular report generation tool, FastReport. However, to open and view such files, a special program is required — FastReport Viewer. FastReport Viewer is the ideal solution for working with FP3 files. It allows you to easily open, view, print, and export reports. Customizing the ready report Viewer in FastReport .NET The article tells about the possibility to hide unnecessary items Report Preview menu control of FastReport .NET. The article tells about the possibility to hide unnecessary items Report Preview menu control of FastReport .NET. Any other questions? Contact the manager ### FastReport Viewer released URL: https://www.fast-report.com/news/release-free-fastreport-viewer Summary: FastReport Viewer released FastReport Viewer released Released free utility for viewing and printing fp3 files. Download  here ### FastReport WCF Service Library URL: https://www.fast-report.com/blogs/fastreport-wcf-service-library Today we will talk about the new library FastReport.Service.dll which appeared in FastReport.Net 2013.3. This library is a WCF Service Library and is intended for use in custom services. Now library contains the following features : ``` List GetReportsList(); List GetReportsListByPath(string path); List GetGearList(); Stream GetReport(ReportItem report, GearItem gear); ``` List< ReportItem> GetReportsList() – returns a list of available reports . Each item presens as ReportItem object. Reports are stored on a hard drive on a server that is running the service . Files are sorted in alphabetical order. List< ReportItem> GetReportsListByPath( string path) –  returns a list of available reports by path. Files are sorted in alphabetical order. List< GearItem> GetGearList()  - returns a list of available formats that can generate service reports as elements GearItem. Stream GetReport( ReportItem report, GearItem gear) – returns a stream of result of building a report . Parameters report and gear can be used from the list of previously obtained , or create new objects with the required properties. The returned stream does not support positioning . ReportItem ``` public class ReportItem { public string Path; public string Name; public string Description; public Dictionary Parameters; } ``` Path – the path to the report file on the server, relative to the root folder for storing reports . The file extension of the report can only be *.frx. This property is used to identify a specific report with further queries. Name – name of the report is taken from the metadata of the report. If the metadata of the report contain an empty name then prperty contain a filename without an extension . This property can be used to build an interactive list of available reports in your application (such as ListBox). Description – description of the report is taken from the metadata of the report. Dictionary Parameters – Dictionary of report parameters maybe filling parameters, which will be subsequently transferred to the report. It supports only the string values that must be considered when designing a report template . GearItem ``` public class GearItem { public string Name; public Dictionary Properties; } ``` Name – the name of the format. May contain one of the following strings : Name Description PDF File of Adobe Acrobat DOCX File of Microsoft Word 2007 XLSX File of Microsoft Excel 2007 PPTX File of Microsoft PowerPoint 2007 RTF File of Rich Text – supported by many text editors ODS File of Open Office Spreadsheet ODT File of Open Office Text MHT Compressed HTML file together with the image s can be opened in Internet Explorer CSV Comma separated values DBF File of dBase XML XML table of Excel – without images TXT Text file FPX Prepared report of FastReport.Net, maybe loaded in Viewer.exe or in report object from your code Report.LoadPrepared(stream); Report.ShowPrepared() Dictionary Properties – Dictionary of parameters of a report. A complete list of supported parameters with default values is available upon request from the server to the list of formats . You need to add the following lines in your App.config or Web.config. ``` ``` FastReport. ReportsPath – specifies the path to the folder with the reports , a list of which will be transmitted to the client. FastReport. ConnectionStringName – the name of the connection string to the database , which is stored in the configuration section . Used to replace the internal connection string in the report template . FastReport. Gear – a list of available formats. You can select only the necessary and change the order of the names . Schematic a use of FastReport.Service: If you know exactly what to report and what format you want to receive ( it will reduce the number of queries to the service ) : Important points when you create report templates for use in the services : dialogs in the reports are not supported and will be ignored ; Each report shall include an internal DataConnection, which will connect string for the report service is replaced by a string from the configuration . Examples of use FastReport.Service.dll can be found in the folders  \Demos\C#\WCFWebService , \Demos\C#\WCFWindowsService , \Demos\C#\WCFWebClient , \Demos\C#\WCFClient. An example configuration file service - FastReport.Service.dll.config. I'll talk more about specific examples of the use of FastReport.Service.dll in future articles. To be continued . Tags: .NET, .NET, WCF, WCF, FastReport, FastReport ### FastReport.NET 1.6 released! URL: https://www.fast-report.com/news/fastreport-net-1.6 Summary: FastReport.NET 1.6 released! FastReport.NET 1.6 released! Version 1.6  ---------------  + added ability to save template to RDL format (Report Definition Language)  * changed work of exports and printing in WebReport, now we use handlers in "web.config"  + added Romanian, Hungarian, Japanese and Thai localization  + added Report.InitialPageNumber property  + added TextObject.ParagraphOffset property  + added PreviewControl.UseBackColor property  + added IsNull function to check DB columns for null  + added import of WritingMode property when import template from RDL format  + added saving of TextObject.Angle property when saving template in RDL format  + added FNC1 symbol encoding in the Datamatrix barcode (use &1; sequence)  + added Open Document Text, XPS, DBF exports in WebReport  * added ability to replace built-in query builder  - fixed "Scale" print mode  - fixed bug with RichObject and CanShrink  - fixed bug in TextObject break  - fixed bug in TextObject.TabWidth  - fixed bug when saving the prepared report with UseFileCache flag  - fixed RichObject multi-thread issues  - fixed bug when opening some saved to RDL reports in the Report Builder  - fixed bug in the Group Expert  - fixed bug with ChartObject filter when saving the report as a C#/VB.Net class  - fixed bug when converting boolean expressions in the RDL import  - fixed bug with internal manifest in ODF export ### FastReport.NET 1.7 released URL: https://www.fast-report.com/news/fastreport-net-1.7 Summary: FastReport.NET 1.7 released FastReport.NET 1.7 released Version 1.7 =========== + added import plugin for Crystal Reports + added Config.DesignerSettings.PageAdded event + added Config.PreviewSettings.AllowPrintToFile property + added Report.MaxPages property + added MatrixObject.KeepCellsSideBySide property + added outline in PDF export + added properties TableRow.KeepRows, TableColumn.KeepColumns + added TableObject.ManualBuildAutoSpans property + added ability to hide some objects (export filters, report objects) by the code: RegisteredObjects.FindObject(typeof(PDFExport)).Enabled = false * improved report file cache * improved .fpx loading speed/memory usage * CheckBoxObject available in the Basic edition - fixed bug with rendering of text in WebReport when TextObject.WordWrap = false - fixed memory leak when exporting to PDF with embedded fonts - fixed bug with band break - fixed bug with information fields in encrypted PDF file - fixed bug with page borders and fill in PDF export - fixed bug in RichObject - fixed bug in the report preview - fixed bug when saving the report as a class - fixed bug with some image types - fixed bug with text break - fixed bug with events - fixed RichObject height issue - fixed bug in PDF export (missing pictures when viewing under MAC OS X or iOS) - fixed bug with grid alignment - fixed bug with band's CanBreak and outline - fixed bug when exporting to metafile - fixed bug with unary minus with totals - fixed bug with watermark ### FastReport.NET and RDL reports URL: https://www.fast-report.com/news/blog-convertor-template Summary: FastReport.NET and RDL reports FastReport.NET and RDL reports New post in our blog RDL import in FastReport .NET  and  Saving FastReport .NET template to RDL file ### FastReport.Net on MacOS URL: https://www.fast-report.com/blogs/fastreport-net-macos Yes, it is possible. Our team are preparing now FastReport.Net Mono Edition. Let see screenshots: FastReport.Net demo in the "strange OS" FastReport.Net report designer in the same OS. Tags: .NET, .NET, MacOS, MacOS, Mono, Mono, FastReport, FastReport ### FastReport.Net WCF - simple example URL: https://www.fast-report.com/blogs/net-wcl-simple-example Today we review the simplest way to use the library FastReport.Service.dll as WCF service. This example does not require programming and is intended for testing of library and configuration file. To complete the task , we use the program WcfSvcHost.exe, that comes with Visual Studio: Create a folder for our experiments anywhere on the disk , such as C:\WCF\FastReport Copy the files in the folder FastReport.Service.dll, FastReport.Service.dll.config, FastReport.dll, FastReport.Bars.dll. Create two sub-folders Data and Reports Copy the database file in the Data folder from the examples  \FastReport.Net\Demos\Reports\nwind.xml Copy the contents of a folder \FastReports\FastReport.Net\Demos\WCF in Reports – It contains test reports with built-in connections to the database, which is a necessary requirement when used with a library FastReport.Service.dll Open configuration file FastReport.Service.dll.config in any text editor. Change path to the reports in section : ``` ``` Change connection string in section : ``` ``` Create service.bat with line: ``` "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\WcfSvcHost.exe" /service:C:\WCF\FastReport\FastReport.Service.dll /config:C:\WCF\FastReport\FastReport.Service.dll.config ``` Run service.bat from Explorer with administrator rights (Run as administrator). You will see an icon of WCF Service Host in system tray. Double-click on it: Open web browser and go to address http://localhost:8732/FastReportService/ Service works normally . You can change port number of service in configuration file: ``` ``` Let's connect to our service from demo example \FastReport.Net\Demos\C#\WCFClient Open WCFServiceClient.csproj in Visual Studio Click in Solution Explorer by right-button on "Service References–ReportService" and select "Configure Service Reference" Review our service address. Address should end on “/mex” (metadata exchange) Compile and run an example. To be continued . Tags: .NET, .NET, WCF, WCF, FastReport, FastReport ### FastReports on Firebird Developers Day 2011 in Brazil URL: https://www.fast-report.com/news/firebird-brazil-2011 Summary: FastReports on Firebird Developers Day 2011 in Brazil FastReports on Firebird Developers Day 2011 in Brazil FastReports will take part as a sponsor in the A nnual C onference for S oftware D evelopers in Piracicaba, Brazil. FastReports CEO Michael Philippenko will speak about FastReport VCL 5, FastCube 2 and FastReport.Net and Mono. You have a last chance to participate in the main Firebird event in Brazil on 23 rd July: http://www.firebirddevelopersday.com.br/fdd/2011/ ### FastReports reporting on 64-bit platform URL: https://www.fast-report.com/news/fastreport-64-bit-platform Summary: FastReports reporting on 64-bit platform FastReports reporting on 64-bit platform How to use FastReports reporting on 64-bit platforms .  A n ew article in our blog. And yes, we know about 64-bit Delphi and C++Builder (w h ich should be available very soon). FastReport VCL supports them . ### FastRreport VCL 5 price URL: https://www.fast-report.com/fast-report-5-price Summary: FastReport 5 VCL ordering will be available after release (estimated date is 31st of March) by this price. FastReport 5 VCL ordering will be available after release (estimated date is 31st of March) by this price. FastReport 5 VCL ordering will be available after release (estimated date is 31st of March) by this price . All customers of FastReport VCL 4 could get upgrade to FastReport 5 with discount: - 50% from full price of the same edition - if FastReport VCL 4 was ordered before 1st of October 2013 - 100% - if FastReport VCL 4 was ordered after 31st of September 2013 This possibility is available in your customer panel. How you can save more if FastReport VCL 4 was ordered before 1st of October 2013? You can order upgrade from FastReport VCL 4 to FastReport VCL 4 (higher edition) at this week and get FastReport 5 of this new higher edition for free. This method is strongly recommended also for customers of FastReport VCL Basic Edition! Single Team Site Standard $199 / €149 $599 / €449 $3 990 / €2 990 Professional $299 / €225 $999 / €749 $5 990 / €4 490 Enterprise $399 / €299 $1 299 / €975 $7 990 / €5 990 ### FastScript URL: https://www.fast-report.com/products/fast-script Summary: FastScript is a library for running scripts in Delphi 2010-XE8, C++Builder 2010-XE8, Embarcadero RAD Studio 13, and Lazarus FastScript is a library for running scripts in Delphi 2010-XE8, C++Builder 2010-XE8, Embarcadero RAD Studio 13, and Lazarus FastScript is a library for running PascalScript, C++Script, JScript, and BasicScript in Delphi, C++Builder, Embarcadero RAD Studio, and Lazarus. FastScript FastScript is a library for running scripts in Delphi 2010-XE8, C++Builder 2010-XE8, Embarcadero RAD Studio 13, and Lazarus Try for free Documentation ## FastScript is a library for running scripts. It'll come in handy for developers who want to add the ability to run scripts to their projects in Delphi 2010-XE8, C++Builder 2010-XE8, Embarcadero RAD Studio 11, and Lazarus. Non-standard calculations You can use scripts to process data and calculate standard metrics and filters. Source code This library includes complete source codes. It's extremely convenient for companies that want to adapt the code to their needs. Event support FastScript supports event processing in the script. Unlike event processors in Delphi, the processors in the script aren't object methods. Access any object in your app Standard libraries are used to access basic classes, controls, forms, and databases. FastScript has an easily extensible architecture. Multilingual architecture You can use multiple languages, such as PascalScript, C++Script, JScript, and BasicScript, or add any other procedurally oriented languages in XML. Available documentation Take advantage of our documentation, free video tutorials, and tons of articles for every use case for our product in your projects to get meaningful results in the shortest possible time. Ultimate VCL Learn more about Ultimate VCL Yes, it can support multithreading without using fsGlobalUnit. You can find a detailed description on **[page 47 of the guide](/public_download/docs/FRVCL/FSVCLDeveloperManual-en.pdf)**. Full Review of FastGrid Library's Capabilities FastReport VCL Ultimate users have probably already noticed that the installer now includes two new options: FastEditors VCL and FastGrid VCL. A new demo has also been added to the DemoCenter: FastGrid VCL Demo. An overview of the FastGrid library for VCL and Lazarus: data visualization, editing, and structuring. Sorting, filtering, grouping, convenient data editors — all in one article! New Report Validation System in FastReport VCL We have frequently received requests from technical support for functionality to automatically validate reports, and we are pleased to announce its inclusion in the 2026.2.0 release. The "File" menu in the report designer now features "Validate" and "Validation Rule Settings" options. This allows users not only to check reports but also to manage the set of rules, including the creation of custom ones In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. Using Watermarks in FastReport VCL The latest versions of FastReport VCL now feature watermarking functionality. Watermarks are labels embedded in electronic documents, images, videos, audio, or other digital content. Their purpose is to confirm authorship, protect against copying, and track file distribution. In this article, we'll take a detailed look at creating and using watermarks in FastReport VCL reports. An example of watermark use is available in the Demo included with FastReport VCL. The article provides a detailed overview of the watermark functionality in FastReport VCL — covering both the visual interface and programmatic methods using Delphi code and report scripts. Any other questions? Contact the manager ### FastScript .NET URL: https://www.fast-report.com/products/fast-script-net Summary: A cross-platform library for complex C# scripts in environments without code generation (Native AOT, WASM, iOS). A cross-platform library for complex C# scripts in environments without code generation (Native AOT, WASM, iOS). A cross-platform library for complex C# scripts in environments without code generation (Native AOT, WASM, iOS). FastScript .NET A cross-platform library for complex C# scripts in environments without code generation (Native AOT, WASM, iOS). Try for free Documentation ## Libraries for executing complex scripts provide the ability to dynamically generate and execute code, which can be useful in various scenarios such as developing plugins, creating user scripts, and so on. Integrability in Projects Install the necessary package from the NuGet repository or download the package from our website and add the required libraries to your project. No additional modules or special extensions are needed. Unique Development The FastScript .NET interpreter does not use CodeDOM and Roslyn platforms. This allows the script library to work seamlessly in environments without code generation such as Native AOT, WASM, and iOS. Wide Capabilities Supports scripts that conform to the C# 1.0 specification (with some limitations and additions), including features such as creating classes, structs, events, delegates, etc. Supported Features   FastScript .NET supports the following features of the C# language (the C# 1.0 specification is most fully supported, along with many features from later versions of the language): C# 1.0: ●    Classes ●    Structs ●    Enums ●    Interfaces ●    Events ●    Operator overloading ●    User-defined conversion operators ●    Properties ●    Indexers ●    Output parameters—out, ref ●    Params arrays ●    Delegates ●    Operators and expressions ●    Verbatim identifier "@" C# 2.0: ●    Generics ●    Partial types ●    Nullable value types ●    Getter/setter separate accessibility ●    Static classes C# 3.0: ●    Auto-implemented properties ●    Extension methods ●    Implicitly typed local variables C# 4.0: ●     Optional arguments C# 6.0: ●    Auto-property initializers ●    Properties and methods that return the "=>" expression (Expression bodied members) ●    Null propagator C# 7.0: ●    Out variables ●    Local functions C# 8.0: ●    The "readonly" modifier for fields (Readonly members) ●    Static local functions ●     Null-coalescing operators C# 9.0: ●    Top-level statements Unsupported Features The following features of C# 1.0 are not supported:   ●    Preprocessor directives - #if, #region, etc. ●    Attributes ●    Unmanaged code: pointers, unsafe keyword, P/Invoke ●    checked, unchecked statements ●    goto statement Limited Support   The terms used below: "host" refers to your .NET application; "script" refers to something defined in the script code.   Class Inheritance Classes defined in the script can be inherited from other script classes or from System.Object: class MyScriptClass: OtherScriptClass // ok class MyScriptClass: Object // ok class MyScriptClass // ok, same as Object class MyScriptClass: ArrayList // error Structures In FastScript, a structure is represented as a regular class. FastScript adds special methods for copying the structure when its value is passed to a method or assigned to another variable. Declaring a variable of a structure type does not automatically create an instance of the structure: MyStruct s; // s is null  s = new MyStruct(); // and must be initialized before use Interaction with the Host   A class defined in the script is visible to the host as an instance of FastScript.Runtime.DataContext.   You can override the following methods in the script class:   ●    ToString ●    Equals ●    GetHashCode These overridden methods will also take an effect if used by host. A script class may implement some of host interfaces, but it has effect in a script only. Passing such an instance to a host will not work, the host will not be able to use interface members implemented in a script. Nullable types Nullable types can only be used with host types.   Generic Types and Methods   Only host generic types and methods can be used in the script. You cannot define a generic type or method in the script.   Type forwarding If a host type is marked as "forwarded," it must be explicitly used in the host for it to be usable in the script. For example:   var list = new System.ComponentModel.BindingList (); // error, BindingList does not exist If you add the following line of code to your application, the script will compile without errors:   new System.ComponentModel.BindingList (); Delegates You can create delegates of any methods (script or host). Passing a delegate to host is not supported though. You also cannot create Action<> and Func<> delegates (these host classes require a native method with certain signature, which can't be done in a script). Type Conversions (Implicit, Explicit) User-defined type conversion (in script code or in the host) is limited to those types that are explicitly defined. For example, if a T->int conversion is defined, you can use it. However, you will not be able to use a T->float conversion unless it is explicitly defined. var m = new My(); int intValue = m; // ok float floatValue = m; // error int explicitIntValue = (int)m; // ok: explicit is not defined, but we have implicit one float explicitFloatValue = (float)m; // error floatValue = (int)m; // use this way public class My {   private object _value;   public static implicit operator int(My m) => (int)m._value; } Using FastScript in Native AOT   In the script, you can only use types that are available in the host. An application compiled in Native AOT mode may not include certain types (or members of types) that you would like to use in the script, because the type/member was trimmed from the assembly. Another issue is the use of generic types/methods. In Native AOT, you can use those generic types that are available in the host. For example, if the host uses the class List , but does not utilize the class List . The first one can be used in the script, but an error will occur if you try to create a type List . Therefore, your task will be to make types (and members of types) statically available in your application so that they can be used in the script. This can be accomplished in various ways (creating instances of types, using attributes): [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(List<>))] public void EnsureAOTVisible() {   var list = new List (); } Note that generic parameters of reference types can be used if an open generic type is available in a host app. For example, having a List<> type available in your app, you may construct List or List > or List >. Memory Savings With each script compilation, FastScript .NET does not create separate DLL assemblies; instead, it stores information in a cache. This saves memory on your device. Security FastScript .NET allows you to restrict the use of unsafe APIs, such as file system or network operations. You can limit access to entire assemblies, namespaces, or individual types. Compactness The small size of the library (just 300 KB) makes it convenient to use even in resource-constrained projects without overloading the system. How to buy FastScript .NET? Learn more about Ultimate .NET How to Configure an AI Agent for FastReport .NET: Architecture, Limitations, and Report Migration Working with reports often turns into a routine: editing XML templates (.frx), configuring data bindings, and adapting legacy formats. To automate this work, a specialized AI agent was created. This agent understands the FastReport .NET architecture and strictly follows enterprise development standards. AI feature for FastReport .NET: automated migration of reports from Crystal Reports and StimulSoft, refactoring for .NET 8/9, template generation, and protection against data leaks. How to export a report from FastReport .NET to DXF DXF (Drawing Exchange Format) is an open format for exchanging graphic data, developed by Autodesk for storing and transferring two-dimensional and three-dimensional drawings. Due to wide support from various CAD systems, DXF has become one of the most common formats for exchanging engineering and technical documentation between applications. In this article, we will consider methods of exporting a report to the DXF format, and also see what the resulting output looks like after opening the file in a CAD application. In this article, we will consider methods of exporting a report to the DXF format, and also see what the resulting output looks like after opening the file in a CAD application. How to Export a Report from FastReport .NET to PostScript FastReport .NET supports exporting reports to many popular formats, such as PDF, Excel, Word, and others. However, professional printing, plotters, and specialized printing equipment often require the PostScript (.ps) format. In this article, we will look at exporting a FastReport .NET report to the PostScript format, using a practical example to examine parameter configuration and programmatic implementation. In this article, we will look at exporting a FastReport .NET report to the PostScript format, using a practical example to examine parameter configuration and programmatic implementation. Any other questions? Contact the manager ### FastScript 1.6 URL: https://www.fast-report.com/news/fastscript-1.6 Summary: FastScript 1.6 FastScript 1.6 + added dynamic array support + added MessageDlg, InputBox, InputQuery functions - fixed error in StrToDateTime function - fixed wrong 'Exit' behavior - some fixes for Linux CRLF compatibility - fixed syntax error when using cross-language modules - fixed empty case selector bug - fixed bug with 'var ar, ar1: array' declaration ### FastScript 1.7 URL: https://www.fast-report.com/news/fastscript-1.7 Summary: FastScript 1.7 FastScript 1.7 + added VarType function + added TApplication class - fixed error with properties of Char type - fixed DayOfWeek error - fixed error with open array parameters - fixed error with 'uses' ### FastScript 1.8 URL: https://www.fast-report.com/news/fastscript-1.8 Summary: FastScript 1.8 FastScript 1.8 + added packages for Delphi2005 + Length function now supports arrays + added TfsScript.ExtendedCharset property (use national chars in identifiers) - fixed error in SetLength function (for dynamic arrays) - fixed error with __StringHelper (access to string elements) ### FastScript 1.9 released URL: https://www.fast-report.com/news/fastscript-1.9-release Summary: FastScript 1.9 released FastScript 1.9 released + full multi-thread support + improved performance + added packages for Delphi2006 + added separate Tee package - fixed c++ bool type - fixed case sensitivity for c++ (keywords only) - fixed jscript error (function that returns a string) ### FastScript 1.92 released! URL: https://www.fast-report.com/news/fastscript-1.92 Summary: FastScript 1.92 released! FastScript 1.92 released! + added support of CodeGear Delphi 2007 + added rtti for TPopupMenu * modified the ini rtti, added rtti for TCustomIniFile and TMemIniFile + added support of Lazarus 0.9.22   a) modified non-visual components for Free Pascal v2.0.4, 2.1.1, 2.3.1   b) modified visual components for LCL (Lazarus component library)   c) added packages for Lazarus Still not modified for Lazarus and Free pascal next modules: fs_idbreg, fs_iibxreg, fs_iadoreg, fs_ibdereg, fs_iteereg,  fs_ibdertti, fs_ichartrtti, fs_iadortti, fs_iibxrtti, fs_idisp ### FastScript 1.94 released! URL: https://www.fast-report.com/news/fastscript-1.94 Summary: FastScript 1.94 released! FastScript 1.94 released! -added new RTTI functions/properties:TCustomIniFile.WriteTStrings,TCustomIniFile.ReadTStrings, TIBTransaction.Commit,TIBTransaction.RollBack,TIBTransaction.StartTransaction,TIBQuery.FetchAll, TIBQuery.RecordCount,TChartSeries.Active,TChartSeries.Count,TChartSeries.Delete. -fixed bug with "in" operator. -functions return null value by default -fixed bug with late binding -added TfsScript.IncludePath property (list of paths for modules) -added TfsScript.UseClassLateBinding  - fixed bug with type casting  - added EvaluateRiseError property - return True if Evaluate function rise error - added OnGetVarValue event  - added AddPropertyEx with TfsGetValueNewEvent/TfsSetValueNewEvent handlers - fixed bug in Evaluate with Basic grammar - fixed bug with unnecessary AddRTII call in evaluate function ### FastScript 1.95 with Delphi 2009 support released ! URL: https://www.fast-report.com/news/fastscript-1.95 Summary: FastScript 1.95 with Delphi 2009 support released ! FastScript 1.95 with Delphi 2009 support released ! New in FastScript 1.95 + added support of CodeGear Rad Studio 2009 - fixed bug with "with" operator - fixed bug with comments in Basic script - fixed minor bugs in TfsSyntaxMemo и TfsTree ### FastScript 1.97 released URL: https://www.fast-report.com/news/fastscript-1.97 Summary: FastScript 1.97 released FastScript 1.97 released FastScript v1.97 ============== + added support for Embarcadero Rad Studio XE + added TeeChart 2010 support ### FastScript 1.98 released! URL: https://www.fast-report.com/news/fastscript-1.98 Summary: FastScript 1.98 released! FastScript 1.98 released! One more lead ing scripting tool is now available for FireMonkey developers.  So , what about add ing scripting functionality to MacOS X projects? Four scripting languages (PascalScript, C++Script, BasicScript and JScript) with access to any object inside your application. Standard libraries for access ing base classes, controls, forms and DB, step - trace debugging, s y ntax hi gh ligh t ing, rtti for FireMonkey (and not only - for different platforms) classes. It also supports Embarcadero (ex Borland and CodeGear) Delphi 4-XE2, C++Builder 4-XE2, Kylix 1-3 and Lazarus . + added support for Embarcadero Rad Studio XE2 for x32/x64 compil ers + added support for Embarcadero FireMonkey framework for Windows x32/x64  and Mac OSX platforms (include rtti for new classes and visual controls -  fsSynMemo, TfsTree) + added support for   int64 type in script code - f ixed AV for 64 - bit versions of FPC - f ixed error in accessing A nsi S tring property values for FPC ### FastScript 1.99 released URL: https://www.fast-report.com/news/fastscript-1.99 Summary: FastScript 1.99 released FastScript 1.99 released FastScript v1.99 – changes: + added support for Embarcadero Rad Studio XE3 for VCL x32/x64 compil ers + added support of Embarcadero Rad Studio XE3 FireMonkey framework (2) for Windows x32/x64 and Mac OSX platforms ### Features of FastReport FMX URL: https://www.fast-report.com/fast-report-fmx-comparison Summary: Features of FastReport FMX Features of FastReport FMX Features Embarcadero Windows macOS Linux Bands ✓ ✓ ✓ ✓ Internal ADO datasets ✓ Internal BDE datasets Internal IBX datasets ✓ ✓ ✓ Internal DBX datasets ✓ ✓ ✓ Shape object ✓ ✓ ✓ ✓ Text object ✓ ✓ ✓ ✓ Sub-report object ✓ ✓ ✓ ✓ Picture object ✓ ✓ ✓ ✓ System text object ✓ ✓ ✓ ✓ Chart object ✓ ✓ ✓ ✓ Barcode object ✓ ✓ ✓ 2D Barcode object ✓ ✓ ✓ OLE Object Rich Text object Gradient object ✓ ✓ ✓ Cross-tab object ✓ ✓ ✓ Checkbox object ✓ ✓ ✓ WEB components Advanced printing modes Report inheritance ✓ ✓ ✓ ✓ Drill-downs ✓ ✓ ✓ ✓ HTML tags in text object ✓ ✓ ✓ ✓ Preview component ✓ ✓ ✓ ✓ Preview window ✓ ✓ ✓ ✓ Designer (end user) ✓ ✓ ✓ Designer (developer) ✓ ✓ ✓ ✓ Dialogues ✓ ✓ ✓ Script ✓ ✓ ✓ Export to PDF  ✓ native OS print dialog ✓ Export to PNG, GIF, TIFF, JPEG, BMP ✓ ✓ ✓ without GIF/TIFF Export to RTF ✓ ✓ ✓ Export to XLS (OLE) Export to XLS (XML) ✓ ✓ ✓ Export to XLS (BIFF) Email export Export to CSV ✓ ✓ ✓ Export to TXT ✓ ✓ ✓ Export to ODS ✓ ✓ Export to ODT ✓ ✓ ### Fonts embedding in the PDF export in FastReport VCL 5 URL: https://www.fast-report.com/blogs/fonts-embedding-pdf-export-vcl Summary: It was decided to improve fonts embedding in FastReport VCL 5: the new PDF export will extract only needed characters from used fonts. It was decided to improve fonts embedding in FastReport VCL 5: the new PDF export will extract only needed characters from used fonts. It was decided to improve fonts embedding in  FastReport VCL 5: the new PDF export will extract only needed characters from used fonts. What is fonts "embedding" DF documents often contains text written with various fonts. In order Acrobat Reader or another pdf viewer can display this text, it must have access to font files used in the document. If the OS where you open the document doesn't have needed fonts, the document may become unreadable. For the sake of resolving this issue, the PDF standard allows to copy font files into a pdf document, thus providing the guarantee, that wherever you open this document, fonts will be available and the document will be readable. This copying of font files is called "embedding". Of course, here a problem appears: font files usually occupy much space and a pdf document may be become unacceptable because of big file size. The PDF export in FR4 is capable to embed fonts, but it does that in the simplest way, by just copying all needed font files into a document. Sometimes, this leads to increasing the file size of the pdf document to more than 10 megabytes. Fonts embedding in FastReport VCL 5 It was decided to improve fonts embedding in  FastReport VCL 5: the new PDF export will extract only needed characters from used fonts. It's usually used up to 50 symbols from a font - this is explained by the fact, that a document is usually created in one language and uses symbols from one alphabet. But fonts, especially such universal fonts as Arial Unicode MS, contains from 3 to 50 thousand symbols.  For instance, let's take a simple report which has a few paragraphs written with the Arial font. The report uses only 41 symbol, but Arial contains 3415 symbols. Thus, by embedding only these 41 symbols into a pdf file, more than 700 kb space can be saved - this is the file size of Arial. Another spectacular example: export this report to pdf with enabled embedding and see the file size of the resulting document - it's more than 30 mb; if the same report is exported with the PDF export in FR5, then the resulting file is only 116 kb, and it's even opened with Acrobat Reader much faster. In this forum topic you can take a test program that can export reports to pdf with the new PDF export. What's inside a font file Usually a font is represented with a TTF file; sometimes - with a TTC file, which is simply several TTF files put together. A font consists of two main parts:  A set of glyphs. Each glyphs represents a symbol or a part of a symbol. A glyph in TTF is represented with Bezier curves and, maybe, with a small picture that tells how the glyph should look like for a very small font size. The "cmap" table that defines a mapping from 2-byte charcode to glyph indices. This table is needed because a font rarely contains glyphs for all possible Unicode values and it's needed to tell what Unicode values have representation in the font. Some symbols are drawer with one glyph: usually symbols of the english alphabet are drawn in this way. Other symbols can be represented with several glyphs: for example symbols with accent marks consists of a glyph representing the marks and a glyph representing the rest of the symbol. Some font define glyphs that represent several characters (so called ligatures), glyphs representing a character with respect to its position in a word and other special glyphs. Thus, an algorithm that determines what glyphs are needed to draw a word is not so simple as it might be thought. Fonts embedding implementation in the PDF export The whole point of the embedding is that from the glyph set, from the "cmap" table and many other font tables needed information is extracted that correspond to used glyphs, following which similar font tables are created and filled in with the extracted information. As a result, a new font file is produced, but with smaller number of glyphs. An example of such a shortened font file is  here . Then, the obtained font file is written into a pdf file. Let's consider this in a report with a single line of text "Open Type Font" inside. After exporting to pdf, this file appears. Code %PDF-1.5 %ЂЂЂЂ % This pdf object represents the TfrxMemoView with the text "Open Type Font". % It chooses a font with the Tf operator and draws the text with the Tj operator. 2 0 obj << /Length 257 /Length1 257 >> stream ... /F0 10 Tf ... <004F00700065006E0020005400790070006500200046006F006E0074> Tj ... endstream endobj % The general font description. % The field /Encoding defines a mapping from charcodes to CIDs. % Here this mapping is identity, in other words CID of a charcode equals the charcode. 3 0 obj << /Type /Font /Subtype /Type0 /BaseFont /IJIVDA+Arial /Encoding /Identity-H /DescendantFonts [11 0 R] /ToUnicode 6 0 R >> endobj 9 0 obj << /Type /FontDescriptor /FontName /IJIVDA+Arial /FontFamily /IJIVDA+Arial /FontBBox [-1361 -665 4096 2060] /ItalicAngle 0 /Ascent 1854 /Descent -434 /CapHeight 0 /StemV 0 /Flags 32 /CIDSet 5 0 R /FontFile2 8 0 R >> endobj 11 0 obj << /Type /Font /Subtype /CIDFontType2 /CIDToGIDMap 10 0 R /BaseFont /IJIVDA+Arial /CIDSystemInfo 7 0 R /FontDescriptor 9 0 R /W [ 32 [277.8] 70 [610.8] 79 [777.8] 84 [610.8] 101 [556.2] 110 [556.2] 111 [556.2] 112 [556.2] 116 [277.8] 121 [500.0] ] >> endobj % This is the TTF file itself. % Bertween "stream" and "endstream" the .ttf file with needed glyphs is written. 8 0 obj << /Length 15148 /Length1 10856 /Filter [ /ASCIIHexDecode /FlateDecode ] >> stream 7801c57a7b...00175ac7e0 endstream endobj % The mapping from CIDs to GIDs. % GID is a glyph index. 10 0 obj << /Length 86 /Length1 244 /Filter [ /ASCIIHexDecode /FlateDecode ] >> stream 78016360a0103052a81f593b133207cc66868bb0c059b818ac18126c0cec0c1c50514eb82c1700078f0038 endstream endobj ... %%EOF All font parameters are rather simple. The only interesting part here is how Tj draws text. As an argument it accepts a sequence of 2-byte charcode. In this example these charcodes are 4f 70 65 6e ... Each charcode is transformed into a CID, using the field /Encoding /Identity-H. Now Tj has a sequence of CIDs (it is the same: 4f 70 65 6e ...) and further it works with these CIDs. Each CID is mapped to a GID using the field /CIDToGIDMap. GID is a glyph index. After that, Tj has a sequence of glyphs and it can draw text. It's noteworthy that the PDF standard doesn't use the "cmap" table in the embedded font, that defines mapping from charcodes to glyphs. One reason of this is that Tj can accept not only ASCII or Unicodes, but rather it accepts a sequence of glyphs which can be ligatures and other special symbols that don't have associated charcodes. Tags: VCL, FastReport, PDF ### Foreach in C sharp URL: https://www.fast-report.com/blogs/foreach-c-sharp Today I would like to talk about the way the foreach loop works inside. We all know that a foreach loop is - a loop that iterates through all the elements of the collection. Its greatest advantage in the ease of use - we do not need to worry about how many elements in the collection. However, many do not know that this is just syntactic “sugar”, which facilitates the work of the programmer. Therefore, we simply have to know in what the resulting compiler will convert. The foreach loop works differently, depending on the collection you want to sort through. 1)      If it has to deal with the banal array, we can always know its length. Therefore, foreach will eventually be converted to a for loop. For example: ``` int[] array = new int[]{1, 2, 3, 4, 5, 6}; foreach (int item in array) { Console.WriteLine(item); } ```  The compiler converts the loop into this construct: ``` int[] temp; int[] array = new int[]{1, 2, 3, 4, 5, 6}; temp = array; for (int i = 0; i < temp.Length; i++) { int item = temp[i]; Console.WriteLine(item); } ```  2) However, many collections do not support indexed access to elements, for example: Dictionary, Queue, Stack. In this case, the iterator template will be used. This template is based on the interfaces System.Collections.Generic.IEnumerator and nongeneric System.Collections.IEnumerator, which allow you to iterate the elements in the set. The IEnumerator contains: MoveNext () method - moves the enumerator to the next element of the collection; Reset () method - restarts the enumeration, sets the enumerator to the starting position; Current property - returns the current element of the collection. IEnumirator is inherited from two interfaces - IEnumirator and IDisposable. It contains an overload of the Current property, providing its implementation by type. Since we mentioned the interface IDisposable, then we'll tell a couple of words about it. It contains the only Dispose () method that is needed to free resources. Every time the loop terminates or when it exits, IEnumirator clears the resources. Let's look at this loop: ``` System.Collections.Generic.Queue queue = new System.Collections.Generic.Queue(); queue.Enqueue(1); queue.Enqueue(2); queue.Enqueue(3);   foreach (int item in queue) { Console.WriteLine(item); } ```  The compiler converts it into a similar code: ``` System.Collections.Generic.Queue queue = new System.Collections.Generic.Queue(); queue.Enqueue(1); queue.Enqueue(2); queue.Enqueue(3);   int num; while (queue.MoveNext()) { num = queue.Current; Console.WriteLine(num); } ```  In this example, MoveNext replaces the need to count elements during the loop. When it does not receive the next element, it returns fasle and the loop terminates. But, nevertheless, this code is only approximate to what the compiler really produces. The problem is that if you have two or more overlapping cycles that work with the same collection, then each MoveNext call will affect all the cycles. This course of events will not suit anyone. And so came up with the second interface IEnumirator. It contains the only method GetEnumerator (), which returns an enumerator. Thus IEnumerable and its generic version of IEnumerable allow you to render the logic of enumerating elements from the collection class. Usually this is a nested class that has access to the collection's elements and supports IEnumerator . Having each enumerator, different consumers will not interfere with each other, performing the enumeration of the collection at the same time. Thus, the above example should take into account two points - obtaining an enumerator and releasing resources. Here's how the compiler actually translates the foreach loop code: ``` System.Collections.Generic.Queue queue = new System.Collections.Generic.Queue(); System.Collections.Generic.Queue.Enumerator enumirator;   IDisposable disposable;   enumirator = queue.GetEnumerator(); queue.Enqueue(1); queue.Enqueue(2); queue.Enqueue(3);   try { int num; while (enumirator.MoveNext()) { num = enumirator.Current; Console.WriteLine(num); } } finally { disposable = (IDisposable)enumirator; disposable.Dispose(); } ```  You probably think that for the iteration of the collection, you need to implement the IEnumerable and IEnumerable interfaces. However, this is not quite true. To compile foreach, you just need to implement the GetEnumerator () method, which will return another object with the Current property and the MoveNext () method. Here we use duck typing - a well-known approach:   "If something goes like a duck, and quacks like a duck, it's a duck." That is, if there is an object with the GetEnumerator () method, which returns an object with the MoveNext () method and the Current property, then this is the enumerator. Otherwise, if the necessary objects, with the necessary methods are not found, the interfaces IEnumerable and IEnumerable will be searched. Thus foreach is really a universal loop that works fine with both arrays and collections. I use it constantly. However, there is one disadvantage for foreach - it allows only to read the elements, and does not allow them to be changed. Therefore, the old good “for” never will be lost from our code. Tags: .NET, .NET, C#, C# ### Free Business Graphics tool for Teams URL: https://www.fast-report.com/news/free-business-graphics Summary: Free FastReport Business Graphics with every purchase of FastReport .NET Enterprise Team. Free FastReport Business Graphics with every purchase of FastReport .NET Enterprise Team. We are welcoming the summer season by giving away a free FastReport Business Graphics with every purchase of FastReport .NET Enterprise Team.  FastReport Business Graphics is a library for vivid visualization of your data stored in reports. It uses several types of charts to turn the dry numbers into illustrative infographics for optimal decision-making. It will supplement your FastReport .NET to get the most out of your data.  Until July 1, 2022, you will have a chance to try its full capabilities for free when buying FastReport .NET Enterprise Team and save $1199.  To use the offer reach out to our sales team through the support system , a chat on our website, or by emailing sales@fast-report.com ### Free seminar for developers in Munich, Germany, Jan 24 URL: https://www.fast-report.com/news/free-seminar-german-2008 Summary: We'd like to invite German developers to our free seminar in Munich, Germany, Jan 24. We'd like to invite German developers to our free seminar in Munich, Germany, Jan 24. We'd like to invite German developers to our free seminar in Munich, Germany, Jan 24.  Registration is open until 16-00 CET January 23. ! See bellow German text.  Agenda:  - New in Firebird 2.1, Vladislav Khorsun, developer Firebird  - Fast Reports Business Intelligence solutions for Developers, Michael Philippenko, CEO Fast Reports  - Corruption fighting and Firebird database protection, Dmitry Kuzmenko, CEO IBSurgeon  - Fast Reports new products and solutions, Michael Philippenko, CEO Fast Reports  - Firebird optimization, Dmitry Kuzmenko, CEO IBSurgeon  German text:  Fast Reports Report-Building-Losungen & Firebird-Datenbanken im Fokus des Seminars am 24. Januar - Teilnahme kostenlos - Anmeldung ab sofort moglich  Das Seminar wird in Englisch gehalten und findet statt:  24. Januar 2008  10:00 - 17:30 Uhr  InterCityHotel Muchen  Bayerstrabe 10,  80335 Munchen  Vortragsthemen:  - Neue un Firebird 2.1  Vladislav Khorsun, developer Firebird  - Fast Reports Business Intelligence-Losungen fur Entwickler  Michael Philippenko, CEO Fast Reports  - Datenbankkorruptionen beheben  Dmitry Kuzmenko, CEO IBSurgeon  - Fast Reports neue Produkte und Funktionen  Michael Philippenko, CEO Fast Reports  - Optimierung von Firebird-Datenbanken  Dmitry Kuzmenko, CEO IBSurgeon  ### FreeReport 2.33 URL: https://www.fast-report.com/news/freereport-2.33 Summary: FreeReport 2.33 FreeReport 2.33 - added Delphi 4-7, 2005, C++Builder 4-6 support - added FastReport 3 (*.fr3) format support in report designer - report preview improvements - bug fixes ### Frequently Asked Question update URL: https://www.fast-report.com/news/update-faq-fastreport-net Summary: Frequently Asked Question update Frequently Asked Question update We have updated the FAQ s and added two new branches: "FastReport.NET" and "Licensing, ordering questions". Please visit FAQ and find answers to your questions! ### From FastCube VCL 2 to FastCube .NET URL: https://www.fast-report.com/blogs/fastcube-vcl2-fastcube-net Summary: The name FastCube has occurred, as you understand, from FastReport and the cube. FastReport - a family of report generators for different platforms, and a cube - OLAP structure. The abbreviation OLAP means - online analytical processing. But why the cube? The name FastCube has occurred, as you understand, from FastReport and the cube. FastReport - a family of report generators for different platforms, and a cube - OLAP structure. The abbreviation OLAP means - online analytical processing. But why the cube? The name FastCube has occurred, as you understand, from FastReport and the cube. FastReport - a family of report generators for different platforms, and a cube - OLAP structure. The abbreviation OLAP means - online analytical processing. But why the cube? The name FastCube has occurred, as you understand, from FastReport and the cube. FastReport - a family of report generators for different platforms, and a cube - OLAP structure. The abbreviation OLAP means - online analytical processing. But why the cube? It is simple, if in the usual summary table the data is presented as a two-dimensional matrix, then in a cube - three dimensions. Generally speaking, they certainly can be more. Just the word cube most clearly reflects the multidimensional structure. Even if you have never worked with OLAP, you probably heard the expression "data cubes". This is the OLAP cubes. OLAP cubes are designed to display large amounts of data in a legible form for conducting analytics and determining patterns, for example, falling sales or population growth. In relational databases, information is stored separately in different tables and to get a complete picture, the analyst needs to reduce several tables into one view - the cube. It is this cube that will allow you to quickly assess trends in a time frame or another dimension. Based on the foregoing, we can say that the cube consists of a set of data and a set of measurements. The analyst sets the dimensions by which he wants to get the data and gets a two-dimensional table as a result. For example: This cube has three dimensions: Category, Seller and Item. And it displays three columns of data: Price, Amount, Work price. So, despite the fact that this is a three-dimensional cube, we always get data in two-dimensional form, so to speak, the data slice. Programs for working with data cubes have a large set of tools that facilitate the work of the analyst. For example, data filtering, data selection by condition, sorting, grouping, and others. Using these tools, you can instantly evaluate information. For example, you set the selection of data in red when any threshold is exceeded. Having seen the red field, in its cut, you immediately understand that not everything is "smooth". Based on all of the above, we can conclude that OLAP cubes are extremely useful for business analysts, and on their work depends the success of the whole company. So, we came to the conclusion that OLAP libraries are useful and in demand in the software market. At one time, Fast Reports released FastCube VCL, which was based on the FastReport VCL reports generator libraries. The most popular was the second version - FastCube VCL 2, which got a lot of new features inherent in all modern OLAP-programs (you can find out more about them here ). The main feature of the program is that it comes in the form of a set of components for Delphi or Lazarus. This allows you to create your own programs by adding an interface to work with cubes. The delivery also has a ready-made demo application for working with cubes, which in principle can satisfy the needs of most users. Let's look at the demonstration application FastCube VCL 2 with a cube: But the VCL platform is not as common as .Net. That's why all the functionality of FastCube 2 has been transferred to a new program based on the .Net framework. The new OLAP library is based on FastReport.Net components. Look at the interface of the demonstration program FastCube .Net: Almost brothers are twins, are not they? Now we will see by example that the functionality of these programs is the same. Moreover, you can use the same cube files in both FastCube 2 and FastCube .Net. If you notice, on the last two screenshots the same cube slice is loaded - simple.mdc. This file looks the same in both programs. All operations are performed in the same way in both programs. And this means, it will not be difficult to switching from FastCube VCL 2 to FastCube .Net. Let's apply the function of conditional data highlighting. Use the icon . In the window that appears, click on the icon for creating a new rule: . We have two types of cell highlighting: all cells depending on the value and cells matched to the condition. Let's choose the second type: Here, we need to specify the type of verification. In our case, Value. That is, the value of the cell will be checked. Then set the test condition to greater. There can be a lot of options, check for: more, less, between, more or equal and so on. In the input field, set the value with which we compare. On the right, you can select the cells to apply this rule to. It remains only to specify the cell style: As a result, we got the rule: Take a look at how it works in FastCube 2: And now we will create exactly the same rule in FastCube.Net: As you can see, the highlight works identically to the VCL version. With this example, I wanted to show that not only the interface, but also the FastCube .Net functionality was stored in accordance with FastCube 2. Moreover, there are new "features" in the .NET version, but about this in another article. Tags: .NET, VCL, FastCube, OLAP ### Full Review of FastGrid Library's Capabilities URL: https://www.fast-report.com/blogs/fastgrid-library-overview Summary: An overview of the FastGrid library for VCL and Lazarus: data visualization, editing, and structuring. Sorting, filtering, grouping, convenient data editors — all in one article! An overview of the FastGrid library for VCL and Lazarus: data visualization, editing, and structuring. Sorting, filtering, grouping, convenient data editors — all in one article! FastReport VCL Ultimate users have probably already noticed that the installer now includes two new options: FastEditors VCL and FastGrid VCL. A new demo has also been added to the DemoCenter: FastGrid VCL Demo. FastReport VCL Ultimate  users have probably already noticed that the installer now includes two new options: FastEditors VCL and FastGrid VCL. A new demo has also been added to the DemoCenter: FastGrid VCL Demo. FastGrid is a library for visualizing, editing, and structuring data in VCL and Lazarus. It consists of a table—a key element of visual programming. It allows for visual presentation of data and is widely used in applications for working with databases, tables, and lists. With FastGrid, you can create convenient and functional programs for data processing. Built-in filtering, sorting, and data structuring functions significantly simplify development. They reduce development time by eliminating unnecessary coding and allowing you to focus on business logic. Key Features of FastGrid It works in two modes. The first mode is like a regular DBAware component (DB). We use the TDataSource component to bind to the data, and then work almost like with a DBGrid (only much more conveniently). The second is the Unbound mode, where the grid stores and manages data internally. For the end-user, these two modes are visually indistinguishable, and from a developer's perspective, the implementation differences are minimal. Convenience of data editing. Many people know how difficult it is to enter numeric data using TEdit. It requires a system that allows users to enter only numbers and ensures that the entered value falls within a specified range. FastGrid's current suite of built-in editors already covers most user requirements, and there are plans to significantly expand the library of available editors in the future. Manual input of large amounts of data. During development, special attention was paid to setting up keyboard shortcuts to speed up data entry. A built-in navigation element. You can position it on any side of the grid, customize the buttons, or hide it completely.  Built-in data sorting and filtering capabilities. These capabilities are available both programmatically and in the user interface. You can sort by multiple columns simultaneously, in both ascending and descending order. Filtering is available at both the individual column and record levels. There are many ways to customize the grid's appearance. For example, with certain settings, you can make all fonts used in the grid bold, without changing the font size or other attributes! Multi-level grouping of grid rows by column values. Combinations of multiple columns are also supported for grouping. And, of course, integration with FastReport. Using the dedicated TfrGridReportBuilder component, you can print your grid with just one line of code, and you can export it to any format you need with the included export filters. Building a Demo Application with FastGrid Let's try creating a small data viewing application. This application will use the demo database included with  FastReport VCL , namely demo.mdb. Put a TADOConnection , TADOTable , and TDataSource on the form. Configure the TADOConnection to the demo database demo.mdb (if you have DemoCenter installed, this database is located in the folder "C:\Users\Public\Documents\Fast Reports\VCL\Feature Demos\FastReport VCL Demo\Data\" . You can also find it in the sample directories included with FastReport. Link the ADOTable1 to the customer database table and open it. You're ready to create your first application with FastGrid. The second step is to place the FastReport grid on the form. You can find it in the "FastControls VCL" tab in the Components panel. We actively use all the components in this tab, and you can see them when editing and viewing reports. Now let's connect our grid to the data. Note that the grid is a complex component. The grid can contain one or more View elements that display the data. The grid can also contain a data navigator. In the lower left corner of the grid, you can see the "legend." The legend shows the grid itself and the other components on it. Click on the frGridTableView1 element in the legend. The Object Inspector now displays the properties of the View on the grid. Now, find the DataController property in the Object Inspector and expand it. Next, let's set the value DataSource1 to DataController.DataSource . Now the current View is bound to the data. How do we actually display the data now? In a standard DBGrid, data is shown automatically. In our case, however, you must first add the specific fields you wish to display. First, open the table associated with the grid. Next, right-click on the legend, select the row corresponding to your View, and choose "Add missing columns" from the context menu. As the name suggests, this option adds all fields from the linked DataSource to the current View that are not already present. Since we currently have no fields defined, all of them will be added at once. You should see a result similar to the image shown below. Alternatively, you could select the "Link to DataSource" menu item—this would immediately connect the grid and automatically create all fields from the data source. Other commands in this menu also allow you to remove all fields from the grid or add a single field for further manual configuration in the Object Inspector. Now let's edit the resulting grid a little. We'll remove the Addr2, Zip, Fax, State, and TaxRate fields. To do this, simply right-click on the column header and select "Delete." If necessary, we can change the column widths directly in the designer with the mouse. Now let's add Data Navigator for the grid—we move on to the View properties and set OptionsView.ShowDataNavigator := True . We would like to emphasize that the OptionsView property contains general parameters affecting the grid's appearance. You can configure the position and other parameters, including the data navigator buttons displayed, with the OptionsDataNavigator property. After doing this, we'll get the following result in the IDE editor: Let's briefly go over the rest of the View properties: The OptionsData property allows you to configure the permitted data operations. OptionsCustomization controls user permissions to do various actions, such as sorting and filtering data, as well as resizing or reordering (moving) grid columns. OptionsBehavior confirms some operations with data. DataController sets up data connection. OptionsView —various settings for the grid appearance. Properties with names starting with the Appearance… prefix primarily control the visual style of various grid elements and their inheritance from parent components. We will examine these properties in more detail in future articles. Let's run the resulting application and see what an ordinary user can do with it. The user can do quite a lot. For example, clicking on a column header sorts the values. In the screenshot, we've sorted the grid by the Contact field. If we hover over the column header, we'll notice that a Filter Mark icon appeared there. Clicking this icon will allow us to filter the data. Any user can reorder or resize columns using the mouse, provided that you, as the developer, have enabled these permissions. FastGrid also allows for hiding unnecessary columns. To do this, left-click the upper-left corner of the grid and, in the popup window that appears, check or uncheck the names of the columns. The screenshot illustrates this column visibility management mode. Note that the CustNo column has elements of the UpDown type. The grid automatically detected that the field type is this number, and selected the appropriate editor to work with the field. If needed, you can manually select an editor for working with a field. To do this, select the desired column in the IDE designer. Then, in the Object Inspector, go to the column's "Properties" property and select the desired value from the drop-down list. After selecting an editor, "Properties" will become expandable, allowing you to configure its parameters. There are currently about ten editors available, and their number is constantly growing. Grid editors are also available as separate components. Avoid using data type editors that are incompatible with your field type. We will cover working with grid editors in detail in another article. For now, note that you can programmatically specify an editor for a grid column using the editor's name. We have successfully created a small application that displays a table—all without writing a single line of code! Now, let’s try adding some functionality to our application, such as selecting which table to view, printing, and exporting table data to CSV format. Let's put the following controls on our form: frComboBox , 3 buttons,  frSpinEdit and components  TfrxReport, TfrGridReportBuilder and TfrxCSVExport . We'll use frComboBox to select the table to display. We'll set the  frCombobox1.Properties.DropDownStyle := frddsFixedList in the Object Inspector and write the FormCreate handler: ``` procedure TForm1.FormCreate(Sender: TObject); var I:Integer; begin frCombobox1.Properties.Items.Clear; ADOConnection1.GetTableNames(frCombobox1.Properties.Items); I := frCombobox1.Properties.Items.IndexOf(ADOTable1.TableName); if I <> -1 then begin frCombobox1.ItemIndex := I; end; end; ``` And OnClick handler for Button1: ``` procedure TForm1.Button1Click(Sender: TObject); begin ADOTable1.Active := False; ADOTable1.TableName := frCombobox1.Text; ADOTable1.Active := True; frGrid1TableView1.Columns.Clear; frGrid1TableView1.Columns.RetrieveMissingColumns; end; ``` Now, if we launch our application, frComboBox1 will be populated with all tables from our database, and the one currently specified in our ADOTable will be selected by default. Clicking Button1 will then display the contents of the selected table in the grid. Let’s try opening the 'biolife' table: The grid automatically detected field types and can even display images stored in the database. However, the resulting images are small. Let's write the following handler for frSpinEdit1 : ``` procedure TForm1.frSpinEdit1PropertiesChanged(Sender: TObject); begin frGrid1TableView1.OptionsView.RowHeight := frSpinEdit1.Value; end; ``` Now, when you enter a value in  frSpinEdit1 and press Enter, we set the grid row height. Let's try printing the grid contents. To do this, we'll set the frGridReportBuilder1 component properties as follows: ``` Report:=frxReport1; View:=frGridTableView1; Options.BuildReportActionType:=braShowReport Options.BuildReportActionType:=frxCVSExport1 ``` And let's write our line in OnClick Button2 handler: ``` procedure TForm1.Button2Click(Sender: TObject); begin frGridReportBuilder1.Build; end; ``` Let's launch application, click on the Print button (Button2) and we get: In this example, we sorted the grid by the "Company" field and hid some columns. However, the preview displays exactly the same data as in the grid. Options.BuildReportActionType property of the TfrGridReportBuilder component determines what will be done with the current report after it is generated. There are three possible options: braPrepareReport simply prepares a report, and the programmer decides what to do with it next. braShowReport – shows a preview. braExportReport – exports the prepared report to the pre- defined export filter in the Options.DefaultExport property. Let's write the following handler for Button3: ``` procedure TForm1.Button3Click(Sender: TObject); begin TfrGridTableViewReportBuilderOptions(frGridReportBuilder1.Options).BuildReportActionType := braExportReport; frGridReportBuilder1.Build; TfrGridTableViewReportBuilderOptions(frGridReportBuilder1.Options).BuildReportActionType := braShowReport; end; ``` Let's launch our application and try pressing Button3. We will see a dialog box for exporting to CSV, followed by a dialog box for saving the resulting file. If we open the resulting file, we'll find that its contents match the data in the grid. A Brief Summary of the FastGrid Review Article Thus, with a few mouse clicks and a dozen lines of code, we have created a rather useful utility that allows you to export from a connected database. This example will work for Lazarus, including Linux. The only changes you'll need to make are the data access components and the methods for retrieving a list of tables from the linked database and activating the selected table. The grid works with any TDataSet descendant. You can explore this demo example without even typing code in your IDE. Everything is included in the FastGrid demo suite called "DataAware." As we can see, working with the TfrGrid component is quick and easy. In this article, we've briefly covered the main uses of this component. In future articles, we'll explore various aspects of grid use in more detail. If you're interested in any particular aspect of its use, let us know, and we'll do our best to cover the details more comprehensively. And don't put away the small project we built today—we’ll be needing it again soon! Tags: VCL, FastReport, FastGrid ### Generating reports in SAP NetWeaver with FastReport .NET – Part 1 URL: https://www.fast-report.com/blogs/generating-reports-sap-net-1 Summary: Build report for the current stock of materials. EPM Demo data model is data source for report. Build report for the current stock of materials. EPM Demo data model is data source for report. Build report for the current stock of materials. EPM Demo data model is data source for report. Part 1: Rapid report development   Landscape: SAP NW 7.31 or higher Workstation with SAP GUI for Windows FastReport .NET components installed on SAP NW Task: Build report for the current stock of materials. EPM Demo data model is data source for report. Final report example: Prepare Data source. We need to use SAP Query for report data source to be able to create new report. Run transaction SQ02 and switch namespace to local (we will use local namespace as it will not require transport requests  and you even can build queries directly in production system) Create new Infoset ZZDEMO_STOCK and choose table SNWD_STOCK as basis table. Add tables and join them as shown on the screen Press on “Infoset” button. On overview screen add (drag and drop) data fields to new result field group. Save and generate infoset. Run transaction SQ03 and create new user group “ZZDEMO_FR Reports “. Assign infoset ZZDEMO_STOCK to user group. Save user group. Preparing template Now let’s move to Fast report! Run transaction ZFR_COCKPIT. On the left panel select node Local->Reports-ZZDEMO_STOCK and then press button “Call query” to run Infoset Query.   Mark fields relevant for selection screen and report data source. Save query with name “Stock01- Stock overview”. After save and return new query will appear in the tree. Now press on it and on the right top panel press “add report”.  On the bottom screen maintain report parameters, set running type as “Run on frontend” and save data. After report parameters have been saved – press edit button and then “Designer”.  Selection screen with report parameters will appear. Execute report.  As result - Fast report designer will be opened. Adjust report options: Menu: Report->Options->General->Double pass. Menu: File->Page setup->Columns->Count->2. Let’s configure bands Menu: Report->Configure bands. Configure (add\remove) bands as presented on the screenshot Press on “Close” button. Double click on 1 st level group header band and put “[MYDATASET.CATEGORY]” as group condition. Double click on 2 d level group header band and put “[MYDATASET.PRODUCT_ID]” as group condition. Double press on Data band and choose “MYDATASET” as data source . Place report elements Choose “text element” from element toolbar and place it on Report title band. Double click on it and put follow text in it “Stock on [Date]”. From “Data” view drag “Category” to the first level group header band. From “Data” view drag “Product_id”, “TEXT” to the second level group band.   From “Data” view drag “ORG_UNIT_NAME”, “BIN_NUMBER”, “QUANTITY” to the “DATA” band.  Double press on “QUANTITY” element and add “[MYDATASET.QUANTITY_UNIT]” to it. On the report footer place “text element” from element toolbar put follow text in it “Page [Page] of [TotalPages]”. Final template should look so: Press preview button and view results (in designer mode source data restricted up to 100 rows). Save report (press SAP standard button) and leave designer. Now press “Run report” to run report and see results. Sometimes preview may be opened in backgroud, use Alt+Tab to switch between windows. RUN To use this report as standalone (without ZFR_COCKPIT)  we need to create separate transaction for it. Run transaction SE93, enter any transaction code you want (for example ZZDEMO_STOCK), put short text and choose “Transaction with parameters” as start object. On the next screen put “ZFR_RUN” as transaction code, check “skip initial screen” and in “Default values” add field “p_rep” and value . Save data. Now you can run report directly by calling transaction ZZDEMO_STOCK. Tags: .NET, FastReport ### Generating reports in SAP NetWeaver with FastReport .NET – Part 2 - Output messages (print documents) URL: https://www.fast-report.com/blogs/generating-reports-sap-net-2 Summary: We continue to generate reports in SAP NetWeaver using FastReport .NET, detailed instructions for the development of printed forms. We continue to generate reports in SAP NetWeaver using FastReport .NET, detailed instructions for the development of printed forms. We continue to generate reports in SAP NetWeaver using FastReport .NET, detailed instructions for the development of printed forms. Part 1 of the article Task: To build print form of purchase order and generate it for document type  “NB standard order”. Example: Prepare Data dictionary. For PO output data we need to create structures in ABAP dictionary. These structures will be used in the report designer as data source. Run transaction SE11. Create and activate the follow objects: Structure ZZPO_ITEM_S Table type ZZPO_ITEM_TT Structure ZZPO_PARTNER_S Structure ZZPO_DOC_S Table type ZZPO_DOC_TT Prepare template Run transaction ZFR_RMAN. Press on “New” button and add a new report “ZPO_FR” with parameters as presented on the screenshot  Save the report. After saving switch into edit mode (press “Edit” button) and then press “Designer” button. System will ask to enter Data source table. Enter ZPO_DOC_TT. After confirmation Fast report designer will be opened. Configure bands Menu: Report->Configure bands. Configure (add\remove) bands as presented on the screenshot Press on “Close” button. Double click on 1 st level “Data” band and select “ITEMS” as data source. Double click on 2 d level “Data” band and select “SCHD” as data source. Place report elements. Stretch “Report Title” band, place “text elements” from element toolbar and fill them with the static texts. Drag fields from “MYDATASET” data source table to the “Report Title”. Format “Page header” band to display items header ( add static text elements ).    Format “Data: ITEMS” band - place fields from “ITEMS” table. Format “Data: SCHD” band - place fields from “SHDL” table. On “Footer” band place summary fields from “ITEMS” table ([ITEMS.MENGE] and [ITEMS.MEINS]).      Final template: If to press “preview” button - report will be empty because still no “test” data has been generated. Later we will see how generate temporary data and preview report with the data. Save report template (press SAP standard button) and leave designer. Now press “Save” to save\update report settings. Develop print program and perform customizing We need to develop program\routine to be able to call printing form from purchase order output function. In ABAP Workbench create new module pool ZZMM_FRPRINTING. Add subroutine “po_print_fr” with the follow code: ``` *&---------------------------------------------------------------------* *& Module Pool ZZMM_FRPRINTING *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------*   PROGRAM zzmm_frprinting. TABLES: nast.   *&---------------------------------------------------------------------* *& Form po_print_fr *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->ENT_RETCO text * -->ENT_SCREEN text *----------------------------------------------------------------------* FORM po_print_fr USING ent_retco ent_screen.   DATA: lv_druvo LIKE t166k-druvo, ls_nast LIKE nast, lv_from_memory, ls_doc TYPE meein_purchase_doc_print, lt_ret TYPE bapiret2_t.   DATA lo_fr TYPE REF TO zcl_frbase_report.   DATA: ls_order TYPE zzpo_doc_s, lt_order TYPE zzpo_doc_tt, ls_item TYPE zzpo_item_s, ls_schd TYPE eket.   FIELD-SYMBOLS: TYPE ekpo, TYPE eket.   CLEAR ent_retco.   IF nast-aende EQ space. lv_druvo = '1'. ELSE. lv_druvo = '2'. ENDIF.   CALL FUNCTION 'ME_READ_PO_FOR_PRINTING' EXPORTING ix_nast = nast ix_screen = ent_screen IMPORTING ex_retco = ent_retco ex_nast = ls_nast doc = ls_doc CHANGING cx_druvo = lv_druvo cx_from_memory = lv_from_memory.   CHECK ent_retco EQ 0.   MOVE-CORRESPONDING ls_doc-xekko TO ls_order.   SELECT SINGLE * INTO CORRESPONDING FIELDS OF ls_order-provdata FROM lfa1 WHERE lifnr = ls_order-lifnr.   LOOP AT ls_doc-xekpo ASSIGNING .   CLEAR ls_item. MOVE-CORRESPONDING TO ls_item.   LOOP AT ls_doc-xeket ASSIGNING . CLEAR ls_schd. CHECK -ebelp = ls_item-ebelp. MOVE-CORRESPONDING TO ls_schd. APPEND ls_schd TO ls_item-schd. ENDLOOP.   APPEND ls_item TO ls_order-items.   ENDLOOP.   APPEND ls_order TO lt_order.   CREATE OBJECT lo_fr EXPORTING iv_reportkey = 'ZPO_FR'.   " use for production ent_retco = lo_fr->build_report( lt_order ).   ********************************************************************** **use for debugging\template correction " DATA: lv_answer.   " lo_fr->set_mode( zcl_frbase_report=>mc_edit ). " lo_fr->call_designer( lt_order ). " CALL FUNCTION 'POPUP_TO_CONFIRM' " EXPORTING " text_question = 'update report template in DB?' " IMPORTING " answer = lv_answer. " if lv_answer eq '1'. " lo_fr->save_report( ). " ENDIF. **********************************************************************     ENDFORM. "po_print_fr ``` In the code we call function to retrieve PO information, then map the data to our structure and call method ZCL_FRBASE_REPORT->BUILD_REPORT for report generation. In case we need to debug form with test data  - comment call of “BUILD_REPORT” method and uncomment section below.  Customizing. Call transaction NACE and create new output type ZZFR for Purchase order. As printing program select ZZMM_FRPRINTING and routine PO_PRINT_FR. Choose access sequence  0001. Add new output type to your output schema (for example RMBEF1) Create condition record for condition type ZZFR and PO type NB.  Open follow settings path: SPRO->Material Management->Purchasing->Messages->Output control->Message types->Define message types for Purchase order-> Fine-Tuned Control: Purchase Order. Add records for ZZFR Now you can open existing purchase order or create a new one and test printing form using standard buttons in the transaction ME23N. Otherwise use transaction ME9F for printing. Tags: .NET, FastReport, Printing ### Generating WEB reports with Mono URL: https://www.fast-report.com/blogs/generating-web-reports-mono There is a possibility of executing an ASP.NET web application under the Apache web server that is running on Windows, Mac OS X, Linux, BSD, and others operating systems. You may need to install several packages: the Apache web server the runtime Mono mod_mono xsp server (implements ASP.NET-pages functionality) Mono packages could be obtained here: http://www.mono-project.com/download/ After installing mod_mono and XSP you should edit the Apache server configuration. Find a place where you have installed the file mod_mono.conf - usually a folder /etc/apache2. Open the httpd.conf file and add the following line: Include /etc/apache2/mod_mono.conf You then need to restart the web server. To test the efficiency of the module mod_mono, you can copy the contents of the /usr/lib/xsp/ to the test folder of your website. To speed up the application under mod_mono ASP.NET we recommend disable KeepAlive in your httpd.conf: KeepAlive Off If disabling this option is not desirable, it is necessary at least to lower the value of KeepAliveTimeout: KeepAliveTimeout 2 More information about the configuration of mod_mono can be read on Mod_mono guide . FastReport.Mono is compatible with mod_mono starting from version 1.0.11. To use FastReport.Mono as an ASP.NET application, you should put FastReport.Web.dll file in the project folder together with the file FastReport.Mono.dll. Example ASP.NET applications running mod_mono can see in the folder Demos/C#/Web. Tags: Mono, FastReport ### Get 1 Year of FastReport Cloud Subscription for Half Price until June 30! URL: https://www.fast-report.com/news/cloud-sale-2025 Summary: A one-year subscription to the FastReport Cloud Cloud cloud service for storing, editing and managing reports is only half price until June 30th! A one-year subscription to the FastReport Cloud Cloud cloud service for storing, editing and managing reports is only half price until June 30th! FastReport Cloud is a cloud service for running, storing, editing, and managing reports and documents. Experience all the benefits of SaaS with 50% savings: Create reports in the cloud — no load on your computer, accessible from anywhere in the world Built-in report designer Automation and scheduled tasks Collaborative work with flexible access control Secure operation with protected login and digital signature Benefits of FastReport functionality: connect to various data sources, export to popular formats, and deliver reports conveniently Flexible plans to fit every user’s needs Pay for 6 months, get 12 months of access!  ### Get stock quotes using a GET request in JSON format and connect them to FastReport VCL 6 URL: https://www.fast-report.com/blogs/stock-quotes-json-vcl Summary: How to build a stock quote reports in Delphi by using TradingView API through GET request How to build a stock quote reports in Delphi by using TradingView API through GET request How to build a stock quote reports in Delphi by using TradingView API through GET request Today we will look at the way to get stock quotes using a GET request with HTTPS protocol and public tradingviewapi.docs.apiary.io API According to the documentation https://tradingviewapi.docs.apiary.io/#reference/0/history/0?console=1  in order t o get stock quotes you need to use the GET request history GET history https://api.bcs.ru/udfdatafeed/v1/history?symbol=BRENT&resolution=60&from=1450772216&to=1450858616 URI PARAM ETER S Name Example Description symbol BRENT currency pair resolution D discreteness of candles, possible values: 1, 5, 15, 30, 45, 60, 120, 180, 240, D, W, M from 1450772216 beginning of period to 1450858616 end of period Create an application and add components to the form: ``` frxReport1: TfrxReport; JSON_DS: TfrxUserDataSet; ButtonConnectToJSON: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; ComboBoxName: TComboBox; ComboBoxResolution: TComboBox; DateTimePickerFrom: TDateTimePicker; Label4: TLabel; DateTimePickerTo: TDateTimePicker; ButtonShowReport: TButton; Image1: TImage; Label5: TLabel; StatusBar1: TStatusBar; ButtonDesign: TButton; frxDesigner1: TfrxDesigner; frxChartObject1: TfrxChartObject; frxPDFExport1: TfrxPDFExport; ``` Add items to ComboBoxName and ComboBoxResolution ``` ComboBoxName.Items := 'GAZP SBER BRENT MOEX ROSN YNDX RUAL'; ComboBoxResolution.Items := '1 5 15 30 45 60 120 180 240 D W M'; ``` Add global variables ``` var tHTTP: TfrxTransportHTTP; frxJSON: TfrxJSON; Res: String; Symbol,Resolution,FromCandlesHistory,ToCandlesHistory : String; frxJSONArrayT,frxJSONArrayC,frxJSONArrayO, frxJSONArrayH,frxJSONArrayL,frxJSONArrayV: TfrxJSONArray; S: TStringStream; ``` In Click event of ButtonConnectToJSON button, we write the following code: ``` procedure TFormJSON.ButtonConnectToJSONClick(Sender: TObject); begin frxReport1.LoadFromFile('ChartJSON.fr3'); JSON_DS.RangeEnd := reCount; Symbol := ComboBoxName.Items[ComboBoxName.ItemIndex]; Resolution := ComboBoxResolution.Items[ComboBoxResolution.ItemIndex]; FromCandlesHistory := DateTimeToUnix(DateTimePickerFrom.DateTime).ToString; ToCandlesHistory := DateTimeToUnix(DateTimePickerTo.DateTime).ToString;   //Creating a TfrxTransportHTTP Object for a GET Request over HTTPS   tHTTP := TfrxTransportHTTP.Create(nil); try   //We form a GET request string and get a response in JSON format   Res := tHTTP.Get('https://api.bcs.ru/udfdatafeed/v1/history?symbol=' +Symbol+ '&resolution='+Resolution + '&from='+ FromCandlesHistory+ '&to='+ToCandlesHistory);   // if JSON is received incorrectly, then load it from the file and display a message in StatusBarr   if (Res = '') or (pos('"s":"ok"',Res) = 0) then begin StatusBar1.SimpleText := 'Error loading JSON'; S := TStringStream.Create('', TEncoding.UTF8); try S.LoadFromFile('JSON/'+Symbol+'.json'); finally Res:= S.DataString; FreeAndNil(S); end; StatusBar1.SimpleText := 'Successful JSON loading from file '+Symbol+'.json'; end else begin StatusBar1.SimpleText := 'Successful JSON('+Symbol+') loading'; end;   // We load the received JSON from the Res line into the frxJSON object: TfrxJSON   frxJSON := TfrxJSON.Create(Res); try if frxJSON.IsValid then begin StatusBar1.SimpleText :=StatusBar1.SimpleText +' /JSON is Valid';   // Read arrays   if frxJSON.IsNameExists('t') then frxJSONArrayT := TfrxJSONArray.Create(frxJSON.ObjectByName('t')); frxJSONArrayC := TfrxJSONArray.Create(frxJSON.ObjectByName('c')); frxJSONArrayO := TfrxJSONArray.Create(frxJSON.ObjectByName('o')); frxJSONArrayH := TfrxJSONArray.Create(frxJSON.ObjectByName('h')); frxJSONArrayL := TfrxJSONArray.Create(frxJSON.ObjectByName('l')); frxJSONArrayV := TfrxJSONArray.Create(frxJSON.ObjectByName('v')); // Prepare JSON_DS by clearing and adding fields JSON_DS.Fields.Clear; JSON_DS.Fields.Add('Ticker'); JSON_DS.Fields.Add('Date'); JSON_DS.Fields.Add('Time'); JSON_DS.Fields.Add('Open'); JSON_DS.Fields.Add('Close'); JSON_DS.Fields.Add('High'); JSON_DS.Fields.Add('Low'); JSON_DS.Fields.Add('Vol'); JSON_DS.RangeEndCount := frxJSONArrayT.Count; end else StatusBar1.SimpleText :=StatusBar1.SimpleText +' /JSON is Invalid'; finally end; finally end; end; ``` To get data when generating a report from the arrays frxJSONArrayT, frxJSONArrayC, frxJSONArrayO, frxJSONArrayH, frxJSONArrayL, frxJSONArrayV through the JSON_DS component: TfrxUserDataSet, we need to use the OnGetValue event: ``` procedure TFormJSON.JSON_DSGetValue(const VarName: string; var Value: Variant); var Item: string; Time : string; begin Item := frxJSONArrayT.GetString(JSON_DS.RecNo); DateTimeToString(Time, 't', UnixToDateTime(StrToInt64(Item)));   if VarName = 'Ticker' then begin Value := Symbol; exit; end else if VarName = 'Date' then begin Value := DateToStr(UnixToDateTime(StrToInt64(Item)))+' '+Time; exit; end else if VarName = 'Time' then begin Value := Time; exit; end else if VarName = 'Open' then Item := frxJSONArrayO.GetString(JSON_DS.RecNo) else if VarName = 'Close' then Item := frxJSONArrayC.GetString(JSON_DS.RecNo) else if VarName = 'High' then Item := frxJSONArrayH.GetString(JSON_DS.RecNo) else if VarName = 'Low' then Item := frxJSONArrayL.GetString(JSON_DS.RecNo) else if VarName = 'Vol' then Item := frxJSONArrayV.GetString(JSON_DS.RecNo);   Value := Item; end; ``` Next, create a template in report designer, call it ChartJSON.fr3 and connect JSON_DS to it To display the chart, use the Candle Series from the TeeChart Pro VCL package and also connect to JSON_DS Next, add the Click event handlers for the remaining buttons: ``` procedure TFormJSON.ButtonDesignClick(Sender: TObject); begin if (Res = '') then ButtonConnectToJSON.Click; frxReport1.DesignReport(); end;procedure TFormJSON.ButtonShowReportClick(Sender: TObject); begin if (Res = '') then ButtonConnectToJSON.Click; frxReport1.ShowReport(); end; ``` We also add Change event handlers for ComboBoxName, DateTimePickerFrom and DateTimePickerTo: ``` procedure TFormJSON.ComboBoxNameChange(Sender: TObject); begin ButtonConnectToJSON.Click; end;   procedure TFormJSON.DateTimePickerFromChange(Sender: TObject); begin ButtonConnectToJSON.Click; end;   procedure TFormJSON.DateTimePickerToChange(Sender: TObject); begin ButtonConnectToJSON.Click; end; ``` Also when closing the application do not forget to free up the memory of used objects. ``` procedure TFormJSON.FormClose(Sender: TObject; var Action: TCloseAction); begin tHTTP.Free; frxJSON.Free; frxJSONArrayT.Free; frxJSONArrayC.Free; frxJSONArrayO.Free; frxJSONArrayH.Free; frxJSONArrayL.Free; frxJSONArrayV.Free; end; ``` Next, run the application In this application you can select desired stocks And you can also select desired date range using the calendar Connection to JSON occurs when you click on the "Connect to JSON", "Show Report" or "D" buttons, as well as when changing the dates or names of shares and displays a message about the connection status. When you click on the "Show Report" button, a report is built and its Preview is displayed Congratulations, you received stock quotes in JSON format using a GET request, connected JSON to FastReport VCL 6 and built a report. Download demo link: DemoJSON.zip . Tags: VCL, VCL, FastReport, FastReport, JSON, JSON, Delphi, Delphi, HTTPS, HTTPS ### GS1 Databar barcodes in FastReport .NET URL: https://www.fast-report.com/blogs/gs1-databar-barcode-net Summary: With the release of FastReport .NET 2022.1 added new types of GS1 Databar barcodes. Additionally, we consider their creation from code. With the release of FastReport .NET 2022.1 added new types of GS1 Databar barcodes. Additionally, we consider their creation from code. With the release of FastReport .NET 2022.1 added new types of GS1 Databar barcodes. Additionally, we consider their creation from code. We have added the following barcodes: – GS1 Databar Limited; – GS1 Databar Omnidirectional; – GS1 Databar Stacked; – GS1 Databar Stacked Omnidirectional. GS1 DataBar is a highly versatile product labeling symbol primarily intended for scanning at POS terminals. GS1 DataBar is capable of encoding the GTIN (Global Trade Item Number) on small consumer products, which are difficult to label with a standard EAN-13 symbol. This is fresh (weight) produce, jewelry, or “do it yourself" products. Data encoded with GS1 Databar Limited, GS1 Databar Omnidirectional, GS1 Databar Stacked, GS1 Databar Stacked Omnidirectional consists of an Application ID (01), a 13-bit Numeric Trade Item ID, and a Check Digit. Note: leading digits (01) are an implied application identifier that is not to be encoded in the symbol and is displayed only as text to show that data is encoded for basic use. The character standard is defined by  ISO/IEC 24724-2011 , which describes instructions for decoding barcodes. GS1 Databar Omnidirectional barcode is designed for omnidirectional reading and can be used at POS. GS1 Databar Limited barcode is designed for unidirectional reading and cannot be used at POS. GS1 Databar Stacked Omnidirectional Barcode is a GS1 Databar Omnidirectional split into two lines. It is designed for omnidirectional reading and can be used at POS. GS1 Databar Stacked Barcode is a GS1 Databar Omnidirectional split into two lines. It is designed for unidirectional reading that cannot be used at POS. Generating GS1 Databar Omnidirectional from code: ``` //Create a report object Report report = new Report(); //Create a report page ReportPage page = new ReportPage(); //add a unique identifier page.CreateUniqueName(); //Add it to the collection of report pages report.Pages.Add(page); //Create a data band DataBand dataBand = new DataBand(); //with a unique identifier dataBand.CreateUniqueName(); //and add it to the band collection page.Bands.Add(dataBand); //Create a barcode object FastReport.Barcode.BarcodeObject barcode = new FastReport.Barcode.BarcodeObject(); //Set the barcode type barcode.Barcode = new FastReport.Barcode.BarcodeGS1Omnidirectional(); //Set a numeric combination for encoding barcode.Text = "1234567890123"; //Place the barcode on the page barcode.Parent = dataBand; //Set the size of the object barcode.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 3); //Display the report report.Show(); ``` These barcodes allow users to encode the required product data and use it for various purposes. Tags: .NET, FastReport, Barcode ### Guides in the FastReport .NET designer URL: https://www.fast-report.com/blogs/guides-net-designer When designing a report template, you often need to build controls on the same layer. In FastReport VCL, for example, this applies to the grid on the report page. In FastReport.Net grid represents only a point of intersection of the lines in the ground. This is not so distracting as the line but at the same time helps to build objects. And yet, for these purposes, there is another, much more convenient tool - guide lines. You can add a thin dotted line in the vertical and horizontal planes that help build controls. These lines are only visible in the Report Designer, and will not be displayed when the report is run. Here is the View toolbar on which the guide lines of the controls: You can add these lines manually or use the option: Automatic Guides. First of all, I want to tell you about the automatic backlighting guide lines when adding components to the page of the report, in the style of Microsoft Visual Studio: That is, if you have at least one control on the report page, you can align it with respect to other controls. To manually add guide lines, choose a location on the vertical or horizontal line, and double-click the mouse. You can add any number of tracks. To move the line you should click on the slider (when you move the slider will be dark) on the scale holding it move to the desired position. If the line goes through the boundary of the object, it will move together with line. This is useful when you need to place all objects on the same line. You should move the line with object until it will be at the boundary of the other object. Let go the slider of the line. Now the second object "bonded" to the line. And if you move the slider now, both objects will move together the line. So you can "catch" the third, fourth, etc. items.: To delete the desired line, press and hold the slider and move it out of the page. No matter in which area. We remember that when you move the line that passes through the object's border, it will move together the line. It is better to remove such lines by moving the slider up or down, not sideways. To quickly remove the designer provides two buttons on the toolbar: "Delete the horizontal guides" and "Delete vertical guides." Their designation is clear from the titles. Now consider the option "Automatic Guides". If you enable it, all added objects will be framed by the guide lines, ie, two vertical and two horizontal: It should be noted that if the option "Automatic Guide," then there is no way to manually add a line. Moreover, previously written lines are removed. But, all the objects previously added, will be provided with guides automatically. If the abundance of guide lines prevents you, you can disable them using the "Guides" button. Moreover, all sliders will be saved, and you can always revert to the line again by pressing the button. Many novice report developers neglect such means as "guides", but in fact it makes designing of template is much simpler and faster. Still, nice to deal with a simple and convenient tool. Tags: .NET, .NET, FastReport, FastReport, Desktop, Desktop, Designer, Designer ### Handling of PreviewControl.OnPrint and .OnExport events URL: https://www.fast-report.com/blogs/preview-control-events-in-reports Summary: Adding the ability to subscribe to new OnExport and OnPrint events for the Preview control to the report FastReport.NET. Adding the ability to subscribe to new OnExport and OnPrint events for the Preview control to the report FastReport.NET. Adding the ability to subscribe to new OnExport and OnPrint events for the Preview control to the report FastReport.NET. In FastReport 2019.4 added the ability to subscribe to PreviewControl.OnPrint and PreviewControl.OnExport events, which are called directly when the corresponding buttons are pressed. When viewing a report, a viewer is called with a toolbar that has elements such as a print button and a drop-down list with report exports. Selecting any item in the list will trigger the OnExport event, and pressing the Print button will trigger OnPrint. Let's take an example and see how we can use these events in practice. You can use the standard handler for these events, which is created for the visual component of PreviewControl: In this case you just add the necessary actions to the handler. But if you add the PreviewControl component in the application code, you will have to sign your own handler for the event. For example, your handler may send you an export or print event alert. This could be, for example, a record in a database. Let us consider this example: ``` private void Button1_Click(object sender, EventArgs e) { //create report Report report = new Report(); //Load report report.Load("App_Data/Master-Detail.frx"); //create data source DataSet data = new DataSet(); //load data data.ReadXml("C:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\nwind.xml"); //register data report.RegisterData(data); //create preview object var prev = new PreviewControl(); //add preview into the form this.Controls.Add(prev); prev.Dock = DockStyle.Fill; prev.BringToFront(); //subscribe to the event prev.OnExport+= new System.EventHandler(ExportAction); //assign preview control to the report report.Preview = prev; //Show the report report.Show(); } ```  After creating the report object and registering data in it, we create a PreviewControl, subscribe to the OnExport event our event handler, which we will implement below. Then we assign the PreviewControl object to the preview report. And now we implement a custom event handler for the OnExport event: ``` public void ExportAction(object sender, PreviewControl.ExportEventArgs e) { SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"); SqlCommand command = new SqlCommand("insert into dbo.Status (ReportName, ExportType, ExportDate) Vales ('" + Path.GetFileNameWithoutExtension(e.Report.FileName) + "', '"+ e.Export.BaseName +"', '" + DateTime.Now + "')"); command.Connection = conn; conn.Open(); command.ExecuteNonQuery(); conn.Close(); } ```  In this method, we record information about the export event in a database, with the report name, export type and transaction date. This is just one possible example of how to use this event. You can, for example, implement sending an email on this event, or saving an export file to a specific folder. The OnPrint event is handled in the same way. These two events are the most frequent operations on reports when viewed, so many people would like to automate their custom operations on the event. Now it is possible, it is easy to take information about the report, export or print settings from event arguments and dispose of it to create your own, additional operations. Tags: .NET, .NET, FastReport, FastReport, Preview, Preview ### Handling the "Division by 0" exception in .NET URL: https://www.fast-report.com/blogs/division-zero-exception-net Summary: Let's take a closer look at how the "Division by 0" exception handling works in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how the "Division by 0" exception handling works in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how the "Division by 0" exception handling works in FastReport .NET. Find more usefull tips and articles in our blog. Among the updates in FastReport 2018.4, there was a solution to the dividing by zero error. Previously, report developers had to handle this exception themselves. After all, we cannot guarantee that because of the data this error will not occur. If you have not done the division by zero processing, you will get an exception that will interrupt the construction of the report. As a result, you still have to refine the report, and this is an additional time cost. Now, you do not need to think about this problem, in the expression where the division error by zero occurred, the message “Division by zero” will be displayed. In this case, the report is constructed. Let's compare what was and what has become when divided by zero. Add a text field to the report and enter the following expression: [2018/0]. These are two integers. That's what how it was in previous versions of FastReport .NET. When trying to run a report in the designer: When running a report from a user application: As it has become: The report was constructed, but the field with an error is highlighted with a red background, replaced by the text DIVISION BY ZERO! It works on integer values. And what if you divide numbers with a comma by zero? For example, the expression [2018.0 / 0.0] will give the result: This works in the previous version and in the new one. Thus, the built-in processing of division by zero freed us from the "headache" - to write our own handlers in the report script. So, the development of reports has become even easier and more convenient. Tags: .NET, FastReport ### Highlight text by clicking URL: https://www.fast-report.com/blogs/highlight-text-clicking Often, viewing your electronic reports, you want to highlight some of the line, as you would have done it with a paper version using highlighter. Well, it is really possible. In the report preview mode, you can select the desired text fields with a mouse click. That is, you click on the text box and its color changes. When you click again, the highlighting disappears. I'll show you two ways to do it, and both involve the use of the report script. Method 1: The essence of this method is to use a sender (the object that caused the event) to assign a new color in the event handler OnCklick. In this case, you need to refresh the report page in the cache, because preview mode displays a report thereof. So, let's create a simple report with a list of products: Suppose we want to highlight one of the fields by clicking on it. And we want to remove the highlight when you click on it again. Create event Click for the text object, which displays the field Products.ProductName. ``` private void Text1_Click(object sender, EventArgs e) { if (sender is TextObject) { //Define sender as TextObject TextObject obj = sender as TextObject; //Method of highlighting an object SwitchColor(obj); if(Report.Preview != null) { // Refresh the current page of the report in the cache, if the report is viewed on a desktop Report.PreparedPages.ModifyPage(Report.Preview.PageNo - 1, obj.Page as ReportPage); //Refresh preview Report.Preview.Refresh(); } } }   private void SwitchColor(TextObject obj) { // Check whether the object is filled with yellow if (obj.Fill is SolidFill && (obj.Fill as SolidFill).Color != Color.Yellow) //Fill with yellow obj.Fill = new SolidFill(Color.Yellow); // Clear the fill else obj.Fill = new SolidFill(Color.Transparent); } ``` As you can see, we take Sender object from the click event, define it as a text object and change its fill. Then, redraw the report page in the cache. If we have a web report, we simply change the object's fill, without redrawing the report page. Consider an alternative method. Method 2: The essence of this method is to determine the coordinates of an object, which we will fill with color. Then we update the report page in the cache, like the first method. ``` private void Text1_Click(object sender, EventArgs e) { if (sender is TextObject) { // Get the current page number int pageNo = Report.Preview.PageNo - 1; // Get the page by number ReportPage page = Report.PreparedPages.GetPage(pageNo); // Define sender as TextObject - this phantom object, we also need the original object from the preview page TextObject obj = sender as TextObject; // Looking the original object on the preview page foreach(ReportComponentBase b in page.AllObjects) // It is necessary to identify the object by name and coordinates if (b.Name == obj.Name && b.AbsTop == obj.AbsTop && b.AbsLeft == obj.AbsLeft) { // Get the original object obj = b as TextObject; break; } // Defining the object's fill if (obj.Fill is SolidFill && (obj.Fill as SolidFill).Color != Color.Yellow) obj.Fill = new SolidFill(Color.Yellow); else obj.Fill = new SolidFill(Color.Transparent);   // Update the report page in the cache Report.PreparedPages.ModifyPage(pageNo, page); // Refresh prewiew Report.Preview.Refresh(); } } ``` Demonstrate the work of this code: This method objectively more difficult, and is only a preview mode. However, it does have advantages. Suppose you want to highlight not only the object that you clicked, and the entire row in the table. Then add another text object so that it overlaps the object on which we will click. We stretch the entire width of its line. It is important that the left border of the text object coincides the left boundary of the text object, for which we have created an event Click. Make a right click on it. And choose from the menu: Thus, we move the object to the background, so it does not overlap other text fields. We modify our previous code: ``` if (b.AbsTop == obj.AbsTop && b.AbsLeft == obj.AbsLeft) { // Get the original object obj = b as TextObject; break; } ```  I removed from the condition the comparison by name and leave only a comparison of the coordinates of the beginning of the field. And now run the report and click on the name of a product: Thus, both methods are viable. First - it is easier, but only allows you to highlight a particular object, which we get in the sender. The second - more difficult, but allows you to highlight not only the object of the sender, but also others. We just need to specify their coordinates. In the web report you will be able to use only the first method. Of course you may change not just the background color, but the color, style or font of the text. In addition, all such modifications are preserved when exporting a report in any of the supported formats, such as a PDF. I hope you will come in handy this little life hacking. Tags: .NET, .NET, FastReport, FastReport, Interactivity, Interactivity ### Highlighting Even Rows (Zebra Striping) in FR .NET URL: https://www.fast-report.com/news/highlighting-even-rows-blog Summary: Highlighting Even Rows (Zebra Striping) in FastReport .NET Highlighting Even Rows (Zebra Striping) in FastReport .NET We often use zebra striping of table data for easy viewing the reports. Highlighting even rows is good for viewing but they look strange on paper or in Excel table.  FastReport users have two methods for using highlighting only in preview window. Method #1 You need to open report in the Designer and open the Style Editor from Report-Styles menu. Then we add a style with name "EvenRows" and set needed background color for even lines.   Then you need to set a band property  EvenStyle = EvenRows. more... ### Highlighting Even Rows in Reports (Zebra Striping) URL: https://www.fast-report.com/blogs/highlighting-even-rows-reports We often use zebra striping of table data for easy viewing the reports. Highlighting even rows is good for viewing but they look strange on paper or in Excel table.  FastReport users have two methods for using highlighting only in preview window. Method #1 You need to open report in the Designer and open the Style Editor from Report-Styles menu. Then we add a style with name "EvenRows" and set needed background color for even lines.   Then you need to set a band property EvenStyle = EvenRows. You need to add the parameter in the Parameters item of Data Tree with name "EvenOff", bool type end default expression "false". Then let to add new event handler of Report in object inspector. Double-click on StartReport event and write code: private void _StartReport(object sender, EventArgs e)     {        if ((Boolean)Report.GetParameterValue("EvenOff"))         Data1.EvenStyle = "";       else         Data1.EvenStyle = "EvenRows";     } Now you can control highlighting from code . Review an example for export in Excel from WebReport: ...             webReport.Report. SetParameterValue("EvenOff", true);             webReport.Report.Prepare();             Stream stream = new MemoryStream();             webReport.Report.Export(new Excel2007Export(), stream); ... Method #2 All objects in report have properties Printable and Exportable. These properties set in true by default and enable or disable object in print or export. You can create an empty text object and set needed properties. Then you need to set a style as described above and put object behind the striped objects.  To do this, right click on the object and select the bottom menu item "Send To Back". Remember that striped objects should have a transparent background. Tags: .NET, .NET, FastReport, FastReport ### How is FastReport VCL 2022 different than the previous ones? URL: https://www.fast-report.com/fastreport-vcl-2021-features Summary: Let's briefly talk about the capabilities of the new generation of FastReport VCL 2022 report generators Delphi, C++Builder, RAD Studio, and Lazarus Let's briefly talk about the capabilities of the new generation of FastReport VCL 2022 report generators Delphi, C++Builder, RAD Studio, and Lazarus FastReport VCL 2022.0 is the next generation of reporting tool for Delphi, C++Builder, RAD Studio, and Lazarus Significantly improved work with images - as in image editors: - High-quality vector SVG images in reports - Improved image transparency in different formats New objects widen the concept of a "report": Two-Track Pharmacode for designing and printing medication and vaccine packages Report safety and security: Now reports in PDF are protected with a digital signature. It guarantees its uniqueness, allows to clearly establish the authorship, and protects it from editing. Your reports now correspond with the docflow standards. Resource optimization: - Page miniatures are formed faster - Less memory required for work ! New licensing model:  Starting March 2021 all FastReport VCL editions are subscription-based. It means that you will always have an up-to-date version as long as your subscription is valid.  In detail:  Loading and output images in vector SVG format through standard “Picture” object (only for Delphi). Enhance the look of your reports! Added support of Digital signature in PDF export with pfx and p12 certificates support. Sign up your PDF documents just in 3 simple steps: Add the “Digital signature” object (TfrxDigitalSignatureView), select type of signature (hidden, visible, image), and sign up documents with your certificate. Improved transparency support for images inside a report. Now FastReport VCL supports not only color mask but also an alpha channel in the report preview, on the printout, and exports which supports transparent images. Added experimental picture cache with the ability to generate thumbnails and control overall image quality. New picture cache saves memory usage and GDI descriptors. It loads only one instance of duplicated image (can be turned on with Report.PictureCacheOptions.CaсhedImagesBuildType=tbtOriginal property). The picture cache can be set up for thumbnail generation which’s using for a fast load of images in the preview window (can be turned on with Report.PictureCacheOptions.CaсhedImagesBuildType=tbtAtPrepare). The thumbnail quality controls by Report.PictureCacheOptions.ThumbnailQualityReducer properties and allows setting percent of compression and conditions. In addition, it is possible to control the overall quality of compression for all pictures through Report.PictureCacheOptions.OriginalQualityReducer property. Those images using for preview, printout, and export of a report.  Added new barcode type Two-Track Pharmacode. Added new TfrxRichView object for Lazarus with support of Linux for rtf document loading into a report. Added ability to replace Web browser for authorization window in cloud save filters (EdgeView2, CEF4Delphi). More information can be found in the article . Full list of changes: Version 2021 ---------------------------- + Added support of vector SVG format in TfrxPictureView object + Added Digital signature object and digital signature support for PDF Export (Supported types: skNone, skInvisible, skVisible, skEmpty) + Added experimental picture cache and thumbnail cache controlled by TfrxReport.PictureCacheOptions properties + Added support of alpha transparency for export filter and printing + Added Two-Track Pharmacode barcode + Added RichView object for Lazarus with Linux support + Added support for external web browsers components for authorization dialog (CEF4Delphi, new Edge interfaces) + Added support of Windows Environment Variables in client-server config file config like %ALLUSERSPROFILE% - Fixed preview's Thumbnail scale for HighDPI - Fixed bug in XLSX with empty lines - Fixed Print state for virtual printers - Fixed EMF to SVG export with SegoeUI font - Fixed IME input in syntax memo for a group of symbols more than two - Fixed bug with clip-in EMF to PDF export - Fixed TfrxPictureView clip - Fixed synchronization bug with dialog forms under Delphi 7 CS components - Fixed gaps for interactive text fields in PDF - Fixed bug with Cambria Math font in SVG/HTML exports - Fixed HasField function when exception raised - Fixed HatchBrush for Lazarus in Linux - Fixed stall of the main thread in Synchronizer #601673 - Skip chart reading errors to read files from others version for TeeCharts - Fixed PaperSizes max count for some printers. ### How ITF-14 barcode works in Delphi / Lazarus and how to fine-tune it URL: https://www.fast-report.com/blogs/itf-14-barcode-works-delphi Summary: We review the changes in the work of the ITF-14 barcode with step-by-step creation from the code in Delphi / Lazarus. We review the changes in the work of the ITF-14 barcode with step-by-step creation from the code in Delphi / Lazarus. We review the changes in the work of the ITF-14 barcode with step-by-step creation from the code in Delphi / Lazarus. A new ITF-14 barcode has been added in FastReport VCL 2021.2 . Let me remind you that ITF-14 (Interleaved Two of Five) is a two-band numeric code, or a high-density code that can encode an even number of digits only. Each such barcode encodes an odd digit with a bar and an even digit with a space between the odd ones. To encode an odd number of digits, you need to pad the leftmost (most significant) digit with a zero. You can read more theoretical information about ITF-14  in another article. Not long ago, our users found some non-critical errors. Nevertheless, sometimes they interfered with the use of the barcode. The fixes are already in the public domain. This article is intended to help those users who have not noticed the errors yet, and it will also introduce the implementation features. It was noticed that under some conditions, incorrect digits could be displayed under the barcode. Also, the strokes went beyond the borders of the frame at the bottom. These errors have already been fixed and if you use ITF-14 barcode in your projects, then we highly recommend you updating FastReport to the latest version. Now let’s move on to the features. The frame is mandatory for this barcode, since it is spelled out in the specification. So, there will be no way to completely disable the frame or make a lot of change. But you can still change it. First, you can turn off sidelines by turning on the TestLine property. Secondly, you can change the thickness of the inline by changing Frame->Width. This property will work even if the outer border is disabled.  Optionally, you can enable and configure an outer frame using the Frame property. The principle is exactly the same as for any other object in the report; the barcode will have 2 frames at once, and the outer one will be richer in design possibilities.  Generating the ITF-14 barcode using Delphi / Lazarus code ``` procedure TForm1.Button1Click(Sender: TObject); var bc: TfrxBarcodeView; begin bc := TfrxBarcodeView(frxReport1.FindObject('BarCode1')); {Set the type of the barcode} bc.BarType := bcCode_ITF_14; {Set a fixed barcode value} bc.Text := '12345678912345'; {Set the scale at which the barcode will be displayed} bc.Zoom := 2; {Set the rotation angle of the barcode. Can take values 0, 90, 180, 270} bc.Rotation := 0; {Set whether to change the width of the barcode depending on its content} {If set to False, Zoom property will be set to keep the barcode width fixed} bc.AutoSize := True; {Set background of the barcode} bc.Color := clNone; {Set the color of bars} bc.ColorBar := clBlack; {Set whether to display text at the bottom of the barcode} bc.ShowText := True; {Set the width of the inner frame} bc.Frame.Width := 3; {Set the outer frame} {Set how external frames from all sides are displayed} bc.Frame.Typ := [ftLeft, ftRight, ftTop, ftBottom]; {Set the width of the left frame line} bc.Frame.LeftLine.Width := 5; {Set the color of the left frame line} bc.Frame.LeftLine.Color := clRed; {Set the style of the left frame line} bc.Frame.LeftLine.Style := fsDashDotDot; {Copy the settings of the left frame line to the right one} bc.Frame.RightLine.Assign(bc.Frame.LeftLine); {Copy the settings of the left frame line to the top one} bc.Frame.TopLine.Assign(bc.Frame.LeftLine); {Copy the settings of the left frame line to the bottom one} bc.Frame.BottomLine.Assign(bc.Frame.LeftLine); frxReport1.ShowReport(); end; ``` ITF-14 is undoubtedly one of the most commonly used barcodes. If you notice any errors or have any questions, please write in our  Support .  Tags: VCL, Lazarus, FastReport, Barcode, Delphi ### How RFID Tags Work in FastReport VCL URL: https://www.fast-report.com/blogs/zpl-rfid-tags-vcl Summary: In this article, we'll check out how RFID tags work with the new TfrxDeviceCommand object in FastReport VCL with release 2025.2. In this article, we'll check out how RFID tags work with the new TfrxDeviceCommand object in FastReport VCL with release 2025.2. RFID tags are a modern way to ID products, quickly replacing barcodes. What makes RFID tags different is they use radio signals. This lets you scan large quantities of items fast, saving a bunch of time. RFID tags are also used to identify employees within companies. In this article, we'll check out how RFID tags work with the new TfrxDeviceCommand object in FastReport VCL. RFID tags are a modern way to ID products, quickly replacing barcodes. What makes RFID tags different is they use radio signals. This lets you scan large quantities of items fast, saving a bunch of time. RFID tags are also used to identify employees within companies. In this article, we'll check out how RFID tags work with the new TfrxDeviceCommand object in FastReport VCL . Features of RFID Structure The structure of an RFID tag consists of four data banks: Reserved Bank: Contains two passwords: access password and kill password. The first password allows management of access to specific banks or parts of the tag's memory. The second password is used for permanently disabling the tag or its reusability (if such a function is supported). Each password has a length of no more than 32 bits. Product Code Bank Tag ID Bank User Data Bank All banks except the first can have varying capacities or may be locked by suppliers; all this is described in the specifications of the tag. The standards for formatting data in these banks are described in this document . For local use, any data formatting that is convenient for the user to work with can be employed.  TfrxDeviceCommand object was created for the implementation of tags in FastReport VCL, where the RFID tag is one of the possible presets. Currently, this is the only preset, but we plan to expand this category in the future. In version 2025.1.8, this object is processed only via ZPL export (other exports currently skip it). We plan to extend its processing to other exports upon request. Features of the TfrxDeviceCommand Object It is not a visual object, meaning it does not appear in the preview (only in the designer). It does not have height and width. The position within the container (Page or Band) is used solely in the designer for better visibility. In other words, the position does not affect the processing order during export. It can be understood that during export, TfrxDeviceCommand has its own separate queue. A separate queue for a single preset is an excessive solution. However, it is still worth considering the parameters of the TfrxDeviceCommand object that influence the specified queue.  To configure the processing time, the object has a field called ProcessingTime, which can take 2 values: ptBeforeView processes before the entire content of the container); ptAfterView (after the content of the container). If the container has multiple TfrxDeviceCommand objects with the same ProcessingTime, the Order field (ranging from 0 to MaxInt) will be required. Suppose there are 3 TfrxDeviceCommand objects in the container with the following parameters: ProcessingTime = ptAfterView , Order = 1; ProcessingTime = ptBeforeView, Order = 0; ProcessingTime = ptAfterView , Order = 0; When exporting the container, the processing order will be as follows: The second object (ProcessingTime = ptBeforeView, Order = 0); The content of the container; The third object (ProcessingTime = ptAfterView, Order = 0); The first object (ProcessingTime = ptAfterView, Order = 1); Additionally, this object has the following fields: DeviceType — used to select a preset; currently, there is only one value, dtRFIDLabel, and it cannot be changed for now. DeviceProperties — contains fields, the list of which changes depending on the selected DeviceType. This is where the content of the current preset (RFID labels) is stored. How to Configure the Content of the Object The content can be configured not only in the object inspector but also in the editor. Translation into other languages besides English is not available to avoid confusion with specialized terminology. The editor is divided into tabs, each containing properties for a specific memory bank, along with one tab for additional label options. Some fields are duplicated to support filling expressions (for example, from the database). In the reserved data bank, passwords can only be entered in the format of a hexadecimal number consisting of eight characters. Furthermore, without a non-zero access password, it will not be possible to control access modes. In other data banks, you can choose the recording format: either a hexadecimal number or a string in ASCII encoding. For more information on RFID support in ZPL, you can refer to the official documentation.  This object for FastReport VCL is the first of its kind. However, new presets for this object will be implemented in the future. Tags: VCL, FastReport, Designer, ZPL ### How to add an EPC QR code to an invoice from Delphi and Lazarus URL: https://www.fast-report.com/blogs/eps-qrcode-invoice-delphi Summary: FastReport VCL now supports the European Payments Council standard for encoding payment information using a QR code. FastReport VCL now supports the European Payments Council standard for encoding payment information using a QR code. FastReport VCL now supports the European Payments Council standard for encoding payment information using a QR code. The standardization of payment systems results not only in new standards but also in new documents built on these standards. The reporting system should offer its users a fast and convenient way to create such standard documents. EPC is a European Payments Council standard. It was designed to simplify the coding of payment information in the Single Euro Payments Area using a QR code. Such a barcode contains all the necessary information for making a payment. You can see an example of encoded information in the table below. Service Tag: BCD Version: 001 Character set: 1 Identification: SCT BIC: BPOTBEB1 Name: Red Cross IBAN: BE72000000001616 Amount: EUR1 Reason (4 chars max): CHAR Ref of invoice: Empty line or REFINVOICE Or text: Urgency fund or Empty line Information: Sample EPC QR code FastReport VCL has special classes of presets to simplify the arrangement of such data and organize them as objects. The TfrxEPCPaymentPreset class is designed to quickly generate a QR code in the EPC format. Let's look at how to add an EPC QR code and connect to it the data from the example. It is based on a report from our demo application “Nested Groups”. The report has been slightly changed to display a list of purchased items for each company. We want to add an EPC QR code at the end of each company's payment document so that the client could make a quick payment. Select a barcode object with the “QRCode” type on the FastReport VCL components palette and place it on the footer band. Click on the barcode object and go to the ExpressionPreset property, expand it, and select TfrxEPCPaymentPreset in the PresetClass property. The settings have been assigned and can now be accessed by expanding the DataObject property in the Object Inspector. Next, we are going to link the fields with relevant data. Drag the required fields from the data tree to the desired property in the object inspector. To enter static data, you need to use single quotes, because these fields are expressions. For example, you would use the format 'BE00000000000000' to specify a fixed value in the IBAN property. Let's combine all the necessary data to make the code by assigning the appropriate properties. You can run the report and make sure that the barcode is generated in the desired format. These are not all the possibilities of this class of settings. The DrawOptions property allows you to control frame settings and additional information in accordance with the scan2pay standard. Let's take a closer look at these properties: FillColor: the background color of the barcode fill. FrameColor: frame color with rounded edges. FrameVisible: enables or disables the frame inside the barcode. FrameWidth: inner frame thickness. Hint: additional text information HintType: determines where to show additional information: htEPCNone –to hide additional information; htEPCLeft –along the left edge of the frame; htEPCRight - along the right edge of the frame; htEPCTop - along the top edge of the frame; htEPCRight - along the bottom edge of the frame; Fill in the fields as shown in the screenshot above and run the report for execution. As a result, we received a scan2pay barcode. These settings are unusual because the frame and text are drawn inside the object (unlike the frame around the object, for which the Frame property is responsible), and such a frame will be displayed correctly in all formats of exported files. Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, Barcode, Barcode, Delphi, Delphi, QR Code, QR Code ### How to Build and Connect the Firebird Plugin in FastReport .NET URL: https://www.fast-report.com/blogs/fastreport-net-firebird-plugin Summary: In this article, we will go through the process of building and connecting the Firebird plugin in FastReport .NET through the report designer and via code. In this article, we will go through the process of building and connecting the Firebird plugin in FastReport .NET through the report designer and via code. When creating reporting systems, it's important to ensure that reporting tools are compatible with various databases. FastReport .NET is one of the most sought-after libraries for generating reports in .NET applications. In this article, we will go through the process of building and connecting the Firebird plugin in FastReport .NET through the report designer and via code. When creating reporting systems, it's important to ensure that reporting tools are compatible with various databases. FastReport .NET is one of the most sought-after libraries for generating reports in .NET applications. In this article, we will go through the process of building and connecting the Firebird plugin in FastReport .NET through the report designer and via code. First, open the directory where FastReport .NET is installed on your system. The default path is: C :\Program Files (x86)\Fast Reports\.NET\FastReport .NET WinForms\Extras\Core\FastReport.Data\FastReport.Data.Firebird This path must be correct since there is an outdated project at the path  (Extras\Connections\FastReport.Firebird) After that, you need to launch the FastReport.Data.Firebird.csproj project in Visual Studio. Important! In the folder, there are several files, but you specifically need to open this one. Next, select the FastReport.Data.Firebird project and right-click on it, then choose “Set as StartUp Project” from the context menu. Remove the FastReport project from the dependencies. Then add either the NuGet package FastReport.Net.Demo or the licensed package FastReport.Net from your private NuGet server. Detailed instructions for the package server are available here . After that, build the project as shown in the screenshot below. After building the project, the “Output” tab will show that the build was successful. Now it's time to launch the report designer. If you have the Ribbon interface enabled, click on “File” -> “Settings” and go to the “Plugins” tab. If you have the Ribbon interface disabled, during startup click “View,” then “Settings,” and go to the “Plugins” tab as well. Click the “Add” button and navigate to: Extras\Core\FastReport.Data\FastReport.Data.Firebird\bin\Release\net462 . Then sequentially select the FastReport.Data.Firebird.dll and FirebirdSql.Data.FirebirdClient.dll files, and then click the “Open” button. You must completely restart the report designer. After restarting, click “Data” -> “Add Data Source.” If everything was done according to the instructions, the connection to Firebird should appear in the list of connections as shown in the picture below.  Connecting to Firebird via Code Sometimes you need to connect to Firebird not through the report designer, but through code. In this case, you will need to install the FastReport.Data.Firebird package in Visual Studio and then register the connection in your application as follows ``` FastReport.Utils.RegisteredObjects.AddConnection(typeof(FirebirdDataConnection)); ``` Now you should be able to create a new data connection to Firebird from code: ``` Report report = new Report(); report.Load(@«YourReport.frx»); //... FirebirdDataConnection conn = new FirebirdDataConnection (); conn.ConnectionString = «connection string»; conn.CreateAllTables(); report.Dictionary.Connections.Add(conn); ``` In FastReport .NET, it is very easy to build and connect various connectors to a multitude of databases. For any questions, please contact our support service. Happy reporting! Tags: .NET, Visual Studio, FastReport, Data Source, Plugin, Firebird, NuGet ### How to build and install the Postgres plugin in FastReport .NET URL: https://www.fast-report.com/blogs/plugin-postgres-net Summary: This article describes how to connect to the database using the FastReport .NET plugin for the report designer from Visual Studio via the NuGet server. This article describes how to connect to the database using the FastReport .NET plugin for the report designer from Visual Studio via the NuGet server. Our FastReport .NET has quite rich features and wide functionality. This article describes how to connect to the database using the FastReport plugin for the report designer. In Visual Studio, you need to find the project file, go to the NuGet package management, connect to the NuGet server of Fast Reports and select the desired package. Our FastReport .NET has quite rich capabilities and wide functionality. Today we will look at connecting to the database using the FastReport plugin for the report designer. Below is an example of the FastReport .NET installation path that would be:  C:\Program Files (x86)\FastReports\WinForms 1.    Go to the installation folder and then follow the path Extras\Core\FastReport.Data\FastReport.Data.Postgres Important! The path should be exactly like this; there may be outdated projects along other paths. 2.    We find there the project file FastReport.Data.Postgres.csproj in Visual Studio.  Important! There are several files in this folder, you need to open this one. 3.    Several projects will open in Visual Studio. Select FastReport.Data.Postgres and right-click on it, and then click “Set as Startup Project” in the context menu. 4.    Select the “Release” build and the “net462” target. 5.    In the decision tree, expand the project -> Dependencies -> net462 -> Projects and Packages. Pay attention to the exclamation marks in the triangles. 6.    Delete “FastReport” in “Projects”. We don’t delete anything else in the dependencies. Now you need to add nuget packages FastReport.N et and Npgsql .  Important! FastReport.Net must be added as a package, since the method of adding FastReport.dll no longer works. 7.    In the “Dependencies” context menu, select “Manage NuGet Packages”. 8.    You need to add two package sources: nuget.org and the source referring to our nuget-server , or to the local folder  C:\ProgramFiles(x86)\FastReports\WinForms\Nugets. 9.    Select the nuget.org source. 10.    On the “Installed” or “Updates” tab, find the Npgsql package and click on it. 11.    We look on the right and see the following information: the current version associated with the project is 3.2.7, the latest version of the package is 8.0.3, the Uninstall and Update buttons. 12.    Click on the Update button. 13.    Select the second package source. The example uses the Nuget Server of Fast Reports Inc. 14.    Go to the Browse tab and enter fastreport.net in the search field  15.    Select the FastReport.Net package or FastReport.Net.Demo for the trial version.  Important! It should be one of these two packages, as the FastReport.Net.Pro package is outdated and no longer used.  16.    We carefully look at the version and select the one that we have installed. This manual covers 2024.2.12 version. 17.    Click the Install button. We accept the license agreement and wait for the package to be installed. 18.    Right-click on the FastReport.Data.Postgres project and click Build in the context menu. 19.    At the bottom left we see the inscription “Build succeeded.” This means that the plugin is built correctly and Visual Studio can be closed. 20.    Go to the folder where FastReport .NET is installed, as indicated at the beginning of the instruction, this is C:\Program Files (x86)\FastReports\WinForms. There should be "Designer.exe" here. 21.    We move from this folder to the following folders along the path: Extras\Core\FastReport.Data\FastReport.Data.Postgres\bin\Release 22.    We find 2 folders “net462” and “net6.0-windows7.0”, go to the net462 folder. 23.    Copy the following files from this folder:  FastReport.Data.Postgres.dll,  Npgsql.dll,  Microsoft.Bcl.AsyncInterfaces.dll,  Microsoft.Extensions.Logging.Abstractions.dll,  System.Threading.Tasks.Extensions.dll,  System.Memory.dll  24.    Paste the copied files into the folder where Designer.exe is located. 25.    Run “Designer.exe”, go to the File -> Options menu (View -> Options if the Ribbon interface is disabled). Go to the “Plugins” tab. 26.    If there is already a FastReport.Data.Postgres plugin, you need to remove it and repeat step 21. 27.    Click on the “Add” button, go to the designer folder, in this example it is  C:\Program Files (x86)\FastReports\WinForms  28.    Select the FastReport.Data.Postgres.dll file and click the “Open” button. The plugin appears in the list. 29.    Pay attention to the text at the bottom left, which indicates that the Designer needs to be restarted. Click the OK button. Close the designer. 30.    Launch Designer.exe again. If you have followed this instruction, the connection to Postgres should appear in the list of connections. 31.    If you see the following errors when trying to connect: Then you need to close the designer, copy the file indicated in the error from the С:\Program Files(x86)\Fast Reports\WinForms \Extras\Core\FastReport.Data\FastReport.Data.Postgres\bin\Release\net462 to the folder where you have Designer.exe. In FastReport .NET, it is very easy to assemble and connect various connectors to a variety of databases. Tags: .NET, FastReport, Data Source, Plugin, PostgreSQL, NuGet ### How to build daily graphics from csv files URL: https://www.fast-report.com/blogs/build-daily-graphics-csv Summary: Let's take a closer look at how to create daily charts from CSV files in FastReport works. Find more usefull tips and articles in our blog. Let's take a closer look at how to create daily charts from CSV files in FastReport works. Find more usefull tips and articles in our blog. Let's take a closer look at how to create daily charts from CSV files in FastReport works. Find more usefull tips and articles in our blog. Suppose you keep a record of employee sales in an Excel file. Would you like to see sales results for the month in the form of a graph. So it's faster and easier to assess the efficiency of the employee. It would be nice to see the difference in terms with the previous day. You need this report every morning. FastReport Desktop comes to the rescue. With the help of it we will create a report with a nice chart and create a task in the scheduler for the daily sending of the report to you by the email. Let's determine the data source. This will be a csv file, for example, with the following content: We have three columns: the order number, the order date, the seller's surname. Suppose this file is updated daily with new data. Then every morning the chief will receive a report with a schedule of sales for employees. Let's create a report. Add a new data source - CSV file. We place the Chart object on the report page. No matter in what band. Let it be the Data band. As you noted, the report header contains the date: We used the system variable [Date], and to display the date without time, we used the function FormatDateTime. We proceed to the diagram. Double-click on it: At the top right, you need to select the data source for the chart, which we call the Chart. The chart consists of series, which actually represent diagrams. We already have one added series - Series 1. Click on it. On the "Data" tab we need to determine which fields from the source we will display. For the value of X, select the FirstName field. For the value of Y, the OrderID. There is the "Filter" field above. Let's add here such a complex expression in it: FormatDateTime(ToDateTime([Chart.OrderDate]), "MMYYYY") ==FormatDateTime([Date], "MMYYYY") Here we get the month and year from the OrderDate field and compare it with the current month and year. Thus, we filter the actual data for the current year and month. Let's change the name of the series to "Today": Go to the "Data Processing" tab. Here we will enable the grouping of data by " X Value", and the function - Count: On the "Labels" tab, select "Pattern:" - VALY Now let's add one more series to the chart and call it "Yesterday": We adjust it with the same parameters as the first series, with only one change. In the filter there will be one more condition: (FormatDateTime(ToDateTime([Chart.OrderDate]), "MMYYYY") ==FormatDateTime([Date], "MMYYYY"))&&(ToDateTime([Chart.OrderDate])LoadFromFile("1.fr3"); frxReport1->PrepareReport(true); frxReport1->LoadFromFile("2.fr3"); frxReport1->PrepareReport(false); frxReport1->ShowPreparedReport(); ``` Load the first report and build it without displaying it on the screen. Then load the second report into the same TfrxReport object and build it with the ClearLastReport = False parameter. This adds the second report to the previous one. Obviously, we can repeat the two penultimate lines to add some more reports to our complex composite report. And this part is only possible from the code. When we have built everything, we can see the combined reports in the preview window and easily save this file in any format and location from it. Saving the combined report as PDF. After we managed to combine two reports into one we simply export it to PDF (or, in fact, to any file format – for example, RTF/DOC/ODT or tabular – but it is not so difficult to combine them after export while it is relevant for PDF). Here you can let the user select the file format for saving and settings: Click  on the Save icon in the preview. Select the required format  – PDF. We can see the Export settings window. Configure everything that we need. For more information about creating and configuring, see the article: Click OK when finished! Or something like that    "FrxReport1.Export (frxPDFExport1);" I described the parameters of saving in various formats from the Delphi, Lazarus, and C ++ Builder code in more detail in previous articles. We can open the resulting document after creation. Having opened the file, we will see a consistent display of our reports in one PDF document. Combining two PDF reports from Delphi, Lazarus, and C++ Builder is not as difficult as it might seem. Tags: VCL, Export, Lazarus, FastReport, PDF, Delphi ### How to Configure a Report with Business Objects in Code and the FastReport .NET Designer URL: https://www.fast-report.com/blogs/business-objects-net Summary: This article demonstrates a practical example of creating and using an .frx report template that connects to hierarchical Business Objects in FastReport .NET. This article demonstrates a practical example of creating and using an .frx report template that connects to hierarchical Business Objects in FastReport .NET. FastReport .NET provides multiple ways to access and work with data, including databases, DataSet, JSON, and Business Objects (regular C# classes in your application). This article demonstrates a practical example of creating and using an .frx report template that connects to hierarchical Business Objects (Category → Products). FastReport .NET provides multiple ways to access and work with data, including databases, DataSet, JSON, and Business Objects (regular C# classes in your application). This article demonstrates a practical example of creating and using an .frx report template that connects to hierarchical Business Objects (Category → Products). Why Use Business Objects as a Data Source? Business Objects offer several advantages over traditional data sources: Support for complex object models — Works seamlessly with nested collections, making it ideal for Master-Detail reports (demonstrated later in this article). Database independence — Reports can be generated without a direct database connection. Easy maintenance — Changes to the data model typically require little or no modification to existing reports. High performance — Data is serialized directly from application objects. Flexibility — Suitable for WinForms, WPF, ASP.NET Core, microservices, and other .NET applications. Preparing the Business Objects 1. Create the model classes First, install the FastReport.Net.Demo NuGet package (or the licensed FastReport.Net package from our private NuGet server ), then create the following model classes: ``` public class Category { public string Name { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public List Products { get; set; } = new List();   public Category() { }   public Category(string name, string description) { Name = name; Description = description; } }   public class Product { public string Name { get; set; } = string.Empty; public decimal UnitPrice { get; set; }   public Product() { }   public Product(string name, decimal unitPrice) { Name = name; UnitPrice = unitPrice; } } ``` 2. Populate the Business Objects Next, implement a simple method to populate the data: ``` static private void CreateBusinessObject() { FBusinessObject.Clear();   Category category = new Category("Beverages", "Soft drinks, coffees, teas, beers"); category.Products.Add(new Product("Chai", 18m)); category.Products.Add(new Product("Chang", 19m)); category.Products.Add(new Product("Ipoh coffee", 46m)); FBusinessObject.Add(category);   category = new Category("Confections", "Desserts, candies, and sweet breads"); category.Products.Add(new Product("Chocolade", 12.75m)); category.Products.Add(new Product("Scottish Longbreads", 12.5m)); category.Products.Add(new Product("Tarte au sucre", 49.3m)); FBusinessObject.Add(category);   category = new Category("Seafood", "Seaweed and fish"); category.Products.Add(new Product("Boston Crab Meat", 18.4m)); category.Products.Add(new Product("Red caviar", 15m)); FBusinessObject.Add(category); } ``` 3. Designing the Report To create a report based on the Categories BusinessObject data source, use the following code: ``` [STAThread] static void Main(string[] args) { Report report = new Report(); CreateBusinessObject(); report.RegisterData(FBusinessObject, "Categories BusinessObject"); report.Design(); } ``` Important: Call RegisterData after loading the report (report.Load) and before calling report.Prepare(). After launching the report designer, select the data source by opening "Data → Choose Report Data". Next, create a simple Master-Detail report, or use one of the sample templates included with the FastReport demo projects. Once the report is ready, run it in Preview mode to verify the output. 4. Displaying the Report in a Console Application Once the report template has been created, you can display it from a Console application using the following code: ``` [STAThread] static void Main(string[] args) { Report report = new Report(); report.Load(@"Business Objects.frx"); CreateBusinessObject(); report.RegisterData(FBusinessObject, "Categories BusinessObject"); report.Prepare(); report.Show(); report.Dispose(); } ``` Complete WinForms Application Example ``` public partial class Form1 : Form { static private List FBusinessObject = new List();   public Form1() { InitializeComponent(); CreateBusinessObject(); }   private void CreateBusinessObject() { FBusinessObject.Clear();   Category category = new Category("Beverages", "Soft drinks, coffees, teas, beers"); category.Products.Add(new Product("Chai", 18m)); category.Products.Add(new Product("Chang", 19m)); category.Products.Add(new Product("Ipoh coffee", 46m)); FBusinessObject.Add(category);   category = new Category("Confections", "Desserts, candies, and sweet breads"); category.Products.Add(new Product("Chocolade", 12.75m)); category.Products.Add(new Product("Scottish Longbreads", 12.5m)); category.Products.Add(new Product("Tarte au sucre", 49.3m)); FBusinessObject.Add(category);   category = new Category("Seafood", "Seaweed and fish"); category.Products.Add(new Product("Boston Crab Meat", 18.4m)); category.Products.Add(new Product("Red caviar", 15m)); FBusinessObject.Add(category); }   private void btnCreateNew_Click(object sender, EventArgs e) { // create report instance Report report = new Report();   // register the business object report.RegisterData(FBusinessObject, "Categories BusinessObject");   // design the report report.Design();   // free resources used by report report.Dispose(); }   private void btnRunExisting_Click(object sender, EventArgs e) { // create report instance Report report = new Report();   // load the existing report report.Load(@"..\..\Business Objects.frx");   // register the business object report.RegisterData(FBusinessObject, "Categories BusinessObject");   // run the report report.Show();   // free resources used by report report.Dispose(); } }     public class Category { public string Name { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public List Products { get; set; } = new List();   public Category() { }   public Category(string name, string description) { Name = name; Description = description; } }   public class Product { public string Name { get; set; } = string.Empty; public decimal UnitPrice { get; set; }   public Product() { }   public Product(string name, decimal unitPrice) { Name = name; UnitPrice = unitPrice; } } ``` Conclusion Business Objects are one of the most modern and convenient ways to work with data in FastReport .NET. They allow you to integrate report generation into your application's architecture in a clean and maintainable way, without introducing unnecessary complexity into your codebase. This approach is especially well-suited for medium-sized and large projects, where clear separation of concerns, maintainability, and rapid report development are essential. By using Business Objects, you gain maximum flexibility and full control over how data is supplied to your reports, while keeping your reporting layer closely aligned with your application's domain model. Tags: .NET, FastReport, Data Source, Designer, C#, Preview ### How to Configure an AI Agent for FastReport .NET: Architecture, Limitations, and Report Migration URL: https://www.fast-report.com/blogs/ai-agent-fastreport-net Summary: AI feature for FastReport .NET: automated migration of reports from Crystal Reports and StimulSoft, refactoring for .NET 8/9, template generation, and protection against data leaks. AI feature for FastReport .NET: automated migration of reports from Crystal Reports and StimulSoft, refactoring for .NET 8/9, template generation, and protection against data leaks. Working with reports often turns into a routine: editing XML templates (.frx), configuring data bindings, and adapting legacy formats. To automate this work, a specialized AI agent was created. This agent understands the FastReport .NET architecture and strictly follows enterprise development standards. Working with reports often turns into a routine: editing XML templates (.frx), configuring data bindings, and adapting legacy formats. To automate this work, a specialized AI agent was created. This agent understands the FastReport .NET architecture and strictly follows enterprise development standards. Business Value Using a specialised AI agent with the FastReport .NET skill directly saves hours of routine work for developers and protects the product from vulnerabilities. The main advantages include faster development, fewer bugs (due to automatic data validation), and the complete elimination of data leak risks (passwords are never saved in templates). Automatic Migration of Legacy Reports to Modern .NET Versions A huge problem for many enterprise projects is the legacy of hundreds of reports written for the old .NET Framework (WinForms or WebForms). Manually porting such reports to modern platforms takes months. The Agent takes on this work: API Refactoring: The Agent automatically replaces obsolete FastReport method calls with their modern counterparts compatible with .NET 8 and .NET 9. Migration to Web Frameworks: Legacy WinForms reports are easily adapted for browser display. The Agent generates code to integrate the WebReport component into modern ASP.NET Core MVC and Blazor applications. Data Layer Update: Obsolete connections (e.g., direct SQL queries from the report via SqlDataSource ) are converted into clean code where data is supplied through modern ORMs (Entity Framework Core) as strongly-typed collections (IEnumerable). Compatible Neural Networks The skill is fully bilingual and tested to work with top modern LLMs: Claude 3.5 Sonnet / Opus: Recommended model. Perfectly understands long system prompts, deeply analyzes complex XML template structures (.frx), and writes clean C# code. Gemini 1.5 Pro / Gemini 3.1 Pro: An excellent choice for mass migration due to its huge context window — you can upload dozens of templates and documentation at once. GPT-4o / GPT-4 Turbo: A classic and reliable option that navigates the .NET ecosystem perfectly. Adaptability: The Agent automatically responds and comments code in the language of your prompt. Migration from Other Platforms: Crystal Reports and StimulSoft In addition to migrating between .NET versions, the Agent significantly simplifies the transition from third-party reporting systems. Import from Crystal Reports (.rpt) Converting Crystal Reports files is often accompanied by the loss of complex logic and formulas. When importing .rpt files into the .frx format, the Agent performs the following tasks: Formula Adaptation: The syntax of Crystal Reports expressions differs from FastReport. The Agent automatically rewrites old formulas into correct C# expressions within the template. Data Binding Restoration: In Crystal Reports, data logic was often hardcoded deep inside the report. The Agent helps extract these queries into your C# application (Dapper/EF Core), binding the new data sources (IEnumerable) to the converted template. Layout Correction: After the basic automatic import, elements can shift. The Agent is capable of correcting the XML structure of the template to align tables and text fields. Import from StimulSoft (.mrt) StimulSoft reports have a similar architecture, but differ in their approach to building components (bands) and scripts. Script Migration: The Agent converts internal event scripts ( OnBeforePrint , OnAfterData , etc.) from the StimulSoft format into safe and valid FastReport C# scripts. Structure Translation: Cross-tabs (Cross-Tab / Matrix) are structured differently in StimulSoft and FastReport. The Agent analyzes the logic of the .mrt file and rewrites it into a MatrixObject in FastReport, preserving the hierarchy of rows and columns. Garbage Cleanup: During automatic import, redundant styles or parameters are often generated. The Agent optimizes the XML code of the .frx file, removing unnecessary artifacts from the previous platform. Architecture and Integration The Agent promotes an enterprise approach to building reports. The database supplies data to the application (e.g., via EF Core). The application prepares DTOs or IEnumerable lists and passes this clean data to the FastReport Engine . The engine overlays the data onto the .frx template (design) and renders the result. The logic always remains in C#, and the visuals in the template. Strict Limitations (Prohibitions) To ensure the code remains clean and functional, the Agent adheres to strict rules: No Guesswork: The Agent is prohibited from inventing API methods. License Protection: The Agent does not replace Open Source with Commercial (and vice versa). Careful Handling: It is prohibited to rewrite the entire .frx file for the sake of a minor fix. Analysis: A mandatory Preflight Check (environment analysis) is required before work. Security and Production A report is a vulnerable point for data leaks and overloads. No Passwords: The Agent is strictly prohibited from saving Connection Strings inside .frx files. Script Security: The Agent never disables report script protection without a valid reason. Thread Safety: It is prohibited to use a single static Report instance for multiple threads. Objective Disadvantages and Limitations The Agent is not omnipotent. It is important to understand the following technical nuances: UI Blindness (Pixel-Perfect): The Agent does not see the final PDF. It can make perfect XML, but a human will have to adjust the paddings in the designer. No Drag & Drop: The Agent writes XML by hand. Creating very complex visual forms is easier with a classic mouse. Difficulty with huge files: Extra-large .frx templates (thousands of lines) can hit the limits of the neural network's context window. Prompt Dependency: You must clearly describe the structure of your C# classes to the Agent , otherwise it will not guess the property names for binding. How to Get Started You do not need to write instructions and prompts from scratch. Use ready-made skills from our repository: Download prompts Copy the downloaded configuration file (SKILL.md) to the global skills directory of your AI agent. After that, simply type in the chat, for example: "Connect FastReport to my ASP.NET project" or "Generate a matrix report based on this data". The Agent will automatically pick up the rules from the skill and execute the task. Tags: .NET, FastReport, C# ### How to configure Content Security Policy for FastReport .NET WEB reports URL: https://www.fast-report.com/blogs/net-content-security-policy Summary: Learn how to configure Content Security Policy for FastReport .NET WEB reports: an overview of CSP directives and values, changes in the FastReport architecture, typical bypass scenarios, and ways to protect against them. Learn how to configure Content Security Policy for FastReport .NET WEB reports: an overview of CSP directives and values, changes in the FastReport architecture, typical bypass scenarios, and ways to protect against them. Content Security Policy (CSP) is a key tool for protecting web applications from XSS attacks, but its integration with reporting systems is often fraught with difficulties. In the latest versions of FastReport .NET WEB, the architecture of the client-side has been significantly reworked, which simplifies compliance with a strict CSP without losing report functionality. In this article, we will examine how to properly configure CSP for FastReport reports and take into account typical risks. Content Security Policy (CSP) is a key tool for protecting web applications from XSS attacks, but its integration with reporting systems is often fraught with difficulties. In the latest versions of FastReport .NET WEB, the architecture of the client-side has been significantly reworked, which simplifies compliance with a strict CSP without losing report functionality. In this article, we will examine how to properly configure CSP for FastReport reports and take into account typical risks. How CSP works and why it is needed Content Security Policy (CSP) is a security mechanism or even a standard for web applications that allows you to control which resources (scripts, styles, fonts, images, connections, etc.) can be loaded and executed on a page. CSP is implemented through the HTTP header Content-Security-Policy or HTML meta tag. The main goal of CSP is to prevent Cross-Site Scripting (XSS) attacks and the introduction of malicious code. The policy prohibits the execution of unsigned or unauthorized scripts, even if an attacker manages to inject a
``` As you can see from the code, we just load the HTML report file by requesting it from the service link. Open the file WebApiConfig.cs from the folder App_Start. Add one more MapHttpRoute for the Index page: ``` public static void Register(HttpConfiguration config) { // Web API configuration and services // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "Index", routeTemplate: "{id}.html", defaults: new { id = "index" } );   config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } ``` In the same folder, the RouteConfig.cs file is located. It can be deleted. Open the file Global.asax. Delete the line: ``` RouteConfig.RegisterRoutes(RouteTable.Routes); ``` Now routing will be carried out only through WebApiConfig. Launch the application and click the "Download" button: We receive our report. From the example considered, it is clear that working with web service for reports using Ajax is very simple. Tags: .NET, .NET, FastReport, FastReport, Web API, Web API ### How to handle errors when calling WebReport.DesignerSaveCallBack URL: https://www.fast-report.com/blogs/handle-errors-calling-webreport Online Designer is an excellent tool for creating reports on the Internet. Let's look at the situation. You create a report template, save it, and ... See the message "was not saved". But what is wrong? How do you know what the error is? Now, the web report has the Debug property, with which you can "catch" errors right in the online report designer. We need to enable the WebReport.Debug property and create an error handler in the method of saving the report. The error will be passed to the designer when the WebReport.DesignerSaveCallBack event is called. Let's look at the process of saving a report from an online designer in a simplified way, then it happens like this: 1. Press the button to save the report in the report designer; 2. The designer calls our handler while saving; 3. The handler processes the report and calls a callback in the MVC application; 4. If an error occurs, it is sent to the handler; 5. The handler sends an error to the online designer. Let's look at an example. Create an ASP.Net MVC application. Open the controller HomeController.cs. Preliminarily add links to the FastReport and FastReport.Web libraries in the links. The section «uses» will contain the following links: ``` using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.UI; using System.Runtime.Caching; using System.Text; using System.IO; using FastReport; using FastReport.Web; using FastReport.Utils; using System.Web.UI.WebControls; using FastReport.Export.Html; using FastReport.Data; using System.Net.Http.Headers; using FastReport.Export.Image; using System.Net.Http; ```  In the Index method, we will create an empty report and open it in the online designer (OnlineDesigner). But, beforehand, you need to add an online designer to the project. Unzip the downloaded online designer into the WebReportDesigner folder at the root of the solution: ``` public ActionResult Index() { WebReport webReport = new WebReport(); // Create a new web report Report report = new Report(); // Create a new report ReportPage page = new ReportPage(); // Create a new report page report.Pages.Add(page); // Add a page to the report webReport.Width = Unit.Percentage(100); // Web Report Width 100% webReport.Height = Unit.Percentage(100);// Web Report Height 100% string report_path = this.Server.MapPath("~/App_Data/");// Report folder System.Data.DataSet dataSet = new System.Data.DataSet();//Create a data set dataSet.ReadXml(report_path + "nwind.xml");// load the database into it webReport.Report = report; // Assign a blank report to the report in the program webReport.RegisterData(dataSet, "NorthWind");// Register the data source in the report webReport.DesignReport = true; // Enable report design mode webReport.DesignerPath = "~/WebReportDesigner/index.html";// Set the path to the designer webReport.DesignerSaveCallBack = "~/Home/SaveDesignedReport";// Set the view to save the reports, which we will create a little later webReport.ID = "DesignReport"; //Report id webReport.Debug = true; ViewBag.WebReport = webReport; return View(); } ``` Now we need a method of saving the report in Online Designer: ``` [HttpPost] public ActionResult SaveDesignedReport(string reportID, string reportUUID) { ViewBag.Message = String.Format("Confirmed {0} {1}", reportID, reportUUID); if (reportID == "DesignReport") { try { Stream reportForSave = Request.InputStream; string pathToSave = Server.MapPath("~/App_Data/DesignedReports/test.frx"); using (FileStream file = new FileStream(pathToSave, FileMode.CreateNew)) { reportForSave.CopyTo(file); } } catch (Exception e) { throw new Exception(e.Message); } } return View(); } ```  Here, we add error handling. To return an error to an online designer, you need to throw an exception: ``` throw new Exception(e.Message); ```  For this action, we create a separate view named SaveDesignedReport.cshtml and the following code: ```

@ViewBag.Message

```  Now consider the view for the Index page (Home-> Index.cshtml): ``` @{ ViewBag.Title = "Home Page"; }   @ViewBag.WebReport.GetHtml(); ```  At the top we display the title of the page. Next, we display the report received from the controller.  In the file _Layout.cshtml you need to connect scripts: ``` @WebReportGlobals.Scripts() @WebReportGlobals.Styles() ```  Now you need to make changes to the two web configs. The files are called the same, but they are located in different folders. The first one is located in the Views folder. Add to it: ``` … ```  The second file is located at the root of the project. In it we add a handler: ``` … ``` Run our application. Go to the "Report" tab. Click "Save". The first time should be successful. Press the save button again. And we get an error. From the text it is clear that the report template file with this name already exists. So we got a debugging tool for our reports and the web application as a whole. Tags: .NET, .NET, FastReport, FastReport, MVC, MVC, Online Designer, Online Designer, WebReport, WebReport ### How to hide a report page if you don't have data on it URL: https://www.fast-report.com/blogs/hiding-reportd-page-with-no-data Summary: The article describes how to hide report page without data. The article describes how to hide report page without data. The article describes how to hide report page without data. Data sources do not always contain data. And when you build reports, even if the data source is empty, the page will be created, at least with headlines. On report generator forums, you can find questions from users about how to hide blank pages: "Please tell me how to skip (not print) a blank page if DataBand on it contains no data." For example, the report generator Stimulsoft Reports developers propose to hide the page by using the tool Conditions. Setting a condition to check the number of records in the source, you can specify the page display component option. A good solution, simple enough. The topic of the article is relevant to any report generator, so let's look at the way to do this in FastReport.NET Data Bend has PrintIfDatasourceEmpty property which is false by default. This means that the band will not be displayed if the data is not there. But still the page is displayed to the user as it contains the data headers, or page title. Therefore, we need to write a simple script that will hide the page, if the band with this empty. There are two options: 1)      Check the void data source in the band with the data. To do this, use the StartPage event page of the report: ``` private void Page2_StartPage(object sender, EventArgs e) { if (Data2.DataSource.RowCount == 0) Page2.Visible = false; } ```  But in this case, you need to enable the DoublePass option for the report. The fact is that we can check the void of the band with data only at the stage of page formation, and we need to hide it. The DoublePass option includes a double pass when building a report. During the second pass, it will already be known that the data source in the band is empty and the page will be hidden before it is built. 2)      The second method does not require a round trip of the report. We just need to add a handler for the event StartReport report object: ``` private void _StartReport(object sender, EventArgs e) { DataSourceBase ds = Report.GetDataSource("Category"); if (!ds.HasMoreRows) { Page2.Visible = false; } } ```  In this case we check directly to the data source of the report, table Category. And then we can find out whether the source is empty before the start of the report creation page.  Thus, we have considered a way to hide the page when there is no data in the source. Tags: .NET, .NET, FastReport, FastReport ### How to hide columns in a list if there is no data URL: https://www.fast-report.com/blogs/hiding-no-data-columns Summary: Showing how to hide the column in the table in FastReport .NET report generator if data is not displayed in it. Showing how to hide the column in the table in FastReport .NET report generator if data is not displayed in it. Showing how to hide the column in the table in FastReport .NET report generator if data is not displayed in it. When making the report, we want it to be "friendly" to the consumers as much as possible. Too much data and design elements processing makes people's understanding of information more unfavourable. As a result, many people want to delete spaces in a table without data. FastReport.Net report generator allows you to perform this function. As you understand, it is necessary not only to hide the column, but also a title for it. If hiding a column is a matter of a couple of clicks with a mouse, then hiding the title task is not trivial. Suppose we have a table from which we want to display the data in a report. However, some data may be missing or set to zero. In this case, we can use the “Conditional Selection” tool to hide zero-data cells. Select the desired cell and click on the icon on the toolbar: When you add conditions, by default there will be a check for zero. That is what we need. We only select display options. In our case, we remove the flag visible: Therefore, these non-ingenious operations, we have realized a hidden zero-data cells. But that doesn't solve all the problems. Our task is to hide the title of the entire column if no value is greater than zero. The gap in this column will check the output of each page. To check that there is no data on the page in a given column, we'll use the “result”. This result is summed up by a given column and summarizes all the values in it. If the total is zero, then there is not a single value in the column more than zero, and you need to hide the column's header. So. Let's add the result: The result put in the band "Page Footer": The result can then be hidden using the “visible” property. Now let's set the logic to hide the headline of the last column. Instead of the RUB text, we introduce the expression: [IIf([Total]!=0,Text14.Text = "RUB",Text14.Text = "")] However, that is not all. Since the result is formed after the title and data are displayed on the page, at the time of execution of expression that we have introduced above, total value is not relevant. Therefore, we need to use the deferred expression calculation option in the column header and double pass on the report. Choose a text box with the RUB column header. In the properties of the text field we find ProcessAt and change to PageFinished: After this we need to open report properties and install “Doublepass” option: This option allows you to build a report twice. In the first construction will be calculated all the results, and in the second one these results can be used in the headlines. All this is necessary, because the report is built elementally consistently. That is, when building the next element, you will not be able to change the previous one. Therefore, you need a re-build that takes into account the results of the next elements. Let's see how our report works in terms of when all the data in the RUB column is 0: On some pages the data can appear so the column will appear as well: This way we can dynamically display or hide the columns according to the data in them. Tags: .NET, .NET, FastReport, FastReport ### How to hide toolbar in web-reports URL: https://www.fast-report.com/blogs/hide-toolbar-web-reports By default, web - reports have the toolbar above them in case to control the report display: In the object properties of “WebReport” you can control this toolbar, add and remove elements, change the layout and style. For example, to display the toolbar at the bottom of the report window, use the “ShowBottomToolbar” property. If you want to hide the toolbar use the “ShowToolbar” property. You can also remove the rest of the elements of control: buttons of moving through the report pages, export and printing. There are two panel styles (ToolbarStyle) - Large and Small. It is also possible to choose from five sets of icons. And, of course, you can choose any color for the toolbar background. For  example  : If you do not like the standard panel, you can make your own one. Let us place the component “Panel” under “WebReport1”. Add a button to the panel: Сall the button “Show / Hide toolbar”. Double-click the button. The button will hide or show the toolbar, so the click event code will be following: ``` WebReport1.ShowToolbar = false; ```  The result of the button clicking: Now add other buttons that will have some functions of the toolbar buttons: For the button “Prev.” add the code: ``` WebReport1.PrevPage(); ``` For the button “Next” - similarly: ``` WebReport1.NextPage(); ``` And for export to PDF: ``` WebReport1.ExportPdf(); ``` Check the added buttons. Report pages are switched: By clicking on “ExportPDF” the save file dialog box appears. The article provides support for creating a custom toolbar similar to the existing one. The toolbar will not be attached to the window of the report and it can be designed according to your taste. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport, Designer, Designer, Customization, Customization ### How to hide unnecessary items in the Web Report toolbar URL: https://www.fast-report.com/blogs/hiding-items-from-webreport-toolbar Summary: The article describes how to hide any toolbar items for FastReport .Net WebReport The article describes how to hide any toolbar items for FastReport .Net WebReport The article describes how to hide any toolbar items for FastReport .Net WebReport Most advanced report generators let us generate reports for web applications. When displaying reports to users, consider the ability to navigate on their web pages, send to print, export to any format, and other functions. This is usually a special toolbar in the report output window. Quite often, the question on the forums reporting tools developers is “how to remove the toolbar from unwanted items, or how to disable printing the report”. And the truth is not always the toolbar appears appropriate, report such a panel can not fit into the web application design. Although it is possible to customize the icons on the panel, and even its color, still would like to be able to hide it at all, or remove unnecessary controls for a cleaner look. Let's see how to hide the controls or the entire toolbar entirely in FastReport.Net. So, web FastReport.Net report object has a toolbar on top of which we spoke above. Creating a report in a Web application, you just need to adjust some of its properties. Consider the properties that are responsible for the appearance of the toolbar: ``` WebReport report = new WebReport(); report.Width = 800; report.Height = 800; report.Report.Load(Server.MapPath("App_Data/Master-Detail.frx")); report.ShowPrevButton = false; //Hide previous page button report.ShowNextButton = false; // Hide next page button report.ShowBottomToolbar = true; //Show the toolbar at the bottom report.ShowFirstButton = false; //Hide first page button report.ShowLastButton = false; // Hide last page button report.ShowExports = false; //Hide export display button report.ShowMhtExport = false; //Hide export to MHT report.ShowOdsExport = false; // Hide export to ODS report.ShowOdtExport = false; // Hide export to ODT report.ShowPdfExport = false; // Hide export to PDF report.ShowPowerPoint2007Export = false; // Hide export to PwerPoint report.ShowRtfExport = false; // Hide export to RTF report.ShowTextExport = false; // Hide export to Text report.ShowWord2007Export = false; // Hide export to Wors=d report.ShowXmlExcelExport = false; //С Hide export to Excel report.ShowXpsExport = false; // Hide export to XPS report.ShowDbfExport = false; // Hide export to DBF report.ShowCsvExport = false; // Hide export to CSV report.ShowOutline = false; //Hide report plan display report.ShowPageNumber = false; //Hide the current number of the page report.ToolbarBackgroundStyle = ToolbarBackgroundStyle.Dark; //Select the theme of toolbar report.ToolbarColor = Color.Aqua; //Select colour of toolbar report.ToolbarIconsStyle = ToolbarIconsStyle.Blue; //Hide export to format from the toolbar report.ShowRefreshButton = false; //Hide the report update button report.ShowZoomButton = false; //Hide the scaling button report.ShowToolbar = false; //Hide the toolbar report.ShowPrint = false; //Hide print button ```  As you can see, the number of settings is quite large. It is possible to customize the appearance of the panel - customize the color, panel style and icons. For example, the background style of the Medium panel, and the icons - Red: Separately, it is worth noting that it is possible to exclude certain types of exports of the report from the list. But if you don't need an export in principle, you can just remove the button. For example, if you remove all the buttons from the panel except print, it will look like this: For those who are not happy with the toolbar at the top, there is an option of displaying it in the bottom (ShowBottomToolbar = true): And those who do not need toolbar at all, there is an option to entirely hide it: Thus, using the selection of necessary properties you can easily customise your toolbar according to your personal needs. Tags: .NET, .NET, FastReport, FastReport, WebReport, WebReport, Toolbar, Toolbar ### How to highlight data by condition in FastReport .NET URL: https://www.fast-report.com/blogs/highlighting-data-condition-fastreport-net There are times when you need to highlight some of the data when analyzing tables. Usually, when we review a paper version of the document, we highlight a data using a marker. But why not do it at once, during the formation of the table? FastReport .NET allows you to highlight the data depending on the specified conditions. A striking example of the use of conditional highlighting - the statistical data in the summary tables (matrices). Let's create a matrix report. We use the data from the database nwind.xml, which is used in the demo reports of FastReport .NET. Use the table MatrixDemo. The result here is a simple template: If you run the report, we can see the dry statistics on the profitability of the company, brought by employees for months. But let's say we want to highlight cells with a yield of more than 3000r per month. Select the cell [Revenue]. On the toolbar, click the icon: In the next window you can set conditions for the highlighting and style of text or background. Add Condition Value> 3000. Color can be a gradient or "glass". You can add any number of conditions for the same object. Add another one: Value> 1000. Since we have two conditions, it is necessary to take into account their order. If you move up the second condition, the cell with a value > 1000 will be yellow, as well as the value > 3000. This will happen because FastReport .NET handles the conditions in the order. Since the condition Value> 1000 covers the values > 3000, the second condition would not apply. Keep this in mind when using multiple conditions for a single object. Now let's see the result of our efforts: If you want to highlight the columns Total, will have to add the same conditions for the cells in this column. So, by simple manipulations we get a summary table that does not require further analysis with marker in hand. Tags: .NET, .NET, FastReport, FastReport ### How to host FastReport ASP .NET Core application in IIS Windows Server 2012 URL: https://www.fast-report.com/blogs/hosting-app-in-windows-server-2012 Summary: Launching our web application on IIS (Internet Information Services) under server operating systems with a Windows kernel. Launching our web application on IIS (Internet Information Services) under server operating systems with a Windows kernel. Launching our web application on IIS (Internet Information Services) under server operating systems with a Windows kernel. To host the created applications on Internet servers, you need a web server. Today we will launch our web application on IIS (Internet Information Services). It is a web server for hosting sites on the Internet. It is more often used to host web servers under server operating systems with a Windows kernel. First, we will create the application on ASP .NET Core with the FastReport.Web  library or simply use the FastReport.Core.Web21.MVC demo project from the  FastReport application .NET Trial   which is located in the path: ``` "FastReports\FastReport.Net Trial\Demos\Core\FastReport.Core.Web21.MVC" ``` We open the project through Visual Studio, build it and run it to make sure everything works: As you can see, the project works properly. Let's prepare it for publication on iis! We launch "Solution Explorer" and right-click on the project, find "Publish...". At this stage, select the local storage "\bin\Release\Debug", then click publish. A little patience and ta da, the project is ready to be published on IIS. Now let's go to Windows Server 2012 itself. The path is something like this:  Server Manager ->  Local Server -> Roles and Features -> Tasks -> Add Roles and Features. Then a window pops up in which we click Next up to Server Roles. We carefully find the Web Server (IIS) and install it. Now we need to install dotnet hosting  from the official site .  Follow step-by-step instructions. Step 1. Select the required .NET version. Step 2. Find ASP.NET Core Runtime and click on Hosting Bundle. Just download and install - it seems pretty straightforward. Step 3. After installation, go to the console and restart IIS using the command: ``` "iisreset" ``` Congratulations, IIS is now fully ready to work with ASP .NET Core! After all these manipulations, go to the C:\inetpub\wwwroot directory on Windows Server 2012. Create a folder with any name inside. Let's say it will be "coretest". Now we add the project files to this folder. Open IIS Manager using Server Manager, as shown in the picture. After opening IIS Manager, you will need to add a new website. Right click on “Sites” and then click on “Add Website”. A window should appear where you will need to specify the name, port (if the default port is busy) and the path to the project: That's it, we created the website. To view it, just right-click on the created website, then click on Manage Website, and then on Browse. Then your project will open in the browser: Let’s sum up. Running your project on Windows Server 2012 is neither scary nor difficult. If you have any questions, contact our support. Tags: .NET, .NET, Visual Studio, Visual Studio, FastReport, FastReport, ASP.NET, ASP.NET, Core, Core, Web API, Web API, Windows, Windows ### How to import a report from StimulSoft into FastReport .NET URL: https://www.fast-report.com/blogs/import-report-stimulsoft-dotnet Summary: In FastReport .NET has added a plugin for importing reports from StimulSoft, which automatically converts your documents to .frx format. In FastReport .NET has added a plugin for importing reports from StimulSoft, which automatically converts your documents to .frx format. In FastReport .NET has added a plugin for importing reports from StimulSoft, which automatically converts your documents to .frx format. Import of StimulSoft reports is now available with the 2022.2.13 release. To use it, go to the “File” menu in the FastReport .NET designer, FastReport CoreWin and FastReport Mono and click on the “Open ...” item. Select the filter "StimulSoft files (*.mrt)" in the window that appears. The uploaded file will be automatically converted into a FastReport report and opened in the designer. The resulting imported report may differ. Most likely, you should finalize it by adding connections and changing functions with variables in text objects. StimulSoft report code cannot be converted to work properly for FastReport reports due to technical features of the product. Thus, the program code will be converted into a comment. Also, 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 the way that the generated report is as similar as possible to the one created in StimulSoft. It is important to note that cross-bands are imported by moving their contents to the parent band. StimulSoft. Otherwise, the locations, sizes and types of objects with some properties will match those in the StimulSoft report. Comparative table of StimulSoft and FastReport reports: Possibility FastReport StimulSoft Report objects   Text + +   Figure + +   Image + +   SVG + +   Subreport + +   Service text + +   Diagram + +   Barcode + +   2D barcode + +   Map + +   Postcode + +   Text in cells + +   Rich Text + +   Gradient + +   Cross-tab (Matrix) + +   AdvMatrix + -   Table + +   Container + -   Indicator + +   Checkbox + +   Sparkline + +   HTML + +   Digital signature + +   Clone - +   Mathematical formulas - + Report Features   Dialogue Forms + +   Report Inheritance + +   Master-detail-subdetail + +   Drill-downs + +   Grouping + +   Sorting + +   Headers and footers + +   URLs аnd hrefs + +   HTML tags in text objects + +   Dimensionless Pages + +   Preview Component + +   Report designer in development environment + +   Report designer in the executable program + +   High DPI support + +   Visual SQL Query Builder + -   Interface languages 39 38 A report imported from StimulSoft to FastReport Original report built in trial version of StimulSoft: The result with some modifications: You can notice one difference in these examples — there is no band that closes the footer of the table in the imported report. This is explained by different implementation of the data footer (DataFooterBand). Let’s look at another report that contains Code 39, Code 39 Extended, Code 93, Code 93 Extended, UPC-Sup2, UPC-Sup5 barcodes. You can see the result of converting to the FastReport designer in the following screenshot: This import feature will enable FastReport users to very quickly convert a report from StimulSoft and as accurately as possible. This will save labor effort for converting and building familiar reports in the FastReport designer. Please contact our support  for all questions related to importing. Tags: .NET, Mono, Export, FastReport, Core, Barcode, Report, Converter ### How to insert a report into the body of a email URL: https://www.fast-report.com/blogs/report-email-body Summary: The article describes how to insert report in text format to email body The article describes how to insert report in text format to email body The article describes how to insert report in text format to email body By default, FastReport.Net allows you to send e-mails with an attached report file in one of the available export formats. However, it is sometimes necessary to include the report content in the body of the email. This feature may be useful if you intend to discuss the report content in correspondence. Responses to an email with an attached report file will no longer have that file. Therefore, you will need to take the time to find an email with an attachment in order to view the report and understand what it is about. It can also be useful if you are viewing mail on a mobile device. Downloading a report file and opening it in another application is not very convenient. In FastReport.Net we can send emails from the code of a user application, which means that we can set up the settings for emails. Unfortunately, an e-mail message can contain only plain text, without pictures and html markup. Therefore, we can use exporting the report to the txt format to insert it into the body of the message. Of course, the txt export format imposes many limitations - complete absence of graphics, interactive objects and complex markup - only text. Therefore, it should be used only in simple reports with clear data hierarchy and simple markup. The ideal example - simple lists. Let's consider an example of sending a email with a report in the message: ``` //Create export to txt format FastReport.Export.Text.TextExport text = new FastReport.Export.Text.TextExport();   //Execute export to the file or stream report.Export(text, "Template.txt");   //Create export to email FastReport.Export.Email.EmailExport email = new FastReport.Export.Email.EmailExport();   //Set email subject email.Subject = "Test";   //Set message body – reply in text format email.MessageBody = File.ReadAllText("Template2.txt");   //Set recipient address email.Address = "gromozeka@gmail.com";   //Set sender address email.Account.Address = "gromozeka@yandex.ru";   //Set email host email.Account.Host = "smtp.yandex.ru";   //Set recipient name email.Account.Name = "gromozeka";   //Set username email.Account.UserName = "gromozeka";   //Set user password email.Account.Password = "******";   //Set email server port email.Account.Port = 25;   //Enable encryption if needed email.Account.EnableSSL = true;   //Send email email.SendEmail(report); ```   The mechanism of sending emails to FR.Net implies sending an email with an attached report, so a report template will be attached by default if you have not specified a certain export format for the attached file. Now let's see what we get in the e-mail. But first, take a look at the original report:  There's beautiful frames, gradient headlines and pictures. There's not gonna be any of that in the text view of the report. This is what the email with the report in the message looks like: The report is quite recognizable. If it is not important for you to show the appearance of the report, but only to deliver the information, then this method of sending the report in the body of the message will be quite suitable. Tags: .NET, .NET, FastReport, FastReport, Email, Email ### How to install and use FastReport FMX 2.8 for FmxLinux URL: https://www.fast-report.com/blogs/install-fmx-linux Summary: How to install and use FastReport FMX 2.8 for FmxLinux. Quick start guide. How to install and use FastReport FMX 2.8 for FmxLinux. Quick start guide. How to install and use FastReport FMX 2.8 for FmxLinux. Quick start guide. Recently we've released  FastReport FMX 2.8  which includes support of  FMXLinux  framework. In this article I'd like to describe installation process and requirements based on trial version of  FastReport FMX 2.8 ,  Embarcadero RAD Studio 10.4.1 ,  FmxLinux 1.52  from  GetIT  package manager and  Ubuntu 20.04.1 . We won't go deep inside installation and compilation process for Linux under RAD Studio. There are already good articles on Embarcadero website about it:  Linux Application Development  and  FireMonkey for Linux . Here is a short check-list of steps which should be made before installation of FastReport FMX 2.8 (If you have already made a setup of RAD Studio IDE and compiler for Linux and FmxLinux application compiles successfully, just skip these steps):  Install Linux distribution or use installed one (This article based on  Ubuntu 20.04.1  distribution ); Install dev packages of gcc and curl. Embarcadero recommends do it through : ``` sudo apt install joe wget p7zip-full curl openssh-server build-essential zlib1g-dev libcurl4-gnutls-dev libncurses5 ``` In this case dev package of 7zip installs all dependencies includes gcc (binary files of trial version FastReport FMX 2.8 builds with gcc 9 !); Install dev packages of zlib. For Ubuntu it should be: ``` sudo apt-get install zlib1g-dev ``` Install x11, gtk3 dependencies packages through: ``` sudo apt install libgl1-mesa-glx libglu1-mesa libgtk-3-common libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 ``` I made a clean installation on new virtual machine and join all installation commands to one:  ``` sudo apt install joe wget p7zip-full curl openssh-server build-essential zlib1g-dev libcurl4-gnutls-dev libncurses5 zlib1g-dev libgl1-mesa-glx libglu1-mesa libgtk-3-common libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 ```  Install PAServer(check  Linux Application Development );  Install FmxLinux through GetIt package manager ( Tools > GetIt Package Manager ); Connect to Linux machine and download SDK. Installation of FastReport FMX 2.8 for FmxLinux is the same as for the usual FastReport FMX 2 installation. It needs to download installation, for example trial version from here and close developer environment. All paths for compiler installation add automatically. That's it. FastReport FMX 2.8 is ready to be used!  Now we can check how FastReport FMX works on Linux. Let's run IDE(in my case Embarcadero RAD Studio 10.4.1) and open a demo example with reports. The Main demo example can be found in installation folder of FastReport FMX 2 by default in  C:\Program Files (x86)\FastReport FMX 2 Trial\Demos\Main . Open the project and select platform. Before running the demo application we need to check that all files required for the demo application will be sent via PAServer ( Project>Deployment ). In my case one checkbox in front of MIDAS library is missing. Just make sure it's selected for the used platform. It's time to compile and run the demo application. Now we can select a report and run the report designer. Build a report and show it in the preview window. And, of course, we can make an export to available formats. Just like for other platforms it's possible to use recompile utility for language change and recompilation of binary files. It's necessary to select path to FmxLinux libraries (by default C:\Users\Public\Documents\Embarcadero\Studio\21.0\CatalogRepository\FmxLinux-1.52\lib\Release for Embarcadero RAD Studio 10.4.1), compiler version, gcc version, and FastReport version. It's important to notice that recompile uses SDK paths from IDE Registry, that's why Linux SDK should be already properly set from RAD Studio before start to use recompile. Let's change a language. Compile and run the demo application again. Language was changed. As we can see, installing and using FastReport FMX 2.8 for FmxLinux is quite simple. Tags: FMX, FastReport, Linux, Install, Delphi, Ubuntu ### How to install FastReport .NET and its components on Windows URL: https://www.fast-report.com/blogs/install-net-windows Summary: Step-by-step instructions for online and manual installation via the FastReport registration code.NET and its components in Windows. Step-by-step instructions for online and manual installation via the FastReport registration code.NET and its components in Windows. Step-by-step instructions for online and manual installation via the FastReport registration code.NET and its components in Windows. To install the FastReport.NET software and its components, you need to download the installer distribution in the cpanel  and run it. When using an operating system with UAC (User Account Control), you need to agree to run the software. After launching the installer, a welcome window with an authorization button will appear. Click on the authorization button. In the system, the default web browser application will open. Use the login and password of your account to authenticate and access the purchased products. After authorization, a message about successful authorization will be displayed. You can close the web browser application and switch to the FastReport .NET installer. If you were unable to log in, please contact technical support . In the next step, familiarize yourself with the license agreement for the use of FastReport .NET software. The current version of the license agreement is available at this link. If you agree to the terms of the license agreement, you need to check the "I accept the terms of the license agreement" checkbox. Then, press the active "Next" button. If you do not agree with the terms of the license agreement, close the FastReport .NET installer and delete the downloaded files. In the next installation stage, we invite you to join the FastReports Inc. service quality and notification improvement program. This will help our company improve the quality of products, overall reliability, and the performance of all tools and libraries. This step is optional, you don't have to join our program. Select "Yes" or "No" depending on your decision, and then continue the software installation. When you join the Service Quality and Notification Improvement Program, your computer or device automatically transmits information about the use of FastReports Inc. products and software development technologies to FastReports Inc. For more information on the privacy policy, please refer to this link. Select the product you need in the installer window. The messages "Unavailable", "An old version of the product has been detected" mean that an old version of the product is installed by an old installer. If you want to update the old version, close the installer, uninstall the old version using the standard "Add/Remove Programs" tool, and then start the installation of the new version again. If you see this message after removing all old versions, please contact our technical support. Also, at this stage, you can select: Product version; Sources—Installation of source codes; Examples—Report templates; Framework—Installation of local .dll files. Then, you can select the path where the FastReport .NET software will be installed. Now everything is ready for the installation, click "Next" to start the installation process. This may take some time, depending on the selected components and the speed of your internet connection. At this stage, you can monitor the progress of the installation. The completion dialog will be shown after the installation of all selected components. To close the installer, click the "Finish" button. Offline installation In rare cases, the ability to perform an offline installation is necessary to install the "FastReport.NET" software on computers without direct access to the Internet. Our installer allows you to do such an installation with remote activation. First, you will need data packages, so it is recommended to do a preliminary installation on a computer with Internet access. After the installation, go to the installation directory and copy all .dat files and the setup.exe file to a temporary medium. Connect the temporary medium to the computer without Internet access and start the installation. If you are unable to authenticate through the Internet, the following dialog will be available to you. Check the "Use manual registration" checkbox. After that, copy the key from the "Registration information" field and send it to the technical support service with a request for activation. Insert the response from the technical support service into the "Registration code" field and click "Next". The subsequent installation process will be similar to the standard installation of the "FastReport.NET Components" software. Now that the installation of FastReport .NET and its components in Windows is complete, you are ready to start using this powerful tool to create high-quality reports in .NET applications. Remember that FastReport .NET provides extensive reporting customization and generation capabilities, making it indispensable for developers. Use all of its features, experiment, and create reports that reflect your needs and requirements. Wishing you success in your work with FastReport .NET! Tags: .NET, FastReport, Install, NuGet, Windows ### How to install FastReport .NET Trial URL: https://www.fast-report.com/blogs/installation-fastreport-net-trial This article is outdated. Updated information is available at the following link. You can download the trial version of FastReport .NET from the developer site www.fast-report.com . Run the installation file FRNetDemo.msi with administrator rights. You will see a window with installation steps. Click Next to start the installation. The next window offers to read the terms of the license agreement. If you agree with the terms of the license, check the box "I accept the license agreement." If you do not check the box, you can not continue with the installation. In the next step, select the type of installation: Complete Setup - installs all program components; Minimum Setup - will install a minimum set of components to save space on the disk; Personalized Setup - will be installed components are selected manually. By default, the first type of installation is chosen. Choose desired one and click the Next button. If you have chosen the type of installation Personalized Setup, it displays the Select Features window: Here are all the features of the package. If you want to exclude some of them, then right-click on the desired. In the context menu, choose the last option. Following options of a feature installation are avaliable: Will be installed on local hard drive; Entire feature will be installed on local hard drive; Entire feature will be unavailable. In the first case, the feature will be installed on local drive. If the feature contains several components, you can select your desired one. The second option assumes that all the feature components are selected. In the third case, we exclude from the installation the selected feature. Click the Next button. Go to the window select the installation path: Defining the installation folder. By default, program components are installed in the Program Files directory (for Windows x86) or Program Files (x86) (for Windows x64). Click the Next button. Further, we are invited to enter a name for FastReport.Net folder in the Start menu. Also, here you can set the option of adding a shortcut to all local users of the computer or only for the current. Click Next. Preparing to install complete. Run the installation program. If you decide to change one of the previous steps, use the Back button to return to the desired window. Click Next. Installation of FastReport.Net Trial starts. When the installation is complete you will see the following window: You can start the installed program immediately after clicking on the Finish button. If not required, uncheck the "Run FastReport.Net Trial has been installed successfully". Click the Finish button. demonstration program will be launched with a list of all available reports, which will help in the study of the product. The installation is completed. Tags: .NET, FastReport, Install ### How to install FastReport Business Graphics .NET URL: https://www.fast-report.com/blogs/installing-fastreport-business-graphics Summary: Instructions for installing FastReport Business Graphics .NET on to your computer, as well as adding Business Graphics components to Visual Studio. Instructions for installing FastReport Business Graphics .NET on to your computer, as well as adding Business Graphics components to Visual Studio. Instructions for installing FastReport Business Graphics .NET on to your computer, as well as adding Business Graphics components to Visual Studio. This article shows how to install  FastReport Business Graphics .NET  on your computer and how to add Business Graphics components in Visual Studio.  First, download the FastReport Business Graphics installer. You will find it in your user panel. Agree to the terms of the license agreement and enter your serial number, then choose the installation location. After this, FR Business Graphics will be installed successfully. Today FastReport Business Graphics supports .NET Framework 4.x, but we plan to add support for other frameworks in the future. Let’s look at how you can add Business Graphics components to your application. Let’s create a new WinForms application. Create a new tab in the toolbox, and click on “Choose items…” in its context menu: In the menu, click on “Browse…” and select the FastReportBG.dll file in the installation folder: After that, FastReport Business Graphics components will appear in the list of components. Select all elements related to FastReport Business Graphics and click “Ok”. After that, all the necessary elements will be added to the component panel, and you will be able to add them to the form.  In addition, add FastReportBG.dll to the list of dependencies. If you purchased the FastReport Business Graphics edition with the source code, it will be located in the FastReport.BG installation folder, and to build it you need to open the FastReport.BG.csproj project. At this stage, you have completed all the steps required to start working with FastReport Business Graphics. Enjoy! Tags: .NET, .NET, Visual Studio, Visual Studio, FastReport, FastReport, Install, Install, Business Graphics, Business Graphics ### How to install FastReport Desktop URL: https://www.fast-report.com/blogs/installing-fastreport-desktop Summary: The article describes how to install FastReport Desktop product The article describes how to install FastReport Desktop product The article describes how to install FastReport Desktop product This product is designed for generating reports by database administrators, as well as exporting them to the popular electronic document format and sending them to print, uploading to cloud storages or sending by e-mail. Run the msi extension installer downloaded from the developer’s website. The FastReport for DBA InstallAware Wizard displays a welcome window. Click Next to continue the installation: The next step prompts you to read the license agreement. Read it and (if agreed) check “I accept the terms of the license agreement”. Otherwise, you cannot continue the installation.  Click Next to continue the installation. The next InstallAware Wizard’s step prompts you to choose the type of the installation you want: There are three types of installation available: Complete – installation of a complete software package; Compact – installation with the minimum set of features; Custom – installation with the ability to choose the features that should be installed. For example, let’s choose the Custom installation type: The current version of the program does not have individual components that can be included or excluded from the installation. Therefore, just click the Next button to continue. At this step, you can specify the destination folder. “Program Files (x86)” is the default directory for installing the product. You will go to this installation step immediately after choosing Complete or Compact installation type. Click the Next button: Here you can change the name of the program folder if you did not do this in the previous step. Click Next to continue the installation. This is a preparatory step before actual installation. It allows you to go back and change the settings or cancel the installation. By clicking Next, you will start the installation: After the installation progress bar is full, you will see the completion window: This step only indicates the successful installation of the program. By clicking the Finish button, you will exit the InstallAware Wizard. Tags: FastReport, FastReport, Install, Install, Desktop, Desktop ### How to Install FastReport Desktop on Windows and Linux URL: https://www.fast-report.com/blogs/install-desktop-windows-linux Summary: In this article, we will outline the detailed steps for installing, configuring, and launching the FastReport Desktop installer, with examples for each platform. In this article, we will outline the detailed steps for installing, configuring, and launching the FastReport Desktop installer, with examples for each platform. FastReport Desktop allows users to work with reports and data in a convenient interface on their local computers running Windows or Linux. The application installation is supported on current versions of both operating systems. In this article, we will outline the detailed steps for installing, configuring, and launching the FastReport Desktop installer, with examples for each platform. FastReport Desktop allows users to work with reports and data in a convenient interface on their local computers running Windows or Linux. The application installation is supported on current versions of both operating systems. In this article, we will outline the detailed steps for installing, configuring, and launching the  FastReport Desktop installer, with examples for each platform. Online Installation of FastReport Desktop on Windows To install the FastReport Desktop software, you need to download the installer distribution from your personal account and run it. If you are using an operating system with UAC (User Account Control), you will need to agree to run the software. The default web browser application will open on the system. Use your account's login and password to authorize and access the purchased products. After authorization, a message indicating successful authorization will be displayed. You can close the web browser application and switch back to the FastReport Desktop installer. If you were unable to authorize, please contact  technical support . In the next step, review the license agreement for the use of the FastReport Desktop software. The current version of the license agreement is available at this link: https://www.fast-report.com/license/license-desktop If you agree to the terms of the license agreement, you must check the box "I accept the terms of the license agreement." After that, click on the active "Next" button. If you do not agree to the terms of the license agreement, close the FastReport Desktop installer and delete the downloaded files. At the next stage of the installation, we invite you to join the service quality improvement and notification program of Fast Reports Inc. This will help our company improve the quality of products, overall reliability, as well as the performance of all tools and libraries. This step is optional, and you are not required to join our program. Choose "Yes" or "No" depending on your decision, and then continue with the installation of the software product. When you join the "Quality Service Improvement and Notification Program," your computer or device automatically transmits information about the usage of products from Fast Reports Inc. and software development technologies to Fast Reports Inc. For more details about the personal data processing policy, please read  this link. Select the product you need in the installer window. Messages such as "Unavailable" or "Old Product Version Detected" indicate that an old version of the product is installed via an old installer. If you wish to upgrade the old version, close the installer, remove the old version using the standard "Add or Remove Programs" tools, and then start the installation of the new version from the beginning. If you encounter this message after removing all old versions, please contact technical support . In addition, at this stage, you can select the version of the product. Next, you can choose the path where the FastReport Desktop software will be installed. Everything is now ready for installation; click "Next" to start the installation process. This may take some time, depending on the selected components and the speed of your internet connection. At this stage, you can monitor the progress of the installation. The installation completion dialog will be displayed after all selected components have been installed. To close the installer, click the "Finish" button. Offline Installation of FastReport Desktop on Windows In rare cases, installing the "FastReport Desktop" software on computers without direct internet access requires the ability to perform an offline installation. Our installer allows for this type of installation with remote activation. First, you will need the data packages, so it is recommended to do a preliminary installation on a computer with internet access. After installation, navigate to the installation directory and copy all .dat files and the setup.exe file to a temporary storage device. Connect the temporary storage device to the computer without internet access and start the installation. If you are unable to authenticate via the internet, the following dialog will be available to you. Check the box "Use Manual Registration." Then, copy the key from the "Registration Information" field and send it to the technical support service with a request for activation. Paste the response from the technical support service into the "Registration Code" field and click "Next." The subsequent installation process will be similar to the standard "Installation of FastReport Desktop Components." Uninstalling FastReport Desktop Uninstallation is carried out using the standard Windows tools ("Apps - Installed Apps," select the desired application, and click "Uninstall"). Installation of FastReport Desktop on Linux To install the FastReport Desktop software, you need to download the installation package from your personal account. The following package options are available: deb and rpm, for x64 and arm64 architectures. Download the package option that is supported by your Linux distribution: deb (Ubuntu, Mint). rpm (RedHat, CentOS, SUSE, Fedora). Launch the installation of the package (please note that an administrator password is required for installation):  by double-clicking on the downloaded file (if the window manager supports this); or from the terminal by executing the installation command (which depends on the package manager used in your distribution). Below are examples of installation commands for various types of distributions: Ubuntu, Mint: sudo apt install ./fastreport-desktop-professional_ru-2026.1.0-x64.deb Fedora: sudo dnf install ./fastreport-desktop-professional_ru-2026.1.0-x64.rpm After installing the package, an application called "FastReport Desktop Install/Uninstall" will be added to the applications menu. The exact location depends on the window manager used in your distribution: Ubuntu, Fedora: in the general application list; RedHat: in the applications menu under the "Other" category. Launch it to complete the installation. In the first step, select the action type—"Install components" and click "Next": In the second step, select the necessary components and click "Finish": Uninstalling FastReport Desktop on Linux To uninstall the installed application, use the "FastReport Desktop Install/Uninstall" program. In the first step, select the action type—"Uninstall components/program" and click "Next." In the second step, select the necessary components, check the "Uninstall program" box, and click "Finish." The system will prompt for the administrator password and will uninstall the installed package. Manual Uninstallation of FastReport Desktop on Linux The package name for FastReport Desktop is  `fastreport-desktop` . To uninstall the package, use the package manager specific to your Linux distribution. Below are examples of commands for uninstalling the package in different Linux distributions: Ubuntu, Mint: sudo apt remove fastreport-desktop Fedora: sudo dnf remove fastreport-desktop Removing User Files on Linux FastReport Desktop uses the following locations to store user files. You can clear them if necessary. Configuration files folder: ~/.local/share/FastReport Folder for reports, tasks, schedules, and logs: ~/FastReport Conclusion Now that you've wrapped up the installation of FastReport Desktop, you're all set to dive into this powerful tool for crafting top-notch reports. Keep in mind that FastReport Desktop provides a wealth of customization options and report generation features, making it a must-have for users. So, explore all its capabilities, get creative, and design reports that meet your needs. Tags: FastReport, Linux, Install, Desktop, Windows ### How to install FastReport for DBA URL: https://www.fast-report.com/blogs/installing-fastreport-for-dba Summary: The article describes how to install FastReport for DBA. The article describes how to install FastReport for DBA. The article describes how to install FastReport for DBA. This product is designed for generating reports by database administrators, as well as exporting them to the popular electronic document format and sending them to print, uploading to cloud storages or sending by e-mail. Run the msi extension installer downloaded from the developer’s website. The FastReport for DBA InstallAware Wizard displays a welcome window. Click Next to continue the installation: The next step prompts you to read the license agreement. Read it and (if agreed) check “I accept the terms of the license agreement”. Otherwise, you cannot continue the installation.   Click Next to continue the installation. The next InstallAware Wizard’s step prompts you to choose the type of the installation you want: There are three types of installation available: Complete – installation of a complete software package; Compact – installation with the minimum set of features; Custom – installation with the ability to choose the features that should be installed. For example, let’s choose the Custom installation type: The current version of the program does not have individual components that can be included or excluded from the installation. Therefore, just click the Next button to continue. At this step, you can specify the destination folder. “Program Files (x86)” is the default directory for installing the product. You will go to this installation step immediately after choosing Complete or Compact installation type. Click the Next button: This is a preparatory step before actual installation. It allows you to go back and change the settings or cancel the installation. By clicking Next, you will start the installation: After the installation progress bar is full, you will see the completion window: This step only indicates the successful installation of the program. By clicking the Finish button, you will exit the InstallAware Wizard. Tags: .NET, .NET, FastReport, FastReport, Install, Install, DBA, DBA ### How to Install the FastReport .NET Report Designer with Pre-installed Plugins URL: https://www.fast-report.com/blogs/designer-net-with-plugins Summary: Read the article as from version 2025.2.5 for FastReport .NET WinForms and FastReport .NET WEB allows you to install a report designer with all plugins without building dll files. Read the article as from version 2025.2.5 for FastReport .NET WinForms and FastReport .NET WEB allows you to install a report designer with all plugins without building dll files. The FastReport .NET designer is an excellent tool for creating report templates. Various databases and file types can be used as data sources. By default, the standard designer includes data sources from: XML, CSV, JSON, MS Access, OLE DB, ODBC, and MS SQL. Also, in the report designer, you can connect to Postgres, MySQL, Firebird, MongoDB, Oracle, SQLite, Couchbase, RavenDB, Excel, and ClickHouse through separate plugins. The FastReport .NET designer is an excellent tool for creating report templates. Various databases and file types can be used as data sources. By default, the standard designer includes data sources from: XML, CSV, JSON, MS Access, OLE DB, ODBC, and MS SQL. Also, in the report designer, you can connect to Postgres, MySQL, Firebird, MongoDB, Oracle, SQLite, Couchbase, RavenDB, Excel, and ClickHouse through separate plugins. However, installing these plugins can be complicated. For each connection type, you need to download the project, assemble it, and configure it in the designer or your project. For programmers, this is a simple task—it is enough to connect a NuGet package. But even here, they may have problems. For ordinary users without programming experience, the process becomes more complex. First, you need to install Visual Studio, if it is not already installed. Then download the plugin project, open it in Visual Studio, fix the links, and possibly install additional libraries. After assembling the plugin, you will get a dll file. Next, you need to launch the FastReport .NET designer, go to the settings, add the dll file on the plugins tab, and restart the designer. Despite detailed instructions, errors may occur at any stage, requiring time and effort to resolve them. Install immediately with plugins We have simplified the lives of users by saving them from installing plugins themselves. Now, starting with version 2025.2.5, the WinForms and Web delivery options for FastReport .NET can be installed with all plugins or only with standard connections, as before. If desired, you can install both versions, but this does not make much sense. When installing FastReport .NET WinForms , at the “.NET Setup” stage, you can select the “WinForms” and “WinForms with Plugins” options. Similarly, when installing FastReport .NET WEB , you can select the “Web” and “Web with Plugins” options. When installing the “WinForms with Plugins” and “Web with Plugins” options, you will receive all the necessary files for their operation, including pre-installed plugins for connecting to databases. Shortcuts will appear in the “Start” menu: FastReport Demo New with Plugins,  FastReport Demo with Plugins,  FastReport Designer with Plugins,  FastReport Localizer with Plugins, FastReport Viewer with Plugins. If you select the “WinForms” and “Web” versions, only the basic files will be installed without additional plugins. Shortcuts will appear in the “Start” menu: FastReport Demo New, FastReport Demo, FastReport Designer, FastReport Localizer, and FastReport Viewer. This option was installed by default previously. Conslusion FastReport .NET is a powerful tool for creating report templates that supports many data sources. However, installing additional plugins to connect to various databases and file types can be difficult for users without programming experience. With the release of version 2025.2.5, using the template designer has become much easier. You can focus on creating reports without spending time on technical configuration and connecting plugins separately. If you have any problems using FastReport .NET, please contact our support team . We are always ready to help and provide the necessary solutions.     Tags: .NET, FastReport, Install, Data Source, Designer, Plugin ### How to localize report in FastReport .NET URL: https://www.fast-report.com/blogs/localize-report-fastreport-net One of the non-trivial task that can be given to a developer is the report localization. In other words - creation of multilingual reports. What does it mean? For different languages the same report template is applied. Language header and data can be specified by user or a program. Such reports are in demand in global market companies. Besides that, automation of template translation into different languages will facilitate further support of complex reports and eliminate the need to store templates for each language. Report localization would be easy for programmers using FastReport .NET reporting tool. So, what are the ways to solve this problem? 1. The user application transfers headers or data for the report in the desired language by parameters; 2. All of the fields that need to be localized are added to the database. Each row in the table will contain the data in a particular language. The report uses fields of the table in headers that need to be localized.  All that's left to do is to choose the desired language. Both ways have their advantages and disadvantages. In the first case, with increasing amounts of data that needs to be localizes, the amount of code in the user application is increasing as well. But instead it does not require creating of a separate database or tables in an existing one. Such method is more suitable for a small amount of localized data. In the second case, all the data is stored in the database and not in user application's code. The table from the database is convenient to scale and add new data. But it's necessary to create a separate table, connection to it and a certain amount of code in the report script. Such method is better for large volumes of localized data. Let's look at the two suggested ways in practice: Creating a report. In order to do this, you first need to create a Windows Forms Application application. Now add to the form the component Report from the FastReport .NET tab. 3. Double-click on the added component report1. Close the form of the data source. The report designer is run. 4. Invoice type of report has been selected to demonstrate localization. Here we need to localize all the titles and labels. Customer and product data will be taken from the sample database (nwind.xml), which comes with FastReport .NET. 5. Create the connection to the data nwind.xml. And choose the 4 tables: Orders, Order Detail, Customers, Products. 6. In order to demonstrate the first method of localization, we need to create a number of report parameters. Each header or label in the report should be replaced with the appropriate parameters: As you can see from the figure, all the headers presented by the report parameters. Parameters can be set to the default in case you do not want to pass some of them. For this purpose use the property Expression of the parameter. Text value is given in double quotes. For example, setting pOurCompany default "Fast Reports Inc." 7. For demonstration of the second method, we need a table that contains the same fields as in the report parameters and the data in the three languages. We use, for example, a Microsoft Access database. Field name Data type Id Counter pInvoice Text pOurCompany Text pOurCompanyAddress Text pOurCompanyPhone Text pCustomerId Text pCustomerCompany Text pCustomerName Text pCustomerAddress Text pCustomerPostalCode Text pCustomerPhone Text pCustomerFax Text pCurrency Text pProductName Text pQuantity Text pUnitPrice Text pAmount Text pTotal Text pSignature Text pName Text pDate Text pLang Text pAgree Text And fill the table: 8. Add another data source in the report. Select created in the Access database. 9. Now, in the report script you should assign the values from the Localization table fields to the report parameters. Create StartReport event: ``` private void _StartReport(object sender, EventArgs e) { string lang =(string)Report.GetParameterValue("pLang"); DataSourceBase ds=Report.GetDataSource("Localization"); ds.Init(); while (ds.HasMoreRows) { string val=(string)Report.GetColumnValue("Localization.pLang"); if (val==lang) { Report.SetParameterValue("pInvoice", (string)Report.GetColumnValue("Localization.pInvoice")); Report.SetParameterValue("pOurCompany", (string)Report.GetColumnValue("Localization.pOurCompany")); Report.SetParameterValue("pOurCompanyAddress", (string)Report.GetColumnValue("Localization.pOurCompanyAddress")); Report.SetParameterValue("pOurCompanyPhone", (string)Report.GetColumnValue("Localization.pOurCompanyPhone")); Report.SetParameterValue("pCustomerId", (string)Report.GetColumnValue("Localization.pCustomerId")); Report.SetParameterValue("pCustomerCompany", (string)Report.GetColumnValue("Localization.pCustomerCompany")); Report.SetParameterValue("pCustomerName", (string)Report.GetColumnValue("Localization.pCustomerName")); Report.SetParameterValue("pCustomerAddress", (string)Report.GetColumnValue("Localization.pCustomerAddress")); Report.SetParameterValue("pCustomerPostalCode", (string)Report.GetColumnValue("Localization.pCustomerPostalCode")); Report.SetParameterValue("pCustomerPhone", (string)Report.GetColumnValue("Localization.pCustomerPhone")); Report.SetParameterValue("pCustomerFax", (string)Report.GetColumnValue("Localization.pCustomerFax")); Report.SetParameterValue("pCurrency", (string)Report.GetColumnValue("Localization.pCurrency")); Report.SetParameterValue("pProductName", (string)Report.GetColumnValue("Localization.pProductName")); Report.SetParameterValue("pQuantity", (string)Report.GetColumnValue("Localization.pQuantity")); Report.SetParameterValue("pUnitPrice", (string)Report.GetColumnValue("Localization.pUnitPrice")); Report.SetParameterValue("pAmount", (string)Report.GetColumnValue("Localization.pAmount")); Report.SetParameterValue("pTotal", (string)Report.GetColumnValue("Localization.pTotal")); Report.SetParameterValue("pSignature", (string)Report.GetColumnValue("Localization.pSignature")); Report.SetParameterValue("pName", (string)Report.GetColumnValue("Localization.pName")); Report.SetParameterValue("pDate", (string)Report.GetColumnValue("Localization.pDate")); Report.SetParameterValue("pAgree", (string)Report.GetColumnValue("Localization.pAgree")); } ds.Next(); } } ``` In the first line of code, we get the value of the parameter pLang. Looking ahead, I'll say that this parameter contains the ID of the selected language in the program. Then we get the source Localization of data to find the record for the selected language in the cycle. After that we assign the values from the table to the report parameters. The report is ready. Save it. Create app Add the two switches, drop-down list and a couple of buttons to the form. Add the three languages in the drop-down list: The main application code is invoked when you click Show report: ``` using (Report report = new Report()) { report.Load(Environment.CurrentDirectory + "\\Invoice.frx"); // Here begins the code responsible for the first method of localization if ((radioButton1.Checked) && (LanguagesCmdBox.SelectedIndex == 0)) { report.SetParameterValue("pInvoice", "Invoice"); report.SetParameterValue("pOurCompany", "FastReports Inc"); report.SetParameterValue("pOurCompanyAddress", "US Alexandria VA 22314"); report.SetParameterValue("pOurCompanyPhone", "Phone: 800-985-8986"); report.SetParameterValue("pCustomerId", "Customer Id:"); report.SetParameterValue("pCustomerCompany", "Company:"); report.SetParameterValue("pCustomerName", "Name:"); report.SetParameterValue("pCustomerAddress", "Address:"); report.SetParameterValue("pCustomerPostalCode", "Postal Code: "); report.SetParameterValue("pCustomerPhone", "Phone:"); report.SetParameterValue("pCustomerFax", "Fax:"); report.SetParameterValue("pCurrency", "Currency: $"); report.SetParameterValue("pProductName", "Product Name"); report.SetParameterValue("pQuantity", "Quantity"); report.SetParameterValue("pUnitPrice", "Unit Price"); report.SetParameterValue("pAmount", "Amount"); report.SetParameterValue("pTotal", "Total"); report.SetParameterValue("pSignature", "Signature"); report.SetParameterValue("pName", "Name"); report.SetParameterValue("pDate", "Date"); report.SetParameterValue("pAgree", "I declare that the above information is true and correct to the best of my knowledge"); } if ((radioButton1.Checked) && (LanguagesCmdBox.SelectedIndex == 1)) { report.SetParameterValue("pInvoice", "Rechnung"); report.SetParameterValue("pOurCompany", "Fast Reports Inc"); report.SetParameterValue("pOurCompanyAddress", "US Alexandria VA 22314"); report.SetParameterValue("pOurCompanyPhone", "Telefon: +4930568373928"); report.SetParameterValue("pCustomerId", "Kundennummer:"); report.SetParameterValue("pCustomerCompany", "Unternehmen:"); report.SetParameterValue("pCustomerName", "Name:"); report.SetParameterValue("pCustomerAddress", "Anschrift:"); report.SetParameterValue("pCustomerPostalCode", "Postleitzahl:"); report.SetParameterValue("pCustomerPhone", "Telefon:"); report.SetParameterValue("pCustomerFax", "Faxen:"); report.SetParameterValue("pCurrency", "Währung: eur"); report.SetParameterValue("pProductName", "Produktname"); report.SetParameterValue("pQuantity", "Menge"); report.SetParameterValue("pUnitPrice", "Stückpreis"); report.SetParameterValue("pAmount", "Höhe"); report.SetParameterValue("pTotal", "Gesamt"); report.SetParameterValue("pSignature", "Signatur"); report.SetParameterValue("pName", "Name"); report.SetParameterValue("pDate", "Datum"); report.SetParameterValue("pAgree", "Ich erkläre, dass die oben genannten Informationen wahr und korrekt auf die nach meinem besten Wissen"); } // Here begins the code responsible for the second method of localization if (radioButton2.Checked) { switch (LanguagesCmdBox.SelectedIndex) { case 0: report.SetParameterValue("pLang", "En"); break; case 1: report.SetParameterValue("pLang", "De"); break; } } ```  Let's look at the code in close-up. As you can see, it is divided by a comment on the two blocks - the first method and the second method of localization. Initially, the developed earlier report is loaded. Next, there is a check point on which method of localization is selected. And also there is a check point on which language of localization is selected. Three conventional designs for the three languages. There is assigning values to parameters of the report within each condition. The method SetParametrValue has two parameters: the name of the report parameter and its value. Thus, we fill all the parameters values in the selected language. The second method uses a similar localization conditional constructions. But inside  only one parameter of the report is defined - pLang - selected language. Having this parameter, the report will select necessary record from the localization tables. There is another advantage of this method, which was not mentioned at the beginning. It can be stored database localizations (Localization) within the report to facilitate its subsequent maintenance and exclusion of additional data source. To do this, select the Localization table in the data tree and set property StoreData = True. The table is saved in the report template. In this case it will be possible to skip the setting of one of the bases in the program. However, there is one disadvantage of using a stored database (tables) - if you want to add new fields to a data source you will need to reconnect to the source table. So, we have considered two ways of localization a report in FastReport .Net. Which way is better - it's a developer choice, it depends on the individual case. Next will be the results of the work done - three reports in different languages. In English: And in German: Tags: .NET, FastReport ### How to make a label type report in FastReport .NET URL: https://www.fast-report.com/blogs/make-label-type-report-net In this article, I want to review the label master in FastReport.Net: Labels can be bar codes, business cards, addresses, transport waybills, etc. They can be printed on self-adhesive or plain paper. You can use the built-in FastReport templates of labels or create your own. The label template is a report template with the specified page size and the number of labels on the printed page. For the selected label template, you must specify two sizes - the size of the label and the size of the paper to be printed on. Two more parameters "String" and "Columns" allow you to set the number of labels on the printed page. Here's how it looks like: That is, on paper size 14.81x21.01 can be placed 4 labels with a size of 7.4x10.5. Labels are placed in two lines and in two columns. Now add one more line: We will see a message that the labels do not fit on the page. You either have to reduce the number of lines, or increase the paper size. I think the mechanism of adding labels to the page is clear from this example. Let's go back to the master of labels. We have at our disposal a very impressive database of label templates for various manufacturers: At the bottom of the list, there is a "Custom" item, to select a previously created custom template. Let's choose the manufacturer Formtec: Among the templates available for this manufacturer are Address, Shipping and Business Card. Close the current window. The label wizard has a New button. Click it to create your own template: Having adjusted a template, we press OK and we return to the master of labels. Now, if you select "Custom" in the manufacturers, you will see a list of templates created by us. Choose "Label6" and click Ok. Now the report template is empty. According to the label settings, the report template has two columns with a width of 8.84 cm. Fill the template with data: If you fill the label with data from the database, each data line will generate a new label. Thus the entire page will be filled with labels, according to the template. However, in our case, we filled the data manually, and we get only one label when printing. Let's correct this situation. In the settings of the "Data" band, change the value of the RowCount property to 10. Run the report in the preview mode: Agree, it is very convenient to store the report page templates in the labels. There is no need to save a separate report file with the correct page sizes. Tags: .NET, .NET, FastReport, FastReport ### How to make a PDF document from a text file URL: https://www.fast-report.com/blogs/make-pdf-document-text-file Summary: Today we will talk about the cases when you need to make a PDF document, but there is no Adobe Acrobat on the computer. You only have a text file with original data and FastReport Desktop. Today we will talk about the cases when you need to make a PDF document, but there is no Adobe Acrobat on the computer. You only have a text file with original data and FastReport Desktop. Today we will talk about the cases when you need to make a PDF document, but there is no Adobe Acrobat on the computer. You only have a text file with original data and FastReport Desktop. Today we will talk about the cases when you need to make a PDF document, but there is no Adobe Acrobat on the computer. You only have a text file with original data and FastReport Desktop. To begin with, you need a test file, in which there is a division into paragraphs (carriage return to a new line). Such a data source will allow you to use paragraphs as data strings. Now let's create a report in the designer. Create a new data source: Note the Separator field. By the way, you can enter any character that does not exist in the document, and this will allow you to use carriage return at the end of each paragraph as a separator. Then select the column Field0: In the data window appeared a source with one field: Drag this field to the "Data" band and stretch it to the full width: To fit the entire paragraph text on the band, enable the CanGrow property (can grow) for the added field and for the Data band. You can do this from the context menu: Also, we call the context menu for the band by right clicking on the band header. Add a title: Let's see how the report looks in the preview mode: As you can see, from a regular text file we received a paragraph-broken document. So, half the work is done. It remains only to configure the export of the report to PDF format using FR Desktop. Launch the Configurator tool. Choose the report we created: We mark the option Export as. And choose the PDF format: The next step is to select the folder where our PDF document will be saved. To do this, select the Save to option and select the value of Folder: To select a folder, click the Settings button. Now, save the configuration with the Save button. You can run the configuration file for execution immediately using the Run button, or use it later with the scheduler. Press the Run button: We will check the folder specified in the config. And there is! File created: As we have seen, you can easily create PDF documents from text files using FastReport. Tags: .NET, FastReport, Desktop, CSV, PDF ### How to make a PDF from Delphi / C++Builder / Lazarus URL: https://www.fast-report.com/blogs/export-pdf-delphi-lazarus Summary: Get PDF-document from Delphi or Lazarus application with FastReport - from code and without code. PDF settings. Get PDF-document from Delphi or Lazarus application with FastReport - from code and without code. PDF settings. Get PDF-document from Delphi or Lazarus application with FastReport - from code and without code. PDF settings. Quite often, you need to get a PDF document from a Pascal application - either Delphi or Lazarus. Usually it is recommended to use specialized solutions, PDF converters (such as itext, Synopse PDF Engine, PowerPDF, HotPDF, PDF Creator Pilot, PDFtoolkit VCL, Debenu Quick PDF Library etc.). In this article we will not consider their advantages and disadvantages. Unexpectedly for us, it turned out that even if there is no “PDF” in the product name, the capabilities of FastReport VCL for PDF output in Delphi cover many of the developer’s needs. And many of our customers use ONLY FastReport features to make PDF! So, first of all – you can send any arbitrary complex report to PDF. Let’s try! Create a new VCL application in Delphi Add TfrxReport, TfrxPDFExport and TButton components from the FastReport tab to the form. Double-click on TfrxReport, enter FR Designer. Create a new report (File -> New report). Add TfrxMemoView with the text “Test text” to MasterData1. Set MasterData1.RowCount = 200 (to repeat the line 200 times and generate a 3-4-page report, since our example does not use the dataset), exit the designer and write the OnClick handler for Button1: ``` procedure TForm1.Button1Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} if frxReport1.PrepareReport then frxReport1.ShowPreparedReport; {and show preview window} end; ``` In fact, this code is enough for comprehensive work, generating a report and exporting to PDF. Now create a document of any complexity in Design time (you can connect any data sources and take the information from there) – tables, lists, illustrations, maps, QR codes – for this make sure to add the appropriate components to the project first (otherwise they will not exist in Run time), composite and multi-page documents with anchors, inline links and a table of contents – anything you need and any size – a one-page receipt, a one-page catalog, an annual report of factory staff movements on thousands of pages. And don’t forget to put the PDF export component to our project! Launch and click on the only button on the form. We can see the preview window and the export to PDF button. Go ahead – save a PDF from our Delphi application! Click on the button – call the export from the preview below I’ll show you how to do all this from the code, you can just click on the link – send to PDF from the code ). Immediately we see the resulting PDF settings dialog. As you can see, any professional PDF converter will envy such a set of options! We can choose which pages of our document to send to PDF, which version of PDF to use, compression reduces the size of the resulting file, embedding fonts allows to save the appearance of the document of any third-party device. We can choose if the background will be attached to the PDF document; our PDF can also be optimized for printing (image quality will be better but the size will be larger) or only for on-screen presentation. We can set if the resulting PDF will contain an external table of contents as in the original report (I don’t have it in my example so it is not possible to select it), transparency, compression ratio of bitmap images. By the way, one of the important features of FastReport VCL 6.6 is that vector images will remain a vector form in a PDF file, in other words – lossless, and this will be especially noticeable on 2D barcodes and maps. Another feature – all text, including RTF, will be vectorized when saved to PDF, i.e. the quality will not be lost while retaining the ability to copy a section of text from PDF (unless you prohibit the appropriate option which I will mention below). Save to: where exactly we will send our PDF (local file or e-mail or clouds). Open after export - the resulting file will be opened immediately after export by the PDF viewer assigned by default to the operating system (for example, Adobe Acrobat Reader). You can export the generated document in archive formats such as PDF/A-1a, PDF/A-1b, PDF/A-2a, PDF/A-2b, PDF/A-3a, PDF/A-3b – they are specially designed for keeping documents unchanged in electronic form. For example, fonts, images, third-party objects that are present in a document are automatically embedded in the document in this standard. Quite often one of these standards is used for electronic document management in large organizations. By the way, here you can read a little more about the difference between PDF and PDF/A. The non-archive PDF format also has several versions (and you can choose which one to save). Service information, which will also go to a PDF file: title, author, subject, keywords (you can upload PDF to the web, it will be perfectly indexed), PDF authoring tool, document producer. Security – protecting the document from opening by using a password (using RC4 encryption). The ability to prohibit printing and modifying a document, copying of text and graphics, adding or modifying text notes. Setting up the PDF viewer when you open the document: Hide toolbar, hide menubar, hide window user interface, fit window, center window, print scaling. Usually, when exporting I use the parameters set by default but this time I reviewed all the parameters. So, if we or our users do not need all this visual diversity, then we can immediately send to PDF from Delphi or Lazarus code saving to PDF from Delphi with PDF parameters ``` procedure TForm1.Button1Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported.} frxPDFExport1.PageNumbers := '2-3'; {Set the PDF standard  TPDFStandard = (psNone, psPDFA_1a, psPDFA_1b, psPDFA_2a, psPDFA_2b, psPDFA_3a, psPDFA_3b); It is required to add the frxExportPDFHelpers module to the uses list: uses frxExportPDFHelpers;} frxPDFExport1.PDFStandard := psNone; {You can set the PDF standard version for PDFStandard = psNone TPDFVersion = (pv14, pv15, pv16, pv17); It is required to add the frxExportPDFHelpers module to the uses list: uses frxExportPDFHelpers;} frxPDFExport1.PDFVersion := pv17; {To get smaller file size, you can set the compression} frxPDFExport1.Compressed := True; {Set whether to embed fonts in the resulting document.  Embedding fonts significantly increases the size of the resulting document} frxPDFExport1.EmbeddedFonts := False; {Set whether we need to export the background image} frxPDFExport1.Background := True; {Disable export of objects with optimization for printing. With option enabled images will be high-quality but 9 times larger in volume} frxPDFExport1.PrintOptimized := False; {Set whether the resulting PDF will contain an external table of contents, as in the original report} frxPDFExport1.Outline := False; {Set whether to export images with transparency} frxPDFExport1.Transparency := True; {You can set the desired DPI of images. Enabling this option disables SaveOriginalImages option, which allows you to save images in their original form} frxPDFExport1.PictureDPI := 150; {Set the compression ratio of bitmap images} frxPDFExport1.Quality := 95; {Set whether to open the resulting file after export} frxPDFExport1.OpenAfterExport := False; {Set whether to display export progress   (show which page is currently being exported)} frxPDFExport1.ShowProgress := False; {Set whether to display a dialog box with export filter settings} frxPDFExport1.ShowDialog := False; {Set the name of the resulting file. Please note that if you do not set the file name and disable the export filter dialog box, the file name selection dialog will still be displayed} frxPDFExport1.FileName := 'C:\Output\test.pdf'; {Fill in the corresponding fields of the Information tab} frxPDFExport1.Title := 'Your Title'; frxPDFExport1.Author := 'Your Name'; frxPDFExport1.Subject := 'Your Subject'; frxPDFExport1.Keywords := 'Your Keywords'; frxPDFExport1.Creator := 'Creator Name'; frxPDFExport1.Producer := 'Producer Name'; { Fill in the corresponding fields of the Security tab } frxPDFExport1.UserPassword := 'User Password'; frxPDFExport1.OwnerPassword := 'Owner Password'; frxPDFExport1.ProtectionFlags := [ePrint, eModify, eCopy, eAnnot]; {Set the Viewer settings (Viewer tab)} frxPDFExport1.HideToolbar := False; frxPDFExport1.HideMenubar := False; frxPDFExport1.HideWindowUI := False; frxPDFExport1.FitWindow := False; frxPDFExport1.CenterWindow := False; frxPDFExport1.PrintScaling := False; {Export the report} frxReport1.Export(frxPDFExport1); end;   ```  There you go – use it! Here are considered the functions and recording options from Lazarus and Delphi to PDF FastReport VCL version 6.6. The cost of a license is comparable (and often less) to the monthly salary of a developer, while only the options for setting up and saving to different versions of PDF here are equal to at least work-months of a developer with high qualifications and knowledge of the subtleties of different dialects of PDF. By the way, you can even check the quality of the PDF conversion on our demo reports or some of your own for fun. We constantly check and test them for compliance with PDF standards (there are special validators but at the same time the validation passage does not always guarantee the correspondence of what you see and what will be printed, we have all those individual stories about it). For example, do you know how beautiful illustrations in your PDF will be? Read more here:  Updated export engine in FastReport VCL . Tags: VCL, Export, Lazarus, FastReport, PDF, Delphi ### How to make a repeating band URL: https://www.fast-report.com/blogs/making-repeating-band Summary: Output the same information - for business cards, invoices, invitations, etc. Output the same information - for business cards, invoices, invitations, etc. Output the same information - for business cards, invoices, invitations, etc. Sometimes it is required to display the same information several times in a report. This may be required in reports that will be printed, for example, invoices, business cards, announcements, invitations, and others. This was not a trivial task before. You had to use a report script to “multiply” the band. For example, like this: ``` public class ReportScript { int i = 0; int count = 3; private void PageHeader1_AfterPrint(object sender, EventArgs e) { for (int i = 0; i < count - 1 ; i++) Engine.ShowBand(Data1); } private void Data1_BeforePrint(object sender, EventArgs e) { if (i == count) Data1.Visible = false; } } ```  Here we had to use two event handlers. First, after showing the header band, that is, before showing the Data band, we needed to generate the required number of data bands. Then, before displaying the Data band, check whether the required number of bands has been reached. This option is quite workable, but still requires a report developer to have some programming skills and good knowledge of the generator engine to understand how bands will be displayed on the page. All this imposes restrictions on the developer. From now on, from version 19.3.4, there is a “regular” solution to this issue - the RepeatBandNTimes property for the band. You simply set the desired number of output band instances. As a result, we get the same result as with the script: It's nice that the report generator is becoming more and more convenient and does not burden the report designer with unnecessary work. Tags: .NET, .NET, FastReport, FastReport ### How to make a report based on the FastCube .NET cube URL: https://www.fast-report.com/blogs/make-report-based-fastcube-net Analysts, when dealing with cubes, sometimes need to generate reports, based on slices. When is it necessary? When you need to make regular reports based on cubes. When you need to export a cube to some popular data format, which is not available in the built-in FastCube.Net export. Built-in FastCube export offers us 7 formats: And FastReport .NET report - 24 formats. And additionally saving to cloud services, sending by e-mail and FTP: In this article, I want to talk about such an excellent opportunity as to make a report based on a cube cut. By tradition, we will consider the example. Create a WindowsForms application. Add to the project links to the libraries: FastReport, FastReport.Olap, FastReport.Bars. They can be found in the folder with installed FastCube.Net. Add the following components to the form from the toolbar: Cube, Slice, SliceGrid, Button Let's configure the Slice1 component. For its cube property, we select cube1. For the SliceGrid1 component we need to set the slice-slice1 property. For the button, create the event handler for the click event: ``` private void button1_Click(object sender, EventArgs e) { SliceCubeReportLink SliceLink = new SliceCubeReportLink(); SliceLink.Slice = slice1; cube1.Load("C:/Program Files (x86)/FastReports/FastCube.Net Professional/Demos/Data/Cubes/simple.mdc"); Report FReport = new Report(); FReport.RegisterData(SliceLink, "TestCubeLink"); FReport.Design(); } ```  In the first line of code, we have created a SliceCubeReportLink object, which is responsible for providing the slice data for the report. Next, we assign the slice property a value of slice1 for the created object. That is, we specify where to get the data. Now you need to load the cube file into the cube object. Since we are using a file with the mdc extension, it already contains the data inside and there is no need to create a connection to the data source for the cube. Then we create a Report object, load the report template file into it, register the data source in it, and run the report in the designer. If we do not need to make edits to the report template, then instead of starting the designer, it is better to run the report in the preview mode: ``` FReport.Prepare(); FReport.ShowPrepared(); ```  Let's now look at the report template. After all, we just pass the data from the cube into the report, and we'll have to create the cross-table template manually. That is, you will not be able to generate a report on the fly from any slice. You will always need a pre-prepared template. To create a report template, we need to run the application, and then the report designer. This is the only way we get the data source for the report. Thus, the code for our button in its initial form, we use the designer's call: ``` FReport.Design(); ```  Run the application. And press the report generation button: This will start the report designer with an empty report. Notice the data area on the right: It has a cube data source - TestCubeLink. And now look at the vertical toolbar on the left. Namely icon . This is a CrossView component that will form a crosstab from the cube data source. "Drag" it to the "Data" band. On the right find the CubeSource in the Property inspector In the end, we'll get such report template: We save it to the desired place. In my example it is stored in: C:/Program Files (x86)/FastReports/FastCube.Net Professional/Demos/Data/Cubes/Test.frx. We close the application. Now modify the code for the button: ``` SliceCubeReportLink SliceLink = new SliceCubeReportLink(); SliceLink.Slice = slice1; cube1.Load("С:/Program Files (x86)/FastReports/FastCube.Net Professional/Demos/Data/Cubes/simple.mdc"); Report FReport = new Report(); FReport.Load("С:/Program Files (x86)/FastReports/FastCube.Net Professional/Demos/Data/Cubes/Test.frx"); FReport.RegisterData(SliceLink, "TestCubeLink"); FReport.Prepare(); FReport.ShowPrepared(); ```  Run the application and click the button. And we get a report: From the preview mode of the report, we can export the report, send it by email and so on. This was the simplest example of a report. You can decorate a crosstab using the style property and get a much more attractive appearance: Tags: .NET, .NET, FastCube, FastCube, Report, Report ### How to make a report from C# to FastReport Cloud URL: https://www.fast-report.com/blogs/c-sharp-fastreport-cloud Summary: In this article, we will look at how to create reports in FastReport Cloud using SDK and export them to any convenient format. In this article, we will look at how to create reports in FastReport Cloud using SDK and export them to any convenient format. In this article, we will look at how to create reports in FastReport Cloud using SDK and export them to any convenient format. As we know, our world is constantly evolving, and new technologies emerge almost every day. Nowadays, it is no longer necessary to set up the entire infrastructure in one's office, hire personnel to monitor equipment, and deal with issues that arise with this equipment and other difficulties. Nowadays, more and more services offer business cloud solutions, for example, FastReport Cloud . Our service saves the development team from unnecessary work; you no longer need to think about how to deploy the project, where it would be best and most profitable to rent or buy servers, and what technologies to use for deployment. We have already settled all this, and all you need to do is take advantage of it. How to use FastReport Cloud? In this article, we will look at how to create reports in FastReport Cloud using SDK and export them to any convenient format. First, let's create a project and add the FastReport.Cloud.SDK.Web nuget package to it. Thanks to this package, we will conveniently communicate with FastReport Cloud without an API. We will also need a report template. This example will use Box.frx from our Demo: After creating the project and adding all the necessary dependencies to it, you can move on to analyzing the example. At the very beginning, you need to create an API key in the FastReport Cloud workspace; to do this, follow the link https://fastreport.cloud . Click on the tab with API keys and create a new one. If the key already exists, then you can copy it by right-clicking on it and selecting an action from the drop-down list. After receiving the API key, we return to our application. We write the key into a separate variable as in the example below: ``` private const string ApiKey = "your API key"; ``` Next, we need to create the main objects that we will use in the program: ``` var httpClient = new HttpClient(); httpClient.BaseAddress = new Uri("https://fastreport.cloud"); httpClient.DefaultRequestHeaders.Authorization = new FastReportCloudApiKeyHeader(ApiKey); var subscriptions = new SubscriptionsClient(httpClient); var rpClientTemplates = new TemplatesClient(httpClient); var rpClientExports = new ExportsClient(httpClient); var downloadClient = new DownloadClient(httpClient); var subscription = (await subscriptions.GetSubscriptionsAsync(0, 10)).Subscriptions.First(); var templateFolder = subscription.TemplatesFolder.FolderId; var exportFolder = subscription.ExportsFolder.FolderId; ``` After this, we move on to the stage of creating a report for the cloud. You can do it like this: ``` TemplateCreateVM templateCreateVM = new TemplateCreateVM() { Name = "box.frx", Content = Convert.FromBase64String(TestData.BoxReport) //we send the frx file in byte format }; ``` In the example above, we already have a report in byte format. If you have a file in frx format, then you can use this example: ``` TemplateCreateVM templateCreateVM = new TemplateCreateVM() { Name = "box.frx", Content = File.ReadAllBytes("path to report") //we send the frx file in byte format to the path }; ``` We upload the TemplateCreateVM object along with the report into our FastReport.Cloud workspace: ``` TemplateVM uploadedFile = await rpClientTemplates.UploadFileAsync(templateFolder, templateCreateVM); ``` Now we export the report to the format we need. First, you need to decide on the format and name of the future file. ``` ExportTemplateVM export = new ExportTemplateVM() { FileName = "box", Format = ExportFormat.Pdf //format to be exported }; ``` We export to PDF format: ``` ExportVM exportedFile = await rpClientTemplates.ExportAsync(uploadedFile.Id, export) as ExportVM; string fileId = exportedFile.Id; int attempts = 3; exportedFile = rpClientExports.GetFile(fileId); while (exportedFile.Status != FileStatus.Success && attempts >= 0) { await Task.Delay(1000); exportedFile = rpClientExports.GetFile(fileId); attempts--; } ``` We finished the main part of the work with the report. We received a pdf file from our report: If you want to download the file manually, then go to your workspace and download it as in the following example:  You can also download the file with the SDK using this example: ``` using (var file = await downloadClient.GetExportAsync(fileId)) { using (var pdf = File.Open("report.pdf", FileMode.Create)) { file.Stream.CopyTo(pdf); } } ``` Now you know how to create, export, and download files in FastReport Cloud using the SDK. You can find the example from this article at this link: https://github.com/FastReports/FastReport-Cloud . Tags: FastReport, Cloud, C#, Report, NuGet ### How to make a report like Drill-Down URL: https://www.fast-report.com/blogs/drill-down-alike Summary: Data analysis requires reports with a drop-down list. Using data grouping, but with the ability to hide or display data by mouse click. This is not only very convenient, but also beautiful. Data analysis requires reports with a drop-down list. Using data grouping, but with the ability to hide or display data by mouse click. This is not only very convenient, but also beautiful. Data analysis requires reports with a drop-down list. Using data grouping, but with the ability to hide or display data by mouse click. This is not only very convenient, but also beautiful. Reports with grouping are necessary for data analysis. But when there are a lot of data and there is no need to display them all, a regular report with grouping becomes cumbersome and redundant. You want to find a universal solution for such cases. And there is one. A report with a drop-down list is essentially a report with grouping data, but with the ability to hide or display data in a group by mouse click. It is not only very convenient, but also beautiful. After all, the report becomes an interactive object. The user is pleased when he can participate in the display of information. Consider an example of how to make such a report. First of all, as in the Master-Detail report, we need a data source with linked tables. Suppose we have two tables: customer and orders. One customer can do many orders - one-to-many relationship. Let's add it. Click the Actions button and select New Relation from the drop-down list ... Parent table is main one, then choose ‘custome’r. Child table is respectively ‘orders’. In ‘customer’ there is a primary key CustNo. Choose it among the columns. In ‘orders’ there is a foreign key CustNo. Also choose it. As a result, we get the connection: Now let's start creating the report template. Add a band "group header". On it we will place the fields from the link: “orders.customer.Company”, “orders.customer.Addr1”, “orders.customer.Phone”, “orders.customer.Contact”. In addition to these fields, let's add a checkbox control to this band. In its CheckedSymbol property, select Plus, and in UncheckedSymbol - Minus. Add the fields from the ‘orders’ table: OrderNo, SaleDate, PaymentMethod, AmountPaid to the “Data” band. Also, add a header band for the data and field headers: Double-click on the group title “Headline”. Select the field to group: Now select the checkbox that we added earlier. Give it a Hyperlink property: Select the "Group Header" band and create a BeforePrint event handler for it: ``` private void GroupHeader1_BeforePrint(object sender, EventArgs e) { string groupName = (String)Report.GetColumnValue("orders.customer.Company"); // get the group name bool groupVisible = expandedGroups.Contains(groupName); // Check group visibility DataHeader1.Visible = groupVisible; Data1.Visible = groupVisible;// Set the visibility of data in accordance with the visibility of the group GroupFooter1.Visible = groupVisible;// Set the visibility of the basement of the group in accordance with the visibility of the group CheckBox1.Checked = !groupVisible;// Set the state of the flag depending on the visibility of the group } ```  Also add to the class a list of expanded groups: ``` private List expandedGroups = new List(); ```  Let's return to our checkbox. For it, create a Click event handler: ``` private void CheckBox1_Click(object sender, EventArgs e) { string groupName = (sender as CheckBoxObject).Hyperlink.Value; // We get the name of the group from the hyperlink if (expandedGroups.Contains(groupName)) // If the list of visible groups contains the selected group expandedGroups.Remove(groupName); // Then remove the selected from the list of visible groups. else expandedGroups.Add(groupName); // Otherwise add the group to the list of visible Report.Refresh(); // Update Report } ```  Run the report in preview mode: Now click on any plus sign: When you click on the minus sign group collapses. Agree, this is very convenient. Tags: .NET, .NET, FastReport, FastReport ### How to make a report like Master-Detail URL: https://www.fast-report.com/blogs/master-detail-alike Summary: The essence of a Master-Detail report is a one-to-many relationship between data entities. That is, one record in the main table corresponds to several in the subordinate table.The essence of a Master-Detail report is a one-to-many relationship between data entities. That is, one record in the main table corresponds to several in the subordinate table. The essence of a Master-Detail report is a one-to-many relationship between data entities. That is, one record in the main table corresponds to several in the subordinate table.The essence of a Master-Detail report is a one-to-many relationship between data entities. That is, one record in the main table corresponds to several in the subordinate table. The essence of a Master-Detail report is a one-to-many relationship between data entities. That is, one record in the main table corresponds to several in the subordinate table. The variety of electronic documentation sometimes seems to be limitless. However, in practice, not many types of documents are commonly used. In electronic reporting, the most common type of document is a simple list. Then, there go complex lists. There can be many variations of complex lists, but the main one is a report of the type “Main” - “subordinate”. The essence of this type is that there is a dependency between data entities in a one-to-many scheme. That is, one record in the main table can correspond to several records in the subordinate. In practice, it looks like this: Entries from the main table contain the name of the categories, their brief description and picture. Each category contains specific products. This example shows only one dependency “Main” - “subordinate”. But the subordinate table can also have its subordinate table, and then it will already be the main one for the second connection. Such hierarchical dependencies can be arbitrarily many. And now in practice, let’s consider how to create such a report. First of all, we need a data source in which there will be two logically related tables, as in the example shown above. Add a data source to the report. In our case there will be two related tables: customer and orders. In the “Data” window it looks like this: Now we need to link these tables. To do this, click the Actions button in the data window. A drop-down list will open: You need to select the item “New Relation”. In the relation edit form, we need to define the main and subordinate table, as well as the field by which they should be linked: The main table is ‘customer’, its primary key is CustNo. The subordinate table is ‘orders1’, its foreign key CustNo. After successfully creating the connection, we will see it in the data window: As you can see, a link to customer appeared in the orders1 table. If you open it, we will see all the same fields that are in the customer table. We have prepared the data, now you need to create a report template. By default, a single band Data is available in a blank report. Let's add some fields from the customer table: customer.Company, customer.Addr1, customer.Phone, customer.Contact. We will place these fields so that we get a certain company card: Right click on the band header ‘Data’: And select the item “Add detailed data band”. Click on the Configure bands ... link: And add a header band for the Data2 band. To do this, select the Data2 band with the mouse and click the Add button. In the drop-down list, select Header. After that, you can add fields from the orders1 table to the detailed “Data” band: orders1.OrderNo, orders1.SaleDate, orders1.AmountPaid. At the same time column headings will be added automatically. Format the headers, and our template is almost ready: Double-click on the header of the “Data” band: We select the customer table as a data source. Now let's do the same for the detailed “Data” band: Now our report is ready to run. Let's see what we got: Tags: .NET, .NET, FastReport, FastReport ### How to make a simple FastCube .NET cube editor URL: https://www.fast-report.com/blogs/make-simple-net-cube To view and edit cubes and slices from FastCube .NET, you need a special application that you need first create. Since FastCube .NET comes in the form of a library and components, we can easily embed the cubes editor into your existing WinForms application, or create a separate one, specially for it. In this article, we'll look at the way how to create a simple cubes and slices editor in two ways: using controls or from program code. 1)      The first way - visual controls Create a Windows Form Application. We add a tabControl component with three tabs: Slice, Cube and Chart. As you could already guess, on the first tab we will display the slice of the OLAP cube, on the second one - the data from the cube, on the third - the diagram on the slice. It is necessary to connect libraries to the project: FastReport.Olap and FastReport.Bars. In the Toolbox, we have a set of controls for the FastCube: Drag the Cube control to our form. We have 4 types of data source for the cube in the DataSource property: DataSource - data from the database; File - data from the cube file; Stream - data from the stream; Manual - manual filling. In our example, we use the cube file containing the data (File Type). You can download the cube file from the application code. For example, in the OnLoad event: cube1.Load("C:/Program Files (x86)/FastReports/FastCube.Net Professional/Demos/Data/Cubes/2_0_sample_en1.mdc"); Now add the Slice component to the form. In its properties we only need to choose a cube: Now, you need to display the cube and slice. On the Slice tab, place the SliceGrid control. All we need is to set the Slice property for it. Choose the value of slice1. Add the CubeGrid control to the Cube tab. In its Cube property choose cube1. On the third tab - Chart - we add the Chart control: In the properties of the added control, find Slice and select the value of slice1. If we run the application right now, we'll see the loaded cube, the slice and the diagram, but we will not be able to load another cube, or save the changes in the current one. You need to add toolbars for each component: SliceGrid, CubeGrid, and Chart. To do this, drag the following components onto the form from the toolbox: SliceGridToolbar, CubeGridToolbar, ChartToolbar. The components will appear below the form: In the chartToolbar properties, find Chart and select the value chart1. For cubeGridToolbar, set the Grid property to cubeGrid1. In the sliceGridToolbar properties for the Grid field select sliceGrid1. Now we need to bind these toolbars to the corresponding tabs. Add three lines of code to the load event of the OnLoad form: sliceGridToolbar1.Parent = tabPage1; cubeGridToolbar1.Parent = tabPage2; chartToolbar1.Parent = tabPage3; Now let’s run the application: SliceGridToolbar is located at the top. A slice is a sample of data from a cube for specified dimensions and measures. Here all the data from the cube are displayed. The graph is based on the data from the slice. There is also a toolbar. 2)      The second way is in the code of the program  All that we added to the form with the mouse, you can manually write in the application code. In the reference, add the following libraries: FastReport.Olap, FastReport.Bars, System.Windows.Forms.DataVisualization; On the form, add a TabControl control with three tabs. Open the form code. In the using section, we need libraries: ``` using System; using System.Windows.Forms; using FastReport.Olap.Controls; using FastReport.Olap.Chart; ```  We place all the code for creating and configuring components, for example, in the class constructor: ``` public Form1() { InitializeComponent();     FastReport.Olap.Cube.Cube cube = new FastReport.Olap.Cube.Cube(); FastReport.Olap.Slice.Slice slice1 = new FastReport.Olap.Slice.Slice(); slice1.Cube = cube;     SliceGrid sliceGrid = new SliceGrid(); sliceGrid.Dock = DockStyle.Fill; sliceGrid.Parent = tabPage1; sliceGrid.Slice = slice1;     SliceGridToolbar sliceGridToolbar = new SliceGridToolbar(); sliceGridToolbar.Dock = DockStyle.Top; sliceGridToolbar.Parent = tabPage1; sliceGridToolbar.Grid = sliceGrid;     CubeGrid cubeGrid = new CubeGrid(); cubeGrid.Dock = DockStyle.Fill; cubeGrid.Parent = tabPage2; cubeGrid.Cube = cube;     CubeGridToolbar cubeGridToolbar = new CubeGridToolbar(); cubeGridToolbar.Dock = DockStyle.Top; cubeGridToolbar.Parent = tabPage2; cubeGridToolbar.Grid = cubeGrid;     Chart chart = new Chart(); chart.Dock = DockStyle.Fill; chart.Parent = tabPage3; chart.Slice = slice1;     ChartToolbar chartToolbar = new ChartToolbar(); chartToolbar.Dock = DockStyle.Top; chartToolbar.Parent = tabPage3; chartToolbar.Chart = chart;     cube.Load("J:\\Program Files (x86)\\FastReports\\FastCube.Net Professional\\Demos\\Data\\Cubes\\2_0_sample_en1.mdc"); } ```  That's all. The application is ready. Drag and drop controls with the mouse, or create them in the code –  you choice. Tags: .NET, .NET, FastCube, FastCube ### How to make a simplified web designer for reports URL: https://www.fast-report.com/blogs/simple-web-report-designer Summary: The article describes how you can make the web report designer easier, remove unnecessary functionality. The article describes how you can make the web report designer easier, remove unnecessary functionality. The article describes how you can make the web report designer easier, remove unnecessary functionality. Report designer has a lot of useful features. This is a complete development environment with many options, a full study of which will require a lot of time. But what if you need to develop simple reports, or do not need to be developed, but only edit existing ones. Then the complex interface and report designer redundant only interfere with work. The optimal solution would be to leave only the necessary functionality for the user's needs. The problem of simplifying the web report designer announced one of Stimulsoft Reports Generator users: https://forum.stimulsoft.com/viewtopic.php?f=8&t=56115 We want to integrate decent feature of Stimulsoft Reports - the Designer into our application for end-users. As you know, in the Designer, user can create report online\web. By this oportunity i would to thank you for this feature. The issue that was raised during the testing, it is bit complicated for not "IT guys", and, therefore, is there a "light" version of this for typical "manager assistants" with simpler interface ? He hope for yes but if no, can you please inform how can we do make the current version of the Designer more basic\simpler by ourselves (please provide docs\links if available)? The developers offered to edit the designer's source codes to address this issue. This option will not suit everyone. I would like to be able to customize the designer, as it is done in FastReport Online Designer. Let's see how this is implemented. FastReport.Net web report designer has great potential display settings, composition and functionality. And although you cannot add your own designer functionality without editing the source code, but to hide or customize the display of the current, you can easily. In order to download the Web designer from the developer’s website, firstly you need to configure it in special wizard: https://dsg2014.fast-report.com:3000/#/builder/themes . Online designer Configuration Wizard offers us the following configuration steps: design theme; configuration; Components; bands; dialog controls; settings and plug-ins. Theme It implies not only a difference in the colour scheme, but also in displaying the menu and toolbars. There are three themes: none, classic and mini. The first has a simplified design, no menu panel and toolbars. The second is the most complete theme, including all menus and toolbars. The third is the most ascetic, minimum of possibilities. Configuration This section allows you to turn on/disable various features, such as: adding bands, changing band sizes, displaying preview buttons, and more. You can limit your users with band settings so that they don't break the template when editing reports. In the same section, we have a choice of the type of designer by the place of its application: for conventional ASP .Net projects, for projects ASP.Net Core and arbitrary application. This item is very important for the health of the online designer in your project. Components At this point of configuration of components, you are suggested to choose only needed ones: These components will be available while creating the report: Bands In addition to the various components, the report also consists of bands that are containers for the placement of these components. At this point, you can limit the available bands. For example, if you're supposed to create simple list reports, only headline bands, data bands, and possibly page footage are enough. Dialogue controls We've already set up a list of available controls for the report pages. These are the controls for dialogue forms. Dialogue forms are called before a report is built and in them you can determine the value of the variables or set data filtering criteria. Settings and plugins This can be considered the last step of the configuration. Here you can disable some of the main, in my opinion, functionality to create a report: data work, properties and events of reporting objects, preview. Some of the designer's features are implemented as additional modules - plug-ins. These plug-ins can both enhance functionality and simply enhance the convenience of reporting. For example, a code plug-in includes a report script, and guides allow you to include guide lines to align objects on the report page. By disabling unnecessary components and features, you can reclaim the designer's reporting interface, as well as reduce its size, which is important for web projects. Now, let's see what the report designer will look like for each of the three design themes you need to choose in the first step of the configurator. So, a report designer with a None design type: There are no menus and toolbars. The most simple design, which allows only edit existing reports. Classic design template most comprehensive. It includes all the menus and toolbars, and very similar to the classic report designer for desktop versions of FastReport. And the Mini design template: This template is best used with additional controls that you can embed into the web page. Fortunately, the report designer provides the ability to manage from the outside. As you can see, setting up web designer reports is very simple. When you create your designer build, you have to go through all the steps of his configuration. So, in any case, you will think about the composition of your Online Designer. Tags: .NET, .NET, FastReport, FastReport ### How to make a Swiss QR code bill in Delphi or Lazarus URL: https://www.fast-report.com/blogs/swiss-qr-in-delphi-lazarus Summary: What is Swiss Code and how to create a European standard payment document in VCL application What is Swiss Code and how to create a European standard payment document in VCL application What is Swiss Code and how to create a European standard payment document in VCL application Lately many countries have been digitizing payment processes. In other words, they convert existing payments to digital format. The most common way to automate payments is to use QR codes that are easily read by smartphones. The ability to encode a sufficiently large amount of information, high damage resistance, no need in special equipment to read – these are the main advantages of the QR code that made it popular all over the world. Swiss authorities also decided to use QR codes to secure electronic payments. This means that all payment receipts and bills will have these codes. In this regard, Swiss QR code support appeared in the FastReport and although Swiss QR is just a kind of QR code, it is used in a specific form of Swiss bill. It is quite simple and contains information about: payee, payer, invoice, payment link and amount. Let’s add a Swiss QR code to the report template. Here we added a regular QR code. To turn it into a Swiss QR, click on it and select TfrxSwissPaymentPreset for the ExpressionPreset.PresetClass property in the object inspector. The QR code has changed and a Swiss cross appeared in its center. After that, the Swiss QR code building parameters will become available in ExpressionPreset.DataObject. Let’s consider the parameters in more detail: Additional Information The invoice issuer may enter any additional structured/unstructured information for the payer. Alternative Schemes It is expected that in the future invoices may offer other alternative procedures in addition to bank transfers. There are two fields for this in Swiss QR. Creditor Fill in the data of the invoice issuer. Name of organization and address. Creditor Information Iban In Switzerland, the IBAN (International Bank Account Number) standard is used to represent a bank account number. From the name it is clear that this standard is international and it is registered in ISO with number 13616. Payment Amount Info Amount Here you need to specify the payment amount. Currency Since this is the Swiss payments system, you can choose between two types of currencies: EUR and Swiss francs (CHF). Payment Reference Link to the payment needed by payee. Type: frRT_QRR - QR link: Swiss standard link 26 characters long (numbers only); frRT_SCOR - Lender Link: international standard from 5 to 25 characters long; frRT_NON - the link may be empty. Ultimate Creditor Information about the invoice issuer (for additional information only, if used in the future) Ultimate Debitor Here you need to fill in the payer information: full name or name of organization and address. Next, fill in the parameter values. They are expressions, so you can either drag and drop fields from the data tree (this feature was added in FR VCL 6.7), or enter fixed data. Note that fixed string parameters must be enclosed in quotation marks (single quotes in Pascal Script). Turn off text display below the code in the properties of the Barcode object – ShowText = false. If all the data is filled in correctly, then no warning messages will follow and the QR code in the preview window will change. Now you can easily create a Swiss QR bill in FastReport and this is another reason for upgrading or updating to FR VCL 6.7. Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, Barcode, Barcode, Delphi, Delphi, QR Code, QR Code ### How to make a web report authentication URL: https://www.fast-report.com/blogs/web-report-authentification Summary: Every time we generate a web report, ajax request leads to the execution of handlers: WebResource.axd and FastReport.Export.axd. Files with the axd extension are used in ASP .NET applications to get resources from dll libraries: images, javascript and styles. Every time we generate a web report, ajax request leads to the execution of handlers: WebResource.axd and FastReport.Export.axd. Files with the axd extension are used in ASP .NET applications to get resources from dll libraries: images, javascript and styles. Every time we generate a web report, ajax request leads to the execution of handlers: WebResource.axd and FastReport.Export.axd. Files with the axd extension are used in ASP .NET applications to get resources from dll libraries: images, javascript and styles. Every time we generate a web report, ajax request leads to the execution of handlers: WebResource.axd and FastReport.Export.axd. Files with the axd extension are used in ASP .NET applications to get resources from dll libraries: images, javascript and styles. As a result, we get an HTML report file. But, since the report is generated and located in the IIS cache, then, knowing the generated report ID (which is generated upon request), a malefactor can easily get it. And this is a potential security issue if the report contains confidential data. The way out of this situation can be user authentication. That is, if the report is called by a specific user, then only he can get a copy of it. We could check the http request for user authentication, but this is not a way out. A malefactor can always spoof a request. The best solution would be session authentication. Until recently, FastReport.Net did not provide such functionality. But in version 2019.3.13 there appeared an event for ajax authentication of report resources loaded via asp handler in WebReport. The WebReport.CustomAuth event is executed before the report is displayed. At this point, you can check the user in the session. Here is an example of using a new event: ``` public ActionResult Index() { Session["User"] = "Father Brown"; ... webReport.CustomAuth += WebReport_CustomAuth; ... } ... private void WebReport_CustomAuth(object sender, CustomAuthEventArgs e) { e.AuthPassed = (e.Context.Session["User"] as string) == "Father Brown"; } ... ```  As you can see, first, before creating the report, we set the username in the Http session, subscribe to the event. In the event handler, we perform a user check. If the report is requested by another user, then his name in the session will be different and the report will not be displayed. This example shows user authentication, but you can implement your own version. Thus, we can significantly improve data security by implementing report authentication. Tags: FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC, Core, Core ### How to make an interactive chart in FastReport VCL 5 URL: https://www.fast-report.com/blogs/interactive-chart-fastreport-5 In this article we are going to examine one of the latest features of FastReport VCL 5 - interactive diagrams. With the help of them one can display a detailed report for the selected area of a graph. How it works First, you create a chart. For example, a circular one: The chart is divided into sections, showing the proportion of parameters of the total mass. When you hover the mouse pointer over one of the sections, it is highlighted with a color. When you right-click on it, a hyperlink to the detail report is triggered. In this case, the value of the parameter (a section name) is transferred to this report. The detail report shows detailed information for the selected section: How to create it The implementation of such interactivity is rather simple. You need to create a report with a chart and a detail report. Then, configure a hyperlink from the first report to the second one. Now create an empty report with any band. 1. First of all, we need some data for the diagram. Therefore, we go to the Data tab. There we add a connection to the ADO Database. Then, we use demo.mdb, a demo database from FR VCL delivery. Next, it is necessary to add the ADO Query component. Double-click on the query editor to open the database. After this, we write the following request: ``` SELECT c.Continent, SUM(c.Area) AS Area FROM country c GROUP BY c.Continent ```  2. Go back to the report page. Place the Chart object on the band. Double-click on it and open the editor. Add a new series. Let us choose a type of the series - "Horizontal bar". Then we specify the data source. On the Y axis, we display the Area field. In the capacity of the Label, use the Continent field. 3. Now we need to create a detail report. 4. Go to the Data tab. Add a connection to the same database and the ADO Table component. Choose a name of the table - "country". 5. Using a variable editor, add FilterVariable, where we will pass the name of the continent, and where we will filter the table. 6. Place the variable to the report header. Then put the fields on the MasterData band: Name, Capital and Population: 7. Double-click on the data band. Open the editor. In the "Filter" field enter the expression: = Save the report as "Detail". 8. Go back to the report with the diagram. Click on our diagram. In the property inspector we are interested in a hyperlink. Expand it: Here it is important to pay attention to the View property. In the drop-down list you can choose one of the following values for it: For the present example with the interactive diagram, the options are DetailPage and DetailReport . As you understand, you can place a detailed report either on the other page of the current report or in a separate report. Since we chose the second option, the DetailPage property remains empty. For DetailReport we specified the path to the detail report file. This can be either an absolute path or a relative path (relative to the application's working directory). The Expression property also is not useful for us. You can specify a value for a hyperlink and other types of hyperlinks in it. Since we transfer the selected value from the chart to the detail report, we specify the variable name in the ReportVariable field. In the TabCaption property, we can specify the name of the tab, where the drillthrough report opens. The Value field allows you to set the default values. Then it will be assigned a real value from the diagram. ValuesSeparator specifies a delimiter if multiple parameter values are passed. 9. To complete the example, just add the OnPreviewClick event handler for the Chart object. We write the following code in it: ``` if TfrxChartView (Sender) .ClickedVal1 <> '' then TfrxChartView (Sender) .Hyperlink.Value: = '' '' + TfrxChartView (Sender) .ClickedVal1 + '' '' ```  From the code it is clear that if any value was selected, it will be written to the Value property. Now you can run the report and enjoy your work: Choose "South America". Then get a detailed report with information of the number of people by country: If you need to change the color of the selection of the chart element when hovering - use the HighlightColor property of the Chart object. Summing up, we can conclude that the fifth version of FastReport VCL allows to select individual chart elements and get their meanings. Also, the functionality of hyperlinks has expanded significantly comparing to a single URL. Thanks to these changes, one can easily make reports compact and attractive by hiding detailed information.  Tags: VCL, VCL, FastReport, FastReport ### How to make an interactive report with a detailed page in FastReport VCL 5 URL: https://www.fast-report.com/blogs/interactive-report-detailed-page-vcl There have been many innovations in FastReport VCL 5 recently. One of them is new hyperlink options. Now a hyperlink can point on the other report or a report page. Due to this option, we can make interactive reports. An example of such a report with hyperlinks detailing the report is shown in the article "How to make an interactive chart in FastReport VCL5». This time we will consider another option - a hyperlink to the detailing page. Here we go! Create a simple report with a list of customers. 1) On the Data tab, add the ADO database component. By double-clicking on the added object, open the connection editor. We configure the connection to the demo.mdb database from the delivery. Data Provider - Microsoft Jet OLEDB 4.0 Provider. The database file is located in the folder C: \ Program Files (x86) \ FastReport 5 VCL Enterprise \ Demos \ Main \ demo.mdb. Now place the ADO Query component. In its SQL property, enter the query: ``` SELECT * FROM customer a, orders b, items c, parts d WHERE a.custno = b.custno AND b.orderno = c.orderno AND c.partno = d.partno ORDER BY a.company, b.orderno ```  2) Go to Page1 (a report page). In addition to already existing bands Report Title and MasterData, we need a GroupHeader. Add it. In this case  you will be asked to configure the grouping. Select the CustNo field: From the data source, drag the following fields to the "Group header" band: Company, Phone, Fax. Below we have the MasterData band. Double click on it and select an available data source: We will not display data in this band. We use it only for a data source for grouping. We set the band's Visible property to false. Here you are what happens next: 3) Now start creating a detail page, where we will display detailed information for the group, selected on the first page. For this, add one more page to the report, using the icon  in the top toolbar. The page is empty. Add the following bands to it: GroupHeader, one more GroupHeader, MasterData, GroupFooter. For the first group header, select the grouping field - CustNo. For the second one – OrderNo. For the MasterData band, select an available data source. We will place the following fields: Company, Phone and Fax on the first band GroupHeader . As you might have noticed, this grouping matches with the grouping on the first page of the report. Now change the background color and add the titles. On the second band "GroupHeader" we place the fields: OrderNo and SaleDate. In the same band, display the headings for the fields in the MasterData band: Part, Description, Price, Qty, Total. Finally, we place the fields on the MasterData band: PartNo, Description, ListPrice, Qty. And for Total, we add the following expression: [ * ] Now the MasterData band looks like this:  In the GroupFooter band add a text field and enter the following expression: Total: [Sum ( * )] As you understand, this is the sum of all results. The overall result is: 4)      You need to create the SelectedValue variable in the report. We will save the name of the selected company on the first page in it. Then we will filter the data on the second page: 5) Double-click the MasterData band. In the Filter field, enter the expression: = 6) Let us move to the first page. We need the Company field in the MasterData band. Select it. In the Property inspector, find a Hyperlink and expand it. Since a detailed report is on the second page, in the DetailPage property, we write Page2. In the Expression property, we specify an expression to be passed to the report variable. Next, we set the type of the hyperlink in the Kind property. The value of hkDetailPage. Then, we enter the name of the SelectedValue report variable in the ReportVariable property. Now run the report: Choose a name of a company: This way we get a detailed report. Now we can conclude, that instead of the second page in your report, you can use a separate report. But if you do not like individual files and think, that a report should be self-sufficient, then an option with detailing page is for you. Tags: .NET, .NET, VCL, VCL, FastReport, FastReport, Interactivity, Interactivity, Report, Report ### How to make an interactive report with toggle sorting URL: https://www.fast-report.com/blogs/interactive-toggle-sorting Summary: Steb-by-step tutorial on creating an interactive report where the order of data sorting can be changed after querying Steb-by-step tutorial on creating an interactive report where the order of data sorting can be changed after querying Steb-by-step tutorial on creating an interactive report where the order of data sorting can be changed after querying Occasionally, our users face the task of making an interactive report. It may be a report where the order of data sorting can be changed after querying. Today, we will consider the process of creating such a report. Let us assume that we have a ready file with configured sorting. As an example, we will take a Simple List report from the FastReport .NET demo application. The report has a configured sorting: First, the bands are sorted by name, then by surname. Sorting is carried out in the ascending order, that is, from A to Я in the case of the Cyrillic font, or from A to Z in the case of the Roman one. Now we add interactivity to our report. Select a text object – a title, for example, and add an event handler Click. Thus, after clicking on the object, the preview shows the function, which we will configure. Also, we change the Cursor property to Hand, so that the cursor changes into a hand when pointing at an object. Thus it becomes apparent that the object is clickable. Let us see how sorting works in FastReport so that we are able to write the function code. Data sorting is stored as a collection of values. There are several options to implement sort changing, but all of them are reduced to modifying this collection. If we look at sorting in the code, we will see a list of methods and properties. We will work with the properties Descending and Expression. The Expression property coincides with the “Sort by…” field in the designer, while the Descending property coincides with the “ascending/descending order” toggle. Note that only three sorting rules can be configured from the designer, while an unlimited number of them can be added from the code. Accordingly, the designer does not support more than three rules. When opening the band properties with four saved rules, the first three of them will be shown, and only they will be saved after changing. The order of sorting rules begins with the rule with the index 0; then the rule with the index 1 is applied, and so on. In our case, the Sort collection has two values: 1) Expression = [Employees.FirstName], Descending = false 2) Expression = [Employees.LastName], Descending = false Now, we start writing the code. We add the “sorting” variable, which will set the order of sorting: ``` bool sorting = false; ``` To change the order of sorting, one has to change the Descending property. We will change it for the zero element of the Sort collection, then the Sorting is inverted and the report is updated: ``` private void Text1_Click(object sender, EventArgs e) { Data1.Sort[0].Descending = sorting; sorting = !sorting; Report.Refresh(); } ``` If we launch the report and click the title – “EMPLOYEES” – we will see the following: As you can see, sorting was inverted; the final records are now in the first positions. It is worth noting that the Sort collection can be not only modified, but also its elements can be added or removed. For example, the sort change can be done in a different way: ``` private void Text1_Click(object sender, EventArgs e) { Data1.Clear(); Data1.Sort.Add(new Sort("[Employees.FirstName]", false)); Data1.Sort.Add(new Sort("[Employees.LastName]", sorting)); sorting = !sorting; Report.Refresh(); } ``` In this code, we clear the collection and add two new sorting rules into it, one of them with a changeable property. Thus, we have examined how sorting can be changed from the script. Besides changing the sorting by a click, you may use the above functions in combination with others. For example, you may change a band sorting by clicking a button in a dialogue tab, making an interactive list of fields of a data source, or change sorting depending on any other value. Tags: .NET, .NET, FastReport, FastReport, Interactivity, Interactivity, Filtering, Filtering ### How to make auto creation of aliases for database field URL: https://www.fast-report.com/blogs/automatic-creation-aliases-database-fields Summary: Let's take a closer look at how to Automatically Create Aliases for Database Fields in FastReport works. Find more usefull tips and acticles in our blog. Let's take a closer look at how to Automatically Create Aliases for Database Fields in FastReport works. Find more usefull tips and acticles in our blog. Let's take a closer look at how to Automatically Create Aliases for Database Fields in FastReport works. Find more usefull tips and acticles in our blog. Sometimes with some data sources we have to create aliases for the table fields. This happens when the field names are not understood intuitively or their native language is not used in their naming. For the convenience of working with such a database, FastReport .NET allows you to create aliases. But it is inconvenient to create them manually since every time you have to create a new report. So I'll show you how to create aliases in the code. This allows you to use this data source in multiple reports. To demonstrate it, I'll create an application with German localization. That is, the interface and the field names are in German. Keep in mind that data source with aliases should be accessible when you create a report using the File-> New menu. In order to do this, we need listen for the event of selection menu New item. Let's use a Windows Forms application. Add two buttons to the form. The first button launches the designer with a blank report. Second - opens a demo account in the designer. Add the libraries: ``` using FastReport; using FastReport.Utils; using FastReport.Data; using FastReport.Design; using FastReport.Wizards; using System.IO; ```  First of all, create a procedure for registering a data source for the report: ``` private void RegisterData(Report report) { // cteate any DataSet DataSet dataSet = new DataSet(); dataSet.ReadXml(Path.Combine(appPath, "nwind.xml"));   // register data source in the report report.RegisterData(dataSet, "NorthWind");   // Loop through the tables. Override aliases have necessary tables. Activate visibility of the tables foreach (DataSourceBase dsItem in report.Dictionary.DataSources) { if (dsItem.Name == "Employees") { dsItem.Enabled = true; dsItem.Alias = "Mitarbeiter"; dsItem.Columns.FindByName("EmployeeID").Alias = "Identifier"; dsItem.Columns.FindByName("LastName").Alias = "Nachname"; dsItem.Columns.FindByName("FirstName").Alias = "Vorname"; dsItem.Columns.FindByName("Title").Alias = "City"; dsItem.Columns.FindByName("TitleOfCourtesy").Alias = "Titel"; dsItem.Columns.FindByName("BirthDate").Alias = "Geburtsdatum"; dsItem.Columns.FindByName("HireDate").Alias = "Datum der Beschäftigung"; dsItem.Columns.FindByName("Address").Alias = "Anschrift"; dsItem.Columns.FindByName("City").Alias = "Stadt"; dsItem.Columns.FindByName("Region").Alias = "Bereich"; dsItem.Columns.FindByName("PostalCode").Alias = "Index"; dsItem.Columns.FindByName("Country").Alias = "Land"; dsItem.Columns.FindByName("HomePhone").Alias = "Haustelefon"; dsItem.Columns.FindByName("Extension").Alias = "Area Code"; dsItem.Columns.FindByName("Photo").Alias = "Photographie"; dsItem.Columns.FindByName("Notes").Alias = "Hinweise"; dsItem.Columns.FindByName("ReportsTo").Alias = "Vorlage"; } }   // set report parameters report.SetParameterValue("Die Testparameter 1", "Der Parameter 1 vor dem Aufruf des Berichts"); report.SetParameterValue("Parameter 2", "\"Der Parameter 2 Standard\""); } ```  As you can see, we have created a DataSet. Then, we loaded XML database into it. Then, registered the data source in the report. In the cycle in the data source we find the “Employees “ table. Enable it (Enabled = true). We made it for the table to appear in the designer’s data window. Now we assign an alias to each field of the table - the name of the German language. Handling the designer load event: ``` private string appPath;   private void Designer_Load(object sender, EventArgs e) { appPath = Path.GetDirectoryName(Application.ExecutablePath); // load the German local for designer Res.LoadLocale(Path.Combine(appPath, "German.frl")); // intercept the load event of designer for further overriding the event handlers Config.DesignerSettings.DesignerLoaded += DesignerSettings_DesignerLoaded; } ```  Set localization language in the designer resources - in this case German. Then assign the event handler DesignerLoaded to our own event, which we write below. Write a handler for DesignerLoaded: ``` // load event of designer private void DesignerSettings_DesignerLoaded(object sender, EventArgs e) { // intercept action of creating a new report for the registration of our sources and parameters (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction);   // except cmdNew. Similarly, you can intercept other Designer.cmd * and do anything inside, // for example, load report from database field and save it back } ```  Here, we assign the event of New menu selection our handler. This is a way of intercepting the event. We write the handler to select the menu item New: ``` void cmdNew_CustomAction(object sender, EventArgs e) { Designer designer = sender as Designer; // Use blank wizard to create blank report BlankReportWizard wizard = new BlankReportWizard(); //StandardReportWizard wizard = new StandardReportWizard(); // you can use other wizards // run wizard wizard.Run(designer); // register our data and parameters RegisterData(designer.Report); // update data tree designer.SetModified(this, "EditData"); } ``` Here we use a blank designer. Create an instance of Blank Report Wizard. As the name implies – it’s a blank report. Then we run the designer, registering a data source and update the data tree in the data window. It's time to create handlers for the two buttons. The button of creation a new report:      ``` // create new report private void btnNewReport_Click(object sender, EventArgs e) { using (Report report = new Report()) { RegisterData(report); report.Design(); } } ```  Here, the report object is created. The data is recorded for it. Run the designer. The button of report editing. Basically, it’s the same thing, but add the loading of existing report:     ``` // edit report private void btnLoadReport_Click(object sender, EventArgs e) { using (Report report = new Report()) { report.Load(Path.Combine(appPath, "report.frx")); RegisterData(report); report.Design(); } } ```  Do not forget that in the folder with the executable file there should be: the report, the database file and the locale (German.frl). Run the application. Click on the second button. We get the report template. Let us open a data source in the tree: All fields, as well as the table name, are displayed in German, thanks to aliases. Now, create a new blank report using the File-> New menu. Once again, we see our data source alias. We have created a data source and assigned aliases to the table fields. Now we can use this source in this form in any report. By using aliases it is much easier to create reports for people who are not familiar with the field names in a particular database. You can use aliases only once in the database, and get rid of the many questions from the report developers. And lastly the report itself: Tags: .NET, FastReport, Data Source ### How to make auto refreshable web reports URL: https://www.fast-report.com/blogs/make-auto-refreshable-web-reports When there is a need to reflect the current situation in your enterprise with the help of web reports, you might need to update information automatically on a site without any user's involvement. If you use more than one of these reports with auto refresh function on a single page of a web site, you get the “Dashboard”. Fortunately, FastReport provides auto refresh of a report by timeout.  Let us take a close look at the following example of my report “Date” that displays the current date and time.  By this means we can see the time of the report refreshing. Create a simple web report. Add a data source to the web form - the component “SQLDataSource”. From the drop - down menu select “ConfigureDataSource”. Set the connection to the database. Now place the “WebReport” component on the web form. Select the item “Select Data Source” from the drop - down menu. Choose the only available option. From the drop - down menu select "Design Report " Create a simple report.  The system variable Date was added to the title of the report: Close the report editor. Disable the toolbar of the report window.  In “WebReport” object you should set “ShowToolbar” property to “false”. Set “RefreshTimeout” property. In this property the refresh period is set. For example, set the interval 5. Time is set in seconds. Run the application: Wait for 5 seconds: By this means it is possible to update information in a report continually. This can be useful when displaying statistical data or displaying information in the form of graphs. FastReport provides the opportunity to solve the problem of displaying dynamic information. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### How to make columns highlighting, depending on the value of the column URL: https://www.fast-report.com/blogs/highlighting-columns-depending-on-value Matrix reports are a great tool for analyzing data. In essence, the matrix in analytical reports is a summary table. "Conditional allocation” is often used to facilitate the analysis. This is a regular tool in FastReport.Net. Conditional highlighting implies highlighting the data cells with color, font, or icons, depending on a given condition. But, conditional highlighting works with individual cells. But what if we want to select entire columns depending on the value in the header? For example, to highlight the weekends. In this case, you will have to resort to the "omnipotent" script of the report, regular color highlighting will not help here. Create a template with a matrix based on the MatrixDemo table from the nwind.xml demo database: The idea is to find columns with values in the headers that satisfy the condition. In this matrix, we derive the income of employees by year. Let's make a highlighting of columns with headers 2012 and 2014. To do this, we need to highlight the heading in this column and all subsequent cells, including the total. Create the BeforePrint event for the matrix: ``` // List of selected columns private List markedColumns; // Counter for columns in the first row private int firstLineColumn; // Counter for columns in the following lines private int secondLineColumn;     // Matrix event handler private void Matrix2_BeforePrint(object sender, EventArgs e) { // Create a new list for selected columns markedColumns = new List(); // Reset the first row counter firstLineColumn = 0; // Reset the next row count secondLineColumn = 0; } ```  In the beginning, we added several variables that we will use in event handlers. These variables store marked columns for rows. Further, before displaying the matrix, we initialize the variables. Create another handler for the BeforePrint event for the cell with the value of [Year]: ``` // Event handler for cells in the first row of the matrix private void Cell18_BeforePrint(object sender, EventArgs e) { // Use sender as TableCell TableCell cell = sender as TableCell; // Check the required value in the cell if (cell.Text == "2012" || cell.Text == "2014") { // Sets the fill color for this cell. cell.FillColor = Color.Brown; // Save to selected list of columns markedColumns.Add(firstLineColumn); } // Increase column count for first row firstLineColumn++; } ```  Here I need to make a small remark so that you understand the essence of what is happening. The point is that the matrix output when building a report in FastReport is done line by line. Therefore, we save the column numbers for the first row of the matrix. In our case 2 values will fall into the list of marked columns. Now add an event handler for the cell with the value [Revenue]: ``` // The event handler for the cells in the following rows of the matrix. You need to set it for the second row and the totals. private void Cell21_BeforePrint(object sender, EventArgs e) { // Use sender as TableCell TableCell cell = sender as TableCell; // Find the current index in the markedColumns list if (markedColumns.IndexOf(secondLineColumn) != -1) { // Sets the fill color for this cell. cell.FillColor = Color.Red; } // Increase counter secondLineColumn++; // Reset counter for next row if (secondLineColumn >= firstLineColumn) secondLineColumn = 0; ```  In this handler, we find the columns corresponding to the selected columns from the first row and paint their cells in red. Upon reaching the last column, reset the variable for the next line. As you understand, when building a report, the second row of the matrix is dynamic. This means that it will be displayed for each row of data in the source. Therefore, we need to check each row and color the cells in the correct columns. The solution given in the script is unusual, but the only possible one for this situation, because the matrix is built dynamically and does not store the final structure, coordinates and positions of the cells until it is directly drawn on the sheet. Only the template (the one we see in the designer) and the text values of the matrix headers are stored in memory. Therefore, we have to go through all the rows and memorize the columns for coloring. According to the script, we had to create three event handler BeforePrint for the matrix, the cell [Year] and the cell [Revenue]. But, in our matrix there is another, third row. It displays the results, and it would be good to paint them as well according to the selected columns. To do this, for the cell located under [Revenue], simply hook the BeforeFrint event handler from the same [Revenue]: And now, run the report:     If you want to paint the totals in a different color, you will have to create your own BeforePrint event handler for the cell of the totals, similar to the handler for the [Revenue] cell. Tags: .NET, .NET, FastReport, FastReport ### How to make custom ToolBar in report preview URL: https://www.fast-report.com/blogs/custom-toolbar Summary: We will discuss how to remove unnecessary buttons and add your own "features" to the toolbar FastReport .NET. We will discuss how to remove unnecessary buttons and add your own "features" to the toolbar FastReport .NET. We will discuss how to remove unnecessary buttons and add your own "features" to the toolbar FastReport .NET. Most report generators have a report-viewing mode with a toolbar from which you can make various manipulations of the report. For example, flipping through pages, printing, exporting and more. However, sometimes there is not enough buttons with any functionality. This can be a quick export to some format, or sending a report to a review, or maybe you might want to do a mass mailing of the report. Either way, the standard toolbar FastReport.Net does not allow you to add your custom features. But the developers have provided the possibility of creating their own preview mode. And it is great, not everyone likes the standard Preview. Many would love to remove some unnecessary buttons, but would add their own “features”. Therefore, let's look at how to quickly and easily make your Preview for reports. All features from the standard preview mode are available to us in the FastReport.dll library. Let's take a look at this example. A typical Windows Forms application. We are connecting FastReport.dll library to it. On the form we add the toolbar component ToolStrip and PreviewControl - a standard report viewer. This component already has its own toolbar, but it's easy to hide in the toolbar properties. On the toolbar, we created buttons with the necessary functionality: Open the report, print, export, flipping pages and a special button with its functionality. It will keep a report in csv format in the specified folder. Such a QuickSave. Suppose we often use this particular functionality, so we moved it to a separate button. Now let's look at the application code: ``` public partial class Form1 : Form { private Report FReport; private DataSet FDataSet;   public Form1() { InitializeComponent(); }   private void LoadBtn_Click(object sender, EventArgs e) { FReport = new Report(); FReport.Preview = previewControl1;   using (OpenFileDialog file = new OpenFileDialog()) { if (file.ShowDialog() == DialogResult.OK) { FDataSet = new DataSet(); FDataSet.ReadXml("K:/My documents/nwind.xml"); FReport.Load(file.FileName); FReport.RegisterData(FDataSet, "NorthWind"); FReport.Prepare(); FReport.ShowPrepared(); } } } ```  Download report button opens a standard File Open dialog window. Then we upload the database to a data source, upload the selected report template in the report object, register it as a source of data to collect and display the report in the component Preview. ``` private void SaveBtn_Click(object sender, EventArgs e) { SaveBtn.DropDownItems.Clear(); List list = new List(); RegisteredObjects.Objects.EnumItems(list);   ToolStripMenuItem saveNative = new ToolStripMenuItem("Save to .fpx file..."); saveNative.Click += new EventHandler(item_Click); SaveBtn.DropDownItems.Add(saveNative);   foreach (ObjectInfo info in list) { if (info.Object != null && info.Object.IsSubclassOf(typeof(ExportBase))) { ToolStripMenuItem item = new ToolStripMenuItem(Res.TryGet(info.Text) + "..."); item.Tag = info; item.Click += new EventHandler(item_Click); if (info.ImageIndex != -1) item.Image = Res.GetImage(info.ImageIndex); SaveBtn.DropDownItems.Add(item); } } } ```  Export/ save button actually has a drop-down list with a variety of export formats. First, I clear the drop-down list, and create a list of objects for export. Loading the list of all registered objects. Then, I add the first element to the list of exports - exports native format, i.e. fpx format. All the other available formats are added to the list in a loop. Some of the exports have picture. Each element of the list is assigned to item_Click event that handles pressing the item. ``` private void item_Click(object sender, EventArgs e) { ObjectInfo info = (sender as ToolStripMenuItem).Tag as ObjectInfo; if (info == null) { previewControl1.Save(); } else { ExportBase export = Activator.CreateInstance(info.Object) as ExportBase; export.CurPage = previewControl1.PageNo; export.Export(previewControl1.Report); } } ```  The event handler item_Click is exporting the report, which is currently displayed in the Preview component. ``` private void PrintBtn_Click(object sender, EventArgs e) { previewControl1.Print(); } ``` Print button opens PrintDoc dialog window. ``` private void FirstBtn_Click(object sender, EventArgs e) { previewControl1.First(); } ```  “First” button shows the first page of the report.       ``` private void PrevBtn_Click(object sender, EventArgs e) { previewControl1.Prior(); } ```  “Prev” button shows the previous page of the report. ``` private void NextBtn_Click(object sender, EventArgs e) { previewControl1.Next(); } ```  “Next” button shows the next page of the report. ``` private void LastBtn_Click(object sender, EventArgs e) { previewControl1.Last(); } ```  And finally “Last” button shows the last page of the report.        ``` private void PageNo_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData == Keys.Enter) { previewControl1.PageNo = int.Parse(PageNo.Text); } } ```  The text field between buttons shows the number of the current page. Changing this value you can switch between the report pages. ``` private void PreviewControl1_PageChanged(object sender, EventArgs e) { PageNo.Text = previewControl1.PageNo.ToString(); } ```  But if to switch between pages using buttons the page number in the text field will change as well. According to page change event in Preview component. ``` private void QuickSaveCSVBtn_Click(object sender, EventArgs e) { FastReport.Export.Csv.CSVExport ex = new FastReport.Export.Csv.CSVExport(); FReport.Export(ex, "Text.csv"); } ```  In conclusion - our custom button. Its functionality is taken from nowhere, just for demonstration. It saves a report in csv format. Thus you can make a convenient report viewer for yourself or the customer, providing it with the necessary functions. Dream on additional features in the Preview can be infinite, the main thing that the developers have given us this opportunity. And if you want to use your preview component when displaying reports from the application code, we use the following code: ``` CusomPreviewForm prev = new CusomPreviewForm (); Report report = new Report(); report.Load("K:/My documents/lines.frx"); report.Preview = prev.previewControl1; report.Show(); prev.ShowDialog(); ```  Here we override the view component of the report. Telling truth we had to make previewControl1 public. That's all. I hope you take advantage of this great opportunity, how to make a custom viewer reports. Tags: .NET, .NET, FastReport, FastReport ### How to make label type report in FastReport VCL URL: https://www.fast-report.com/blogs/label-type-report-vcl Printing labels is one sphere of application of report generators. In this article, we will look at some aspects of creating a report with labels. In label reports, data headers are usually placed in a column, rather than in a row, as usual. What does it mean? I will show you by an example. Here is an ordinary list of data output row by row: And here is the columned placement of data: As you can see, the main point of the report with the labels is to form a label of the right size and content. To do this, you must specify the size of the report page according to the size of the label. Let's look at the example. Create an empty report with one MasterData band. Our goal is to make business cards. Since the report consists of one band, the size of the business card will be equal to the size of this band. Let's set the height of the MasterData band in the Property inspector. Set the value to 4.5 cm. To specify the width of the band, we need to use a division into columns. To split a page into columns, open the File -> Page Properties menu. On the Other options tab, set the number of columns to 2. You can also change the width of the columns. For example, we set 8.84 cm. At the same time, the band became already more than the half page of the report. You can adjust the position of the band in the Positions property. And now we will create not a complicated business card template: Since we do not use the database in the MasterData band, we need to manually set the number of records in the properties of the band. In our case - RowCount = 12. Let's look at the report in the preview mode: As you can see, all 12 labels fit one report page, which (in our case) is printed in A4 format. If you use data from the database, you should leave the RowCount property for the MasterData band to 0. Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, Report, Report, Delphi, Delphi ### How to make lottery tickets by FastReport .NET URL: https://www.fast-report.com/blogs/lottery-tickets-net Suppose you decided to hold a lottery in the office and you have only FastReport.Net at hand. It is necessary to create two sets of tickets with unique numbers. The first set for users, the second for the lottery. We will generate unique numbers for the lottery in the report script and use them as data sources. Let's get started. Run the report designer. Now we do not have data for the report yet. Go to the Code tab (Code). I made the list of numbers global: ``` private List num = new List(); ```  We create a method for generating unique numbers: ``` private void RandomShaffle() { const int n = 20; // A series of 20 tickets Random r = new Random(10); int curnumber = 0; for(int i = 0; i < n ; i ++) { curnumber = r.Next(100000, 999999); // Generate a number in a given range if (!num.Contains(curnumber)) // Check the list of numbers for a match with the current one num.Add(curnumber); // Add to list else i--; // We roll back the iteration backward } } ```  We specify the number of tickets n in the party. And also, the range in which to generate a number. I want six-digit numbers, so I specified a range from 100000 to 999999. Now, select the Report object in the Property inspector:  For it, we create a ReportStart event: In the event handler, we generate a list of numbers and register it in the report as a data source. ``` private void _StartReport(object sender, EventArgs e) { RandomShaffle(); Report.RegisterData(num, "Numbers"); } ```  It's time to create a report template. Now the report still does not know anything about the data source that we are preparing for it. Let's run the report for execution as is. Of course, we will get an empty page. Go back to editing the page. Now we can select the data source: Create a simple template with two tickets on the data band: Run the report:  And see the list of tickets. It remains to print them and cut them. Tags: .NET, .NET, FastReport, FastReport, Desktop, Desktop ### How to make PDF on Raspberry PI with .NET Core URL: https://www.fast-report.com/blogs/creating-pdf-on-raspberry-pi Summary: Very pleased with the ability to run .NET Core applications on ARM32 / ARM64 platforms. Server manufacturers have already begun selling hardware platforms on ARM processors. Well, now we have the opportunity to practice on the Raspberry PI with an eye on the server. Very pleased with the ability to run .NET Core applications on ARM32 / ARM64 platforms. Server manufacturers have already begun selling hardware platforms on ARM processors. Well, now we have the opportunity to practice on the Raspberry PI with an eye on the server. Very pleased with the ability to run .NET Core applications on ARM32 / ARM64 platforms. Server manufacturers have already begun selling hardware platforms on ARM processors. Well, now we have the opportunity to practice on the Raspberry PI with an eye on the server. Raspberry PI is a miniature single-board computer with ARM processor. This microcomputer is often used as an educational platform or for development of embedded solutions. For our experiments we use Raspberry PI 3B board with 1GB of RAM and the installed Linux Raspbian Buster with desktop operating system. I will omit the installation and configuration of the system - we will assume that everything is already installed and working for you. Despite its tiny size, we are using a computer with powerful  capabilities. Let's try to install the .NET Core framework on it and write a simple C # application that will generate a PDF document. Firstly, we need to connect to the Raspberry via SSH or open the terminal application on the desktop if you connected the board to the monitors and keyboard. Of course, the board must be connected to the Internet to install the components we need. The Raspbian operating system supports the execution of .NET Core applications for the ARM32 architecture. A link to the .NET Core SDK can be found on the official download page . Download and unzip the archive: ``` $ sudo wget https://download.visualstudio.microsoft.com/download/pr/f2e1cb4a-0c70-49b6-871c-ebdea5ebf09d/acb1ea0c0dbaface9e19796083fe1a6b/dotnet-sdk-3.1.300-linux-arm.tar.gz $ mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.1.300-linux-arm.tar.gz -C $HOME/dotnet ``` Then we need to add the path to the .NET Core folder in the PATH environment variable and also create the DOTNET_ROOT variable: ``` $ export DOTNET_ROOT=$HOME/dotnet $ export PATH=$PATH:$HOME/dotnet ``` Last lines are best added to the user profile configuration file: ~/.bash_profile, ~/.bashrc, ~/.kshrc, ~/.profile, ~/.zshrc, ~/.zprofile. Correct installation of the .NET Core SDK can be verified by the following command: ``` $ dotnet --info .NET Core SDK (reflecting any global.json): Version: 3.1.300 Commit: b2475c1295   Runtime Environment: OS Name: raspbian OS Version: 10 OS Platform: Linux RID: linux-arm Base Path: /home/pi/dotnet/sdk/3.1.300/   Host (useful for support): Version: 3.1.4 Commit: 0c2e69caa6   .NET Core SDKs installed: 3.1.300 [/home/pi/dotnet/sdk]   .NET Core runtimes installed: Microsoft.AspNetCore.App 3.1.4 [/home/pi/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 3.1.4 [/home/pi/dotnet/shared/Microsoft.NETCore.App]   To install additional .NET Core runtimes or SDKs: https://aka.ms/dotnet-download ``` For further work you need to install the additional packages (all the rest are already installed with Linux Raspbian Buster with desktop): ``` $ sudo apt-get install libgdiplus $ sudo wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb $ sudo apt-get install -y ttf-mscorefonts-installer_3.6_all.deb ``` We installed the font set that comes with Windows, so the applications will look similar on both Windows and Linux. Now you can create our application. Let's run the command: ``` $ dotnet new console -o testpdf ``` We see a template of the console application with the files testpdf.csproj and Program.cs in the testpdf folder. Replace the code of testpdf.csproj file: ``` Exe netcoreapp3.1     ``` File contains links to the Nuget FastReport.Core and FastReport.Compat packages. They will be downloaded during the build process and placed in the ~/.nuget/packages. The Program.cs file should be replaced with the following code: ``` using System; using FastReport; using FastReport.Export.Pdf; using FastReport.Utils;   namespace testpdf { class Program { static void Main() { Console.WriteLine("Test FastReport Core"); // create report object using Report report = new Report(); // create page using ReportPage page = new ReportPage(); // add page in report report.Pages.Add(page); // create band page.ReportTitle = new ReportTitleBand() { Height = Units.Centimeters * 10 }; // create text object placed on band using TextObject text = new TextObject() { Left = Units.Centimeters * 7, Top = Units.Centimeters * 5, Font = new System.Drawing.Font("Arial", 24), CanGrow = true, AutoWidth = true, Text = "Hello Raspberry!", Parent = page.ReportTitle };   // make the document report.Prepare(); // save the document as PDF file using PDFExport pdf = new PDFExport(); report.Export(pdf, "file.pdf"); } } } ``` The code creates a report instance, adds a page to it, and a band on it. Then a text object is created at the coordinates Left and Top. The CanGrow and AutoWidth properties allow the object to automatically calculate height and width depending on the size of the text. Creating objects in program code is not the only way to generate documents. You can use the Designer.exe template editor bundled with FastReport .NET. The file with the *.frx extension generated by the editor can then be loaded using the Report.Load method. In the xml template you can specify bindings to user data, variables, use built-in and user-defined functions. You can learn more about capabilities of FastReport .NET on the official website. After preparing the document we save it to a PDF file. All objects used in the code contain many properties that affect their behavior in the document. More details can be found in documentation for the FastReport .NET product. Let's run the program: ``` $ dotnet run ``` If everything is done and all the necessary packages are installed, we will get the file.pdf. Otherwise you need to read the text of the errors and eliminate them. The resulting PDF file is fully compliant with the standard, contains text and an embedded font. Text can be selected and copied to another document. In the upper left corner of the page there is text indicating that we used the demo version of FastReport .NET Core. The maximum number of pages in the demo version is limited to five. The commercial version of FastReport .NET does not contain these restrictions. It can be purchased at Fast Reports Home Site . There is a way to get a similar PDF file without the DEMO VERSION label absolutely for free. You can use the FastReport Open Source product . Let's change the csproj file and ItemGroup section: ``` ``` The file Program.cs needs to be changed as follows: ``` using System; using FastReport; using FastReport.Export.PdfSimple; using FastReport.Utils;   namespace testpdf { class Program { static void Main() { Console.WriteLine("Test FastReport Open Source");   // ... // same code here ... // ...   // save the document as PDF file using PDFSimpleExport pdf = new PDFSimpleExport(); report.Export(pdf, "file.pdf"); } } } ``` Then we run the program with the dotnet run command and get a PDF without  the “demo version” label and any restrictions on the number of pages. Unfortunately, there is a significant drawback of the Open Source version: inside PDF files contain the images instead of text. Copying such text will not work and the file size will be significantly larger. For simple applications this should be enough. When creating a PDF using FastReport Open Source, you may encounter the problem of rendering characters as empty squares. This .NET Core bug has long been fixed for x86 and x64 platforms. In our case you need to wait for a fix in the latest .NET Core builds or use the .NET Core SDK 2.2. I am very pleased with the ability to run .NET Core applications on ARM32 / ARM64 platforms. Server manufacturers have already begun selling hardware platforms on ARM processors . It is possible that in the very near future we will see an increase in the popularity of ARM Bare-Metal offers on hosting providers. Well, now we have the opportunity to practice on the Raspberry PI with an eye on the server. The examples described in the article can be found in my profile on GitHub . Tags: .NET, .NET, FastReport, FastReport, Linux, Linux, Core, Core, PDF, PDF ### How to make price tags with product composition in FastReport VCL URL: https://www.fast-report.com/blogs/price-tags-vcl Summary: Starting from version 2023.3, another powerful tool has been added to the FastReport VCL reporting engine – text reduction in the Text object. Starting from version 2023.3, another powerful tool has been added to the FastReport VCL reporting engine – text reduction in the Text object. Starting from version 2023.3, another powerful tool has been added to the FastReport VCL reporting engine – text reduction in the Text object. When printing labels, price tags, and other formats with limited sizes, there is a challenge where design approaches for such reports are constrained. In such conditions, the text object can only grow to certain sizes, and splitting or migrating the text to another page is not possible. How can we fit product composition and other data on a single label without cutting the information? The answer is simple—to reduce the content! Starting from version 2023.3, we have added to the reporting engine FastReport VCL another powerful tool— reducing the text in the “Text” object by scaling the content. Let’s look at a simple example of a price tag with product ingredients. Such a price tag is printed on prepared paper using a label printer, so there are physical restrictions on the amount of printed text. But the composition can vary from 3 to several dozen words. To create such a report, we will use the function of creating multi-column reports. You can find how to create such a report in the user manual . Let’s use the example of creating a simple report with two columns, as in the figure below. We will not delve into creating a report but will concentrate on the necessary functionality. A ready-made example of a report can be downloaded here . Let’s run the report for the building. As a result, the preview shows that the table contains products whose composition consists of dozens of words, and it does not fit on the price tag with the current font size. The way out of this situation is obviously to reduce the font size. Let’s return to the report designer, select the object and the text that does not fit into the borders, and then open the object inspector. The functionality we need is controlled by the ContentScaleOptions property set. Let’s take a closer look at it. AutoScale —disabled by default, the property sets the auto text scaling mode. casStatic mode enables text to be scaled until it fits within the container or the extreme bounds of the constraints are reached ( Constraints.MaxStepValue and Constraints.MinStepValue properties ). casStatic mode is great for use in a report with price tags, let’s turn it on and run the report for building. Based on the generated report, you can see that the text is scaled not only to reduce its size but also to increase it. This allows you to fill a large container. This may be useful for some reports, but in this case it is unnecessary. Let’s return to the report designer and disable the cstGrow flag for the ContentScaleOptions.ScaleType property. Let’s run the report for the building. Now FastReport VCL prints price tags reducing the font size if the text does not fit into the object. We have achieved the desired result by switching just two properties. The example with labels is one of the most common, but sometimes a band with growing objects needs to be placed on the page without a break. If there are several objects with text on such a band, we can sacrifice the font size in some of them and compress the entire container. Let’s look at how this works using a simple example with random data ( you can download the template here ). In this example, each text object outputs large paragraphs of text, thereby stretching and shifting the underlying objects. After running the report with demo data, the report will look like the screenshot. As you can see, if there is a large amount of text, the band will be divided into two pages (in our case, with a break in the objects). What to do if we need to place the data on one page? The AutoScale mode set to casStatic is not suitable for this case, because objects have a dynamic height, calculated during the report generation. In addition, stretched objects displace the underlying ones. For this case, FastReport VCL has another object scaling mode, enabled by setting the AutoScale to the casDynamic property. Let’s set the AutoScale property of the MainText object to the casDynamic and look at the report rendering result. MainText object is reduced in size, and the entire band fits on one page. But what if you need to proportionally compress text across multiple objects? Let’s set the AutoScale property of the BottomText object to the casDynamic and look at the report-building result. As a result, both objects reduced the font size until the band fit completely on the page. FastReport VCL allows you to control object compression. Each cycle of passing through objects reduces the font in objects by a given step, which is set for the object in the ContentScaleOptions.StepValue property. This will continue until the band fits on the page or the extreme constraints are reached (the Constraints.MaxStepValue and Constraints.MinStepValue properties). In addition, each object can be processed only at a given iteration of passing through the objects. If you want the first two reduction iterations to process only the BottomText object, just set the ContentScaleOptions property. For the Constraints.MinIterationValue method, assign a value of 3 to the MainText object (it will skip the first two iterations). After the report is rendered, it will have the following appearance. As you can see, in the first two iterations, our report engine only compressed the BottomText object, and as a result, its contents are at a smaller scale. Visually, iterations can be represented as follows.  This iterative approach to scaling content (or text) allows the reporting engine to prioritize which objects to compress and in what order to achieve optimal results. This approach can negatively affect the speed of report generation with a large number of objects. Therefore, the number of iterations can be limited at the report engine level by setting the TfrxReport.EngineOptions.ContentScaleMaxIterations property (default 10). Tags: VCL, Lazarus, FastReport, Designer, Report, Preview, Delphi ### How to make regular reports mailing using FR Desktop URL: https://www.fast-report.com/blogs/regular-reports-mailing-desktop Nowadays, users quite often face a task to form periodic reports, send them by e-mail or save in a specific location. Implementing  such tasks is not difficult with our report generator. However, it is necessary to create an application that will work with the report generator. It requires some programming skills and experience in programming field. But what if you do not have such experience, or you do not want to buy expensive licensed development environment (e.g. MS Visual Studio)? FastReport Desktop allows you to solve these issues. This is an independent program complex, that does not require creation of custom applications. Consequently, it does not require programming skills either. Desktop allows to: create reports, configure them on a schedule, export a report to different formats, send an email report, save reports on a local drive or on remote resources. Let us take a close look at this software package. It is presented by five programs: - Designer - a program to create a report template; - Viewer - a program for viewing reports; - Builder - a console program - a Report Builder; - Configurator - a program for creating configuration files, containing instructions of processing a report; - The Scheduler - a program - task scheduler to build reports by schedule. In the diagram there is a technological process of working with FR Desktop: So, our aim is to organize a daily report generating and sending it by e-mail. 1. First, create a report using the designer (Designer). To do this, run an appropriate program. I created a simple report of a Master-Slave type, which displays a list of categories with products. The template looks like this:  Save the report on the local disk. 2. Now, create a configuration file. This file describes the actions, that a builder has to do with a report. Run the program Configurator: Create a new configuration file. To do this, we go through the options on the form and set the required ones. First of all, we select the report file: We skip the next option "Report Parameters". As you understand from the title, it allows you to set values for report parameters. Here is a form for editing report parameters: Next, we can specify the data source for the report. As our report uses an internal data source, we skip this option. This is how the form of connection editing looks like: The next option is "Export". We need a report in PDF format. It is selected by default in the list of available export formats: The "Settings" button allows you to set export options: For example, the "Text in curves" option allows you to draw text in a report, using curves, which makes the process of copying text impossible. You might be asked to choose a place, where to save your report. This is not our task, so you can skip this step. But I will show you a list of possible places to save: The next step is to set the email settings: The report file will be attached to an e-mal. It is necessary to fill in the settings of outgoing e-mail server: On the E-mail tab fill in the message parameters: Now, in the main form, click the "Save" button. It is important to save the configuration on the local disk. Interestingly, that the "Run" button allows you to start the configuration immediately. Close the program and proceed to create a task in the Scheduler. 3. Start the Scheduler:  The interface is simple and straightforward. Add a new task using the "Task" menu: The form of task creation is also intuitive: Sets the name of the task, the configuration file and the trigger. By default, a trigger "Every day" has been selected. For this trigger you need to set the date, time of operation and the frequency of repetition. A set of triggers covers all possible needs: Click the "Create" button. The main form has a new task: So, we see that the task is enabled and the last run is still empty. Now we have to wait for a while. The task has been executed at a specified time. The mark of this has appeared in the "last start time". The report will be formed every day and will be sent at this time. Now, check the mailbox: Here we see an email with our report in PDF format. To sum up, we have overviewed a procedure of making regular reports mailing, using FastReport Desktop, which seeks to ease the process and reduce manual work. Tags: FastReport, FastReport, Desktop, Desktop ### How to make report inheritance in FastReport.NET URL: https://www.fast-report.com/blogs/report-inheritance-fastreport-net Summary: How to make it easier to work with a lot of similar reports? Setting up report inheritance instead of cut-n-paste job. How to make it easier to work with a lot of similar reports? Setting up report inheritance instead of cut-n-paste job. How to make it easier to work with a lot of similar reports? Setting up report inheritance instead of cut-n-paste job. When you are tasked with creating a large number of reports within one corporate style, you face the problem of duplicating some information, design styles in each report. As a rule, public reports (documents) in a company have the same header with name and contact information. Let's say you have 50 templates with the same header. But the company address changes and you need to open each template in the editor and correct it. But if there are not 50 templates, but 100, it's a real headache. Avoiding this problem is helped by the inheritance mechanism, where you have a template that can be used in different reports. Changes to this template will appear in all inherited reports. Report inheritance in FastReport.NET is organized as follows. You start by creating a so-called base report from which you inherit others. This report should contain a template with information common to all inherited reports. For example, it can be a header with the company details. As mentioned above you can modify the base report template and then it will change in all the legacy reports. But you can also edit the information from the base report in the legacy report. These changes will only be saved in that particular report. But what if you have modified an object from the base report in an inherited report and then modified the same object in the base report. In this case, the changes from the base report will be applied to that object, but only those that do not overlap with the changes in the legacy report. For example, if you change the font in a text object in an inherited report, and then set bold spelling for the same object in the base report, both changes will be applied. And if you change the font in the base report too, it will not be reflected in the legacy report, as it has already been changed in it. It is also worth bearing in mind the restrictions on inheriting the report. You may not: Delete and move the base report, otherwise all inherited reports will be damaged. Inherit a report from another inherited report. That is, multiple inheritance is not allowed. Use script, report parameters, "Table" object and "Matrix" object in the base report. Now let's look at an example of creating an inherited report. First you need to create a basic report. For example, it will contain a report template with the title: Save this report with a name containing base, so that it is easier to find amongst the other report templates. To create a legacy report you need to use the legacy report wizard. This is available either in the welcome screen or in the new report window (File->New): The Legacy Report Wizard will only offer you one action - select the base report using the Open File dialog box. Select the base report you have previously created. All elements of the report have a padlock icon. This means that they are inherited from the base report.  Newly added objects will no longer have this icon. Add a data source to our report and place the fields on the "Data" band. For example, you can use the demo data source nwind.xml from FastReport.NET: From the data source we select the Categories and Products tables. These tables are linked by key and so we can easily create a Master-Detail report: As you can see, the added data fields and the Header and DetailData bends do not have a padlock icon. You can always tell the difference between the legacy report objects and the baseline report by this feature. This way you can create a large number of reports in a single style, and then easily edit them all by changing only the basic template. Tags: .NET, .NET, FastReport, FastReport ### How to make simple Web-report in FastReport .NET URL: https://www.fast-report.com/blogs/simple-webreport Web-reports are very much in demand nowadays. Every day we use the Internet and look through dozens or even hundreds of web-pages. Many businesses strive to make their activities more public and the Internet for this could be better instrument. Thus, it is possible to transfer some of the existing reports on the web-site of the company without much fuss. Let's look at how to create a simple Web report based on ASP.Net applications. I created an empty ASP.Net project. We right click on the solution in Solution Explorer. From the context menu, select Add -> New item: Add a Web Form. At the bottom of the workspace switch to design mode:  So, we have a blank web form: Now, add the data source for your report. From the Toolbox, select the component SQLDataSource: And place it on the form. This object has a pull-down menu: From it we select Configure Data Source, to set connection to the database. We were invited to create a connection string. I have used MS Access database: Click OK. In the previous window, click Next. Define the name of the connection: Further on. Select a table and necessary fields: Click Next and Finish. Next, add WebReport component on the form. At the toolbox find WebReport component and drag it to the form. Choose the "Select Data Source" from the drop down menu. And select the one available: Now, from the same drop-down menu, select the item "Edit Report". Runs familiar to us FastReport.Net report designer. Create a simple report - the list of employees. Closing the Report Editor without saving. Note WebReport object properties. At the ReportResourceString property stored template of our report in coded form. Let's start our project and look at the report in the browser: You will agree, it's simple enough. Now you can use web-projects you previously created reports for desktop applications. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### How to make the mailing of the report to Email from the database in a WinForms application URL: https://www.fast-report.com/blogs/mailing-report-email-winforms Reports are an integral part of the workflow, and electronic reports - electronic workflow. One of the main mechanisms for distributing electronic reports is e-mail. Perhaps, all modern report generators have a built-in mail client to be able to send a report directly from the program. FastReport.Net is no exception. You can send the report in preview mode, or directly from the code of the user application. This is convenient if you send a report to a single recipient. Although it is possible to add multiple recipients, it is not always suitable. For example, when you want to make a newsletter with the name of the user: "Dear, Ivan Ivanovich ...". Therefore, we consider an example of how to send a report to several recipients, whose addresses and names are taken from the database. First, create a database and a table in it. For example, the database acces in mdb format: Create a WinForms application. Add two buttons and text fields for email settings to the form: The first button will send the report by name, and the second will send the report to the address list. You will understand how this works later, from the code. Each field has a default value; if you wish, you can enter a different value. Create an application data source using the wizard: Following further, we configure the connection string to the database and select the table: Add a link to the FastReport library to the project. We also need a file with a report template, which we will send out. Add it to the project. For example, we will use the report text.frx from the Demo folder. Now create a handler for the Direct email button event: ``` using System; using System.Data; using System.Windows.Forms; using FastReport; using FastReport.Utils; using FastReport.Export.Pdf; using FastReport.Export.Email;   private void SendReport_Click(object sender, EventArgs e) { Config.ReportSettings.ShowProgress = false; //Disable progress window   Report report1 = new Report(); //Create new report object report1.Load(Environment.CurrentDirectory + "/text.frx"); //Load report report1.Prepare(); //Prepare report PDFExport pdf = new PDFExport(); //Cteate PDF export EmailExport email = new EmailExport(); //Create Email export EmailsDataSet ds = new EmailsDataSet(); EmailsDataSetTableAdapters.CustomerTableAdapter adapter = new EmailsDataSetTableAdapters.CustomerTableAdapter(); adapter.Fill(ds.Customer); DataTable table = ds.Customer;   foreach (DataRow row in table.Rows) { SendMessage(report1, pdf, email, row["Email"].ToString(), row["Name"].ToString()); } } ```  Here we first create the report object, load the template into it, create export to PDF and Email. The report will be attached to the letter in PDF format. Next, we create a data source, fill the table with data. We look through the table entries and for each of them we send a letter. Of course, if you have a large mailing list, this method will work slowly. But you can insert in the text of the letter the name of the client. As you have noticed, we have taken out sending the letter to a separate method - SendMessage: ``` public void SendMessage(Report report, PDFExport pdf, EmailExport email, string recipient, string custName) { email.Account.Address = AddressFromTxt.Text; email.Account.Name = SenderNameTxt.Text; email.Account.Host = HostTxt.Text; email.Account.Port = Convert.ToInt16(PortTxt.Text); email.Account.UserName = UserNameTxt.Text; email.Account.Password = PasswordTxt.Text; email.Account.MessageTemplate = "Test"; email.Account.EnableSSL = true; email.Address = recipient; email.Subject = MailSubjectTxt.Text; email.MessageBody = custName is null? MessageTxt.Text : string.Format("Dear, {0}! {1}", custName, MessageTxt.Text); email.Export = pdf; //Set export type email.SendEmail(report); //Send email } ```  And for the Send to all button, let's create an OnClick event handler: ``` private void Send_to_all_Click(object sender, EventArgs e) { Config.ReportSettings.ShowProgress = false; //Disable progress window Report report1 = new Report(); //Create new report object report1.Load(Environment.CurrentDirectory + "/text.frx"); //Load report report1.Prepare(); //Prepare report PDFExport pdf = new PDFExport(); //Cteate PDF export EmailExport email = new EmailExport(); //Create Email export   string emails = ""; EmailsDataSet ds = new EmailsDataSet(); EmailsDataSetTableAdapters.CustomerTableAdapter adapter = new EmailsDataSetTableAdapters.CustomerTableAdapter(); adapter.Fill(ds.Customer); DataTable table = ds.Customer;   foreach (DataRow row in table.Rows) { if (emails == "") emails = row["Email"].ToString(); else emails = emails + ", " + row["Email"].ToString(); } SendMessage(report1, pdf, email, emails, null); MessageBox.Show(emails); } ```  Unlike the previous code, here in the cycle we add addresses to send to a variable, then pass it to the message sending method. This method works much faster than the previous one, especially if the mailing list is large. Judge for yourself, here you send one letter, instead of a set. Thus, the task of sending a report is reduced to exporting to email and sending a letter to each address from the database. Tags: .NET, .NET, FastReport, FastReport ### How to make the table header repeat on each page URL: https://www.fast-report.com/blogs/header-repeat When you display a report on several pages, you will most likely want to display the table headers on each page. This will prevent the user of the report from constantly turning over to the first page in order to understand the purpose of the columns and reduce errors in the perception of information. The lack of headers on every page is very annoying. This concerns not only reports with tables, but also matrix ones. FastReport .Net of course allows you to display headings on each table. The RepeatHeaders option is responsible for this. It must be set to true, although by default it already has this value. For the Matrix object this will be enough. The headings of the matrix will be displayed on each page displaying this matrix. However, there is a nuance with the Table object. It is not enough just to set the RepeatHeaders option to true. You need to set the number of displayed rows for the header in the FixedRows property. This is needed if the table has a multi-level header. By default, this property has a value of 0. Let's consider an example with a table with a two-level header. This is how it looks like by default, that is, with FixedRows = 0: Although the RepeatHeaders property is true, the title on the second page is not displayed. Now install FixedRows = 1: In this case, on the second page we got only the top-level heading. Set the FixedRows property to 2: Tags: .NET, .NET, FastReport, FastReport ### How to make wedding invitations from Excel URL: https://www.fast-report.com/blogs/make-wedding-invitations-from-excel Summary: If you need to make wedding invitations, but do not want to write everything by hand. You can do this with FastReport. If you need to make wedding invitations, but do not want to write everything by hand. You can do this with FastReport. If you need to make wedding invitations, but do not want to write everything by hand. You can do this with FastReport. Do you have a celebration on the occasion of the wedding? Do you need to print a lot of invitations? This can be quite a tedious task. Indeed, in each invitation will have to enter the names of the guests. In this article I will show you how to solve this problem with FastReport. We need to compile an Excel spreadsheet with the names and surnames of the guests being planned. For example, this: One line is the family, namely a male name, female name, surname. Save the file with the extension csv. Now we are going to create a report, open the designer. You must create a new data source in the report. Then we mark all fields of the data source: Then add the Picture object to the Data band. Load the background image in the Picture object editor,: Add a title: Dear Mr. [guests.Husband] and Mrs. [guests.Wife] [guests.Surname]! And the text of the invitation: I am writing you this letter to officially invite you all to the wedding of our daughter Elaine. The wedding to her long term boyfriend Ralph, who all of you already know, will take place at the Methodist church in Madison on 16th October 2014 at 11 am. The result is the following pattern: Run the report in preview mode and get invitations to all guests: After that, you can print the report or export it to one of the available formats, for example, PDF. Tags: .NET, .NET, FastReport, FastReport, Desktop, Desktop, CSV, CSV, Excel, Excel ### How to make ZUGFeRD in FastReport .NET URL: https://www.fast-report.com/blogs/invoicing-with-zugferd-in-fastreport-net Summary: ZUGFeRD is based on structured data, which is implemented using the XML standard. See how to use ZUGFeRD in FastReport. NET. ZUGFeRD is based on structured data, which is implemented using the XML standard. See how to use ZUGFeRD in FastReport. NET. ZUGFeRD is based on structured data, which is implemented using the XML standard. See how to use ZUGFeRD in FastReport. NET. The ZUGFeRD standard was developed in Germany specifically to simplify the process of electronic invoicing. This standard allows you to exchange invoices without a preliminary agreement between the supplier and the recipient of the services or goods. In Germany, this standard extends to everywhere: in small, medium and large businesses, as well as in public institutions. The name of the standard is the abbreviation ZUGFeRD. It stands for "The Unified User Guide developed by the German Forum on Electronic Invoices." EDI (Data Interchange Electronic) - electronic document standard already used in Germany, but it is used only in large companies. The goal of ZUGFeRD is to cover all spheres of activity in the country, whether it be private enterprise or a large automotive concern. This standard is universal and not tied to a particular industry. ZUGFeRD is based on the use of structured data. This is implemented using the XML standard. A human-readable account representation is implemented using the PDF / A standard. The PDF / A-3 format has the ability to include arbitrary types of objects in the document. Due to this, an XML representation of structured invoice data is included in the document. Thus, one document contains both a human-readable representation and a machine-readable one. Advantages of ZUGFeRD before paper workflow: • Saves paper; • saves the time of document transfer; • saves the human resource required to deliver the document; • saves time searching for a document; • Saves space for documents storage, because electronic; • accelerates the process of payment of payment orders, which improves the liquidity of goods; • significantly reduces the percentage of errors in documents, due to the automatic addition to accounting systems; • eliminates the costs of manually adding to databases, thanks to integration with automated accounting systems; • saves time for document approval, thanks to fast delivery. ZUGFeRD supports the following account types: ZUGFeRD Basic: • Commercial invoices (invoices for goods and services) with code 380; • Notifications (for example, requirements for payment of taxes by public authorities) with code 380; • Commercial credit notes (for example, corrected invoices / cancellations) with a negative value (code 380). ZUGFeRD Comfort also supports: • Debit note regarding financial adjustments (code 84); • A credit note associated with financial adjustments with a negative value (code 84). ZUGFeRD Extended also supports: • Self-evaluation accounts (credit note / self-billing procedure in accordance with tax legislation, code 389); • Self-evaluation of credit notes with a negative value (code 389). Now let's look at some details of the ZUGFeRD standard document. As noted above, an XML document is integrated into the PDF file for computer processing of invoices. It is also possible to include the XSD schema into a PDF document. An XML file is always embedded in a PDF document with name "ZUGFeRD-invoice.xml". There is also the option to insert other documents explaining the invoice as additional files. Here is a typical invoice in the form of an XML part of the ZUGFeRD document: ``` 1 1.0000 1.0000 100.0000 VAT S 19.00 100.00 ZS997 Citric acid 100 ml ```  Let's now consider an example of using FastReport.Net to generate ZUGFeRD invoices. You can find it in the folder "J: \ Program Files (x86) \ FastReports \ FastReport.Net \ Demos \ C # \ ZUGFeRD". The project is a common WinForms application. The form contains an input field and two buttons: One of the buttons allows you to specify the path to the file using the standard file open dialog. The second button starts the procedure for generating the ZUGFeRD document. Consider the code for the entire form class: Program code: ``` using FastReport; using FastReport.Export.Pdf; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms;   namespace ZUGFeRD { public partial class MainForm : Form { private string appPath; // Path to the folder with the executable file of the application   public MainForm() { InitializeComponent(); } // The button for selecting the xml-file of ZUGFeRD format   private void btnSelectFile_Click(object sender, EventArgs e) { // Standard dialog for opening a file using (OpenFileDialog openDialog = new OpenFileDialog()) { openDialog.Title = "Select ZUGFeRD XML"; openDialog.InitialDirectory = appPath; openDialog.Filter = "ZUGFeRD invoice XML (*.xml)|*.xml|All files (*.*)|*.*"; if (openDialog.ShowDialog() == DialogResult.OK) { tbZUGFeRDPath.Text = openDialog.FileName; // Assign the name of the selected file to the input field } } } // Event of loading the main form of the program   private void MainForm_Load(object sender, EventArgs e) { appPath = Path.GetDirectoryName(Application.ExecutablePath); // Specify the path to the folder with the executable file of the program }   // Button for creating a PDF document with the ZUGFeRD invoice private void btnCreatePDF_Click(object sender, EventArgs e) { // Get the path to the xml file string xmlFile = File.Exists(tbZUGFeRDPath.Text) ? tbZUGFeRDPath.Text : Path.Combine(appPath, tbZUGFeRDPath.Text); if (File.Exists(xmlFile)) { // Get the path to the report file string reportFile = Path.Combine(appPath, "Invoice.frx"); if (File.Exists(reportFile)) { // Call the standard file save dialog using (SaveFileDialog saveDialog = new SaveFileDialog()) { saveDialog.Title = "Select path to save PDF file with embedded ZUGFeRD"; saveDialog.Filter = "PDF/A-3b file (*.pdf)|*.pdf|All files (*.*)|*.*"; saveDialog.FileName = "Invoice-With-ZUGFeRD.pdf"; if (saveDialog.ShowDialog() == DialogResult.OK) { using (Report report = new Report()) //Create report object using (PDFExport pdf = new PDFExport()) //Create PDF export using (FileStream file = new FileStream(xmlFile, FileMode.Open, FileAccess.Read)) //Create stream { report.Load(reportFile); //Load report report.Prepare(); //Prepare report pdf.PdfCompliance = PDFExport.PdfStandard.PdfA_3b; //Set PDF file standard pdf.OpenAfterExport = true; //Open file after export pdf.AddEmbeddedXML("ZUGFeRD-invoice.xml", "ZUGFeRD invoice", DateTime.Now, file); //Include xml file into PDF document report.Export(pdf, saveDialog.FileName); //Execute export } } } } else MessageBox.Show("Report file does not exist!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else MessageBox.Show("XML file does not exist!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } ```  From the comments to the code it is clear that we are performing the export of the pre-created report to PDF. In doing so, we set the PDF / A-3 standard and add the ZUGFeRD account file to the xml document. Let's look at the report template, which is an invoice issued according to the ZUGFeRD standards. To generate the XML representation of this report, you need to use the library, which can be found here: https://www.nuget.org/packages/ZUGFeRD-csharp/ . Using the code and ZUGFeRD-csharp library, we generate the following XML file: ``` true urn:ferd:CrossIndustryDocument:invoice:1p0:basic 2017-415 Rechnung 380 20170320 Created by FastReport.Net https://www.fast-report.com   Haimerl Datentechnik 94356 Kreuzacker 10 Kirchroth / Kössnach DE DE179151914 ABB Lackieranlagen GmbH 35510 Schorbachstrasse 9 Butzbach DE 20170320 2017-415 EUR 160.93 VAT 847.00 19.0 847.00 0 0 847.00 160.93 1007.93 1 FastReport.Net Professional Edition Single License 2 FastReport.Net Win+WebForms Edition Single License ```  Run the program: We select the xml-file of the invoice. Click on "Create PDF / A-3b with embedded XML". And this is how the human-readable representation of the document looks like, actually the PDF document itself:  Thus, in order to use the xml view of ZUGFeRD in conjunction with the FastReport report, you only need to export the report in PDF A-3 and attach the xml file. Tags: .NET, FastReport, ZUGFeRD ### How to manage the indentation on top of the second page of the report URL: https://www.fast-report.com/blogs/manage-indentation-top-second-page Often, when the report is displayed, you can observe how the data that does not fit on the first page is transferred to the second one. This is typical for the band "Data" and "Group header", and associated with them. The Data band can contain data fields, or other objects, such as a table or matrix. To make the first page completely filled with data, without spaces, you need to set the CanBreak property for the Data band. But what if you want the "rest" of the table on the second page to place below the top edge? For example at the level of the beginning of the table. At the same time, if you view two sheets of the report at the same time, it will look harmonious. There are no regular settings for this. However, we can always use the report script, and do everything. Therefore, there are two ways to do this, and they are both very similar. The first way: Add the "Page title" band; Add a BeforePrint event handler for this band; In the event handler code, check the current page number, and if it's the second page, but change the height of the band to a suitable value. Picking up the height of the "Page Title" band, we can achieve printing the table on the second page at the same level as on the first page. The second method is almost identical to the first: Add the "Page title" band; Set the desired height in the properties; Add a BeforePrint event handler to the "Page title" band; In the event handler code, check the current page number, and if it's the second page, but display the band. Just choose what you like, because both methods are equivalent,. Now consider the code of the BeforePrint event handler for the "Page header" band. The first way: ``` private void PageHeader1_BeforePrint(object sender, EventArgs e) { if (Engine.CurPage > 0) PageHeader1.Height = 50; // Set top margin else PageHeader1.Height = 0; } ```  The second way: ``` private void PageHeader1_BeforePrint(object sender, EventArgs e) { if (Engine.CurPage > 0) PageHeader1.Visible = true; else PageHeader1.Visible = false; } ```  As you can see, in the first case, we change the height of the band in the code, and in the second case, we display the band with a predetermined height. As a result, we get an upper margin for the table on the second page of the report: Thus you can adjust the margins for each subsequent page of the report. Tags: .NET, .NET, FastReport, FastReport ### How to Merge Multiple Reports into One in FastReport .NET URL: https://www.fast-report.com/blogs/merging-reports-net Summary: FastReport .NET is a powerful tool for creating and managing reports. In this article, we will look at how to combine multiple reports into one in FastReport .NET. FastReport .NET is a powerful tool for creating and managing reports. In this article, we will look at how to combine multiple reports into one in FastReport .NET. One of the key features of FastReport .NET is the ability to merge multiple reports into one. This can be useful where you need to combine data from different sources or present information in a more convenient format. In this article, we will discuss how to merge multiple reports into one in FastReport .NET. FastReport .NET is a powerful tool for creating and managing reports, widely used in various fields. It provides developers with the ability to create complex and professional reports using a multitude of features and capabilities. One of the key features of FastReport .NET is the ability to merge multiple reports into one. This can be useful where you need to combine data from different sources or present information in a more convenient format. In this article, we will discuss how to merge multiple reports into one in FastReport .NET. Open the FastReport .NET report designer and load your report. Once the designer is open, select the “File” menu and then “Open Page.” In the file system, select the report that you want to merge with the first one and load it. Now, choose the required page and click OK. Starting from FastReport .NET version 2025.1, you can enable the “Add as Link” option, which means that the report will include a link to the page rather than a copy of it. This means that if the page is changed in the original report, the changes will be reflected in all reports where the page has been added as a link. Conversely, if the page is modified in one of the reports that link to it, it will be changed in the original report as well. If everything went successfully, you will have access to the added pages from the selected template at the bottom of the designer. To merge them into a single report, you can save the current modified template, or save it as a new template. To do this, select the “File” menu and then “Save As.” Save the new report under a new name. In this article, we have covered in detail how to merge several reports into one in FastReport .NET. We explored the main tools and methods that FastReport .NET provides for merging reports, as well as how to use them effectively. Tags: .NET, FastReport, Designer, Report, Plugin ### How to merge several csv files into one URL: https://www.fast-report.com/blogs/merge-several-csv-files-into-one This article aims to provide the insight into how to use FastReport.Net to merge two logically related CSV files into one.  Storing data in CSV files is often very convenient. You can always open such files by any text editor and tweak them. But what if in one document there are references to data from the other document? You have to merge two files into one, for further convenient work with the CSV document. It can be done manually, which is rather time - consuming, or you can use Excel, that requires some knowledge of the macros. The third way is the most easy-to-handle - to use FastReport. So, we have two CSV files. One contains a list of orders, the second one - a list of customers. We need to display the customers' names and phone numbers for each order. The Orders table has a foreign key "CustNo' to the Customers table. In turn, the Customers table has the primary "CustNo" key. As you understand, we will link the two tables to this field. Create a new report in the designer. Add a new data source -  a CSV file: One more data source is the second file. As a result, we get two connections: Now we need to link two tables. To do this, click the drop-down menu "Actions" and select "New relation". We select the main table, for example "Orders". The subordinate table is "Customers". For both tables we define the key fields. In our case, in both tables the keys are called "CustNo": Now look at the window "Data": For the Customers table now there is an associated table "Orders". We place the Company field in the Customers table on the Data band. We also place all fields there, except the CustNo fields, which are from the linked table " Orders". As there are a lot of fields, they do not fit on the report page. Open the page settings in the top toolbar "Report": On the "Other" tab we set properties: Extra design width, unlimited height, unlimited width. The last two properties allow you to expand your report page to the required size in the report view mode. Before exporting the report to a CSV file, let us consider some useful tips on formatting. To prevent the addition of blank lines and columns in the export, try to place the margins on your page close to each other. For the header of the data, we reduce the height to a minimum: Now run the report in preview mode. Click "Save" and choose "CSV file...". Now agree with the default export settings and set the location of the file saving. As a result, we have a CSV file with information about orders and the company name instead of the CustNo identifier. Using the introduced way, you can merge as many tables as you need from different CSV files, which is really time - saving. Creation of a merged file takes about 10 minutes. Tags: .NET, .NET, FastReport, FastReport, Desktop, Desktop, CSV, CSV ### How to migrate projects from FastReport Open Source to FastReport Core URL: https://www.fast-report.com/blogs/Migrate-FastReport-Open-Source-to-FastReport-Core Summary: The article describes the nuances of transferring from a free FastReport Open Source generator to a paid FastReport Core The article describes the nuances of transferring from a free FastReport Open Source generator to a paid FastReport Core The article describes the nuances of transferring from a free FastReport Open Source generator to a paid FastReport Core FastReport Open Source has just appeared, but I can already anticipate some of the questions users. Due to the fact that the export of the report in fact possible only in HTML format to many of you attraction of FastReport Open Source may seem questionable. And you may wonder, "Is it worth starting a project on open source version of FastReport Core or still fork over paid version?". I can tell you this worth it. Firstly, the Open Source has a great advantage - open source code, which you can modify as you wish. You can write your own export or use someone else's operating experience. Secondly, FastReport Open Source - it's the same as FastReport Core, just a little cut. Hence, they are compatible. You can start your project on an open source version, and In case of necessity of advanced exports - migrate to the paid version. It  is easy enough to do this. You just need to replace the libraries of FastReport.OpenSource and FastReport.OpenSource.Web onto FastReport and FastReport.Web. Migration from FastReport Core to FastReport Open Source is also possible, but you will have to remove all report exports from the application code. Besides exporting to HTML, of course. Web reports would not work without it. The advantages of FastReport Open Source are free and open source code, and to the advantages of paid are rich functionality and technical support. I must admit Fast Reports devotes a lot of time to the development of exports, they really work well and have a lot of settings. Not so much reporting tools can offer such advanced settings export to PDF. Using the open source version, you should understand what kind of exports you are losing: Adobe PDF; Microsoft Excel 2007; Text; Rich Text; Microsoft XPS; Open Office Calc; OpenOffice Writer; MHT; XML (Excel) table; CSV. However, ultimately, it's only your choice. If you want to experiment and test your might, you should better start with the FastReport.OpenSource, if you need a reliable ready-made solution with full functionality and support, FastReport Core, FastReport .NET to be precise, which is composed of the components in the framework of .NET core is definitely for you. Tags: FastReport, FastReport, Core, Core, Open Source, Open Source ### How to modify the width of a tab in RichObject URL: https://www.fast-report.com/blogs/modify-the-width-of-tab-in-RichObject Summary: Turning RichObject and TextObject into an alternative to the Table object. Turning RichObject and TextObject into an alternative to the Table object. Turning RichObject and TextObject into an alternative to the Table object. Some users prefer to create tables by adjusting the tab width, or they want to create a table in a format that does not support them. In previous versions of FastReport .NET, RichObject offered the function to modify the width of a tab in a line, but all their sizes after the first tab were the same. This has been fixed in the current version and now you can set the size for each tab character. New property for TextObject TabPositions allows you to set the width of a tab. It is used when converting RichObject. Now you can control the width of tab characters in two ways: – to set from the code the width of individual tab characters for each line of the TextObject; – by uploading the finished document into RichObject. The function to edit this property in the designer is temporarily unavailable. If there are more tab characters than widths, the tab size will be normal, and if there will be more values than tabs, the excess values of width will not be applied. An example of a text with different tab widths Original RTF document: How it looked in the previous version: In the current version: Customizing tab width from the code: ``` //create instance of class Report Report report = new Report(); //create report page ReportPage pageBase = new ReportPage(); //create data band DataBand dataBand = new DataBand(); //create text object TextObject textObject = new TextObject(); //set the text value textObject.Text = "1\t2\t3\t4"; //set width for every symbol tab in centimeters textObject.TabPositions = new FloatCollection() { Units.Centimeters * 2.5f, Units.Centimeters * 3.5f, Units.Centimeters * 5 }; //add the text object to data band textObject.Parent = dataBand; //set generated name textObject.CreateUniqueName(); //set the text object bounds textObject.Bounds = new RectangleF(0, 0, Units.Centimeters * 15, Units.Centimeters * 0.5F); //create one more text object TextObject textObject2 = new TextObject(); textObject2.Text = "5\t6\t7\t8"; textObject2.TabPositions = new FloatCollection() { Units.Centimeters * 2.5f, Units.Centimeters * 3.5f, Units.Centimeters * 5 }; textObject2.Parent = dataBand; textObject2.CreateUniqueName(); textObject2.Bounds = new RectangleF(0, Units.Centimeters * 1, Units.Centimeters * 15, Units.Centimeters * 0.5F); //create one more text object TextObject textObject3 = new TextObject(); textObject3.Text = "9\t10\t11\t12"; textObject3.TabPositions = new FloatCollection() { Units.Centimeters * 2.5f, Units.Centimeters * 3.5f, Units.Centimeters * 5 }; textObject3.Parent = dataBand; textObject3.CreateUniqueName(); textObject3.Bounds = new RectangleF(0, Units.Centimeters * 2, Units.Centimeters * 15, Units.Centimeters * 0.5F); //add the band to band collection pageBase.Bands.Add(dataBand); //add created page to report page collection report.Pages.Add(pageBase); //show report report.Show(); ``` Thus, you can turn RichObject and TextObject into an alternative to the Table object with the help of new improvements. Tags: .NET, .NET, FastReport, FastReport, RTF, RTF ### How to open a WebP image in FastReport .NET URL: https://www.fast-report.com/blogs/plugin-image-webp-dotnet Summary: Instructions for working with the new plugin for opening images in WebP format via a visual designer in FastReport .NET. Instructions for working with the new plugin for opening images in WebP format via a visual designer in FastReport .NET. Instructions for working with the new plugin for opening images in WebP format via a visual designer in FastReport .NET. WebP is a file format developed by Google in 2010. Its feature is an advanced compression algorithm that allows you to reduce the image size without visible quality loss. Starting from version 2023.2.14, FastReport .NET has a plugin that allows opening images in the WebP format. It extends the opportunities of the PictureObject object, which means that this image can be opened from the PictureObject editor or uploaded from code. First, you need to build the project: С:\Program Files (x86)\FastReports\FastReport.Net\Extras\Core\FastReport.Plugin\FastReport.Plugins.WebP After building the project, you need to add the plugin to the application in one of two ways. Method 1. Add a plugin through the designer: Method 2. Add the plugin as a dependency when starting the project and register it in the code with the following command: new FastReport.Plugins.WebPAssemblyInitializer(); It is important to note that FastReport.Skia supports the WebP format without a plugin. In some situations, it may be necessary to use other versions of the SkiaSharp.NativeAssets package. In such cases, the project must be built from the source code itself. Note: the plugin converts the image from the WebP format to a PNG picture, which is already used by the PictureObject. The uploaded image in the designer will be displayed as follows: Tags: .NET, FastReport, Designer, Vector graphic, Plugin ### How to Open and Convert an FP3 File Using the FastConverter .FP3 URL: https://www.fast-report.com/blogs/converting-fp3-files Summary: We are talking about the .FP3 format, which is used for ready-made reports in business applications, and the ability to convert such files to various formats using FastConverter. We are talking about the .FP3 format, which is used for ready-made reports in business applications, and the ability to convert such files to various formats using FastConverter. FP3 is a format for ready-made reports generated using FastReport report generators, integrated into various business applications. A file in this format can be generated by different programs, such as CRM or ERP. To easily convert it to any preferred format, use the FastConverter .FP3. FP3 is a format for ready-made reports generated using FastReport report generators, integrated into various business applications. A file in this format can be generated by different programs, such as CRM or ERP. To easily convert it to any preferred format, use the FastConverter .FP3 . It allows you to convert .fp3 files to PDF formats versions 1.4, 1.5, 1.6, and 1.7, PDF/A (1, 2, 3), RTF, XLSX, XML, DOCX, TXT, CSV, PPTX, HTML, JPEG, BMP, PNG, TIFF, EMF, SVG, Open Document Format (ODT, ODS, ODP), and more. Both single file conversion and batch conversion are possible. How to Convert a File from .fp3 to PDF Step 1: Install FastConverter .FP3. You need to download and install FastConverter .FP3 using this link . After installation, launch the program. Step 2: Opening an FP3 file. Go to the "File" menu → "Open," then select an FP3 format file and click "Open." Step 3: Converting FP3 to another format. After loading the file, click "File" → "Save As." A wide variety of supported formats for exporting the document will become available to you. In the "Target Format" field, select the desired format (PDF, DOCX, XLSX, HTML, PNG, etc.) from the list provided. Step 4: Final file location and name. Specify the folder and file name for saving in the "Target File" field and click "Save." After the conversion is complete, the file will be available in the specified directory in the new format. For any questions, please contact our support team at support@fast-report.com . Tags: VCL, Export, Converter, Data filtering ### How to optimize the size of a report file in PDF URL: https://www.fast-report.com/blogs/optimize-size-report-file-pdf In this article we are going to talk about PDF export in FastReport.Net. That is, the size of a file of an exported report. The size of the final file is affected by many factors: image quality, embedded fonts, fonts in "curves", background image, etc. Let us take a close look at the export settings window: First of all, you can set the PDF standard, and this affects the final size because PDF / A and PDF-X standards necessarily include embedded fonts. The option "Embedded fonts" allows you to include fonts used in the report into the final document. This slightly increases the size of the final file, but ensures that the text is displayed in the same form as in the report. If the font style is not important, then you can skip this option in order to reduce the size of the file. Option "Background"  includes the background of the report in a PDF document. It also increases the size of your document. The option "Text in curves" enables a mode for drawing characters using vector primitives (TrueTypeFonts). This ensures that the view and the aspect ratio of the characters are preserved when scaling. However, this option significantly affects the size of a PDF document. Using this option is justified when printing a document in large formats, for example, on plotter. Now let us consider the options, that are related to graphics. Color space: RGB or CMYK . There are two types of color formation. The first type is used in television, the second one - in printing. Using the CMYK scheme, it increases the file size. If it is important for you to keep the correct colors when printing, you should use this option. Option " Original Resolution". This option allows to save images in the original resolution. Based on the principle of "originality", an image in a report cannot be rotated, only scaling is allowed. This option is suitable if you want to transfer original images, using a PDF document. It can be used in printing. Depending on the resolution of the original image, this option can significantly increase the size of the final PDF document. Option “Print Optimized”. Fast Report uses images from reports, when creating a PDF document. In addition to bitmap, there are some objects that are converted to images during exporting to PDF. This includes barcodes, maps, charts and some other objects. By default, all these objects are rendered in the screen resolution. This leads to decrease in detail, when your document is zoomed in, and it is also noticeable when printing on paper. In addition, this can lead to poor legibility of barcodes by scanners. To avoid this problem, the " Print Optimized" option is used. When you turn it on, the above objects are drawn on the canvas, which is several times larger than a normal screen. Then these images are placed in a PDF document. This solves the problem of legibility of barcodes and the appearance of diagrams and maps. Images are formed at a higher resolution, so they have a margin for visualization when scaling. The disadvantage of this method of rendering images is their large size, which increases the size of your PDF file. The "Jpeg Compression" option. This option, unlike all the others, is designed to reduce the size of the resulting document due to deterioration in the quality of images. And you can set the percentage of image quality, unlike the original one. This option can be used if the original quality of images in the document is redundant for you. It is no use storing, for example, a high-quality photograph in a document, if it occupies, for instance, a quarter of a page. You can greatly reduce the size of the document due to the images. I am going to display the results of measuring file sizes with different PDF standards and options. For this, a demo report Simple list from the delivery of FastReport.Net has been used. Each measurement was carried out with one option enabled, no combinations. Let us take a close look at the sizes of PDF files in kilobytes: Standard Without options Embedded fonts Background Text in curves RGB CMYK Original resolution For print Jpeg compression 95 Background, color and texture PDF 1.5 424 550 425 1652 424 438 627 4332 112 437 PDF/A - 558 558 - 558 944 760 4465 245 570 PDF-X - 551 551 1652 551 952 756 4450 238 564 As it was mentioned above, PDF / A and PDF-X have the default fonts already implemented, so they are not in the first column. If you compare all three standards with embedded fonts, then you will see, that the largest size is a PDF / A. As you might have noticed, the enabled Background option did not affect the size at all, as the Simple List report does not have a background. Some separate measurements have been made, changing the background in the report and getting excellent numbers (last column). The next option "Text in curves" is not available for PDF / A, this is due to the standard. For PDF1.5 and PDF-X, the file size is identical and exceeds the number of the previous columns by three times. Here it is worthwhile to think whether this option is necessary to you. The RGB color space is selected by default, so the size is the same as the size of the first (second) column. And for CMYK, the file size is larger, especially for PDF / A and PDF-X. This is due to the use of the ICC color profiles. Now the "Original Resolution" option. A PDF document contains original drawings from the report. Among three indicators in this column, the smallest one is PDF 1.5. But this is only because the other two have embedded fonts. So, the values of all the columns are approximately the same. This applies to the other parameters. The PDF file 1.5 is less than exactly the amount of embedded fonts. Now look at the "For printing" column. The file size is 8 times larger than the initial file (without options)! We already know that this is due to the high resolution of the images in a document. It was written above, that the Jpeg compression can significantly reduce the file size. For PDF 1.5 this is 112 kilobytes against the initial 424. Almost 4 times less! And if our report contained only pictures, this indicator would be even greater. From the table above, it is clear which of the options should be used with caution. For example, the options "For printing" and "Text in curves" are not included without special need. Using embedded fonts does not greatly affect the size of the document, but it is useful for preserving the intended type of a document. In reports that does not require quality graphics, as it is more appropriate to apply the Jpeg compression. And the color scheme CMYK is appropriate to be used if your report is intended to be printed and it contains photographic drawings. Tags: .NET, .NET, FastReport, FastReport, PDF, PDF, Report, Report ### How to pass a connection string in the web report FastReport .NET URL: https://www.fast-report.com/blogs/pass-connecting-string Summary: The article describes how to transfer the connection string for the data source to the FastReport .NET report. The article describes how to transfer the connection string for the data source to the FastReport .NET report. The article describes how to transfer the connection string for the data source to the FastReport .NET report. Sometimes I'm having a situation where you need to set up a web report to another data source. This may be necessary if the report was developed with the use of the test database, or a database simply "moved" to another location. Or maybe the other way around you need to connect a report to the test data. Either way, the ability to reconfigure the connection string is very useful. In FastReport .NET do it very simply. And I'll tell you how to do it. Let's take the example of ASP .NET Core app. Let me remind you that our task is to transfer from the client part of the connection line to the report. There are two ways to do this: transfer the setting to the report and in the report script to override the connection line, or override the connection line directly in the web controller of the app. The second way is more rational. That's what I'm going to show you. The controller will use the method Index. This is where we will create a report object and assign a new connection string. Therefore, the method will take a parameter - the connection string. ``` public class HomeController : Controller { public IActionResult Index(string connstring) { WebReport webReport = new WebReport(); if (connstring is null) { webReport.Report.Load("reports/Empty.frx"); } else { webReport.Report.Load("reports/Master-Detail.frx"); webReport.Report.Dictionary.Connections[0].ConnectionString = connstring; } ViewBag.WebReport = webReport; return View(); } } ```  Index method takes parameter Constring, which is initially at startup is equal to null. To report a Web object is not sprinkled with errors when displaying the page, you need to download it to the report template. Since the connection string is not yet known, then let it be a blank template. When the connection string is set, we load the desired report template and redefining it in the connection string. Everything is very simple. If the report template initially has no connection to the data source, you can add it. Here is an example to connect to a database MSSQL: ``` RegisteredObjects.AddConnection(typeof(MsSqlDataConnection)); MsSqlDataConnection sqlConnection = new MsSqlDataConnection(); sqlConnection.ConnectionString = connstring; sqlConnection.CreateAllTables(); webReport.Report.Dictionary.Connections.Add(sqlConnection); webReport.Report.Load("reports/CoreMSSQL.frx"); ```  The Index method should have an appropriate view. Add the following code: ``` @{ ViewData["Title"] = "Home Page"; }
@await ViewBag.WebReport.Render() ```  Here we used a form that refers to the Index method. It has a text field with the name and constring button. The contents of the text field will be passed as a parameter to the method. Now let's see what we've got: Initially, the connection line was not set, so the blank report template was uploaded. Let's try to enter the connection line to the xml database: «XsdFile=;XmlFile=C:\\Users\\Dimon\\source\\repos\\PassConnectionstring\\PassConnectionstring\\reports\\nwind.xml» Now we get the report: This way you can always get out of a situation where the report cannot connect to the data source, because of its inaccessibility. Tags: .NET, .NET, FastReport, FastReport ### How to pass parameter into report through URL URL: https://www.fast-report.com/blogs/pass-parameter-report-url Working with reports on the Internet, there is a need to transmit the values of any parameters. This, for example, can be data for filtering lists or customer information. It would be convenient to pass parameters using the URL (Universal Resource Locator) when you call the web form with the report. It is quite easy to do this. Let's consider the simplest example. In the report template, there are two parameters: Param1 and Param2 of type string: You need to pass the values for these parameters using the URL. Create a web application ASP.Net WebForms. We place a WebReport component on a page. Add the created report template to the project. Right-click on the folder App_Data and select «Add-> Existing Item ...». Then we find the report file on the hard disk. Now go to the C # code page. First of all, we add libraries:  ``` using FastReport.Web; using FastReport; ```  I used the Load page event, because at this stage the report is not yet displayed: ``` namespace URLParams { public partial class About : Page { protected void Page_Load(object sender, EventArgs e) { //Get parameters from URL string param1 = Request.QueryString["param1"]; string param2 = Request.QueryString["param2"]; //Load report fil into WebReport object   WebReport1.ReportFile = "App_Data/URLParams.frx"; //Set value to report parameters WebReport1.Report.SetParameterValue("Param1", param1); WebReport1.Report.SetParameterValue("Param2", param2); } } } ```  Note that the parameter name exactly matches the parameter name in the report template: ``` WebReport1.Report.SetParameterValue("Param1", param1); ```  The URL looks like this: http://localhost:51838/About?param1=Hello%20World!¶m2=Good%20job! The Request.QueryString(); function finds the parameter by name and returns its value. The second option, without saving the report template in the project:        ``` protected void Page_Load(object sender, EventArgs e) { string param1 = Request.QueryString["param1"]; string param2 = Request.QueryString["param2"]; Report report = new Report(); report.Load("J:/Program Files (x86)/FastReports/FastReport.Net/Demos/Reports/URLParams.frx"); report.SetParameterValue("Param1", param1); report.SetParameterValue("Param2", param2); WebReport1.Report = report; } ```  Here, we create a report object, load a template into it, and assign parameters. After that, we assign the report object to the web report object. Forgive me for the tautology. At the same time, make sure that the property of the ReportResourceString WebReport is empty. Both methods lead to the same result: Thus, just a few lines of code allow you to use parameters passed in the URL. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### How to place several reports on one Web page URL: https://www.fast-report.com/blogs/many-reports-one-page A web - form allows placing any number of reports on one page. It is only limited by the size of the page. Moreover, each report can have its own data source. Let us examine the following example: Add the “SqlDataSource” component to the page. From the drop-down menu select “Configure Data Source” and create a connection. Choose a database: Now, choose a table: Add one more component “SqlDataSource”. Connect it to the same database, but choose another table: Now, place two objects “WebReport” on the page. From the drop-down menu of the first “WebReport” object, select "Select Data Source". Next, mark the first added source: From the drop-down menu of the object “WebReport” select "Edit Report" and create a simple report: Close the editor without saving the report. Now, place one more component “WebReport” near the first one. From the drop-down menu select the item "Select Data Source". Note the second added data source. As it was done for the previous report, open the report editor for the new object “WebReport”. Create a simple report: It might be needed to add a reference to the library “FastReport.Web.dll”, which can be found in the folder containing FastReport.Net program. If the objects fit the page, they will be displayed next to each other. If the objects do not fit one line, one or several reports will be displayed below. In this work a standard page of the project ASP.NetWebForms was used. Now, start the  application: In the picture given above, there are two reports placed together on one page. Summing up, in this article a procedure of placing several reports on one page has been illustrated. This method allows collecting reports according to their topics and might save time. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### How to pre-register of data sources before create a new report URL: https://www.fast-report.com/blogs/pre-register-data-sources In order to send a data source to a report it must previously be pre-registered in the report. Then, within the report select an available source from the list and only after that - start to work. It would be great if the data source could be available to a paste when you open the report designer. Better yet, if it was already selected in the report designer. In this case, you could immediately begin to develop a report, not worrying about the data. Such an approach would avoid the routine work during the extensive report development. Make registration of a data source and its automatic choice in a report at the launch of the designer - not a difficult task. The main problem is to keep the registered data source when creating a new report using the File menu. The essence of the method that I want to introduce - to intercept the process of creating a new report by using the File menu. Let's consider the following example. Create an application with a form and a single button. The required for work libraries are: ``` using FastReport; using FastReport.Utils; using FastReport.Data; using FastReport.Design; using FastReport.Wizards; ```  Declare the data source and then  create it: ``` private DataSet FDataSet;   private void CreateDataSource() { FDataSet = new DataSet(); FDataSet.ReadXml(Environment.CurrentDirectory + "//nwind.xml"); } ```  In this case, I use XML database from the FastReport .Net package. Create a method of data source registration : ``` private void RegisterData(Report FReport) { FReport.RegisterData(FDataSet, "NorthWind");   // activate all data sources by default foreach (DataSourceBase source in FReport.Dictionary.DataSources) { source.Enabled = true; } } ``` Here, the loop iterates through all the data sources that are registered in the report and activates them. Thus they will be immediately available in the data window. Call an event handler of starting Report Designer: ``` private void DesignerSettings_DesignerLoaded(object sender, EventArgs e) { (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction); } ```  Add a custom handler for the event of creation the new report from the File menu. Now we need to write the custom handler. It will create a new, blank report with already added data source:  ``` void cmdNew_CustomAction(object sender, EventArgs e) { Designer designer = sender as Designer;   //StandardReportWizard wizard = new StandardReportWizard(); // you can use any wizard form package BlankReportWizard wizard = new BlankReportWizard(); wizard.Run(designer);   RegisterData(designer.Report); // refresh data tree view designer.SetModified(this, "EditData"); } ```  Here we create an instance of a blank report or run the "standard report wizard." It's your choice. Then open a new report in the designer. Re-register a data source and update the list in the data tree. It remains to write the handler pressing:         ``` private void button1_Click(object sender, EventArgs e) { Report FReport = new Report(); Config.DesignerSettings.DesignerLoaded += DesignerSettings_DesignerLoaded; CreateDataSource();   // FReport.Load("myreport.frx"); // load report RegisterData(FReport); // register data before design FReport.Design(); } ```  Create a copy of the report object. Assign a handler of loading report designer, which we have written, instead of the standard one. Create a data source. Now you can download the report, or not do it. Then it will be created empty report. Before calling the designer is required to register the data. Now, with the launch of the designer, the database tables will be displayed immediately in the "Data" window. Also when creating a new report from the File menu, the data source will be added. In this article I showed you how to intercept the process of creating a new report, if to create it via the File menu. The same principle can override other actions of the designer, such as Save. Tags: .NET, .NET, FastReport, FastReport, Data Source, Data Source, Report, Report ### How to print a picture from the report by clicking URL: https://www.fast-report.com/blogs/printing-picture-from-report Summary: The article describes how to print any image from the FastReport.NET report. The article describes how to print any image from the FastReport.NET report. The article describes how to print any image from the FastReport.NET report. Many users of report generators fairly standard functionality in their everyday work. But sometimes they have to deal with non-trivial tasks, and then search for a solution may take a lot of time and effort. But perhaps the best solution is to ask the developers to get the most qualified assistance. This is done by one of the users of the generator Telerik Reporting reports. The problem was to print a picture of the object image in the report: https://www.telerik.com/forums/print-a-picture-from-a-picturebox The report may contain images not only uploaded during the design, but those that are stored binaryly in the database. Imagine a situation where you only need to print the right images from a report with many pages of data. At first glance, this is a big problem. You can export the report to HTML, copy the image you want to the graphics editor, and only then send it to print. And you can make an interactive report that will allow you to print pictures by clicking. Such solution is offered by Telerik specialists, in response to a user's question. It's a great solution. Let's look at how to solve this problem in the FastReport.Net report. In fact, there is nothing simpler. All you need to do is create an event handler clicking on the picture object: And add couple methods to the report script ``` //picture object public Image img; //printing method public void Print() { System.Drawing.Printing.PrintDocument picture = new System.Drawing.Printing.PrintDocument(); picture.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(picture_PrintPage); DialogResult result = new PrintDialog().ShowDialog(); if (result == System.Windows.Forms.DialogResult.OK) { picture.Print(); } }   private void picture_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.Graphics.DrawImage(img, new Point(0, 0)); //picture and posirion on one page }   private void Picture1_Click(object sender, EventArgs e) { img = (sender as PictureObject).Image; //We get the picture from the chosen object Print(); //execute printing } ```   As you can see, just need to get a picture of the selected object and execute printing. In the method of printing, we have created the event handler print a document, which used the resulting image. Now, when viewing a report in the viewer, you can click on the picture and send it to print: But if u do not need to print but only save on a local drive, so you can proceed in the similar way: ``` private void Picture1_Click(object sender, EventArgs e) { (sender as PictureObject).Image.Save("C:\\Temp\\image.bmp"); } ```  Thus, printing of the picture by ckick from the FastRepor.Netreport is very easy to perform. Tags: .NET, .NET, FastReport, FastReport, Interactivity, Interactivity, Report, Report, Printing, Printing ### How to print a report in ZPL format URL: https://www.fast-report.com/blogs/print-report-zpl-format Summary: The new version of FastReport .NET 2018.1 has a new export to the ZPL (Zebra Programming Language) format. This format is designed to be used in conjunction with special label printers. The new version of FastReport .NET 2018.1 has a new export to the ZPL (Zebra Programming Language) format. This format is designed to be used in conjunction with special label printers. The new version of FastReport .NET 2018.1 has a new export to the ZPL (Zebra Programming Language) format. This format is designed to be used in conjunction with special label printers. More information about ZPL can be found in the article "Page description language – ZPL". The new version of FastReport .NET 2018.1 has a new export to the ZPL (Zebra Programming Language) format. This format is designed to be used in conjunction with special label printers. More information about ZPL can be found in the article  "Page description language – ZPL" . When developing reports that are supposed to be printed on a label printer, the following points should be considered: • the page size must match the label size, you can adjust the dimensions in the report designer in the Page Setup in the Report menu; • the fields specified in the page size setting window are also taken into account - if you need to print close to the edge of the label, you need to set the fields to 0; • Each generated report page will be sent to the printer as a separate label; • When drawing up a report, you should adhere to a black and white color scheme. You can create a file with a set of ZPL commands from the preview window. The Density parameter is responsible for the print density, dots per millimeter. Density is selected depending on the printer, on which the label will be printed in the future. The Print As Bitmap check box indicates that a per-pixel copy of the report image will be sent to the printer. In other words, a black and white image of the report will be generated and saved as a picture in the ZPL format. If this checkbox is disabled, the report objects will be saved as a sequence of ZPL commands. Text values are stored in the UTF-8 encoding, barcodes (those that have corresponding analogs in the ZPL)  are transmitted as separate commands. It should be borne in mind that when printing a report as a picture, barcodes can be unreadable, even though they will look identical to what we got in the report. The reason for such barcode behavior is the wrong ratio of the line thickness due to the barcode object scaling. To avoid errors reading barcodes, you should disable the Print As Bitmap mode, but in this case, the appearance of barcodes may not match those that we see in the preview window. The Font Scale parameter is responsible for scaling the font size. If there is no label printer available or for economical purposes, you can test the saved file in the Online ZPL Viewer (http://www.labelary.com/viewer.html) - open the generated file with the extension *. Zpl in any text editor, copy it in the text box on the site and click the Redraw button. You can make additional export settings in the ZPL and send it directly to the label printer from the program code. Look at the demo program in the \ Demos \ C # \ PrintZPL folder. This is how its main form looks like: First, you select a report template, then set the export options and select the printer to print. It should be a printer that supports the ZPL command system - in our case it's a Zebra ZD420 printer. In the program code, you can see how the export settings are controlled in the ZPL format - properties of the object of the ZplExport class: Property Description ZplExport.Density Density of print depends on the printer model. Possible Values: ZplExport.ZplDensity.d6_dpmm_152_dpi, ZplExport.ZplDensity.d8_dpmm_203_dpi, ZplExport.ZplDensity.d12_dpmm_300_dpi, ZplExport.ZplDensity.d24_dpmm_600_dpi. ZplExport.CodePage A command in the ZPL language that defines the character encoding. It is sent to the printer each time before printing the label. By default it contains the string "^ CI28", which corresponds to the UTF-8 encoding. ZplExport.FontScale Scaling the font size. The default is 1. ZplExport.PrinterFont A string indicating the type of font, defaults to "A". ZplExport.PrintAsBitmap Print as a bitmap. The default is set to true. ZplExport.PrinterInit A string with a set of commands that will be sent once to the printer before the report is printed. Can be used to set orientation, override fonts, or other printer settings. ZplExport.PrinterFinish A string with a set of commands that will be sent once to the printer after the report is printed. ZplExport.PageInit A string with a set of commands that will be sent to the printer before printing each label. Sending to print is done by using the FastReport.Export.Text.TextExportPrint.PrintStream method, which passes the stream with ZPL commands to the printer's print queue. Tags: .NET, Export, FastReport, ZPL ### How to print business cards from a Delphi application URL: https://www.fast-report.com/blogs/printing-business-cards-delphi Summary: The article describes how to create business cards from Delphi application. The article describes how to create business cards from Delphi application. The article describes how to create business cards from Delphi application. Applications built in Delphi are less common than, for example, those built in C #. These programming languages are from different times. However, even nowadays Delphi and VCL can complete some of the modern tasks. There are many free and commercial libraries that can modernize even old applications. For example, the FastReport 6 VCL report generator allows you to create modern reports and export them to many formats of electronic documents and images. Sometimes, report generators are used to complete non-trivial tasks, such as printing business cards. A business card is a very resourceful invention. A small cardboard card that contains the necessary contact information about the business representative allows you to instantly share this information with another person, obviating the need for writing down the contact information during a short meeting with your business partner or customer. Eventually having a business card has become a common courtesy and even social networks and messengers can’t force them out of daily life. Generally, people have many business cards from different people in their wallets. To stand out from this variety, they spend a lot of time to make a good design. A good design attracts attention and makes it easy to read the information. Large companies order a unique business cards design for a large amount of money and print them on expensive pre-punched paper. So it goes – image. The business cards form factor and size are generally settled around the world, but there are still some slight differences from country to country. So, for example, a standard business card in the USA has dimensions of 3,2*2 inches (88,9*50,8mm), when in Germany and France business cards are higher and narrower – 85*55mm. In this article, we will look at how to quickly and easily print business cards using the FastReport VCL report generator. The user application will be created in VCL. After the FastReport VCL report generator was installed, FastReport components tabs had been added to the component palette in your development environment. Therefore, first of all let's add the frxReport component to the form which will allow us to launch the report designer, as well as the report itself. Also you need two buttons: one to launch the report designer, another one to launch reports. You can create a separate application that will run the report designer or delete this button when you finish creating the report. The thing is, that to run the report designer, we need to compile the application. Let’s add the click event for each of the buttons. The code for launching the report designer will be like this: ``` frxReport1.DesignReport(); ```  And for launching the report – like this: ``` frxReport1.LoadFromFile(‘Report file path here’); frxReport1.PrepareReport(); frxReport1.Print(); ```  This code will send a report to print when you click on the button. The Print Settings window will be displayed before printing. But if you want to preview the report first, replace the last line of the code with: ``` frxReport1.ShowReport(); ```  In addition, you can use the Open File dialog box instead of setting the hard path to the report file. Add the OpenDialog component to the form. Change the button code as follows: ``` OpenDialog1.Filter := 'FastReport VCL (*.fr3)|*.FR3'; OpenDialog1.Execute(); if Length(OpenDialog1.FileName)>0 then begin frxReport1.LoadFromFile(OpenDialog1.FileName); frxReport1.PrepareReport(); frxReport1.Print(); end ```  Let’s run the application and click on the first icon to launch the report designer. To create business cards, we need only one Data band in the report – MasterData. Select Page Settings from the File menu: In the Page Settings window, we can set the number of columns on the page. This way we can display text information as in a newspaper or magazine. But we have a different goal. We need to place as many business cards on the standard A4 sheet as possible. We need two columns if the business card width is 9cm. Set the height of the future business card in the band’s properties: Height = 5. That is, the height is 5 centimeters. Thus the size of the business card is 90*50mm. Now you can start creating the business card itself – this is a matter of your taste. To make cut lines with scissors, you can place a Text object on the band. Stretch it to fit the band and set all borders, select a line thickness of 0.1 and dash line type. If we launched the report right now we would see only one business card, when according to our calculations there should be 10. Just set the RowCount property for the MasterData band. As a result, you will get the following report template: Now you can save it and close the designer. Using the second button, select the saved report and print it (if you used the print option in the code). If you chose the report preview (ShowReport), you will see the page with business cards: That’s all. Simple and, most importantly, fast! In ten minutes, we gave our program the ability to display business cards on the screen or immediately send them to print. However, from the report preview window you can print using the corresponding button and export the document to one of the following formats: PDF, DOC, HTML, HTML5, SVG, RTF, XLS, XML, BMP, JPEG, TIFF, CSV, TXT (for matrix printers), GIF, ODS, ODT, Excel and others. Tags: VCL, VCL, FastReport, FastReport, Report, Report, Printing, Printing, Delphi, Delphi, Business card, Business card ### How to print envelopes from the address list URL: https://www.fast-report.com/blogs/print-envelopes-address-list As a follow - up to the previous article about wedding invitations, I would like to talk about the ways how to print envelopes from the address list in a CSV file.  Let us suppose, you have a list of people's names and their email addresses. You would like to send them letters with invitations to the wedding. Filling a big number of envelopes manually is a time-consuming task. So, how to automate this process? With FastReport you can create labels for envelopes with people's names and addresses. Everything that is needed is to paste the labels on the envelopes and send your letters. First, we need to form a list of three columns: "Name", "Address" and "Postal code". It is worth doing in an Excel spreadsheet as it is convenient. Then, save the file in CSV format: Now create a new report. We will use the master of labels: In the label wizard click the "Custom label" button: Select a paper size - DL envelope: Set a number of rows and columns to 1. Also, turn on the landscape orientation option and swap the width and height of the label: Now we have a label template, that can be glued to a standard envelope of the size 110x220mm. Add a new data source in the report. Mark the option "Field names in the first line": Next, mark the table with three fields: Create a simple template: At the top left there is a sender's address. At the bottom of the page on the right there is a recipient's address. Run the report in preview mode: In this article we have introduced the procedure of producing labels for the postal envelopes. After these accessible steps one should only print them and send. Tags: .NET, .NET, FastReport, FastReport, Desktop, Desktop, CSV, CSV, Printing, Printing ### How to print one page of the report in several copies URL: https://www.fast-report.com/blogs/print-page-report-code Summary: We are talking about the individual settings for printing your report from our own application with the FastReport .NET library. We are talking about the individual settings for printing your report from our own application with the FastReport .NET library. We are talking about the individual settings for printing your report from our own application with the FastReport .NET library. If you need to print particular pages of the report in several copies, we have to use an encoding. You can configure printing properties from the user application code, as well as manually in the print dialog box. This enables you to choose particular pages of the report and set a number of copies. However, the thing is that you can set the number of copies only of all pages to be printed. That’s why we’ll have to split the printing procedure into steps to reach a goal. Let’s say that you need to print three copies of the second page and one copy of the rest of the pages. So we’ll split the procedure into two steps: printing the second page and the rest of the pages. ``` //We create a report var report = new Report(); //We create a data source DataSet data = new DataSet(); //We download the data from the file data.ReadXml("~/nwind.xml"); //We register the data source in the report report.RegisterData(data, "NorthWind"); //We download the report template report.Load("~/Master-Detail.frx");   //We prepare the report report.Prepare(); //We choose the second page of the report report.PrintSettings.PageNumbers = "2"; //We set a number of copies report.PrintSettings.Copies = 3; //We hide the print dialog box report.PrintSettings.ShowDialog = false; //We sent the report to print report.Print(); //We repeat the same steps for the rest of the pages of the report report.PrintSettings.PageNumbers = "1, 3, 4, 5"; report.PrintSettings.Copies = 1; report.Print(); ``` Thus, we can print the necessary pages apart from the rest. The only disadvantage of the above-mentioned code is that the printed pages will be out of order. If you still need to print the pages in order, you’ll have to split the procedure into three steps: printing the first page, the second page and the rest of the pages of the report.   Tags: .NET, .NET, FastReport, FastReport, Report, Report, Printing, Printing ### How to programmatically set the default email client settings for sending emails from FastReport.NET URL: https://www.fast-report.com/blogs/report-delivery-email-by-default Summary: One of the way of report delivery is email distribution. We will show you hot to pre-program it by default. One of the way of report delivery is email distribution. We will show you hot to pre-program it by default. One of the way of report delivery is email distribution. We will show you hot to pre-program it by default. Like many other report generators, FastReport .NET allows you to send a report via email in any of the available export formats. You can send an e-mail either in the report preview mode or in the custom application code. To send an email you need to set the sender, recipient settings. On the Account tab, you set the email client settings for sending emails and the sender's address and name. On the Email tab you set up the recipient's address, email subject, email text, and most importantly the report format to be attached to the email. When the email is sent, the report will be automatically exported in the specified format and attached to the email.  Any settings you set will be saved as the default settings when you send the email, and you can use them in the future. The same is true when you initialize the email settings values in the application code in the EnvironmentSettings component. The settings will only be saved once the email has been sent. But what if you want the default email settings to be applied immediately, without having to send an email to save them? This might be useful if you are using the report generator in a multi-user application and want to make mail presets so that users only have to enter the recipient address and click the send button. The default email settings are located in the FastReport .NET report generator configuration file, which is usually located at the specified path  ``` C:\Users\User\AppData\Local\FastReport\FastReport.config. ``` Open this file in a text editor and you will see an XML. Find the AccountSettings section and, if you have already sent mail from preview mode, you will see the default settings for sending mail. To edit this file in your custom application use the following code: ``` XmlItem xi = Config.Root.FindItem("EmailExport").FindItem("AccountSettings"); // save account info xi.SetProp("Address", "a@a.com"); xi.SetProp("Name", "Name"); xi.SetProp("Template", "template"); xi.SetProp("Host", "host"); xi.SetProp("Port", "25"); xi.SetProp("UserName", "UserName"); xi.SetProp("Password", "Password"); xi.SetProp("EnableSSL", "1"); // "0" if SSL needs to be disabled ``` In this code, we read the configuration file and found the section for the mailing settings. And then - we set the settings. If this section or its properties are not in the configuration, they will be added automatically. This way we can create pre-configured mail settings for our users. Tags: .NET, .NET, FastReport, FastReport, Email, Email ### How to protect your PDF? URL: https://www.fast-report.com/blogs/protect-your-pdf Summary: How to protect PDF from unauthorized access and editing. How to protect PDF from unauthorized access and editing. How to protect PDF from unauthorized access and editing. On the Data protection day, we decided to prepare an article about the PDF documents protection. PDF has become one of the world standards today; it’s a good idea to understand how to protect it. From what do you need to protect a PDF document? From unauthorized editing. From unauthorized access. Protecting a PDF file from editing First, I would like to say that changes can be authorized and even desirable. Often a PDF file is sent to be signed (and standard tools such as Adobe Acrobat Reader allow you to sign such documents), or it is a questionnaire document with built-in editable fields and interactive forms. There are many articles about working with PDF files in FastReport, and some of them are about creating PDF files with interactive forms: Saving a report in PDF/X format Configure options of Acrobat PDF viewer when exporting from FastReport.NET Interactive forms in PDF export FastReport .NET 2018 How to make a PDF from Delphi / C++Builder / Lazarus How to make a PDF document from a text file But there is another type of PDF document – those that cannot be edited, and if some bad person tried to edit something, we would know about it. First of all, these are documents with an electronic signature which certifies the validity of this particular document. Two types of signatures became available in FastReport .NET version 2019.3.2. 1) Signature field. To add it to your document, you need to add the Digital signature object. When this control is placed on the report page, it looks like this: It is not displayed in report view mode. Its functionality is limited to PDF export only, which means that you will see this field when viewing a PDF file in Acrobat Reader. When exporting to PDF, enable the “Sign document” option: 2)  Invisible signature. For an invisible PDF export signature, you do not need to add a Digital Signature control to the report page. The only thing you need to do is enabling the “Sign document” option in the export settings: You can fill in the Location, Reason, and Contact Info fields. Next, you need to select a signature certificate file in .pfx format and set a password for the certificate. After exporting the report, you will see a hidden signature in the PDF document, but it will not be filled in. It is important to know, that this signature is not directly visible in the document.  You can read more about digital signature in our article. In addition, there are so-called “archive” formats PDF/A. Such documents contain all information inside them (it doesn’t “pull” images, fonts and any other data from external sources that may be compromised or removed). Moreover, the document properties state that it is a non-editable format. Can you open it for editing? Everything is possible, but in this case, it will lose its archive type traits, that is, we will clearly see that the document has been changed. The article " How to export report in PDF / A format " describes the features and capabilities of this format in detail. Protecting a PDF file from unauthorized access This article is not intended to provide an overview of methods for cracking protected PDF files (it is a separate topic. For example, here professionals from Elcomsoft describe their approach ). As a format, PDF contains built-in password protection mechanisms. A password allows you to protect a document from one or several actions at once: from opening, from printing, from editing, from copying text, images, and other information, from screen readers’ access. Modern PDFs use AES (Advanced Encryption Standard) encryption for password protection with 128-bit keys, which complicates the task of finding a password (but does not make it impossible!). With 128-bit encryption, the number of keys is 2 128 .  FastReport .NET: FastReport VCL: In the “Security” tab you can configure such fields as: Owner Password User Password You can additionally prohibit printing a document, changing it, copying text or graphics, adding or changing text notes. You can also protect a document using certificates (with public and private keys for digital singing and opening the document). Public key is included in the certificate and used to encrypt information, while the private one is used to decrypt and digitally sign the document. It’s too early to talk about 100% protection. Nevertheless, today it is perhaps the most secure electronic document format. I hope this article will help you provide your users with PDF security tools and make them more security aware. Anyways, there is no 100% protection; the document protection is just a small part of an integrated security system, which should include not only technical, but also organizational measures. We also recommend reading . Tags: .NET, VCL, FastReport, PDF ### How to register data sources in web reports FastReport .NET URL: https://www.fast-report.com/blogs/register-data-sources-web-reports-net To use a data source in web - reports you need to register it. This can be done in two ways that will be illustrated in this work. Registering a data source using the popup - menu of “WebReport” component. Use the project ASP.Net. Add the component “SQLDataSource” to the form: 2. Select “Configure Data Source” from the component's popup – menu: 3.  Create a connection. Select the type of the connection and database: 4.  Select the desired data table and fields; 5.  Add “WebReport” component from toolbox to the form; 6. From the popup - menu of the component select "Choose Data Source”: 7. Select the data source you previously added: When everything is done, the data source can be used in the report. Registering a data source using the function “RegisterDataSource”. Copy and repeat the first 5 points of the previous example. Next, follow the instructions: 6. Select “WebReport” component on the form; 7. In the property “Inspector” switch to “Events” (Events); 8. Add the “StartReport” event; 9. Write the following code: ``` DataView view = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty); DataTable table = view.ToTable(); DataSet ds = new DataSet(); ds.Tables.Add(table); WebReport1.RegisterData(ds, "Connection"); ```  So, the data logging function “RegisterData” was used in this work. “DataSet” and its name were used as arguments. Firstly, “SqlDataSource” was created to receive data from it in the form of “DataView”. Then, the data was transformed into a table, which was added to “DataSet”. Summing up, in this article two ways of registering data in a web report have been illustrated and examined. The conclusion drawn from the analysis indicates that the first way is the easiest and the most convenient. With this method it is possible to register and create a data source to run an application that allows generating reports with this data. However, the second method is also useful, when you have a desktop application and it is needed to publish reports on the web. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport, Data Source, Data Source ### How to remove object intersection in FastReport VCL URL: https://www.fast-report.com/blogs/remove-object-intersection-vcl Summary: New tools to improve your reports: highlighting the intersection of objects, correct export to XLSX, auto-directional mode. New tools to improve your reports: highlighting the intersection of objects, correct export to XLSX, auto-directional mode. New tools to improve your reports: highlighting the intersection of objects, correct export to XLSX, auto-directional mode. In the new version of FastReport VCL 2022.2, we have added new functions to the report designer that will help you detect the most common errors when developing report templates as well as fix them. FastReport VCL is a report generator with a free layout of objects. This means that objects can be arranged in any order, including overlapping other objects. These objects can be successfully converted to free object layout export formats but can cause problems in documents with a rigid structure. An example of such a format would be an XLSX table. Intersected objects cannot be exported due to the format's strict tabular structure. You can learn more about the correct design of a report in the user guide. In this article, we will look at how to identify such problems in the finished report, and what tools can be used to quickly fix them. Problem. Finding object intersections First, you need to open the report in the report designer. The example uses a modified report from the main demo application. At first glance, there are no problems. Let's see how the rendered report looks like in the preview. Problems can become apparent with tabular exports such as XLSX. We see that extra columns appeared in the table during export and the contents of the object were cut off. It is difficult to detect such errors even in a report that has been running for a long time. Let's return to the report designer. Starting from FastReport VCL 2022.2, there is now a button on the standard toolbar in the report designer enabling a new feature - "Highlighting the intersection". Press the button to highlight the intersection of objects. Now we can see which objects overlap and where they intersect. Solution It is quite simple to fix errors in a demo report because the intersections are clearly visible, and there are not so many report objects. Let's just move the problem objects. How to speed up fixing a report with many objects?  In this case, another feature from the release of FastReport VCL 2022.2, Auto Guides, can help the report developer. In this mode, extension lines are automatically generated for all four points of each object in the report. Importantly, this mode does not replace extension lines added by the user on the report page but supplements them. You can change this mode with the help of the button on the upper line of the workspace of the report designer. There are 4 modes in total: Automatic leader lines disable d –user-added extension lines are used. The button icon in this mode looks like  . Automatic leader lines enabled –extension lines are created automatically for each object. The button icon in this mode looks like  . Only horizontal automatic leader lines are enabled - extension lines are created automatically for each object only in the horizontal plane. The button icon in this mode looks like   . Only vertical automatic leader lines are enabled - extension lines are created automatically for each object only in the vertical plane. The button icon in this mode looks like   . Press the button and turn on the mode of automatic extension lines with full display . Now you can move the extension lines with problem objects. In this mode, problem areas are clearly visible, which can show up when using table export filters. But these are not all the features of the "auto-guides" mode. In this mode, the report designer can add any of the "auto guides" to custom page guides. It is enough to move the guideline pointer on the ruler and click the plus sign. This allows you to create custom guides that will be used for alignment when new objects are added to the report. Of course, "auto guides" can be removed from custom guides in the same way as when added. Move the guideline pointer on the ruler again and press the minus sign. This functionality offers the report developer a whole range of beautiful and intelligent reports that can be exported to any data format. Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, Designer, Designer, Report, Report, Delphi, Delphi, XLSX, XLSX ### How to remove unnecessary objects from the preview window toolbar URL: https://www.fast-report.com/blogs/remove-objects-preview-window-toolbar Sometimes you may need to limit the functionality of the report, for example, remove unnecessary export formats from the list in the preview mode. This can be done in your application code. Let’s write a function to delete a report object:   ``` private void RemoveRegistered(Type type) { ObjectInfo obj = RegisteredObjects.FindObject(type); RegisteredObjects.Objects.Items.Remove(obj); } ```  As you can see, first you need to find the specified object in the collection of registered objects. Then delete the object. Now let's see how to call this method:       ``` RemoveRegistered(typeof(FastReport.Export.LaTeX.LaTeXExport)); RemoveRegistered(typeof(FastReport.Export.Zpl.ZplExport)); RemoveRegistered(typeof(FastReport.Export.Svg.SVGExport)); RemoveRegistered(typeof(FastReport.Export.Dbf.DBFExport)); ```  That is, to remove the registered object, you just need to pass the object type. Important note! You must delete objects after creating the Report object, otherwise, when you delete, you will search for objects in an empty collection. Another way to disable objects is also possible: ``` private void DisableRegistered(Type type) { ObjectInfo obj = RegisteredObjects.FindObject(type); obj.Enabled = false; } ```  In this case, you can both turn off and include objects by writing one more function: ``` private void EnableRegistered(Type type) { ObjectInfo obj = RegisteredObjects.FindObject(type); obj.Enabled = true; } ```  In this way, you can organize the management of the display of objects in the report preview menu. We considered deletion of objects using the example of exports, but this is also true for all other registered objects (functions, transports, etc.). Tags: .NET, .NET, FastReport, FastReport, Preview, Preview, Toolbar, Toolbar ### How to save a report to cloud services using FR VCL 6 URL: https://www.fast-report.com/blogs/save-report-cloud-services-vcl We usually download and save reports on a local drive when working with a desktop application. An alternative to this is the client server application. The reports will be stored on a remote server. But, what if there is no way to deploy a remote server, and you want to store reports on a shared resource? Of course, you can manually migrate your reports to web repositories. However, FastReport VCL 6 offers us a much more convenient way - storing reports in cloud services. Cloud services have become popular due to their reliability and data security. Almost every modern cloud storage provide OAuth2 authentication, which greatly simplifies access to data for client applications. Ultimately, you get a reliable data storage with the ability to access third-party data. What does FastReport VCL 6 offer? It gives an ability to save reports in four cloud services: DropBox, GoogleDrive, OneDrive, Box.com. And you can save not only the prepared report in the format. Fp3 or export, but the report template itself in the .fr3 format. Access to the data is performed by application. I want to consider two examples of creating such applications: By the example of Google Drive . 1)      You need to create a project beforehand. You can do this in the Developers Console: https://console.developers.google.com/ Click on the title "Create application". Then enter the name of the application and accept the terms of use that Google offers you. 2)      Now, in our project, you need to add the Google Drive API library. This can be done on the "Library" tab. So, select the library and click the "Enable" button. 3)      To use the connected library, we are prompted to create credentials. Click the button "Create credentials". Next, we need to choose where the API will be called from. I chose "Other, with user interface". Choose the way to access data - user data. Set the OAuth 2.0 client ID. Enter an arbitrary name (for example, TestUser) and click the button "Create Customer ID". 4)      Next we are offered to download the json file with credentials. We press "Not now".Next we are invited to download a json-file with credentials. We click "Not now". Now, in the "Credentials" tab we have TestUser. Click on this name and go to the client's credentials. Client ID and Client Secret, we will use in FastReport when saving or loading the report. The example of DropBox . To work with its API, we need to create an application on the platform of this service. 1) Log in to the web page https://www.dropbox.com. 2) Create a new application here: https://www.dropbox.com/developers/apps/create. Choose the type of application - Dropbox API. 3) In the second step, select the type of access - access only to the application folder or to the entire repository. We choose the first option. 4) In the third step, specify the name of the application. Here it is necessary to try not to repeat the existing one. 5) On the application settings page we see App Key. On this page, we need to add Redirect URIs. After authorization in DropBox it is necessary to return to your web application. To do this, you need to specify a Redirect URI. But, since I do not have a web application I am giving a link to the local computer - http://localhost. Now you can access the DropBox from FastReport. So, we looked at two examples of creating applications with the cloud storage API. For the OneDrive and BOX.com services, you will also need to use the API through the application. Now let's see how to save and load reports from cloud storage. As you remember, we have two save formats available - fr3 and fp3. The first is the format for storing the report template, the second is the format for storing the prepared report, that is, the template filled with data. To save the report template (fr3) to the cloud service, use the File-> Save As menu. Next, choose one of the available cloud services: 1)      If you select Dropbox, the following window appears: Here we enter the application key, if necessary, select the save directory in your Dropbox. Next, you can enter your login and password from your Dropbox account, but the security will suffer. So, we ignore this option and click OK. The Proxy tab contains the Proxy settings accordingly, if necessary: After that, we will be offered to authorize in the DropBox service and allow the application to access the data. As a result we receive a window with contents of a folder of our application in DropBox. For the time being it is empty. Let's save the report:  2) If you select GoogleDrive, you will get the window: Here everything is clear, enter the client ID and secret code that you received when creating an account in the project on GoogleDrive. Click Ok. In this case, the application will request permission to access the data. We press the "Allow" button and get the contents of the repository: For clarity, the folder already has one saved report. 3) If you chose OneDrive, when saving, you will see this window: It reminds us of the connection window to DropBox. Here an application identifier is required as well. After authentication, we will get a file saving window: 4) If you chose BOX.com. In this case, we'll see a connection window similar to GoogleDrive: Enter the client ID and secret key. After authentication, we'll see the save file: To open a report saved in the cloud service, we also use the File-> Open menu: Here, the forms of connection to the services are absolutely the same as when saving. Only the last window differs. Now this is the file selection window: Now about saving the file of the prepared report. To do this, you must run the report in preview mode. To save, use the diskette icon: You will not be able to open the report in fp3 format. Perhaps in the next versions this option will appear. To save the export to the cloud service, click on the diskette icon and select the desired export format. On the export settings form, choose where to save it: Tags: VCL, VCL, FastReport, FastReport, Web Storage, Web Storage ### How to save report in HTML into ZIP URL: https://www.fast-report.com/blogs/save-report-html-zip When I was developing another PHP application, it was necessary in the financial statements. Previously I'd had great experience with FastReport.Net report generator. So I decided to use it for this purpose too. Unfortunately, the option with the Web-based reporting was irrelevant since we did not use ASP .Net in this project. The idea was born to use a REST web service that will build a report and give it to a php application. I will explain development of the service later. And now let's focus on the process of report building and preparation to be sent via REST. For simplicity, I'll demonstrate it on an example of a console application. We need FastReport libraries: ``` using FastReport; using FastReport.Export.Html; using FastReport.Utils; ```  I will pass the report title via the parameter: ``` static void Main(string[] args) { if (args.Length > 0) DoExport(args[0]); else Console.WriteLine("Set the report file (*.frx) as parameter"); } ``` Create the method of exporting report to HTML and archiving in ZIP: ``` private static void DoExport(string reportFile) { if (File.Exists(reportFile)) { Config.WebMode = true; // set WebReport mode for disable all progress and enable thread-safe code using (Report report = new Report()) // create new report object { report.Load(reportFile); // load report from file report.Prepare(); // prepare report using (HTMLExport html = new HTMLExport()) // create new export object { html.SaveStreams = true; // enable saving in streams report.Export(html, (Stream)null); // set target stream in null - we have multiple streams inside export object if (html.GeneratedFiles.Count > 0) { ZipArchive zip = new ZipArchive(); // create ZIP object for(int i = 0; i < html.GeneratedFiles.Count; i++) zip.AddStream(html.GeneratedFiles[i], html.GeneratedStreams[i]); // add streams with file names in zip zip.SaveToFile(Path.GetFileNameWithoutExtension(reportFile) + ".zip"); // write zip in file } } } } else Console.WriteLine("File " + reportFile + " not found!"); } ``` Here it should be noted about Config.WebMode property - it enables the "quiet" mode of reporting without issuing any dialogs and progress bars. In this example I pack one report, but there's no reason why not to put a few pieces in archive. Now start the application in the console with the parameter. The parameter specifies the path to the report. And get a zip-file in the folder with the application. The archive is a packed report in html format. Thus, using a web service we can pass into our web application an archive with one or more reports. Tags: .NET, .NET, FastReport, FastReport, HTML, HTML ### How to select the top values in a matrix URL: https://www.fast-report.com/blogs/selecting-top-values-in-matrix Summary: Writing SQL query for selecting the top values in a reports matrix. Writing SQL query for selecting the top values in a reports matrix. Writing SQL query for selecting the top values in a reports matrix. The article is relevant until version 2022.1. FastReport .NET has a great tool for displaying data as an integrated table or matrix. Many of us would like to improve the functionality of matrices, for example, with such a useful option as a choice of N top values. It seems as simple as selecting the N top lines from a data source. However, besides making a selection of the top values, it is necessary to group all the rest data into a single recording, which is the main problem. This cannot be done with the built-in tools of the Matrix object. Thus, we have to prepare the data so that they contain both the top values and the sum of all the rest values. This means is suitable for SQL databases. Everything we need is to write an SQL query. Assume we produce a list of employees’ wages by years. In the data source editor, we may use an SQL query, if an SQL database is used. This is how the SQL query, which will select 2 top values and the sum of all the rest values, will look like: ``` SELECT top 2 name, year, month, salary FROM crosstest ORDER BY salary UNION SELECT 'Other' AS name, year, month, SUM(salary) FROM crosstest WHERE name NOT IN (SELECT Top 2 name FROM crosstest ORDER BY salary) GROUP BY name, year, month ``` Here we combine two queries with a union operator. In the first query, we choose the top values, in the second query — the sum of all remaining values. As a result, we obtain the following matrix: As you can see, by using various techniques of preparing initial data, we can obtain the desired effect, even if such functionality had not been initially provided in the report generator. Tags: .NET, .NET, FastReport, FastReport, SQL, SQL, Filtering, Filtering, Matrix, Matrix ### How to send a report to Email from a database in .NET Core application URL: https://www.fast-report.com/blogs/emailing-reports-netcore-app Summary: Let's take a closer look at how to send a report to email from a database in a .NET Core application. Find more usefull tips and articles in our blog. Let's take a closer look at how to send a report to email from a database in a .NET Core application. Find more usefull tips and articles in our blog. Let's take a closer look at how to send a report to email from a database in a .NET Core application. Find more usefull tips and articles in our blog. We have already discussed how to send a report to a group of emails from the database. In this article we will do the same, but for a web application on the .NET Core MVC platform. Let me remind you that our task is to get a list of email addresses and user names from a certain database and, send emails with an attached report to these mailboxes. Let's use the MS SQL Server database. Create an ASP application .NET Core MVC application. First of all, add the necessary libraries to the project using NuGet Packages Manager. In the general nuget repository we find and install packages: Microsoft.EntityFrameworkCore; Microsoft.EntityFrameworkCore.Relational; Microsoft.jQuery.Unobtrusive.Ajax; jQuery. From the local repository - the Nuget folder in the FastReport.Net installation directory, install the packages: FastReport.Core; FastReport.Web. And now we will create the context of work with the database and the class-essence of the table. To do so, open the package console Nuget. Open the Tools -> Nuget Package Manager -> Package Manager Console menu. In the console, type the following command: scaffold-dbcontext "Server=localhost;Database=testdb;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models Of course, here you have to specify your connection string to the database server and a folder for the data model (Models by default). PM> scaffold-dbcontext "Server=localhost;Database=testdb;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models After that, in theory, two files should be added to the Models folder: the context and the table entity. In my case, this is testdbContext.cs and Emails.cs. However, an error may occur during file generation: error MSB4064: The "SharedCompilationId" parameter is not supported by the "Csc" task. There is a settable public instance property. If this happens, add one more package in the NuGet package manager: Microsoft.Net.Compillers Let's connect FastReport to our project right away. In the Startup.cs file, add the line: ``` public void Configure(IApplicationBuilder app, IHostingEnvironment env) { … app.UseFastReport(); … } ```  Now back to the data model. To get records from the database, we need to create the GetEmails method. Create a class facade for working with data: ``` namespace WebMailing.Models { public static class Facade { public static List GetEmails() { using (Models.testdbContext context = new Models.testdbContext()) { var emails = (from adresses in context.Emails select adresses).ToList(); return emails; } } } } ```  Let's go to the ‘HomeController’ controller. In the Index method, load the report to display it on the main page of the site: ``` using System; using System.Collections.Generic; using System.Diagnostics; using Microsoft.AspNetCore.Mvc; using WebMailing.Models; using FastReport; using FastReport.Export.Pdf; using FastReport.Export.Email; using FastReport.Web; … public IActionResult Index() { WebReport webReport = new WebReport(); webReport.Report.Load(Environment.CurrentDirectory + "/text.frx"); ViewBag.WebReport = webReport; return View(); } ```  We will add two methods of sending emails. The first one will send personal letters with the name of the client in the greeting, the second one will send one letter to a group of addresses. So, the first method is: ``` [HttpPost] public ActionResult SendMail() { Report report1 = new Report(); //Create new report object report1.Load(Environment.CurrentDirectory + "/text.frx"); //Load report report1.Prepare(); //Prepare report   PDFExport pdf = new PDFExport(); //Cteate PDF export EmailExport email = new EmailExport(); //Create Email export   List emails = Models.Facade.GetEmails(); foreach (Emails item in emails) { SendMessage(report1, pdf, email, item.Email, item.Name); } return View(); } ```  Using it, we created a report, export to PDF, export to Email. Then, in the loop, we get the records from the table and call the method of sending the letter. As parameters, we pass in the report object, export PDF, export to Email, Email address and client name. And here is the method of sending the letter: ``` public void SendMessage(Report report, PDFExport pdf, EmailExport email, string recipient, string custName) { string message = "This is test message."; email.Account.Address = "gromozekaster@yandex.ru"; email.Account.Name = "Test User"; email.Account.Host = "smtp.yandex.ru"; email.Account.Port = 25; email.Account.UserName = "Gromozekaster"; email.Account.Password = "*****"; //Your password email.Account.MessageTemplate = "Test"; email.Account.EnableSSL = true; //email addressee settings email.Address = recipient; email.Subject = "TestMessage"; email.MessageBody = custName is null ? message : string.Format("Dear, {0}! {1}", custName, message); email.Export = pdf; //Set export type email.SendEmail(report); //Send email } ```  In it, we set up an email client to send a letter. And immediately add the second method of sending one letter to a group of addresses: ``` [HttpPost] public ActionResult SendAll() { Report report1 = new Report(); //Create new report object report1.Load(Environment.CurrentDirectory + "/text.frx"); //Load report report1.Prepare(); //Prepare report PDFExport pdf = new PDFExport(); //Cteate PDF export EmailExport email = new EmailExport(); //Create Email export   List emails = Models.Facade.GetEmails(); string addresses = ""; foreach (Emails item in emails) { if (addresses == "") addresses = item.Email; else addresses = addresses + ", " + item.Email; } SendMessage(report1, pdf, email, addresses, null); return View(); } ```  As you can see, it is very similar to the previous method, with the only difference that in the cycle we receive all email addresses, and send the letter once. As an email parameter, we pass a string variable with all email addresses, but we don’t pass the client name. For both the SendMail () and SendAll () methods, we need to create views of the same name — view. Their contents are extremely simple: ``` @{ ViewBag.Message = "Report was sent"; } @ViewBag.Message ```  We just inform about sending. Let's move on to the Index.cshtml view. In it, we need to add two buttons to send letters using different methods, as well as display the report: ``` @{ ViewData["Title"] = "Home Page"; }
@await ViewBag.WebReport.Render() ```  To use ajax jquery we add a link to the jquery.min.js script. Next, add a form with two buttons and two scripts for each of them. The scripts are extremely simple - call the method from the controller and return the resulting view. At the end - we deduce the report from the Index method. Just for beauty. Let's run the application and see what our web page looks like: We send letters by different methods: And: In the first case, in the text of the letter we refer to the client by name, in the second there is none. That's all. Tags: .NET, FastReport, Core ### How to send and receive reports via Gmail in FastReport VCL URL: https://www.fast-report.com/blogs/transport-gmail-vcl Summary: Adding a new Gmail mail transport to your application and configuring it from FastReport VCL with detailed instructions. Adding a new Gmail mail transport to your application and configuring it from FastReport VCL with detailed instructions. Adding a new Gmail mail transport to your application and configuring it from FastReport VCL with detailed instructions. In this article, you will be introduced to a new sub-category of transports that became available with version 2022.2.7 and which is called “mail transports”. Now it includes 2 components with access to Gmail and Outlook. Mail transports have the following functionality: - saving and loading a report; - saving the export result. Saving means sending an email. Uploading involves the use of files attached to the letter, while the letter can be in any mail category (inbox/sent/drafts etc.). You can read more about using Outlook at the following link. Important! For the HTTPS protocol to function properly, the following OpenSSL libraries are required: libssl-3.dll and libcrypto-3.dll. These libraries can be found in the directory with the main demo application. They need to be copied to the application's folder or the system directory. Content - Adding Transport to the Application and its setting - Connecting to Gmail - The future of mаil transports Current state of transports FastReport has components called “transports”. They are required to аllow access to: - cloud storage ( Dropbox , OneDrive , Box.com , Google.Drive ); - FTP-servers; - Email (only sending messages); - mail service (Gmail, Outlook). Cloud storage and FTP servers support the following functionality: - saving and loading a report; - saving the export result; - using files (for example, pictures) when building a report. Adding Transport to the Application and its setting 1. Go to the component palette in the Embarcadero Rad Studio and expand the “FastReport VCL Internet transports” tab. 2. Select the required component and add it to the application form. You can use the context menu on the component — this will establish the connection directly from the development environment. Click on the “Edit connection” submenu. By default, transports respond only to an authorization response from a browser using port 9898. If this port is already used or you plan to use this port in the future, FastReport VCL allows you to change the port by setting the ListenerPort property. Further, we will take port 9898 by default. Now let's look at the connection steps for mail transports. Important! The user does not need to perform all of the following steps every time to authorize. This setting is done only once by the cloud services administrator. After completing all the steps, the obtained authorization data can be used by other users. Connecting to Gmail When a user wants to open (or save) a report (or export a result) using the transport, he will see the standard login dialog (if he has not logged in before). To go to the connection settings page, click on the question mark at the top right of the authorization window. This will open your default browser with the Gmail app settings page. If the user is not authorized in Gmail, an authorization page will open, where you will need to log into your Gmail account. If this account has not previously added projects to work with the Google API, then you first need to create a new project. Click on the "Create project" button. Enter a project name and click "Create". Use the “Select project” button to select the created project. Select the project you created earlier and click “Open”. Go to the “OAuth consent screen” tab. We need to select the users that can use cloud storage: internal use (only users of the organization) or for all Google accounts. Then click the “Create” button. Next, you need to fill in the application name and contact e-mail. Click "Save and continue". This step allows you to set the scope, you can skip it for Google Mail. Click on "Save and continue". The next step allows you to setup access to the application for a specific group of users. You can skip this step if you are going to аllow access to the application. Click "Save and continue". The application has been created, go to the “Back to dashboard” tab. Go to the “OAuth consent screen” tab and click on “PUBLISH APP” to open access to this application. Open the following link and enable the Google Mail API for the created project by clicking the “Enable” button. Now you need to create authorization keys, go to the "Credentials" tab. Click on "Create Credentials" and select "OAuth client ID". You should select the type of application (in our case, Desktop App ). Enter any name for the connection and click "Create". The authorization client will be created. Copy the fields “Client ID” and “Client Secret” into the corresponding entry fields of the FastReport VCL authorization dialog. Click OK. A new window should open in your default browser. The screen will prompt you to select an account for authorization. Next, we will see that Google hasn’t verified the application. Click “Advanced” and Go to the Application name (unsafe). Another dialog asking аbout access to the application will аppeаr, select access rights and click “Continue”. You can close the browser window. If the connection is successful, you will see the standard FastReport VCL file browser. This completes a successful connection setup. Now you know how to connect to Gmail in FastReport VCL. The future of mаil transports Functionally, cloud transports support all the previously mentioned features. The graphic design of mail transports during loading will be improved in further releases. So far, the graphical user interface (GUI) is used as cloud storage. Now categories and messages are implemented as folders and attachments as files. In the future, it is planned to improve the graphic component, making it more user-friendly. Functional improvements will include a search by mаil. The GUI of the send message window will also be slightly changed. We will also note the temporary feature of sending the export result. If the export generates multiple files, then each file is sent in its own email. That is, if you want to send the export result to a page-by-page PNG, then each picture will be sent in a separate email. Almost all exports to FastReport VCL generate only 1 output file (PDF, DOCX, RTF and others), most users won’t notice this. We will fix the bug in future releases. For all questions, contact our  Support . Tags: VCL, Lazarus, FastReport, Delphi, Web Storage ### How to send and receive reports via Outlook in FastReport VCL URL: https://www.fast-report.com/blogs/transport-outlook-vcl Summary: Adding a new Outlook mail transport to your application and configuring it from FastReport VCL with detailed instructions. Adding a new Outlook mail transport to your application and configuring it from FastReport VCL with detailed instructions. Adding a new Outlook mail transport to your application and configuring it from FastReport VCL with detailed instructions. In this article, you will be introduced to a new sub-category of transports that became available with version 2022.2.7 and which is called “mail transports”. Now it includes 2 components with access to Gmail and Outlook. Mail transports have the following functionality: - saving and loading a report; - saving the export result. Saving means sending an email. Uploading involves the use of files attached to the letter, while the letter can be in any mail category (inbox/sent/drafts etc.). You can read more about using GMail at the following link. Important! For the HTTPS protocol to function properly, the following OpenSSL libraries are required: libssl-3.dll and libcrypto-3.dll. These libraries can be found in the directory with the main demo application. They need to be copied to the application's folder or the system directory. Content - Adding Transport to the Application and its setting - Connecting to Outlook - The future of mаil transports Current state of transports FastReport has components called “transports”. They are required to аllow access to: - cloud storage ( Dropbox , OneDrive , Box.com , Google.Drive ); - FTP-servers; - Email (only sending messages); - mail service (Gmail, Outlook). Cloud storage and FTP servers support the following functionality: - saving and loading a report; - saving the export result; - using files (for example, pictures) when building a report. Adding Transport to the Application and its setting 1. Go to the component palette in the Embarcadero Rad Studio and expand the “FastReport VCL Internet transports” tab. 2. Select the required component and add it to the application form. You can use the context menu on the component — this will establish the connection directly from the development environment. Click on the “Edit connection” submenu. ListenerPort. By default, transports respond only to an authorization response from a browser using port 9898. If this port is already used or you plan to use this port in the future, FastReport VCL allows you to change the port by setting the ListenerPort property. Further, we will take port 9898 by default. Now let's look at the connection steps for mail transports. Important! The user does not need to perform all of the following steps every time to authorize. This setting is done only once by the cloud services administrator. After completing all the steps, the obtained authorization data can be used by other users. Connecting to Outlook When a user wants to open (or save) a report (or export a result) using the transport, he will see the standard login dialog (if he has not logged in before). To go to the connection settings page, click on the question mark at the top right of the authorization window. This will open the default browser with the Azure Application Management page. If the user is not authorized in Azure, then an authorization page will open, where you will need to sign in to your Azure account. If this account has never created an Azure app before, the first step will be to create a new app. First, you need to create a new application. Click the "Register an application" button. At this point, you must enter an application name, select supported account types, and fill in the Redirect URI. For effortless setup, in the “Types of supported accounts” property, select the third item “Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)”. You can read more about this by clicking on “Help me choose...”. If you want to use the standard port, enter "http://localhost:9898" in the Redirect URI field. Click the "Register" button. Our application will be successfully created. Copy the value of the “Client ID” field into the FastReport VCL authorization dialog. Open the “Certificates & secrets” section. Click on "New client secret". Enter a description and select an expiration date for the code. Click "Add". Copy the “Value” to the FastReport VCL authorization dialog. Click "Ok". A new browser window will open asking you to sign in to your account. Сlick "Yes" аfter authorization. This completes the successful connection setup. Now you know how to connect to Outlook in FastReport VCL. The future of mаil transports Functionally, cloud transports support all the previously mentioned features. The graphic design of mail transports during loading will be improved in further releases. So far, the graphical user interface (GUI) is used as cloud storage. Now categories and messages are implemented as folders and attachments as files. In the future, it is planned to improve the graphic component, making it more user-friendly. Functional improvements will include a search by mаil. The GUI of the send message window will also be slightly changed. We will also note the temporary feature of sending the export result. If the export generates multiple files, then each file is sent in its own email. That is, if you want to send the export result to a page-by-page PNG, then each picture will be sent in a separate email. Almost all exports to FastReport VCL generate only 1 output file (PDF, DOCX, RTF and others), most users won’t notice this. We will fix the bug in future releases. For all questions, contact our  Support . Tags: VCL, Lazarus, FastReport, Delphi, Web Storage ### How to send report in PDF through FTP URL: https://www.fast-report.com/blogs/send-report-pdf-ftp-net FastReport .Net allows you to export reports in various formats, send them via Email, as well as via FTP. In this article, I want to focus on the transfer to the server via FTP reports. It should be noted, it is not very convenient to run each report and manually perform sending via FTP. What if a large number of reports should be sent to the server? What are the solutions to this problem: Send all report files directly using the file manager with FTP-connections. Butbefore all reports should be exported to the desired format; Arrange export and send  report using FastReport, but do it in the application code. Obviously, the second way will save time when you export the report in the desired format. In addition, you can completely automate this process. For example, to lay out all of the reports to a server on a schedule or one click a button. I will show an example in which you will see the simplicity of an operation such as sending report via FTP from the application code. Create a Windows Forms application. Place a button on the form. Add the libraries into "using": ``` using FastReport; using FastReport.Export; using FastReport.Utils; ```  Add the code for the button click handler: ``` private void button1_Click(object sender, EventArgs e) { Report report1 = new Report(); //Create new report FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); //Create pdf export object report1.Load(Environment.CurrentDirectory+"\\text.frx"); //Load report report1.Prepare(); //Prepare report   FastReport.Cloud.StorageClient.Ftp.FtpStorageClient ftp = new FastReport.Cloud.StorageClient.Ftp.FtpStorageClient(); //Create ftp client //ftp connection settings ftp.Server = "78.47.131.251/Reports"; ftp.Username = "user"; ftp.Password = "password"; ftp.SaveReport(report1, pdf); //Send report } ``` First we create an instance of the report object. Then create the export object to PDF. Then we load the report and perform its construction (Prepare). Create a client to work with FTP. You must specify all three properties: the server, user and password. Do not forget that you need to specify the path to the desired folder, otherwise the reports will be placed directly in the root. Finally, we send a report to the server. As the parameters pass the report itself and export to PDF. FastReport will make a report export and send via FTP prepared file in pdf. Start the app, press the button and check the existence of the file on the server: Using this simple procedure, you can send multiple reports in any of the available formats,  HTML for instance. So you can design the reports on a local computer and share them on your website. Tags: .NET, .NET, Export, Export, FastReport, FastReport, PDF, PDF ### How to send reports on a schedule by email via FastReport.Desktop URL: https://www.fast-report.com/blogs/send-reports-schedule-email-desktop Summary: Often the company needs to generate periodic reports, send them to e-mail or save to a certain place. Having a report generator, it's easy to do. Often the company needs to generate periodic reports, send them to e-mail or save to a certain place. Having a report generator, it's easy to do. Often the company needs to generate periodic reports, send them to e-mail or save to a certain place. Having a report generator, it's easy to do. Often the company needs to generate periodic reports, send them to e-mail or save to a certain place. Having a report generator, it's easy to do. However, you need to create an application that will work with the report generator. This requires some programming skills and experience with the programming environment. But what if you don't have this experience, or don't want to purchase an expensive development environment license? FastReport Desktop allows you to solve these issues. This is a stand-alone software package that doesn't require the creation of a custom application. Accordingly, no programming skills are required. FastReport Desktop allows you to: create reports, create them on a schedule, export the report to various formats, send a report by email, save reports on a local disk or on remote resources. Let's look at this software package. It is represented by five parts: - Designer – the program for creating report templates; - Viewer – the program for viewing reports; - Builder – console utility for report building; - Configurator – the program for creating configuration files containing instructions for builder; - Scheduler – task scheduler for reports. On the diagram I will show the technological process of working with FastReport Desktop: So, we are faced with the task of organizing a daily report and sending it by e-mail. 1. From the diagram above it is clear that in the beginning it is necessary to create a report with the designer. To do this, run the appropriate program. I created a simple report of the Master-Detail type, which displays a list of categories of goods. This is what it looks like: We save the report to the local disk. 2. Now you need to create a configuration file. Run the Configurator: Select the report file in the "Report" section by pressing the button. Then in the "Export as" section: click the checkbox to enable export and select PDF export from the drop-down menu. You can set the PDF file settings: For example, the "Text in Curves" option. In this case, all the text in the report will be drawn with curves, which makes copying the text impossible. We proceed further. The next step is to set up the email settings. The report file will be attached to the email. Check the checkbox in the "Send e-mail" section. You must fill out the settings of the outgoing e-mail server: On the E-mail tab, fill in the email parameters: This is the main form of the program that displays all the settings: You need to save the configuration to the hard disk. By the way, the "Run" button allows you to run the configuration immediately. Close the program and proceed to create a task in the Scheduler. 3. Run the Scheduler: The interface is simple and straightforward. Add a new task using the "Task" menu: The form of creating a task is also intuitively clear: The task name, configuration file, and trigger are specified. By default, the desired trigger is selected - "Every day". For this trigger, the date and time of operation, the frequency of the recurrence are specified. A set of triggers covers all possible needs: We press the button "Create". In the main form a new task has appeared: So, we see that the task is enabled and the time of the last run is still empty. Well, wait a bit. The task worked at a given time. A note about this appeared in the field "Last run time". Now, the report will be formed every day and sent at this time. And now check the mailbox: And we see a letter with our report in PDF format. Convenient and simple. Tags: FastReport, FastReport, Desktop, Desktop ### How to set a picture in a report from the user application code URL: https://www.fast-report.com/blogs/picture-from-user-code Summary: There are three ways to set images in a report using the report generator FastReport .NET. Let's have a closer look There are three ways to set images in a report using the report generator FastReport .NET. Let's have a closer look Looking at three ways to set images in a report using the report generator FastReport .NET. Quite often there is a need to set various images in the report depending on any conditions or input parameters. This problem was encountered by the user of the List & Label report generator: Is there a way to programmatically insert an inline image into a List & Label document from .net code? However, the user did not find a solution: Unfortunately, it is not possible to insert an image from .NET code. This is only possible when working with a report in the List & Label designer. Therefore, I want to show how this can be implemented in the FastReport.Net report generator. So, when creating a report, we work directly with all of its objects - create them, add them to the report page, set properties. Consider a simple example of creating a report from the code of a user application with a picture inside. ``` //Create instance of class Report Report report = new Report(); //Add report page ReportPage page = new ReportPage(); report.Pages.Add(page); page.CreateUniqueName(); //App data band DataBand data = new DataBand(); //Add data band to page page.Bands.Add(data); data.CreateUniqueName(); data.Height = Units.Centimeters * 1; //Set band height //Create picture object PictureObject pic = new PictureObject(); pic.Bounds = new RectangleF(0, 0, Units.Centimeters * 5, Units.Centimeters * 5); //Set object bounds pic.Image = new Bitmap("../../App_Data/snow_flake.ico"); //Set picture pic.Parent = data; //Set picture parent object pic.CreateUniqueName(); report.Prepare(); //Build report report.Show(); //Show report ```  This is a very simple example of a report with just one ‘data’ band. Since this report is entirely created in the program code, there is no problem to create an object with a picture and put it into the report. Creating a report from the code allows us to change it as much as we want, depending on the logic of the program. Consider another case. Let's say you already have a report template created in a designer. You want to change the picture in the report depending on the logic of the program. In this case, the report template should already have a Picture object, and you'll just replace the picture itself from the user application code. Here's what the code will look like in the program:          ``` //Create report object Report report = new Report(); //Load report template into the report obj report.Load("../../App_Data/Picture.frx"); //Get picture object from the report template PictureObject pic = report.FindObject("Picture1") as PictureObject; //Set object bounds pic.Bounds = new RectangleF(0, 0, Units.Centimeters * 5, Units.Centimeters * 5); //Set the image pic.Image = new Bitmap("../../App_Data/snow_flake.ico"); //Build report report.Prepare(); //Show report report.Show(); ```  Here, we find an object with a picture in the template of the report and change its properties as desired. And finally, the third version of the Picture object is from the built-in report script. The report script allows you to change the pattern and data in the report as you like. You can pre-add a Picture object to the template, or you can add it directly to the report script. Truly, limitless flexibility. There is no need to use a custom application to manage the contents of the report. This is a big plus for me, because there is no need to edit the application code. The example for setting an image in the report script is extremely simple: ``` Picture1.Image = new Bitmap("C:/Users/Dimon/source/repos/PictureSetting/PictureSetting/App_Data/snow_flake.ico"); ```  You only need to decide on an event in which you want to change a picture, for example, you can use the BeforePrint event for a Picture object. Tags: .NET, .NET, FastReport, FastReport ### How to Set Up a Connection to Apache Ignite in FastReport .NET URL: https://www.fast-report.com/blogs/connection-apache-ignite-net Summary: In this article, we will explore how to configure a connection to Apache Ignite in FastReport .NET. You will learn the necessary steps to connect the plugin via code and the report designer. In this article, we will explore how to configure a connection to Apache Ignite in FastReport .NET. You will learn the necessary steps to connect the plugin via code and the report designer. Apache Ignite is a distributed in-memory computing platform that enables the processing and storage of large volumes of data in memory to achieve high performance and scalability. In this article, we will explore how to configure a connection to Apache Ignite in FastReport .NET. Apache Ignite is a distributed in-memory computing platform that enables the processing and storage of large volumes of data in memory to achieve high performance and scalability. In this article, we will explore how to configure a connection to Apache Ignite in FastReport .NET . You will learn the necessary steps to connect the plugin via code and the report designer. By following our recommendations, you will be able to effectively use Apache Ignite as a data source for your reports in FastReport .NET. The implemented plugin for connecting to Apache Ignite is a lightweight solution based on the Ignite.NET Thin Client. Apache Ignite Plugin Features Connection to Apache Ignite clusters: The plugin allows you to connect to one or more nodes in the cluster. The node addresses are specified in the host:port format, separated by commas. Working with caches: It supports interaction with caches in both key-value mode and as SQL tables. Authentication: The plugin supports authentication if the authenticationEnabled option is enabled in the cluster configuration. Handling various data types: The plugin ensures proper handling of different data types, including custom objects. Features of Apache Ignite Implementation Ignite offers two ways to logically represent data: key-value caches and SQL tables (schemas). Despite the differences, these representations are equivalent and can reflect the same data. In Ignite, an SQL table and a key-value cache are two equivalent ways of representing the same internal data structure. Access to the data can be obtained through the key-value API, SQL operators, or both methods. A cache is a collection of key-value pairs, accessed through the key-value API. An SQL table in Ignite is similar to tables in traditional database management systems, but with some additional constraints. For example, each SQL table must have a primary key. A table with a primary key can be represented as a key-value cache, where the primary key column acts as the key, and the other columns in the table are the fields of the object (value). The main difference between these two data representations lies in the method of accessing them. With a key-value cache, you can work with objects using supported programming languages. SQL tables, on the other hand, support standard SQL syntax, which can be beneficial, for example, when migrating data from an existing database. How to Connect the Plugin in Your Project To use the plugin, you must first build the project located at:   ..\Extras\Core\FastReport.Data\FastReport.Data.Ignite . After that, the plugin needs to be registered. This can be done in two ways. Method 1. Using Code. Copy the following code and paste it into your project. This needs to be done only once when starting the application. FastReport.Utils.RegisteredObjects.AddConnection(typeof(IgniteDataConnection)); Method 2. Using the Report Designer. To connect the connector in the designer, go to the "File|Settings..." menu in the Ribbon interface (or "View|Settings..." in the standard interface). In the opened window, select the "Plugins" tab and add the built .dll of the plugin as shown below. After adding the plugin, it is necessary to restart the FastReport .NET designer. How to Connect a Data Source in the Designer To create a connection to Apache Ignite, go to the "Data" menu and select "Add Data Source."   In the opened window, click on the "New Connection" button, then from the dropdown list of connection types, select the option " Apache Ignite Connection." In the window that appears, specify the address(es) of the nodes, as well as the username and password (if required). If the connection is successful, the next step will display a list of tables (caches) contained in the nodes specified in the previous step: Differences When Working with Caches in the Plugin The plugin supports working with caches that are created both as key-value pairs and as SQL tables. The method of creating and configuring a cache in Apache Ignite directly impacts the composition of fields and the representation of data types. Depending on the chosen method (for example, using classes with the [QuerySqlField] attributes, programmatic definition via QueryEntity, or working with dynamic data), the result may vary. This concerns both the list of available fields and their data types. The following code examples will use snippets from the official Apache Ignite functionality examples. These examples can be downloaded from this link in the BINARY RELEASES section:   https://ignite.apache.org/download.cgi .  Let’s open the downloaded archive and navigate to the following folder: ..\apache-ignite-2.17.0-bin\platforms\dotnet\examples\Thin From these examples, we will use the custom class Organization, which represents the data model of an organization. This class contains the following properties: Name: The name of the organization. It is marked with the [QuerySqlField(IsIndexed = true)] attribute, which allows it to be used in SQL queries and creates an index to speed up searches. Address: The address of the organization, represented as a nested object of type Address. This is also available for SQL queries due to the [QuerySqlField] attribute. Type: The type of organization (e.g., commercial or non-profit), represented by the enumeration OrganizationType. LastUpdated: A timestamp indicating when the organization's data was last updated. The complete code for the class can be found in the folder: ..\apache-ignite-2.17.0-bin\platforms\dotnet\examples\Shared\Models Creating a Cache Using QueryEntity QueryEntity is an Apache Ignite component that allows you to programmatically define the data structure (schema) for a cache and manually specify the fields along with their types. For caches with metadata (QueryEntity), operations for retrieving the list of fields and their data types are supported. Custom data types are handled in the following manner: The list of fields displays only the fields marked with the [QuerySqlField] attribute. Fields are presented in the format data_type.field_name.  For example, if the cache is created during the setup as follows: var organizationCache = ignite.GetOrCreateCache( new CacheClientConfiguration("dotnet_cache_query_organization", new QueryEntity(typeof(int), typeof(Organization)))); Then, when connecting to an already prepared instance of Apache Ignite in FastReport, the list of fields will include only those fields from the Organization class that are marked with the   [QuerySqlField] attribute. However, when viewing the data, all fields from the cache will be displayed: Creating a Cache Without QueryEntity   If the cache is created during the setup without using QueryEntity , then the data types of all fields will be defined as string. Example code:   ICacheClient cache = ignite.GetCache("dotnet_cache_put_get"); In the list of fields, all available fields will be displayed, regardless of the presence of the [QuerySqlField] attribute. This is the second method of creating a cache. Working with Caches Created as SQL Tables Finally, let's consider the third method of working with caches. Here is an example of creating and populating a cache as an SQL table: ``` cache.Query(new SqlFieldsQuery( "CREATE TABLE IF NOT EXISTS city (id LONG PRIMARY KEY, name VARCHAR) WITH \"template=replicated\"")).GetAll();   const string addCity = "INSERT INTO city (id, name) VALUES (?, ?)"; cache.Query(new SqlFieldsQuery(addCity, 1L, "Forest Hill")); cache.Query(new SqlFieldsQuery(addCity, 2L, "Denver")); cache.Query(new SqlFieldsQuery(addCity, 3L, "St. Petersburg")); ``` For such caches, the metadata (QueryEntity) contains information about the data types for each field. In an Apache Ignite cache, data may be stored without explicitly defined field names. For example: ``` var cache = ignite.GetOrCreateCache("put-get-example");   int key = 1; var val = new Address("1545 Jackson Street", 94612); cache.Put(key, val);   int key1 = 2; var val1 = 942.28956; cache.Put(key1, val1);   int key2 = 3; var val2 = "test String"; cache.Put(key2, val2); ``` When connecting to an instance of Apache Ignite in FastReport (with the code from the example above), you will see the following result. In this example: The fields Street and Zip from the custom class Address have names, as they are defined in the structure of the class. Values such as the number 942.28956 or the string "test String" do not have names, as they are added to the cache as simple key-value objects. For fields that lack a name, unique identifiers are generated. Conclusion We’ve covered how to set up a connection to Apache Ignite in FastReport .NET. By following the steps outlined, you’ll be able to integrate these systems and take full advantage of Apache Ignite as a data source for your reports. Apache Ignite provides fast data access and processing, while FastReport .NET enables the creation of powerful reports. Their integration opens up new opportunities for data analysis and visualization. We hope this article has been helpful and will assist you in effectively using Apache Ignite in your projects with FastReport .NET. Tags: .NET, FastReport, Data Source, SQL, Report, Plugin ### How to set up an Apache2 web server for FastReport .NET URL: https://www.fast-report.com/blogs/apache-web-server-dotnet Summary: We are launching the Apache2 web server on the Linux operating system for FastReport.NET and .NET 5 with a few simple commands. We are launching the Apache2 web server on the Linux operating system for FastReport.NET and .NET 5 with a few simple commands. We are launching the Apache2 web server on the Linux operating system for FastReport.NET and .NET 5 with a few simple commands. It's no secret that FastReport .NET has broad functionality. It is also a great solution that can be integrated with the Apache 2 web server. Next, we will look at the fine-tuning of Apache2 on the Linux operating system. First, let's install .NET 5 with a few commands. Download the necessary packages from the Microsoft repository: ``` $ wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb $ sudo dpkg -i packages-microsoft-prod.deb ``` Next, install the .NET5 package: ``` sudo apt-get update; \ sudo apt-get install -y apt-transport-https && \ sudo apt-get update && \ sudo apt-get install -y dotnet-sdk-5.0 ``` Note. You can prepare your application for Windows, namely, install FastReport.Core.Skia packages and send this project to yourself already on Ubuntu. With a test install, you do not need X11 for the application to work correctly because it is already installed with apache or on Ubuntu. Now let's start loading Apache2 with the following command: ``` sudo apt install apache2 ``` If it is successful, then proceed to the next step. Next, we are going to manage the Apache service or its reboot and shutdown. Remember that with any change in Apache, for example, when changing the config or when enabling any settings, you will need to run the following commands: ``` sudo systemctl start apache2 — Starts a previously stopped web server sudo systemctl restart apache2— Stops and restarts the web server ``` Apache is configured to start automatically when the server boots. If you don't want this, disable this with the following command: ``` sudo systemctl disable apache2 ``` To reload the start service during boot time, type: ``` sudo systemctl enable apache2 ``` Now we will set up virtual hosts. It means that if you go to localhost:80, you will be automatically redirected to localhost:5000. For everything to work correctly, it is necessary to enable some modules: ``` sudo a2enmod proxy sudo a2enmod proxy_http ``` Next, go to the automatically created folder when installing Apache: ``` sudo cd /etc/apache2/sites-available/ ``` Now we create a file with your config and immediately edit it: ``` sudo nano /etc/apache2/sites-available/your_domain.conf ``` You need to add the following lines to the file: ``` ProxyPreserveHost On ProxyPass / http://127.0.0.1:5000/ ProxyPassReverse / http://127.0.0.1:5000/ ErrorLog ${APACHE_LOG_DIR}helloapp-error.log CustomLog ${APACHE_LOG_DIR}helloapp-access.log common ``` Note: If you go to localhost:80, then you will be automatically redirected to localhost:5000 After creating the config file, activate it and disable the default config: ``` sudo a2ensite your_domain.conf —Activate your config sudo a2dissite 000-default.conf — Disable the config by default sudo apache2ctl configtest — Check the file for syntax errors (if it is ok, then you will see the "Output Syntax OK" notification in the console) sudo systemctl restart apache2 —Restart Apache for the changes to take effect ``` To publish the project, you will need the following command: ``` dotnet publish --configuration Release — Publish the application to the publish folder as a release ``` Next, go to the publish folder. You will see all dlls with a project name using the ls command. The project is started with the following command: ``` dotnet FastReport.Core.Web.Net5.dll ``` Restart Apache with the previously launched FastReport.Core.Web.Net5 application and go to the virtual host specified in Apache. Namely, on localhost:80, and see that it automatically redirects to localhost:5000. If it was successful, congratulations! You have successfully configured Apache2 for FastReport .NET. If you have any questions, write to our support at  support@fast-report.com . Tags: .NET, Linux, Core, WebReport, Ubuntu ### How to set up the LOGMARS barcode in FastReport .NET URL: https://www.fast-report.com/blogs/logmars-barcode-in-fastreport-net Summary: We review the American LOGMARS specification for the Code 39 barcode in FastReport. NET. We review the American LOGMARS specification for the Code 39 barcode in FastReport. NET. We review the American LOGMARS specification for the Code 39 barcode in FastReport. NET. LOGMARS stands for Logistics Applications of Automated Marking and Reading Symbols. It is a specification used by the U.S. government for the military goods supply. LOGMARS is a standard based on the Code 39 barcode. Code 39 consists of self-checking barcode symbols that usually do not require a check digit. However, in applications that require high accuracy, a check digit modulo 43 is added after the data. Since LOGMARS is used by the military, the check digit is mandatory. This barcode is defined by the military standard  MIL-STD-129 , which contains not only the information about where the barcode should be placed on the military cargo, but also what kind of data and how long it should be in accordance with military specifications. Alike Code 39, LOGMARS can encode uppercase Latin letters, all numbers, and special characters (such as *, -, $, %, (space), ., /, and +). Please note that in FastReport .NET the Code 39 barcode always contains check digits and has no data length limit. This means that it can be used as a full implementation of LOGMARS. Adding a barcode from the designer You do not need to look for LOGMARS in the designer. Select Code 39 and add it to the report page. All properties of this barcode were described in the article “ How to create CODE 39 and CODE 39 Extended barcodes ” Enter the value “DAHC9488O0007” into the barcode editor and save.  Creating a Code 39 barcode using the code ``` //Create a new report object Report report = new Report(); //Create a report page ReportPage page = new ReportPage(); //Create a unique identifier page.CreateUniqueName(); //Add it to the collection of report pages report.Pages.Add(page); //Create a new DataBand DataBand dataBand = new DataBand(); //with a unique identifier dataBand.CreateUniqueName(); //and add it to the band collection page.Bands.Add(dataBand); //Create a barcode object FastReport.Barcode.BarcodeObject barcode = new FastReport.Barcode.BarcodeObject(); //Set a barcode type barcode.Barcode = new FastReport.Barcode.Barcode39(); //Set the numeric combination for encoding barcode.Text = "DAHC9488O0007"; //Place the barcode on the page barcode.Parent = dataBand; //Set the size of the object barcode.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 3); //Show the report report.Show(); ``` As a result, we will get the following barcode: Now you know a little more about the LOGMARS barcode as a part of the military specification. With FastReport .NET you can create this standard by configuring Code 39 barcode.  Tags: .NET, FastReport, Barcode ### How to Set Up WSL 2 for Working with FastReport and FastCube URL: https://www.fast-report.com/blogs/wsl-fastreport-fastcube Summary: In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. Software developers have long pondered the question, "How could we run Linux applications directly in Windows, without needing to use a separate virtual machine?" The WSL technology provides a potential answer to this question. The history of WSL began in 2016. At the time, the implementation involved running Linux binary executables using system calls within the Windows kernel. The first version also included emulation of the Linux kernel through a layer to translate system calls. The second version of WSL, released in 2019, featured full compatibility with system calls, a fully functional Linux kernel, support for GPUs, and support for Linux applications with a graphical user interface. In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. Installing and Setting Up Ubuntu 24.04 in WSL 2 Launch the Windows command line as an administrator. To display a list of all available Linux distributions, you need to enter the command in the Windows command line and press Enter: wsl --list --online or wsl -l -o To install Ubuntu 24.04, run the following command: wsl --install -d Ubuntu-24.04 After installing the distribution, you will be prompted to create a user account and password. To install Ubuntu 24.04, you only need to run a few commands. The Ubuntu 24.04 terminal is available from the Windows Start menu after installing the distribution. You can also launch the Linux kernel and enter the Ubuntu 24.04 terminal using the command from the Windows command line: wsl -d Ubuntu-24.04 After installing Ubuntu 24.04, you need to update the packages. To update the installed packages, run the following commands in the Ubuntu 24.04 terminal: $ sudo apt update && sudo apt upgrade && sudo apt dist-upgrade Enter the user password and press Enter. Wait for the request to agree to update the packages. Enter Y and confirm by pressing Enter. To install Nautilus, run this command in the terminal, and then enter the following command to directly launch Nautilus. $ sudo apt install nautilus -y $ nautilus After installation, the Nautilus file manager is available from the Windows Start menu. Installing and Setting Up Linux 11 Starterkit in WSL 2 The WSL 2 subsystem allows you to use any Linux distribution by importing it from a tar file. Run the Windows command line as administrator. Run the command to download the Linux rootfs image to the root of the C\: drive: curl -o C:\alt-p11-rootfs-systemd-x86_64.tar.xz https://ftp.altlinux.org/pub/distributions/Linux/p11/images/cloud/x86_64/alt-p11-rootfs-systemd-x86_64.tar.xz To import the distribution into WSL 2, you need to run the command in the Windows command line: wsl --import Linux-11 C:\Linux-11 C:\alt-p11-rootfs-systemd-x86_64.tar.xz After importing, the Linux hard disk image file will be located in C:\Linux-11\ext4.vhdx . In the Windows command line, run the command to display a list of all registered distributions. And then run the newly imported Linux-11 distribution wsl -l -v wsl -d Linux-11 After starting Linux, a terminal will open. In the WSL configuration file for this distribution, you need to enable the use of systemd: # echo -e "[boot]\nsystemd=true\n" > /etc/wsl.conf In order for systemd to work, you need to stop and restart the distribution. To do this, use the following commands: # exit wsl -t Linux-11 wsl -d Linux-11 To update packages, you need to run the following command, then wait for the request to agree to update packages. Enter Y and confirm by pressing Enter. # apt-get update && apt-get dist-upgrade To ensure correct font display, you need to install the package:   # apt-get install fonts-ttf-ms To install and run Lazarus, you need to download the command-line utility make, then install the Free Pascal compiler and Lazarus IDE:   # apt-get install make # apt-get install fpc && apt-get install fpc-src # apt-get install lazarus Installation is complete. To launch Lazarus, run the command: # startlazarus Installation of FastReport for Application Development in Linux Before starting the installation of FastReport and FastCube components, you need to download the installation packages. In the Linux-11 terminal, run the command to install wget, then confirm your actions by entering Y and pressing Enter.   # apt-get install wget Download the trial versions of the FastReport and FastCube packages:   # wget https://www.fast-report.com/public_download/fr.vcl/fast_report-trial.rpm # wget https://www.fast-report.com/public_download/fr.vcl/fast_cube-trial.rpm To install FastReport, run the command in the terminal:   # apt-get install ./fast_report*.rpm Before installing the FastReport packages, you need to compile the packages included with Lazarus and install additional libraries: # lazbuild --build-ide= --add-package /usr/lib64/lazarus/components/tachart/print/tachartprint.lpk # lazbuild --build-ide= --add-package /usr/lib64/lazarus/components/tachart/tachartlazaruspkg.lpk # apt-get install sqlite3 libsqlite3-devel After that, sequentially run the following commands to compile the FastReport packages:   # lazbuild --build-ide= --add-package /usr/share/FastReport*/Lpks/fs_lazarus.lpk # lazbuild --build-ide= --add-package /usr/share/FastReport*/Lpks/fr_lazarus.lpk # lazbuild --build-ide= --add-package /usr/share/FastReport*/Lpks/frxe_lazarus.lpk # lazbuild --build-ide= --add-package /usr/share/FastReport*/Lpks/frCS_lazarus.lpk # lazbuild --build-ide= --add-package /usr/share/FastReport*/Lpks/frxchartlazarus.lpk # lazbuild --build-ide= --add-package /usr/share/FastReport*/Lpks/frxlazdbf.lpk # lazbuild --build-ide= --add-package /usr/share/FastReport*/Lpks/frxSmartMemo_Laz.lpk # lazbuild --build-ide= --add-package /usr/share/FastReport*/Lpks/fqb*.lpk # lazbuild --build-ide= --add-package /usr/share/FastReport*/Lpks/frxlazsqlite.lpk # lazbuild --build-ide= --add-package /usr/share/FastReport*/Lpks/frxPDFlazarus.lpk Installation of FastCube for Application Development in Linux Now let's move on to installing FastCube. Run the following command in the terminal: # apt-get install ./fast_cube*.rpm Then sequentially run the following commands to compile the FastCube packages:   # lazbuild --build-ide= --add-package /usr/share/FastCube*/Lpks/fcxScript.lpk # lazbuild --build-ide= --add-package /usr/share/FastCube*/Lpks/fcxLazarus.lpk # lazbuild --build-ide= --add-package /usr/share/FastCube*/Lpks/fcxCharting.lpk # lazbuild --build-ide= --add-package /usr/share/FastCube*/Lpks/fcxprint.lpk # lazbuild --build-ide= --add-package /usr/share/FastCube*/Lpks/fcxprintTee.lpk # lazbuild --build-ide= --add-package /usr/share/FastCube*/Lpks/fcxexport.lpk Compiling and Running FastReport Demo in Lazarus At this point, the installation of FastReport and FastCube is complete. Finally, you can try to compile and run the FastReport Demo. To launch Lazarus, run the command in the terminal:   # startlazarus --skip-last-project In the Lazarus main menu, open the "Project" -> "Open Project..." option. In the dialog, select the project:   /usr/share/FastReport - Trial/Demos/FPC/FastReport/FastReportDemo.lpi After opening the project, press the F9 key to compile and run. This concludes the detailed setup of WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. For any questions, please contact our technical support at support@fast-report.com . Enjoy using it! Tags: VCL, FastCube, Lazarus, FastReport, Linux, Ubuntu, Windows ### How to sort matrix by indicator URL: https://www.fast-report.com/blogs/sorting-matrix-by-indicator Summary: Creating report script for soring the constructed matrix by a specific column Creating report script for soring the constructed matrix by a specific column Creating report script for soring the constructed matrix by a specific column Sorting data is a very important analysis tool that allows you to quickly assess the dynamics of growth or decline, as well as rank the data to make it reader-friendly. The matrix in the current version of FastReport .NET enables to sort only measurements. For example, you are building a report that displays employee sales statistics by year. The matrix has a grouping of data by year and month. We need to sort it within each group — year. The standard sorting tools will allow you to sort the names of employees, years, months, but not the data. Especially if you want to sort by a specific column. To sort by a specific column of the constructed matrix (for example, for a specific employee), you will have to use the report script. Two ways to sort the constructed matrix are to move rows or cells. On the surface, it seems that moving the rows at once would be a right solution, because sorting implies changing the order in which the entire row is displayed, and not a specific cell. Indeed, this will be the most correct decision, but not always. We'll look at a case where moving the rows won't work. If your matrix has groups with subgroups in dimensions, then you will have problems moving the first row in the group. This row has the name of the group in the first cell. Subsequent rows from the group have a blank value in the first cell. Since you may change the order of displaying the first row in the group when sorting, an error will occur when a row with an empty group header comes to its place. To avoid such problems, you will have to sort the cells in the correct column. That is, you first sort the desired column, and then, using a set of cell indices, you sort all the other columns in the matrix by that column. Obviously, this method is much more time-consuming. Let's take a look at both cases with an example. The first one is to sort the matrix row by deleting and inserting rows in the resulting matrix. Let's take a look at the source matrix we need to sort: This screenshot shows a simple matrix that does not have groups with subgroups. Moving rows is ideal for this case. In fact, we will first delete the required rows and then insert them in the correct order. This will be done using the report script. Let's say we want to sort the matrix by column for 2011. We need to determine the ordinal number of this column and obtain data for all its cells, with the exception of the resulting Total. Let’s add the ModifyResult event for the matrix object: ``` public class ReportScript { // the key of the pair is the value in the cell of the matrix, the value of the pair is the y-coordinate of the cell // the dictionary will be sorted by cell value in this way private SortedDictionary numbers = new SortedDictionary();   private void Matrix1_ModifyResult(object sender, EventArgs e) { int x = 1; int y = 2;   // let's collect the values of the cells in the column for 2011, we will sort by it for ( ; y < Matrix1.ResultTable.RowCount - 1; y++) { object val = Matrix1.ResultTable.GetCellData(x, y).Value; double dval = 0.0; if (val != null) { // here it is important to know the types of values or to check them // the cell format is Currency in this example, so we first convert it to a string // the default cell format is string Double.TryParse(val.ToString(), out dval); numbers.Add(dval, y); } // we add a pair with a value of 0.0 to the dictionary if there is an empty string in the cell // as a result, empty strings will be taken into account when sorting and will go first else { numbers.Add(dval, y); } }   // copy the rows of the matrix into the backing array // then we will take the necessary rows from it and insert into the matrix object[] originalRows = Matrix1.ResultTable.Rows.ToArray();   int i = 2; // the number of the row where we will start deleting rows in the matrix // now we delete the second row in the matrix as many times as there are rows to be sorted // we keep deleting the second row, because all rows will move up one position after deleting it for (int j = 0; j < numbers.Count; j++) { Matrix1.ResultTable.Rows.RemoveAt(i); }   i = 2; // now we just add all the rows in order according to the sorted list foreach (int v in numbers.Values) { int rowNum = v; Matrix1.ResultTable.Rows.Insert(i, originalRows[rowNum] as TableRow); i++; } } } ``` In fact, the idea of the method is to read the values of cells and their indices from the desired column and write them to a sorted dictionary. We can arrange the rows in the desired order with the indices of the cells, and, accordingly, the rows. For this, we first copy the rows into a temporary list. Then we delete all rows and insert them according to the indices in the sorted cell dictionary. To insert, we use the matrix rows saved in the temporary list. As a result, we get a matrix sorted by the column from 2011: This is the simplest example of how to sort a matrix through one-dimension array. Now let's imagine that we have groups for measurements on the left and we will sort within each group. As noted earlier, to sort the rows is not an option in this case. Let’s view at how to sort cells. Let's reverse the matrix from the previous example: We also create a ModifyResult event handler for the matrix: ``` public class ReportScript {   public class DescendingComparer: IComparer where T : IComparable { public int Compare(T x, T y) { return y.CompareTo(x); } }   // the key of the pair is the value in the cell of the matrix, the value of the pair is the y-coordinate of the cell // the dictionary will be sorted by cell value in this way private SortedList numbers = new SortedList();   private void Matrix1_ModifyResult(object sender, EventArgs e) { int x = 3; int y = 2;   Dictionary cellsMonth = new Dictionary(); Dictionary cellsFirst = new Dictionary(); Dictionary cellsSecond = new Dictionary(); Dictionary cellsThird = new Dictionary(); Dictionary cellsFourth = new Dictionary(); Dictionary cellsTotal = new Dictionary(); List> allCells = new List>();   bool other = false; int z = 2; double val2 = 0.0;   var val3 = 0.0;   string message = "";   List years = new List();   for (int j=0; ji.Value).Select(key => key.Key).ToList();   //We set a new value for the cells in all strings in the required columns according to the order in the sorted dictionary for the third column int k = 0; foreach(var key in keys) { Matrix1.ResultTable.GetCellData(1, cellsThird.Keys.ElementAt(k)).Text = cellsMonth[key].ToString(); Matrix1.ResultTable.GetCellData(2, cellsThird.Keys.ElementAt(k)).Text = cellsFirst[key].ToString(); Matrix1.ResultTable.GetCellData(3, cellsThird.Keys.ElementAt(k)).Text = cellsSecond[key].ToString(); Matrix1.ResultTable.GetCellData(4, cellsThird.Keys.ElementAt(k)).Text = cellsThird[key].ToString(); Matrix1.ResultTable.GetCellData(5, cellsThird.Keys.ElementAt(k)).Text = cellsFourth[key].ToString(); Matrix1.ResultTable.GetCellData(6, cellsThird.Keys.ElementAt(k)).Text = cellsTotal[key].ToString(); k++; } cellsThird.Clear(); } } } ``` There are two fundamental differences from the previous method — we sort using replacement, not deletion/insertion, and sort by each column separately. It should be clear from the comments in the code what to do and where. But still, let's take a quick look: 1) First of all, we get the values of the dimension groups in order to know how many sorting sets we need. Sort order is different for each group. 2) Next, we get the data for all the columns needed for sorting. This means for all columns, except for the first one, which contains the names of the dimension groups. 3) Then we select the set of values required for sorting and sort it. 4) You can arrange the cells in all the sorted columns according to the order of these indexes using the resulting dictionary, where the key is the cell index. The result is a matrix sorted for Nancy Davolio: Thus, you can sort the matrix by any column of data. Moreover, you can make custom sorting not only in descending or ascending order. Additionally, you can exclude certain rows (Total or calculated) from sorting by setting them in an individual order. Tags: .NET, .NET, FastReport, FastReport, Matrix, Matrix ### How to sort similar matrices through one-dimensional array on several pages in FastReport .NET URL: https://www.fast-report.com/blogs/sorting-matrices-several-pages Summary: We are considering non-standard methods of sorting such matrices using a report script for manipulating data in analytical reports. We are considering non-standard methods of sorting such matrices using a report script for manipulating data in analytical reports. We are considering non-standard methods of sorting such matrices using a report script for manipulating data in analytical reports. Let's say we have the task: to sort the matrix on the first page in the desired order, remember this order and apply for similar matrices on other pages. This may be needed when you have several pages in the report that display matrices that are identical in headings, but which contain different data. For example, the first matrix displays the number of products sold, and the second displays the sales amounts by product. We need to sort by quantity or amount, and then apply the same order for the second matrix. This case is quite common in analytical reports. Let's see it in practice. Let's take a completely hypothetical fruit sales statistics. However, only the types of fruits are not enough, there will be a list of fruit importing countries. The number of sold goods will be displayed for three years. Table structure: country_name fruit_type year amount price sum Sorting Standard sorting mechanisms will not help us here. Therefore, we will sort the number of fruits sold for each country. Let's outline a sequence of steps: 1. To get a list of countries. 2. For each country: 2.1. to get the values of cells with types of fruits and the number of products sold for each year; 2.2. to sort the values for the desired year; 2.3. for each row to fill the cells of fruits and the number for all years according to the indices of the rows in the sorted list. The first column is the country, and this is ok for us, which means that we will sort the cells of the remaining columns. We first need to remember them, so that we can arrange them in the desired order according to the sorting plan. We will select one of the columns with data for a specific year and sort it in descending or ascending order. Then we will use the resulting index order to sort all the cells by column. Let's get started. The matrix has an event for modifying an already constructed object - ModifyResult. Let's create a handler for this event in the report script. ``` private List> sortOrders = new List>(); //List of sorting orders for each collection of fruit species by country   private void Matrix1_ModifyResult(object sender, EventArgs e) { //Dictionaries in which we will store the row index and cell value Dictionary firstYearCells = new Dictionary(); Dictionary secondYearCells = new Dictionary(); Dictionary thirdYearCells = new Dictionary(); Dictionary typeCells = new Dictionary(); Dictionary sortCells = new Dictionary();   //bool prevYearSortNeeded = false;   var total = false; var z = 1; var val2 = 0.0; var val3 = 0.0;   List countries = new List(); //We will store the list of countries in this list //We get all countries from the first column for (int j=2; j<(sender as TableBase).ResultTable.RowCount-1; j++) { try { var val = (sender as TableBase).ResultTable.GetCellData(0,j).Value.ToString(); if (val.Length > 0) countries.Add(val); } catch (Exception) {} }   int columnFirstYearIndex=0; int columnSecondYearIndex=0; int columnThirdYearIndex=0; int columnTypeIndex=0;   //We go through all the columns of the matrix to save the cells in dictionaries for (int t=0; t < (sender as TableBase).ResultTable.ColumnCount; t++) {   if ((sender as TableBase).ResultTable.GetCellData(t,0).Text.Contains("2017")) { columnFirstYearIndex=t; } if ((sender as TableBase).ResultTable.GetCellData(t,0).Text.Contains("2018")) { columnSecondYearIndex=t; } if ((sender as TableBase).ResultTable.GetCellData(t,0).Text.Contains("2019")) { columnThirdYearIndex=t; } if ((sender as TableBase).ResultTable.GetCellData(t,0).Text.Contains("Fruit")) { columnTypeIndex=t; } }   int countryOrder =0;   //We run a loop to identify the fruit groups and sort them for each country foreach (var country in countries) { total = false;   sortCells.Clear(); //We clear the list for sorting   //We select cells from rows until we see Total, since Total should not be sorted while (!total) { if ((string)(sender as TableBase).ResultTable.GetCellData(columnTypeIndex,z).Text!="Total") { //We select cells for the first year var value = (sender as TableBase).ResultTable.GetCellData(columnFirstYearIndex,z).Value; if (value!=null) { Double.TryParse(value.ToString(),out val3); firstYearCells.Add(z,val3); } else firstYearCells.Add(z, 0.0);   //We select cells for the second year value = (sender as TableBase).ResultTable.GetCellData(columnSecondYearIndex,z).Value; if (value!=null) { Double.TryParse(value.ToString(),out val3); secondYearCells.Add(z,val3); } else secondYearCells.Add(z, 0.0);   //We select cells for the third year value = (sender as TableBase).ResultTable.GetCellData(columnThirdYearIndex,z).Value; if (value!=null) { Double.TryParse(value.ToString(),out val3); thirdYearCells.Add(z,val3); } else thirdYearCells.Add(z, 0.0);   //We select cells for fruit types value = (sender as TableBase).ResultTable.GetCellData(columnTypeIndex,z).Text; typeCells.Add(z,value.ToString()); } else { //Exit condition of the loop total = true; } z++; }   sortCells = firstYearCells; //We set the column for sorting - in this case by the first year   List keys = new List();   //If we have a filled list of sorts for all countries, then the first page of the report has been built and you can use this list on the second page. This is where sorting through one-dimensional array is ensured. if ( sortOrders.Count == countries.Count ) { keys = sortOrders.ElementAt(countryOrder); } else keys = sortCells.OrderByDescending(i=>i.Value).Select(key => key.Key).ToList(); //Sort the array in descending order using the Linq library   int k = 0; //Loop through all the elements of the sorted list foreach(var key in keys) { //Build cell values for all columns in sort order (sender as TableBase).ResultTable.GetCellData(columnFirstYearIndex, firstYearCells.Keys.ElementAt(k)).Text = firstYearCells[key].ToString(); (sender as TableBase).ResultTable.GetCellData(columnSecondYearIndex, secondYearCells.Keys.ElementAt(k)).Text = secondYearCells[key].ToString(); (sender as TableBase).ResultTable.GetCellData(columnThirdYearIndex, thirdYearCells.Keys.ElementAt(k)).Text = thirdYearCells[key].ToString(); (sender as TableBase).ResultTable.GetCellData(columnTypeIndex, typeCells.Keys.ElementAt(k)).Text = typeCells[key].ToString(); k++; } if (keys.Count>0) sortOrders.Add(new List(keys)); //Save the sort order for the current country   //It's important to clear firstYearCells.Clear(); secondYearCells.Clear(); thirdYearCells.Clear(); typeCells.Clear(); countryOrder++; //Go to the next country } } } ``` Now we copy the report page with the matrix, but instead of the amount field we will output sum. We will select the handler we have created for ModifyResult in the matrix events. After running the report, we will see that the order of the fruit types on the two pages is the same. This means that the sorting on the first page is applied to the second page. Thus, using the report script, we can manipulate the data in the matrices, as we want. The most important thing is to apply the same sort order on different pages of the report. Tags: .NET, .NET, FastReport, FastReport, Report, Report, Filtering, Filtering, Matrix, Matrix ### How to sort the data in the report FastReport .NET URL: https://www.fast-report.com/blogs/sorting-report-data Summary: Sorting data in different ways in the FastReport .NET report generator for better analysis. Sorting data in different ways in the FastReport .NET report generator for better analysis. Sorting data in different ways in the FastReport .NET report generator for better analysis. Sorting data is one of the most important data processing tools. We can say, it is the basis of the analysis. Analysing chaotic output data is almost impossible. Therefore, sorting provides all the tools that work with data. This also applies to reporting tools. After all, the data source may provide the report data is not sorted, or sorted, but not in the required field, not in the order. The documentation for FastReport .NET outlines two ways to sort: sorting group values, sorting data in the Data band. The first type of sorting is available to us when we create a group, namely when setting up the Group Headline band. When you choose the field you're going to group on, you can sort it right away. There are three sorting options available: no sorting, ascending, descending. But if we talk about sorting basic data in the data bin, we can access more advanced sorting - three fields at once, and for each of them you can choose the order of sorting. To call a sorting editor, you need to click the band's header twice on the page template. Despite the user-friendly interface, this tool has one significant drawback. To be precise it can sort only three fields. However, some of the tables have a variety of fields, and you may need to sort by more than 3 fields. You can bypass this restriction by sorting the data in the source using the query. You can do this either by creating a data source or by a source you've already created, directly for the desired table. In the first case, we're just writing a request to get the data in the right order. The second case is the same, but in a data source that has already been created. In the data tree, choose the right table. In the property inspector, we ask SelectCommand. It is alled by the wizard to create an SQL query. You can enter a query manually or use the Query Builder. So you can sort of arbitrary number of fields: ``` SELECT * FROM customer ORDER BY Country, City, State, CustNo, Company ```  When you create a data source, you may not be aware that you need a certain order data. But you can always add a request in an existing data source. However, this method does not work with non-SQL databases. Tags: .NET, .NET, FastReport, FastReport ### How to store FastReport .Net reports in a database URL: https://www.fast-report.com/blogs/store-net-reports-database Usually reports are stored in one place but in separate files. With the increasing amount of files there are difficulties in structuring and searching. Reflecting on this subject, I came across one very interesting property of the Report object - ReportSourceString. This property holds the entire report template in a string. Which means that it is possible to store the report template in any database. We can store all the reports in one place. In order to save reports to the database, we need to write our own methods to save and load the report. Let's get started. First of all, let's create a database to store reports. I have used MS Access. The table has the following structure: Field name Data type id Counter Name Text Template MEMO  Create a Windows Forms application. Add a connection to our database. Place the button components on the form: DataSet, BindingSource and Report.  Looking ahead, I will say that we need a dialogue form, in which we will ask the name of the report when saving / loading: For the buttons must be set DialogResult property in accordance with their name. Getting Started Programming. We use the following FastReports libraries: ``` using FastReport; using FastReport.Utils; using FastReport.Design; ```  And create an instance of the dialogue form: ``` public SaveLoadForm form2 = new SaveLoadForm(); ```  Create the event handler to save a report: ``` void cmdSave_CustomAction(object sender, EventArgs e) { ReportsDataSet.ReportsRow row; row = reportsDataSet1.Reports.NewReportsRow(); if (form2.ShowDialog() == DialogResult.OK) { row.Name = form2.ReportName; row.Template = report1.ReportResourceString; this.reportsDataSet1.Reports.Rows.Add(row); ReportsDataSetTableAdapters.ReportsTableAdapter adapter = new ReportsDataSetTableAdapters.ReportsTableAdapter(); adapter.Update(reportsDataSet1.Reports); } } ```  Here, we create a new row in the report table. Then start the dialog form. The report name will be entered in the form. . Assign the value of the dialogue form's text field to the Name field. Write the report template as text in the Template field. Thereafter, save the changes to the table via the adapter. Now create an event handler of the report downloading: ``` void cmdOpen_CustomAction(object sender, EventArgs e) { if (form2.ShowDialog() == DialogResult.OK) { for (int i = 1; i < reportsDataSet1.Reports.Rows.Count; i++) if (reportsDataSet1.Reports[i].Name == form2.ReportName) { report1.ReportResourceString = reportsDataSet1.Reports[i].Template.ToString(); } Designer designer = sender as Designer; designer.SetModified(this, "EditData"); } } ```  We also call the dialog form. In the cycle we are looking for the report with the name that  corresponds to the one entered in the text field. The report loads from Template field into ReportResourceString property. Then, the designer is updated to reflect the changes. So, we wrote two handlers. Now it is necessary to intercept the standard event handlers and substitute our handlers. ``` private void DesignerSettings_DesignerLoaded(object sender, EventArgs e) { (sender as Designer).cmdSaveAs.CustomAction += new EventHandler(cmdSave_CustomAction); (sender as Designer).cmdOpen.CustomAction += new EventHandler(cmdOpen_CustomAction); } ``` As you can see, we intercept the event to save and load a report by substituting the custom handlers. In the OnClick event of button in the main form, add the following code: ``` private void DesignBtn_Click(object sender, EventArgs e) { Config.DesignerSettings.DesignerLoaded += DesignerSettings_DesignerLoaded; report1.Design(); } ```  Override the handler loading the report designer. Thus, we have created an application that allows you to save and load reports in MS Access database. You can organize the storage of reports in a desired database through property ReportSourceString report. Tags: .NET, .NET, FastReport, FastReport ### How to transfer a list of options to a web report FastReport .NET URL: https://www.fast-report.com/blogs/transfer-options-list-webreport Summary: The article describes how to transfer a list of parameters to the web report in the FastReport .NET report generator. The article describes how to transfer a list of parameters to the web report in the FastReport .NET report generator. The article describes how to transfer a list of parameters to the web report in the FastReport .NET report generator. When you create reports, you often need to transfer some values from outside. This is to filter the data into the report, or to manage the logic of the report. In my practice of using FastReport.Net, I often encounter this need. Since I mostly work with web reports, I pass the parameters into the report through url. As a rule, my reports are quite complex and are not limited to one parameter. Therefore, there is a need to pass on a list of parameters, namely a list of key value sets. Where the key is the name of the setting. It is certainly better to consider it by example. In this case, I use ASP .NET Core Web Api app. namespace ParametersWeb.Models {  public class Reports  {  // Report ID  public int Id { get; set; }  // Report File Name  public string ReportName { get; set; }  } } ValuesController: Fill the array of reports: Reports[] reportItems = new Reports[]  {  new Reports { Id = 1, ReportName = "Parameters.frx" },  new Reports { Id = 2, ReportName = "Master-Detail.frx" }   }; Method of production of the report is asynchronous, since It uses an asynchronous method of converting the report in html format. This format we want to display the report in the browser, as you know: [HttpGet("{id}")]  public async System.Threading.Tasks.Task GetAsync(int id)  {  string mime = "application/html"; // MIME header with default value  // Find report  var parameters = HttpContext.Request.QueryString.ToString().Substring(1);  Reports reportItem = reportItems.FirstOrDefault((p) => p.Id == id); // we get the value of the collection by id  if (reportItem != null)  {  string webRootPath = _hostingEnvironment.WebRootPath; // determine the path to the wwwroot folder  string reportPath = (webRootPath + "/App_Data/" + reportItem.ReportName); // determine the path to the report  string dataPath = (webRootPath + "/App_Data/nwind.xml");// determine the path to the database  using (MemoryStream stream = new MemoryStream()) // Create a stream for the report  {  try  {  using (DataSet dataSet = new DataSet())  {  // Fill the source by data  dataSet.ReadXml(dataPath);  // Turn on web mode FastReport  Config.WebMode = true;   WebReport webReport = new WebReport();//create the report object  webReport.Report.Load(reportPath); //upload the report  webReport.Report.RegisterData(dataSet, "NorthWind"); //register the data sourcw in the report  if (parameters != null)  {  string[] parameterList = parameters.Split(',');  foreach (string item in parameterList)  {  string[] parameter = item.Split('=');  webReport.Report.SetParameterValue(parameter[0], parameter[1]); //set the report parameter value  }  }  // inline registration of FastReport javascript  webReport.Inline = true;//allow to register scripts and styles in HTML-body intead of putting them in the header  HtmlString reportHtml = await webReport.Render(); //upload the report in HTML  byte[] streamArray = Encoding.UTF8.GetBytes(reportHtml.ToString());  stream.Write(streamArray, 0, streamArray.Length);//write down the report in the stream   }  // Get the name of the resulting report file with the necessary extension   var file = String.Concat(Path.GetFileNameWithoutExtension(reportPath), ".", "html");   return File(stream.ToArray(), mime, file); // attachment  }  // Handle exceptions  catch  {  return new NoContentResult();  }  finally  {  stream.Dispose();  }  }  }  else  return NotFound();  } The essence of this method is the following - we upload the selected report template, parse parameters from the url and transfer their value to the report. Then, we transform a report in html format and return the file to the client. The names of the parameters that you pass to the report should clearly match the parameters in the report:          
   
 
Tags: .NET, FastReport ### How to Transition from FastReport Publisher to the Corporate Server URL: https://www.fast-report.com/blogs/transition-publisher-corporate-server Summary: In this material, we will discuss the reasons for replacing Publisher with the Corporate Server along with a migration plan. In this material, we will discuss the reasons for replacing Publisher with the Corporate Server along with a migration plan. We have already reviewed the differences between Publisher, Corporate Server, and Cloud in the previous article. In this material, we will discuss the reasons for replacing Publisher with the Corporate Server along with a migration plan. We have already reviewed the differences between Publisher, Corporate Server , and Cloud in the previous article . In this material, we will discuss the reasons for replacing Publisher with the Corporate Server along with a migration plan. When is it time to move to the Corporate Server? FastReport Publisher is a solution that is quite sufficient for a small business that does not require a large number of users, connections to multiple data sources, or scalability through Kubernetes. However, as the company grows, so do its needs for report generation and document management. New departments and branches emerge, signaling that it's time to upgrade the infrastructure. To make sure you need more server capabilities, refer to the comparison table at this link. Next, let’s review the steps to transition from FastReport Publisher to FastReport Corporate Server.  Guide for Quickly Switching Between Solutions First, you need to purchase a license for the Corporate Server and then get a new product key. You can do this in two ways: Fill out the form on the product page, and our manager will contact you. Or send an email to sales@fast-report.com , and you will quickly receive assistance in purchasing the new license. Next, you will need to replace the key in the configuration file. Once you have the new key, add it to the appsettings.Production.json configuration file in the folder where Publisher is installed. To do this, find the “License” field in the file and set the new license key value ("License": "your new key"). The next step is to restart the service. After installing the new key, you should run the files DockerShutdownServer.bat and DockerStartServer.bat sequentially. These files contain commands to stop the service (docker-compose down) and then start it again (docker-compose up). Once these files have finished running, the Corporate Server will be accessible at the same address as before (by default https://localhost:8080 ) without the previous limitations. If necessary, you can configure Kubernetes. In the previous section, the Corporate Server was run on a single computer using docker-compose. However, if you need more computing resources and greater scalability with high availability, you should migrate the solution to the Kubernetes platform or an equivalent. For instructions on setting up your reporting cluster, see the installation guide for the Corporate Server on Kubernetes. Conclusion We have reviewed the reasons and options for upgrading the document creation system from Publisher to the advanced version—the Corporate Server. If you encounter any difficulties or errors during the transition process, please contact our support team . Our specialists will answer all your questions and offer solutions to any problems. Tags: FastReport, Publisher, Corporate Server ### How to troubleshoot the most common issues when installing FastReport VCL URL: https://www.fast-report.com/blogs/problems-installer-vcl Summary: We have compiled a list of the most popular problems when installing FastReport VCL and have prepared detailed instructions on how to fix the problems that have arisen. We have compiled a list of the most popular problems when installing FastReport VCL and have prepared detailed instructions on how to fix the problems that have arisen. We have compiled a list of the most popular problems when installing FastReport VCL and have prepared detailed instructions on how to fix the problems that have arisen. The FastReport Online Installer program is used to install FastReport VCL and its components. The program has a simple, intuitive interface. We strongly recommend that you use the latest version of the installer. You can download it from this link. However, in some cases, you may have problems during the installation process. In this article, we will look at how these problems can be solved or prevented.  When launching the FastReport Online Installer , it automatically starts checking the installer for updates and offers to download the new version. Next, using the browser (selected as the default in the system), your account is checked for already purchased FastReport components. If there are no purchased products on your account, you will only have access to the demo center with the Trial versions of FastReport. Important! The account (email) on which your FastReport instance was purchased must match the account you used to log in to the "Fast Reports Inc" personal account . If you are having trouble logging in with the right account, try clearing the cache of your running browser and logging in again.  If your license allows installation on multiple computers (e.g., Team, Site, OEM), you must log in to the "Fast Reports Inc" personal account under the user that the license was purchased for on each computer. Alternatively, you can use an alternative method with access rights transfer. To do this, you need to go to Settings -> Profile in your personal account, and on the Accesses tab, add access to the required products and their versions for the user. Then click the "Add access to license" button. In the appeared window, specify the user's email and the required product, and also select the necessary version from the list of available ones. During installation, the installer will prompt you to close all currently running IDEs. If any IDEs are open, you will see the following window: Manual registration If, for some reason, you cannot use online identification, you have a manual registration option. To get your registration code, copy the text from the "Registration Information" field and send it to support@fast-report.com . If you want to receive a registration code for an email address different from the one you are writing this email from, please specify the email address used to log into the client's personal account in the body of the email. .  Do not close the installer until you receive the registration code with the .dat files in the reply email. Then put the .dat files in the same folder as the installer and continue the installation. There is another third way to install FastReport components. Start the online installation on a device connected to the network. Then transfer the .dat files and the installer to a computer that does not have network access and complete the installation on this computer. Preliminary request for the registration code from technical support as described earlier in the article. Remember that you cannot close the Online Installer until you receive the registration code!  *.dat files can be transferred between computers, provided that the installation will be for the same user (to the same email address). Moreover, .dat files can be transferred to another computer even during online installation (also for the same user), thereby saving time downloading them. Component installation process Next, you have the ability to "Install," "Modify" (if the products are already installed on your computer), "Recompile," "Repair," and "Remove" FastReport components. "Recompile" means reinstalling the FastReport library on your computer. This may be necessary when you have made changes to the library's source code and need to reinstall it in the IDE. "Repair" allows you to reinstall FastReport on your computer with the current selected settings. This function can work without an internet connection. "Remove" completely uninstalls the library from your computer. "Install" or "Modify"—when you select this option, the next window shows the IDEs in which you can install FastReport. You select the components you want to install, as well as the installation type—Trial or Source. The set of available components depends on the license you have purchased. Please note that at least one IDE must be installed on your computer where FastReport can be installed. This can be Delphi starting from version 2010 or the latest versions of Lazarus. You can view the list of Delphi versions supported by FastReport here . If you need an older version of FastReport, for example, for Delphi 7, please contact technical support. The installer can install different versions of FastReport for each installed IDE. Preliminary installation of additional components Important! Before installing FastReport, you must install the additional components that you intend to use together with FastReport. For example, if you plan to use BDE components in FastReport, then before the installation, BDE must already be installed in your IDE. Otherwise, the installer will simply not be able to build the FastReport packages that use BDE. For other components, you similarly need to pre-install FIB, TeeChart, and so on. We strongly recommend that before starting the installation, you remove all old versions of FastReport, as well as FastReport Embarcadero Edition, from your IDEs. This is necessary for the normal operation of the installer. It is also necessary to remove ".bpl" format files for old versions of FastReport. If the installer finds them, it will not be able to continue its work. Such files can be located, for example, in the following folders: C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\ C:\Users\Your_User_Name\AppData\Local\VirtualStore C:\Windows\SysWOW64 The .bpl files have the following format (where XX is a number in the name that depends on the IDE version you have installed): fr*XX.bpl, fs*XX.bpl, fqb*XX.bpl . The table with the dependencies of the Delphi IDE version, the compiler, and the package versions can be found here. If the system still has .bpl files from old versions, and the installer did not find them for some reason, the following error may appear when launching the IDE:  In this case, all the old .bpl files should be deleted. The installer searches for the installed IDE versions in the registry. If there were errors during the IDE installation and/or the registry keys are missing, then installation for that IDE is not possible! This IDE will also be absent from the list of available installations. Error "bpl of the remote version not found" Sometimes the installer incorrectly removes the old version of FastReport. The files are deleted, but the registry links to the .bpl remain. In this case, when launching Delphi, the following types of windows will appear: To solve this problem, click the "Cancel" button in each window or press the "Escape" key. This will prevent these windows from appearing again. If the .bpl version number in the error matches the version number you wanted to install, then this error is not related to the .bpl. Most often, such error messages can occur due to the lack of installed Steema, TeeChart, or Interbase Express (IBX) Components. Sometimes FastReport components are selected for installation, but after the installation, they do not appear in the component palette. In this case, the Repair function in the installer may help.  If this method did not help you, you should check if these components are selected in the I DE Components -> Install Packages window. You can also try to manually install these *.bpl files. They are located (when installed by default) in the following path: «C:\Program Files (x86)\FastReport VCL\\Sources\LibRS\VCL\Win32\»  Error during compilation and installation of packages in the IDE If the installer was able to download the FastReport library but, for some reason, could not compile and install the packages in the IDE, you can try to compile and load them manually. To do this, use the installation instructions at this link and the Embarcadero documentation at this link.  Ensure that the paths to these libraries are in the IDE's PATH variable and the paths to the FastReport source code are set up correctly. You also need to check the existence of the IDE FRL variable. By default, it should be a path roughly like this: «C:\Program Files (x86)\Fast Reports VCL\2024.2.6\Sources» You can check how the library compilation went by running the logging during the installation. To do this, write the "-log" key in the properties of the installer shortcut. VCLOnlineInstaller.exe -log:"c:\test.log". With this parameter, we strongly recommend using an absolute path so that you don't have to search for the file of the resulting log in the future. If you need to specify additional directories where the libraries required for FastReport compilation are located during installation, you can run the installer with the "-addCustomPaths" parameter. VCLOnlineInstaller.exe -addCustomPaths After selecting the FastReport components, a window will appear where you can set the search paths for the libraries for the compiler. Also, during the installation process, you may have the following situation: after installation, there are no FastReport components in the IDE. To solve this problem, you need to check the presence of the *.dat files of the installer. If they are missing or very small (the smallest should be more than 280 Kb), restart the installation with the firewall and antivirus disabled (or add the installer to the exceptions). Useful information It should be noted that when updating FastReport, there may be a situation where a report saved in the new version cannot be opened in the old version. This happens due to the addition of new properties of report components, as well as new components themselves. The old versions do not know anything about these properties and components. In general, outdated reports in the .fr3 format should open normally in new versions of FastReport. If you want to install the free FastReport Embarcadero Edition, you can do so using GetIT in the Delphi IDE. To install, go to Tools->GetIt Package Manager and select FastReport Embarcadero Edition.  But be aware that this version of FastReport cannot be installed in Delphi CE. Also, note that the delivery package includes many examples of using FastReport. By default, they are installed in the folder "C:\Users\Public\Documents\Fast Reports VCL\2024.2.6\Sources\" . The offline documentation is also located there. The package also includes a Demo Center (you can install it separately), which you can use to get acquainted with some of the capabilities of FastReport without installing it on your computer. FastReport is constantly evolving, with new features and functions being added. If you have any questions about their use, you can always contact our technical support! Tags: VCL, FastReport, Install ### How to Try FastReport .NET WEB Before Purchase URL: https://www.fast-report.com/blogs/testing-fastreport-net-web Summary: By testing the WEB pack before purchasing, you can make an informed choice about whether FastReport is suitable for you.NET for your tasks. By testing the WEB pack before purchasing, you can make an informed choice about whether FastReport is suitable for you.NET for your tasks. Choosing reporting tools is an important step in developing any business application. However, before purchasing the full version, many developers want to assess the product's potential and ensure it meets their needs. In this article, we will discuss how to try the FastReport WEB package, its limitations compared to the full version. Choosing reporting tools is an important step in developing any business application. FastReport, one of the leading solutions in the market, offers powerful capabilities for generating reports of various complexities. However, before purchasing the full version, many developers want to assess the product's potential and ensure it meets their needs. In this case, an excellent solution is to use the FastReport .NET WEB package, which allows you to test the system's core functionalities without the need for an immediate license purchase. In this article, we will discuss how to try the FastReport WEB package, its limitations compared to the full version, and how this can help you make an informed decision about acquiring the tool. Demo Projects on the Website First, let’s take a look at the demo projects that you can explore on our website. 1) Blazor Server. Using Blazor Server technology, all application logic runs on the server side, while the user interface for the viewer and report designer is displayed in the browser window. When interacting with the interface, the browser sends an event, the server processes it, and sends back updated information. All interactions with the visual components, data processing, and report generation occur on the server side, allowing reporting components to be used on nearly any device. The server’s performance is crucial here. You can check out the demo project at the following link. Blazor Server demo 2) Blazor WebAssembly (WASM). This technology allows you to develop applications directly in the browser. The visual part and event handling are set up using C# code and Razor. The application is compiled into .NET assemblies and fully loaded into the browser using WebAssembly. When using the report generator, browser resources are leveraged, meaning that server requirements are minimal. WebAssembly is suitable for those who need to save server resources and for whom security is not as critical. Files are saved on the client side with access to the report template. In this case, passwords will be sent openly, which is why we recommend creating a REST service for data representation while using our set of WEB components as a “showcase.” You can check out the demo project at this link. WebAssembly demo 3)  FastReport Online Designer is the web version of the FastReport .NET report designer. The online report designer is a RIA (Rich Internet Application), allowing it to run from any device with a modern web browser. The online designer will work in the latest versions of popular browsers (Chrome, Firefox, Opera, Safari, IE), unlike the desktop designer which operates only on the Windows operating system. However, despite all the cross-platform advantages, the online version lags behind the desktop version in convenience and functionality. You can check out the Online Designer demo at this link. Online Designer demo 4) ASP.NET is a web application development platform that includes web services, software infrastructure, and a programming model from Microsoft. ASP.NET is part of the .NET Framework and is an evolution of the older Microsoft ASP technology. You can check out the ASP.NET FastReport demo project at this link. ASP.NET demo 5) ASP.NET MVC – The Model-View-Controller (MVC) architecture pattern separates the application into three main components: model, view, and controller. The ASP.NET MVC platform provides an alternative to the ASP.NET WebForms template for building MVC-based web applications. You can check out the ASP.NET MVC FastReport demo project at this link. ASP.NET MVC demo 6) .NET Core – is a cross-platform application runtime developed by Microsoft that allows the creation and execution of applications across various operating systems. Core is a universal platform designed for developing web services, cloud applications, and other types of software. It features a modular architecture, allowing developers to choose only the necessary components for their projects, reducing the final product size. What is .NET Core in the context of development? It is an environment that supports automatic memory management, type safety, and many other modern features that simplify the lives of developers. You can check out the .NET Core FastReport demo project at this link. .NET Core demo In general, this is the complete list of WEB demo applications that we can explore before making a purchase. One of the main conveniences is that there is no need to develop your own project and connect the necessary packages. You just need to follow the link and see the application's functionality in all its glory. But what if we want to create a project on our own? In this case, FastReport has a solution for developers. To create a demo application independently, we will need knowledge of WEB development in C#, NuGet packages, and the magic of .NET. NuGet Packages On our website, you can find many articles on developing WEB applications using FastReport. Now, let's take a closer look at the demo NuGet packages that we can obtain from NuGet.org. FastReport.Core ( demo on nuget.org ) - a package with the core logic of the program (data retrieval, report rendering, exports, etc.). Some functionality from FastReport.NET is absent due to the cross-platform nature of the package. Works with .NET Framework 4.6.2 and .NET 6 and later. FastReport.Core.Skia ( demo on nuget.org ) - a package with the core logic of the program for SkiaDrawing (data retrieval, report rendering, exports, etc.). Works with .NET 6 and later. FastReport.Web ( demo on nuget.org ) - a package for integrating FastReport into web application scenarios (report rendering in the browser, export and print from the browser, working with the Online Designer) for ASP.NET Core. It includes components for Blazor Server and is used only with FastReport.Core. Works with .NET 6 and later. FastReport.Web.Skia ( demo on nuget.org ) - a package for integrating FastReport into web application scenarios using SkiaDrawing (report rendering in the browser, export and print from the browser, working with the Online Designer) for ASP.NET Core. It includes components for Blazor Server and is used only with FastReport.Core. Works with .NET 6 and later. FastReport.Blazor.Wasm ( demo on nuget.org ) - this package contains Razor components for Blazor WebAssembly. Works with .NET 6 and later. Now, let's figure out how to incorporate these packages into your project. For this example, we will be using Visual Studio. First of all, we create a project. After that, we navigate to Solution -> Dependencies and right-click on "Packages." Then, we go to "Manage NuGet Packages". You can find out more about enabling NuGet packages in this article. Read the article After that, we will be taken to the NuGet packages menu. By default, the source is set to NuGet.org.   In this section, we can select the desired package and install it in our project. When selecting a package, you can view its detailed description (which platforms the package supports, the latest version, etc.). We install the package using the "Install" button on the right side of the screen. The preparatory stage is complete, and we can start developing our application using the demo packages. Creating a Report Directly from the Browser Let’s take a look at the demo Online Designer. To do this, follow this link:  https://demo.fast-report.com/net-core/designer , and you will be taken to the demo application. Here, we can use the full functionality of the Online Designer. There is only one limitation—saving the report. On the left, there is an element panel from where we can drag text objects, images, tables, etc., into our report. On the right, we have the report properties, events, data, and report tree. Additionally, there is a management menu for the report at the top. If necessary, there is also an option to change the page language. You can find detailed instructions on how to work with the online report designer at this link. Online documentation Installing FastReport .NET WEB on Windows Now, let's install the demo version of the desktop report designer. To do this, we need to follow this link and install the "Trial version for WinForms, WPF, Avalonia, Mono for Windows." In addition to the WEB packages, we can also obtain various demo versions of products, such as report designer for Avalonia . The trial desktop versions have slightly different limitations:  Words are replaced with "Demo" in random places in the report. Watermarks appear in random places. Otherwise, the functionality is the same as in the full version. After installation, we open the installer. You can familiarize yourself with how to use it at this link. Next, we select the trial component set that we need. We click "Next" and wait for the products to install. Once the selected products are installed, we need to navigate to C:\Program Files (x86)\Fast Reports\.NET . Here, you will find folders named after the latest available version of the product. We proceed directly to the " FastReport .NET WEB Trial " folder, as shown in the screenshot below. In this folder, you will find the desktop designer, viewer, localizer, and .dll files. We also have a "Nugets" folder where most trial NuGet packages can be found. The "Demos" folder contains demo projects, and by going into any of them, you can explore the applications and their code. Conclusion Thus, using the FastReport WEB package represents an excellent opportunity for developers to test the system's capabilities before making a purchase. With the availability of essential features and tools, you can create test reports, evaluate the user interface's convenience, and ensure the solution's compatibility with your projects. While the trial version has some limitations, they do not hinder gaining a complete understanding of the product's potential. By testing the WEB package before purchasing, you will be able to make an informed choice: whether FastReport meets your needs or if you should consider alternative options. Remember that a well-chosen reporting system is an investment in your application's efficiency and end-user satisfaction. Tags: .NET, FastReport, ASP.NET, Install, WebReport, Designer, Blazor, NuGet ### How to uninstall our products URL: https://www.fast-report.com/how-to-uninstall Summary: Open Programs and Features by clicking the Start button Picture of the Start button Open Programs and Features by clicking the Start button Picture of the Start button To uninstall or change a program Open Programs and Features by clicking the Start button Picture of the Start button. Select a FastReports folder, and then click Uninstall. Administrator permission required If you're prompted for an administrator password or confirmation, type the password or provide confirmation. ### How to update FastReport Online Designer to the latest version URL: https://www.fast-report.com/blogs/update-online-designer Summary: Step-by-step instructions for updating FastReport Online Designer to the latest version via the client panel. Step-by-step instructions for updating FastReport Online Designer to the latest version via the client panel. Step-by-step instructions for updating FastReport Online Designer to the latest version via the client panel. Starting with version 2021.4.5 FastReport Online Designer is switched to new licensing. You can read more about it in the license agreement. Along with it, there’s a new way of installing the updates. In order to update the Online Designer to the latest version you need to log into your customer panel: https://cpanel.fast-report.com/login Then in the FastReport Online Designer tab switch to the FastReport Online Designer Builder page.  Now you need to set up the designer configuration.  After configuring your build, click the “Assemble” button, which is located to the right of the menu items. You can find the assembled version of FastReport Online Designer in the Latest Build section, which is located when you click on three dots. After the preceding steps are done, FastReport Online Designer will soon appear in the FastReport Online Designer Builder or be emailed to you.  Tags: FastReport, Online Designer, Install, Upload ### How to update the FastReport.Core web report URL: https://www.fast-report.com/blogs/update-FastReport.Core-web-report Summary: The article disctibes how to update web report of FastReport.NET The article disctibes how to update web report of FastReport.NET The article disctibes how to update web report of FastReport.NET Sometimes you need to update the report, for example if you input a new variable value, or if you want to display another report in the same Web report object at all. This usually updates the entire view (we're talking about MVC applications) for the sub-set. But it would be much better if you updated only the Web report object. 1. Update asp.net core report after variable change https://forum.stimulsoft.com/viewtopic.php?f=13&t=57213 … All this is great and working well. What we cannot figure out is how to refresh the report Variables with this new posted-back data and have the report redraw. Is this done within the Controller and, if so, how do we tell the viewer to refresh (thus getting the new data) or is this done within the View and, if so, what is the correct method to call on the Viewer object. ... 2. How do I refresh a Web Report Viewer After Changing the Report. https://forum.stimulsoft.com/viewtopic.php?f=13&t=58104  What is the object of the web report? Basically, it is an html container with a set of scripts that allow you to navigate through the pages of the report and call useful functions, such as printing and exporting. And the web report itself is a report exported to html. The easiest way to update a part of the page is to use iframe. We will only replace the frame source, and it will get a partial or full view of the report by url. Let's consider an example where the web application page displays a drop-down list and a frame. If you select a report name from the drop-down list, the web report object with the corresponding report is loaded. To start with, we'll need a method in the controller that returns the view with the Web report object: ``` public IActionResult Update(string SelectedItem) { if (SelectedItem != null) { WebReport webReport = new WebReport(); webReport.Report.Load($"App_Data/{SelectedItem}.frx");   var dataSet = new DataSet(); dataSet.ReadXml("App_Data/nwind.xml"); webReport.Report.RegisterData(dataSet, "NorthWind");   webReport.Width = "1000"; webReport.Height = "1000"; ViewBag.WebReport = webReport; } return PartialView(); } ``` The method has an input parameter SelectedItem - the name of the selected report. For this method you need to create a partial view with a single line of code that displays the web report object: @await ViewBag.WebReport.Render() Appearance of the Index start page will look like as follows: ``` @{ ViewData["Title"] = "Home Page"; }
```  First, we display a drop-down list with three available reports on the form. In the onclick list event handler, we assign a source url frame. The url itself contains the path to the web method with the parameter. The value of the parameter is taken from the selected item in the drop-down list. Below, the frame is displayed. Let's run the application. Select a report from the drop-down list: And will get it: Thus, partial page refresh by using a frame is very easy to implement. Tags: .NET, .NET, FastReport, FastReport, Core, Core, WebReport, WebReport, Upload, Upload ### How to upgrade an old version to a new FastReport VCL URL: https://www.fast-report.com/blogs/upgrade-version-fastreport-vcl Summary: Step-by-step instructions for removing past components and installing a new version of FastReport VCL using the Delphi utility. Step-by-step instructions for removing past components and installing a new version of FastReport VCL using the Delphi utility. Step-by-step instructions for removing past components and installing a new version of FastReport VCL using the Delphi utility. Starting version 2021.1 all FastReport VCL editions are subscription-based. It means that you will always have an up-to-date version as long as your subscription is valid. First of all, you need to download the program from the developer’s site. To do this, you need to log in to the site at: https://cpanel.fast-report.com/login . Next, in the Products tab, find the product you bought and download it by clicking on the appropriate link. Then we need to uninstall the previous version of FastReport VCL, because if we do not delete the previous version, various conflicts and errors may occur. To do this, run the uninstaller and select Uninstall. Also, after the uninstall, you need to check for the presence of "frx*.bpl" in the folders C:\Windows\System32 and C:\Windows\SysWOW64 . After successful uninstall, these files should be missing. Attention! Be sure to check the availability of TeeChart Std and IBX component packages in your IDE before starting the installation. To do this, go to RAD Studio Menu->Tools->Manage Platforms -> Additional Options -> select "TeeChartStd and IBX", and then click Apply. If you do not want to use these packages, then at the beginning of the installation, select the custom FastReport installation process, and then uncheck the Chart and IBX component packages. Step-by-step instructions for installing the new version of FastReport VCL Step 1. Launch the installer, where we are greeted by a welcome window. Click "Next" to continue the installation. Step 2. Read the terms of the license agreement. If you agree to these terms, then check the box "I accept the terms of the license agreement" and click "Next". Step 3. You will have important information about the FastReport VCL product. After familiarization, click the "Next" button. Step 4. Enter the license key for activation. To do this, copy it from https://cpanel.fast-report.com/login , by clicking on the button as in the screenshot. The copied license key is inserted into the appropriate field. Step 5. Next we can choose the type of installation: Complete and Custom. Step 6. The first type allows you to set all the program components by default, and the second one allows you to select the necessary ones: Attention! At this stage, disable the installation of the corresponding FastReport Chart and IBX components if you do not want to install the TeeChartStd and IBX component packages in your IDE. Step 7. Select the folder on the local disk where the program will be installed: Step 8. Then you can specify the name of the directory where the shortcuts to run will be located. It is also necessary to choose for which users the program is supposed to be installed (for one, only the current one, absolutely for all). Step 9. This is the last opportunity to think about whether you have set all the installation settings correctly. If you are sure of the previous settings, then click "Next". Otherwise, "Back" to return to the previous step. Step 10. After clicking the "Next" button, the program is installed: Step 11. The last window informs you of the successful installation. Step 12. Immediately after the installation is completed, a utility will be launched that will allow you to compile the FastReport libraries for the desired Delphi version: You can refuse to compile by clicking the "Exit" button, or accept using the "Continue" button: The compilation wizard allows you to set a lot of parameters: compiler, FastReport version, TeeChart charts component, and change actions. By default, the FastReport libraries are already compiled, and this utility simply prompts you to compile them with your own settings. Tags: VCL, FastReport, Install, Upload, Delphi ### How to upload a report to OnlineDesigner and download it after editing in an ASP .NET Core application URL: https://www.fast-report.com/blogs/upload-edit-download-report Summary: How to upload a report to Online Designer and download it after editing in an ASP .NET Core application. Create an ASP .NET Core application. How to upload a report to Online Designer and download it after editing in an ASP .NET Core application. Create an ASP .NET Core application. How to upload a report to Online Designer and download it after editing in an ASP .NET Core application. Create an ASP .NET Core application. While working with Fast Reports online report designer, we usually have to upload our report templates into it, and then, after editing, download them. Today we will look at how this can be done in the context of an ASP .NET Core application. Create an ASP .NET Core application. Add the FastReport .NET libraries to it using NuGet. Use the local package source - the Nuget folder from the FastReport .NET installation directory. Install two packages FastReport.Core and FastReport.Web. Add the App_Date folder to the wwwroot folder. Put the data source for the demo reports in it - nwind.xml. We also add a folder with an online designer in wwwroot, which you downloaded from the official website www.fast-report.com . To use the Fast Reports libraries in your project, you must add one line to the Startup.cs file: ``` public class Startup { public void Configure(IApplicationBuilder app, IHostingEnvironment env) { … app.UseFastReport(); … } } ``` Let's proceed to editing the HomeController controller. We need to create 4 methods: display the report designer with the loaded report, upload the file to the server, generate a file for downloading, save the modified report to the server. ``` public class HomeController : Controller {   public static string ReportName;   public ActionResult Index(string filepath) { Task.WaitAll(); WebReport webReport = new WebReport(); // Web report object webReport.Width = "1000"; webReport.Height = "1000"; string report_path = GetReportPath(); // Path to the folder with reports System.Data.DataSet dataSet = new System.Data.DataSet(); dataSet.ReadXml(report_path + "nwind.xml"); // Read the database webReport.Report.RegisterData(dataSet, "NorthWind"); // Register data in the report if (System.IO.File.Exists(report_path + "report.frx")) { webReport.Report.Load(report_path + "report.frx"); } // If you use a cache, then load a report from it. if (filepath != null) { webReport.Report.Load(filepath); }   // Set the settings Online-Designer webReport.Mode = WebReportMode.Designer; webReport.DesignScriptCode = false; webReport.Debug = true; webReport.DesignerPath = @"WebReportDesigner/index.html"; webReport.DesignerSaveCallBack = "Home/SaveDesignedReport"; ViewBag.WebReport = webReport; // pass the report to View ViewData["reportName"] = ReportName = Path.GetFileName(filepath); return View(); } private string GetReportPath() { return "wwwroot/App_Data/"; }     [HttpPost] public async Task UploadFile(List file) { if (file == null || file[0].Length == 0) return Content("file not selected"); // Form the path to the file var path = Path.Combine( Directory.GetCurrentDirectory(), GetReportPath(), file[0].FileName); // Save the file on the server using (var stream = new FileStream(path, FileMode.Create)) { await file[0].CopyToAsync(stream); } // Move on to display the report designer with the loaded report template. return RedirectToAction("Index", "Home", new { filepath = path }); }   [HttpPost] public IActionResult Download(string filename) { // Form the path to the file on the server var path = Path.Combine(Directory.GetCurrentDirectory(), GetReportPath(), filename);   if (System.IO.File.Exists(path)) { // Form the result of POST request var bytes = System.IO.File.ReadAllBytes(path); Response.Body.Write(bytes, 0, bytes.Length); } return new OkResult(); }     [HttpPost] public IActionResult SaveDesignedReport(string reportID, string reportUUID) { var path = Path.Combine(Directory.GetCurrentDirectory(), GetReportPath()); ViewBag.Message = String.Format("Confirmed {0} {1}", reportID, reportUUID); // Set the message for representation Stream reportForSave = Request.Body; // Write the result of the Post-request to the stream. string pathToSave = System.IO.Path.Combine(path, ReportName); // Form the path to save the file using (FileStream file = new FileStream(pathToSave, FileMode.Create)) // Stream creation { reportForSave.CopyTo(file); // Save query result to file return View(); } }   } ``` When displaying a web page, at first you will see a report designer with a blank template. And after uploading the report file to the server, the designer will appear with the template loaded. Notice that we use ViewData to pass the report name to the view. Now change the view for the Index method: ``` @{ ViewData["Title"] = "Home Page"; }
  @await ViewBag.WebReport.Render()   ``` Here we used two ways to send requests to the server - through the form and through the ajax request. In the first case, we load the file, and since we still need to update the report designer, we can neglect to refresh the entire page. In the second case, when downloading the report file, we do not want to refresh the page and it is better to use the ajax request. We cannot organize file downloading with only ajax request, therefore when processing the result of the request we create a tag with a link to the file being downloaded. For the SaveDesignedReport method in the controller, you need to create a view with the code: @ViewBag.Message That's all. Run the application. First we see a report designer with an empty template. Click the button "Select file" and select the report template to download. Press the button "Upload file": And we get a report designer with a loaded template. We can perform any manipulations with the template and save it. And then, click the "Download Report" button. And the browser loads the report file. Thus, we realized our plans - a full-fledged report editor with the ability to load, save and download a report. Tags: .NET, .NET, Export, Export, FastReport, FastReport, Core, Core, PDF, PDF ### How to upload report into Online Designer and download edited report URL: https://www.fast-report.com/blogs/upload-report-online-designer-download One of the first questions that faces Online Designer users is how to organize downloading reports from a local computer? Today we will consider uploading from the local computer to Online Designer and downloading the modified report using the example of the ASP.Net MVC application. Create an ASP.Net MVC project. We will need the following libraries: Open the controller HomeController.cs. Add the missing libraries to the uses section: ``` using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.UI; using System.Runtime.Caching; using System.Text; using System.IO; using FastReport; using FastReport.Web; using FastReport.Utils; using System.Web.UI.WebControls; using FastReport.Export.Html; using FastReport.Data; using System.Net.Http.Headers; using FastReport.Export.Image; using System.Net.Http; ``` We will display OnlineDesigner in the Index method. But, first we create a web report object and a cache for storing the report file. I use the cache in order to avoid saving the file on the server: ``` private WebReport webReport = new WebReport(); //Report object   MemoryCache cache = MemoryCache.Default; //Cache   public ActionResult Index(HttpPostedFileBase upload) { webReport.Width = Unit.Percentage(100); webReport.Height = Unit.Percentage(100); string report_path = GetReportPath(); // The path to the folder with reports System.Data.DataSet dataSet = new System.Data.DataSet(); dataSet.ReadXml(report_path + "nwind.xml"); //Read database webReport.Report.RegisterData(dataSet, "NorthWind"); // Register the data in the report // If you do not use the cache, then load the report from the server if (System.IO.File.Exists(report_path + "report.frx")) { webReport.Report.Load(report_path + "report.frx"); } // If you are using a cache, then load a report from it if (cache.Contains("1")) { webReport.Report.Load(cache["1"] as Stream); }   // Online-Designer settings webReport.DesignReport = true; webReport.DesignScriptCode = false; webReport.Debug = true; webReport.DesignerPath = "~/WebReportDesigner/index.html"; webReport.DesignerSaveCallBack = "~/Home/SaveDesignedReport"; webReport.ID = "DesignReport"; ViewBag.WebReport = webReport; //Pass the report to View   return View(); } ```  Method for obtaining the path to the reports: ``` private string GetReportPath() { return this.Server.MapPath("~/App_Data/"); } ```  Next, we add the method of uploading the file:  ``` [HttpPost] // Attribute indicates that the method is processing the Post request public ActionResult Upload(HttpPostedFileBase upload) {     if (upload != null) { // Get file name string fileName = System.IO.Path.GetFileName(upload.FileName); // Save report in cache cache.Add("1", upload.InputStream, DateTimeOffset.Now.AddMinutes(1)); // If you save to a file on the server upload.SaveAs(Server.MapPath("~/App_Data/report.frx")); } return RedirectToAction("Index"); } ```  Note the DateTimeOffset.Now.AddMinutes (1) parameter. It specifies the cache lifetime. Now we need a method of saving the report in Online Designer: ``` [HttpPost] // call-back for save the designed report public ActionResult SaveDesignedReport(string reportID, string reportUUID) { ViewBag.Message = String.Format("Confirmed {0} {1}", reportID, reportUUID);   if (reportID == "DesignReport") { //Save report in cache cache.Set("1", Request.InputStream, DateTimeOffset.Now.AddMinutes(10));   // If the report is saved to the server /*************************************/   Stream reportForSave = Request.InputStream;   string pathToSave = Server.MapPath("~/App_Data/DesignedReports/test.frx");     using (FileStream file = new FileStream(pathToSave, FileMode.Create)) { reportForSave.CopyTo(file); } /*************************************/ } return View();   } ```  We create a single view SaveDesignedReport.cshtml for this method: ```

@ViewBag.Message

```  It remains to implement the method of downloading the report file: ``` public FileResult GetFile() { Stream str = cache["1"] as Stream; // Prepare a file for download from the cache return File(str, "application/octet-stream","test.frx"); // If you used saving report to the file on the server return File(Server.MapPath("~/App_Data/DesignedReports/test.frx"), "application/octet-stream", "test.frx"); } ```  Now consider the view for the Index page (Home-> Index.cshtml): ``` @{ ViewBag.Title = "Home Page"; }

Select file

@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) { }
@using (Html.BeginForm("GetFile", "Home", FormMethod.Get)) { }
@ViewBag.WebReport.GetHtml() ``` At the top we display the title of the page. Next, use the BeginForm helper to create a form with a file select button. The parameters specify the name of the handler method - "Upload", the controller name is "Home", the processing method is FormMethod.Post, the data encoding method is - enctype = "multipart/form-data". Next, insert the file download field and the button. On the right side of the page, we'll place one more button on which the edited report will be downloaded. For it, we also create a form using the BeginForm helper. In the last line of code, we display the report received from the controller. It is necessary to connect the scripts in the file _Layout.cshtml:     ``` @WebReportGlobals.Scripts() @WebReportGlobals.Styles() ```  Now you need to make changes to the two web configs. The files are called the same, but they are located in different folders. The first one is located in the Views folder. We add to it: ``` … ```  The second file is located at the root of the project. In it we add a handler: ``` … ```  Run our application. We see OnlineDesigner with an empty report. Download the report from the local computer using the "Select file" button. From the dialog box, select the file and click the Upload button: The report template was loaded. Let's change the background color in the data band. On the "Report" tab, we click the "Save" button: The SaveDesignedReport method works and we see the green alert on the right: Now click the «Download designed report» button: Browser download our report. Open it with Report Designer: And get our report, edited with Online Designer. Tags: .NET, .NET, FastReport, FastReport, MVC, MVC, Online Designer, Online Designer, WebReport, WebReport ### How to use a separate application domain for a report with a script URL: https://www.fast-report.com/blogs/separate-application-domain-script Memory problem When working with complex reports, which use the internal script, I noticed a significant consumption of RAM. For web services this may be critical. Why is this happening? After compilation of the report script a small library (assembly) remains in memory. It persists by the framework engine for subsequent calls. In the end, "garbage collector" will remove them, but still there is a memory consumption having place before. The way out of this situation is to use a separate application domain for the report with the script. By using the application domain, we can remove an assembly from memory, or to be more accurate - to unload domains that contain the assembly. Thus, by isolating the report and accompanying library with the script, we can easily clear the resources simply swapping out the unnecessary domain. The pay for this – is the necessity for creation an assembly that is loaded in the second domain and some inconveniences of calling functions of the second domain from the first one. Using domains Any .Net application already has one default domain. It was decided to create another domain and put the assembly with the report into it. Besides the report object, the assembly will contain functions of working with the report: show, export. I found marshaling and proxy to be the easiest way to communicate with the second domain. Usually marshaling is used for inter-process communication, but this  is also true for domains. Marshaling allows the client in the same domain invoke the object functions from another domain. We will refer to the object in the domain through a proxy. The interaction between the domains is the same as between different processes. To access code in another domain, you should use a proxy. Proxy is an object replacement. It redirects calls from one domain to another. Let's look at the workflow of a report with one or two domains: The figure shows that one domain is run in a single process. And we are launching a report with a script within it. In this report, the script is compiled and loaded into the assembly domain. If we call a lot of different reports with the script, the number of such assemblies is greatly increased, resulting in the  memory waste. Now let's consider the case with the two domains: In this case, the report is run in a separate domain but still in the same process. In this case, the assembly of the report script is loaded into the second domain. By using the proxy all functions in the second domain are available in the first domain. When we finish our work with the report and close it, the domain is unloaded together with all assemblies while freeing the memory. Implementation Create a Windows Forms application. This application with a standard class will be needed in order to create a second class and invoke functions from the loaded assembly in it. Add two buttons to the form: Run report, Export report to PDF. Add the function for creating a new domain: ``` public AppDomain NewDomain() { AppDomain domain = AppDomain.CreateDomain("NewDomain"); return domain; } ```  And function of unload domain: ``` public void UnloadDomain(AppDomain domain) { AppDomain.Unload(domain); } ```  Add a class library project to the solution. Call it a New Domain. So we have an assembly, which will be uploaded into a new domain. Be sure to inherit the class from MarshalByRefObject. To work with FastReport .Net, we need to add a reference to FastReport.dll library in the project. Now you can create an instance of the Report object: public Report report1 = new Report(); We will upload the report with a script in it. To do this, create report download function: ``` public void LoadReport(string path) { report1.Load(path); } ```  And functions run and export the report: ``` public void ShowReport() { report1.Show(); }   public void ExportToPDF() { FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); pdf.Export(report1); } ``` This is all we need to work with the report. Build the assembly and put in a folder with the application's executable file or add a reference to the assembly in the application project. Go to the project application. Earlier we wrote a function of adding a new domain. Now we need to download the created above assembly in this domain. To work with the assembly, we need a proxy: ``` public dynamic CreateProxy(AppDomain domain) { dynamic proxyOfChildDomainObject = domain.CreateInstanceFromAndUnwrap("NewDomain.dll", "NewDomain.NewDomainClass"); return proxyOfChildDomainObject; } ```  Here we create an instance of a proxy class for our assembly. CreateInstanceFromAndUnwrap function creates a new instance of the specified type defined in the specified assembly file. Specify the name of the assembly file and the full class name as a parameter. So we can create a new domain and proxy to work with the assembly. Now let's add the code for the first button: private void button1_Click(object sender, EventArgs e)         {             AppDomain domain = NewDomain();             dynamic proxy1 = CreateProxy(domain);             proxy1.LoadReport(Environment.CurrentDirectory + "/Matrix.frx");             proxy1.ShowReport();             UnloadDomain(domain);         } Let's take a closer look. In the first line create a new application domain using the function NewDomain(). Next, create a proxy for our assembly in the second domain. You can now work with the functions of the assembly from the second domain. Load the report. And run it in preview mode. After reviewing the report, the domain is unloaded. Use similar code for the second button. Call the function of export the report to PDF instead of showing the report. This will display the window of export settings and save dialog box. ``` private void button2_Click(object sender, EventArgs e) { AppDomain domain = NewDomain(); dynamic proxy1 = CreateProxy(domain); proxy1.LoadReport(Environment.CurrentDirectory + "/Matrix.frx"); proxy1.ExportToPDF(); UnloadDomain(domain); } ```  That's all. The application is ready. Although using multiple domains somewhat slows down the reports, after all it can significantly save the memory when running reports with built-in script. Script assembly will be deleted from the memory, along with the domain unloading. That can be critical for heavy systems, such as web services. In my opinion, the most effective way to work with reports with the script is to run this report in a separate application domain with the re-creation of this domain by N reports building. With the unloading of accumulated assemblies you can adjust the load on the memory. The number N should be selected by experimentation to determine the balance of the cost of resources to create domain and memory cleaning Tags: .NET, .NET, FastReport, FastReport ### How to use Active Query Builder in FastReport .NET URL: https://www.fast-report.com/blogs/active-query-editor-designer-net Summary: Let's take a detailed look at how to use Active Query Builder in FastReport .NET. Find more usefull tips and acticles in our blog. Let's take a detailed look at how to use Active Query Builder in FastReport .NET. Find more usefull tips and acticles in our blog. Let's take a detailed look at how to use Active Query Builder in FastReport .NET. Find more usefull tips and acticles in our blog. FastReport .NET provides enough opportunities for customization of its report designer. In this article, we'll look at how to replace the built-in SQL query editor with Active Query Builder. To get started, you need to download the latest version of Active Query Builder for .NET from the developer's site http://www.activequerybuilder.com/. At the time of publication, this is version 3.4.9.1086. Install the library with the help of the downloaded installer. For the demonstration, create the WindowsForms application. We add references to Active Query Builder libraries in the project. You will need the following libraries, which you will find in the folder with the installed program (C:\Program Files\ActiveDBSoft\Active Query Builder 3 .NET\assemblies): ActiveQueryBuilder.AdvantageMetadataProvider; ActiveQueryBuilder.Core; ActiveQueryBuilder.DB2MetadataProvider; ActiveQueryBuilder.FirebirdMetadataProvider; ActiveQueryBuilder.MSSQLCEMetadataProvider; ActiveQueryBuilder.InformixMetadataProvider; ActiveQueryBuilder.MSSQLMetadataProvider; ActiveQueryBuilder.MySQLMetadataProvider; ActiveQueryBuilder.ODBCMetadataProvider; ActiveQueryBuilder.OLEDBMetadataProvider; ActiveQueryBuilder.OracleMetadataProvider; ActiveQueryBuilder.OracleNativeMetadataProvider; ActiveQueryBuilder.PostgreSQLMetadataProvider; ActiveQueryBuilder.SQLiteMetadataProvider; ActiveQueryBuilder.SybaseMetadataProvider; ActiveQueryBuilder.UniversalMetadataProvider; ActiveQueryBuilder.View; ActiveQueryBuilder.View.WinForms; ActiveQueryBuilder.View.WPF; ActiveQueryBuilder.VistaDB5MetadataProvider. Also, the libraries are required: FastReport; FastReport.Bars; FastReport.Editor. And now add the file to the project. It is a plugin for working with ActiveQueryBuilder. It is located here: J:\Program Files (x86)\FastReports\FastReport.Net\Extras\Misc\ActiveQueryBuilder\ActiveQBForm.cs. To do this, right-click the project name in the Solution Explorer and select Add -> Existing Item…. Since we have the demonstration application, the form will contain only one button: And now create the event handler for the button click with a double click on it: ``` using FastReport.Forms; using FastReport.Design; using FastReport; … private void button1_Click(object sender, EventArgs e) { Report report = new Report(); FastReport.Utils.Config.DesignerSettings.CustomQueryBuilder += new FastReport.Design.CustomQueryBuilderEventHandler(DesignerSettings_CustomQueryBuilder); report.Design(); }   private void DesignerSettings_CustomQueryBuilder(object sender, CustomQueryBuilderEventArgs e) { using (ActiveQBForm form = new ActiveQBForm()) { form.Connection = e.Connection; form.SQL = e.SQL; if (form.ShowDialog() == DialogResult.OK) e.SQL = form.SQL; } } ```  When the button is clicked, a report object is created, then the report builder caller is override. And call the report designer. Below, we created a custom report builder for the Report Builder. As you can see, we simply call the ActiveQBForm object previously added to the project. Now start the application. Click the single button and see the report designer. If you want to edit an existing report, after creating the Report object, you need to load the report into it: ``` report.Load("С:/Program Files (x86)/FastReports/FastReport.Net/Demos/Reports/Image.frx"); ```  Now add the data source to the report using the icon: We need to create a connection to the DBMS supporting SQL language, to continue to use SQL query builder. For example, we connect to the Access database. In the next step of the wizard for creating a new data source, we are asked to select the tables we need from the database. But in the right bottom corner there is a button "Add SQL query ...", which starts the query creation wizard. At the first step of creating a query, you need to specify a name for the new view, which results from the application we are creating. At the second step we can manually enter the text of a SQL query. However, in the lower right corner we see the "Query Builder ..." button that will launch the Report Builder. Push it: And we see the report builder we created on the basis of ActiveQueryBuilder. To add a table to the workspace, drag it from the data area on the right. Or right-click on the workspace of the builder and select "Add" from the context menu: And holding down Ctrl, select the desired table from the database: After that, we click the "Add Selected Objects" button and see the associated tables in the builder: At the bottom of the window, we can see the automatically generated text of the SQL query. And on the Result tab, the result of the query. Let's say we are satisfied with the created query. To accept it, click on the green icon at the top of the window. To cancel, select the red icon. The query wizard sends the SQL query text that we created in the builder: Completing the creation of the query by clicking the Next button, and in the end Finish. In the same way, we complete the creation of the data source. Now in the report designer there was a data source: So we used a plugin to replace the standard SQL query builder. Tags: .NET, FastReport, Data Source, SQL ### How to use an online designer in a web application Mono URL: https://www.fast-report.com/blogs/use-online-designer-mono Those who came across with an online designer in FastReport .Net certainly appreciated all its advantages and, working with FastReport Mono, would like to use it in their web applications. In fact, there is nothing complicated. Today we will look at the way to create a web application in MonoDevelop and to use the online designer in it. In addition to the online designer such buttons as download the report to the designer and save the report to the local computer will be located on the page Let's create an ASP .Net MVC project: We need to add libraries to the project in References: FastReport.Mono, FastReport.Web, System.Net.Http. Download the zip archive with an online designer that you have assembled in an online designer on fast-report.com. Unpack the archive and add the WebReportDesigner folder to the project root. We also need a folder in which we will save reports, store a file with data. Add the App_Data folder to the project root. We will use demo reports from the FastReport.Mono delivery, so we will need the nwind.xml database. Add it to the App_Data folder. Now you can start programming. In the Controller folder is the HomeController.cs file. Fix it. In the using section we need libraries: ``` using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.UI; using System.Text; using System.IO; using FastReport; using FastReport.Web; using FastReport.Utils; using System.Web.UI.WebControls; using FastReport.Export.Html; using FastReport.Data; using System.Net.Http.Headers; using FastReport.Export.Image; using System.Net.Http; ```  Fix the main, and so far the only web method Index: ``` private WebReport webReport = new WebReport(); // Web report object public ActionResult Index() { webReport.Width = Unit.Percentage(100); webReport.Height = Unit.Percentage(100); System.Data.DataSet dataSet = new System.Data.DataSet(); dataSet.ReadXml("App_Data/nwind.xml"); // Read database webReport.Report.RegisterData(dataSet, "NorthWind"); // Register data in the report if (System.IO.File.Exists("App_Data/report.frx")) { webReport.Report.Load("App_Data/report.frx"); } webReport.DesignReport = true; webReport.DesignerPath = "WebReportDesigner/index.html"; webReport.DesignerSaveCallBack = "Home/SaveDesignedReport"; webReport.ID = "DesignReport"; ViewBag.WebReport = webReport; // Pass the report to View return View(); } ```  Let’s consider it in more details. Previously, we created a web report object that is accessible inside the class. In the Index () method, at the beginning we set the size of the WebReport object - height and width at 100%. After that we create a data set. And we load into it the xml database. We register the data source in the report. We check if the report template file exists and, if it is successful, load it into the report object. This is followed by the settings of the web report object. Turn on the report editing mode, which allows you to display the online designer. Then, specify the path to the designer page. In the next step, we set up a view to display the callback when the report is saved. The last setting is the identifier of the report object. We will need this for a View in the future. Using ViewBag, we pass the report object to the view. As we agreed at the beginning, in addition to the report designer, the page will contain buttons for downloading the report to the designer and saving the edited report to the local computer. Write web methods for these buttons. First to upload the report to the server: ``` [HttpPost] // The attribute indicates that the method processes the Post request. public ActionResult Upload(HttpPostedFileBase upload) { if (upload != null) { // Save the file on the server upload.SaveAs("App_Data/report.frx"); } return RedirectToAction("Index"); // Call web index method } ```  Now the report download method to the local computer: ``` public FileResult GetFile() { return File("App_Data/tmp.frx", "application/octet-stream", "tmp.frx"); } ```  Great method! Just one line. If only they were all like that ... The path to the tmp.frx report file is specified in the file parameters. You noticed that in the previous method we saved the report as report.frx. But report.frx is the file of the loaded report template, and our goal is to edit the report, and save it under a different name. Therefore, we need another method - the method of saving the edited report. We will create our own event handler for pressing the report save button in the online designer: ``` [HttpPost] // call-back for save the designed report public ActionResult SaveDesignedReport(string reportID, string reportUUID) { ViewBag.Message = String.Format("Confirmed {0} {1}", reportID, reportUUID);   if (reportID == "DesignReport") { Stream reportForSave = Request.InputStream; string pathToSave = "App_Data/tmp.frx";   using (FileStream file = new FileStream(pathToSave, FileMode.Create)) { reportForSave.CopyTo(file); } }   return View(); } ```  In the first line, we show a message confirming the saving of the report. Then, we check the report identifier, if it is equal to "DesignReport", then we send the result to the stream. And create a new report template file based on this stream. For this method, we need to create a view. Right-click on the method signature and create a new view (create view): In the "view" code, simply display the message:

@ViewBag.Message

Thus, the second file will appear in the Home folder – SaveDesignedReport.cshtml. Do you remember, in the Index () method, we specified the web report property? webReport.DesignerSaveCallBack = "Home/SaveDesignedReport"? It's time to set the value of this property if you didn’t know what your view would be called to display the callback to save the report. Now let's move on to an equally interesting part - coding the Index.cshtml view: ``` @{ ViewBag.Title = "Home Page"; }

Select file

@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) { } @using (Html.BeginForm("GetFile", "Home", FormMethod.Get)) { } @ViewBag.WebReport.GetHtml() ```  Here, we display the title. And use the BeginForm helper to create a form with a file upload field and a button. As parameters, this helper accepts the name of the web method from the controller, the name of the controller, the type of request, the way the data is encoded. As far as you remember we created two methods in HomeController: to download the report to the designer and to download the report to the local computer. The names of the web methods in the forms created by the helper must match the names from the controller. As you can see, we also created a form with a button to download the report from the server to the local computer. In the last line of code, we convert the report into HTML format and display it. To do this, use the built-in method GetHtml (), which causes the export of the constructed report to this format (in our case, the designer). In the master file of the _Layout.cshtml page, you need to connect FastReport scripts: ``` … @WebReportGlobals.Scripts() @WebReportGlobals.Styles() ```  There are two web configs in the project. In the ASP.Net project, the web.config only applies to the directory in which it is located, and to all subdirectories. Therefore, the Web.config located in the Views directory is designed specifically for views. Open it and add a couple of lines to the Namspaces section: ``` … ```  The second Web.config is at the root of the project, which means it configures the entire application. We’ll add a handler to it to enable exporting the web report object to the Html format: ``` … ```  If there are no and sections in the web.config, then add them. At this step we can be considered our little web application ready. Let's run it on the xsp debug web server. Just clock Ctrl + F5.  The Browse... button and the label with the file name appeared thanks to . Click this button and select a report template file.  The label now displays the file name. Click the Upload button: The report is uploaded to the designer. Now we can make the necessary changes to the report template. Then go to the Report tab and click on the save icon: After that, the report is ready for download, so click the Download designed report button. A standard browser dialog box appears in which we are offered to download a report or reject an action. Download the report and find it in the downloads folder. That's all. As you can see, ASP .Net web projects on Linux is quite real. Not much more difficult than under Windows. Tags: Mono, Mono, FastReport, FastReport, Online Designer, Online Designer ### How to use an SVG object in FastReport .NET URL: https://www.fast-report.com/blogs/use-svg-object-net Sadly, the issue of vector graphics in FastReport.Net has been poorly worked out. In the designer there is a small set of figures and polygons, but there is no information on how to use files with vector graphics. Quite recently a plug-in for the report designer has appeared. It adds a new SVG object to the component palette. Now you can use any vector drawings in SVG format in your report. Now let us learn what SVG format is. This abbreviation (SVG) stands for Scalable Vector Graphic. SVG is a vector graphics markup language that is based on xml. The use of xml immediately provides popularity to this format. Here is a simple SVG file with lines, if you open it with a text editor: ``` ```  Such an XML document can describe polygons, drawings or a text. SVG allows to create animated and interactive graphics using JavaScript and CSS. Unfortunately, in FastReport this is not available yet. The main advantages of SVG format are: 1) Simplicity of understanding of structure, and hence the ease of creation; 2) A small file size; 3) Scalability; Let us now examine how to add an SVG object to the report designer. To do this, open the project in the \ FastReport.Net \ Extras \ Misc \ SVGObjectPlugin folder. In this case, the nuget package manager downloads updates. We let us build a solution. Open the report designer. In the File menu, use the icon  to open the designer's settings: On the "Plugins" tab add the library that has been created. It is located here: FastReport.Net\Extras\Misc\SVGObjectPlugin\SVGObject\bin\Debug\SVGObject.dll. Click "OK" and restart the designer. Now, at the very bottom on the component panel on the side there is one more element: . Drag it to the report page and work with it like with the "Picture" object. Double-clicking on it opens the editor: Using the "Open" button we load the SVG file. As one can see from the tabs, the file can be downloaded from different sources: a local disk, a database, by a hyperlink. This is it. Now you can stretch the image without losing quality: Using SVG files extends the use of FastReport.Net in print business. We wish developers not to stop at their oars and gladden us with the opportunity to use animated SVG in web reports. Tags: .NET, .NET, FastReport, FastReport, SVG, SVG ### How to use ASP .NET MVC project in FastReport Mono URL: https://www.fast-report.com/blogs/create-asp-net-mvc-mono Summary: An overview of the implementation of an ASP .NET MVC project in FastReport Mono for generating documents from the native code. An overview of the implementation of an ASP .NET MVC project in FastReport Mono for generating documents from the native code. An overview of the implementation of an ASP .NET MVC project in FastReport Mono for generating documents from the native code. First of all, for programming in C # under Linux you will need to install: • MonoDevelop - development environment under the Mono framework; • XSP - a test web server for running ASP .NET applications; • A "battle" web server, for example, Apache. But this is if you are going to deploy an ASP .NET application. In our case, only the XSP server is sufficient for development. This is something like IIS Express, only for Mono. There are a lot of articles on the Internet that demonstrate the installation of MonoDevelop and XSP, so I'll skip this. Let's proceed immediately to creation of the application. Let's create a new solution. From the File menu, select New Solution .... Choose ASP .NET MVC Project. The next step is to cancel the Include Unit Test Project. Next, specify the name of the project and the name of the solution, and select the project directory and click Create. Add libraries to the project in References: FastReport.Mono.dll, FastReport.Web.dll. Add a new folder App_Data to the project. We will copy the database and report template into it: Let's edit the controller for the HomeController.cs homepage. Our objective is to create a report object, upload a report and data to it. ``` public class HomeController : Controller { public ActionResult Index() { WebReport report = new WebReport(); System.Data.DataSet data = new System.Data.DataSet(); data.ReadXml("App_Data/nwind.xml"); report.Report.RegisterData(data, "NorthWind"); report.Report.Load("App_Data/Barcode.frx"); ViewBag.WebReport = report; return View(); } } ```  Let's take a quick look at the code for the Index page. First, we create an object of a web report. Then create the DataSet and load the XML database into it. After that, we register the data source in the report and load the report template into the report object. In the end, we pass the report to the view through ViewBag. Now, it's logical to edit the Index.cshtml view: ``` index.chtml  

FastReport.Mono!

@ViewBag.WebReport.GetHtml() ```  The code is very simple - header and report. As you can see, the report object is exported to the HTML format for display. In order for export to work, we need to add handlers in Web.config in the project root: ```   …     …   ```  There is another Web.config in the Views folder, and it must also be supplemented:             ``` … ```  In the Views-> Shared folder, there is a page template for _Layout.cshtml. Connect it to scripts and styles: ``` @ViewBag.Title @WebReportGlobals.Scripts() @WebReportGlobals.Styles() @RenderBody() ```  That's all. Run the application: If you worked before with FastReport .NET, then for you there is nothing new in this article. The implementations in FR .NET and FR.Mono are almost identical. Tags: Mono, FastReport, ASP.NET, MVC ### How to use ASP.NET applications in Linux Debian URL: https://www.fast-report.com/blogs/aspnet-on-linux-debian Summary: The Mono project allows you to run applications that use the .NET Framework in the any operating system different from Windows. The Mono project allows you to run applications that use the .NET Framework in the any operating system different from Windows. The Mono project allows you to run applications that use the .NET Framework in the any operating system different from Windows. The Mono project allows you to run applications that use the .NET Framework in the any operating system different from Windows . Now we will launch FastReport.Mono in Linux Debian. The same settings will be applied to all derived from Debian systems, such as Ubuntu. First, we need to install Mono: ``` #apt-get install mono mono-gmcs mono-gac mono-utils ``` If in the future we plan to develop on the computer , install the visual environment of Mono Develop: ``` #apt-get install monodevelop monodoc-browser monodevelop-nunit monodevelop-versioncontrol ``` For execute the web-applications written in ASP.NET we should install XSP server: ``` #apt-get install mono-xsp2 mono-xsp2-base asp.net2-examples ``` Some examples of ASP.NET 2.0 will installed in /usr/share/asp.net2-demos/. Go to this folder and run XSP server for testing: ``` #xsp2 ``` See the output of the server : ``` Listening on port: 8080 (non-secure) Listening on address: 0.0.0.0 Root directory: /usr/share/asp.net2-demos Hit Return to stop the server. Application_Start ``` By default, XSP listen the address http://localhost:8080 Check default page of XSP in browser. Then we need to install module for Apache2 mod_mono: ``` #apt-get install libapache2-mod-mono ``` Restart Apache : ``` #/etc/init.d/apache2 restart ``` Check the configuration of mod_mono /etc/apache2/conf.d/mono-web.conf: ``` MonoAutoApplication Enabled MonoRunXSP True MonoDebug False MonoSetEnv MONO_IOMAP=all MonoMaxActiveRequests 500 MonoMaxWaitingRequests 500 MonoAutoRestartMode Requests MonoAutoRestartRequests 5000 MonoSetEnv MONO_THREADS_PER_CPU=3000 ``` Example of virtual host configuration in Apache2: ``` NameVirtualHost 192.168.1.2:80 ServerName mytest-server-mono.com ServerAdmin admin@mytest-server-mono.com ServerAlias www.mytest-server-mono.com 192.168.1.2:80 AddMonoApplications FrSite "/:/home/www/fr_asp_net_dir" MonoExecutablePath FrSite "/usr/bin/mono" MonoServerPath FrSite "/usr/bin/mod-mono-server2" MonoMaxMemory FrSite 300000000 MonoMaxCPUTime FrSite 3600 DocumentRoot "/home/www/fr_asp_net_dir" Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all SetHandler mono MonoSetServerAlias FrSite DirectoryIndex Default.aspx AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd   ``` Let's copy FastReport.Mono demos form \Demos\C#\Web to the configured home directory and check working mod_mono and ASP.NET applications in Linux Debian. You can read more information about mod_mono configuration in the home site of Mono project http://www.mono-project.com/Mod_mono Tags: .NET, .NET, Mono, Mono, FastReport, FastReport, Linux, Linux, ASP.NET, ASP.NET ### How to use Configurator in FastReport Desktop URL: https://www.fast-report.com/blogs/configurator-desktop Summary: Get useful tips on how to use the configurator in FastReport Desktop works. Find more usefull tips and articles in our blog. Get useful tips on how to use the configurator in FastReport Desktop works. Find more usefull tips and articles in our blog. In this article I want to consider working with the Configurator, one of the programs of the FastReport Desktop complex. This program is designed to create special configuration files. They are instructions for the report builder, they specify actions with the report. Namely: export the report to various formats, save the report to a local disk or a remote server, send the report via email. In this article I want to consider working with the Configurator, one of the programs of the FastReport Desktop complex. This program is designed to create special configuration files. They are instructions for the report builder, they specify actions with the report. Namely: export the report to various formats, save the report to a local disk or a remote server, send the report via email. You can create such configurations and run them manually or with the help of a special task scheduler. Let's look at the process of creating a configuration file. Run Configurator: You can see a set of options for configuration. And the first of them is the "Report" . To select it, use the icon with the folder on the right. This will show the standard open file window. I would like to draw your attention to the fact that you can select both a report template in the .fpx format and a report preview file in the .fpx format. The next option is "Report Parameters ". It allows you to specify the values of report parameters, if any. We press the button "Settings", and we see the form - the list of parameters: We can add and remove parameters with the corresponding buttons. The "Configure data connections" option allows you to add several data sources for the report: To add a connection, click the appropriate button and select the required data provider from the list: To delete a connection, select it in the list and click the "Remove data connection" button. Next, we can enable the "Export" option. The report will be exported in the selected format. If you do not mark this option, the report will be saved, or sent by email (depending on selected action) in fpx format. The settings for the selected export format are set in a separate window. You can call it up using the "Settings" button: If you plan to save the report using the configuration, enable the "Save to" option and select the save location: In the options settings, you specify the path or connection settings, if you chose cloud service or FTP. For example, the settings for saving to a folder: Interesting option "Add timestamp to file name". The date and time will be assigned. This is useful if you store multiple reports in one folder. In the next step you can specify the settings for sending an email: When this option is enabled, the e-mail sending settings window will be displayed. For those who dealt with the sending of e-mails in FastReport .Net - everything is standard. Account settings for sending: And the message itself: The report file (export, if selected) will be automatically attached to the message. Well, the last option does not need a description: Having adjusted the options you need, we press the "Save" button at the bottom of the main form. The standard file save dialog box is displayed. Next to the save button there is one more button - "Start". With it, you can run the configuration immediately, without creating a task in the scheduler. The configuration file has the extension fcx, but it is essentially an xml document that can be opened with any text editor: ``` ```  As you have noticed, the structure of the file is quite simple. The root tags correspond to the options discussed above. We created a configuration file, now let's talk about ways to use it: 1)      Manual start from the Configurator. Here everything is simple, create a new one or open an existing configuration file and start using the button ; 2)      Running from the command line of the Report Builder (included in the FR Desktop) with the configuration file that we created:"Builder.exe path/to/config.fcx". Here we pass to the Builder a single parameter - the path to the configuration file; 3)      Run the configuration file by job in the Scheduler (included in the FR Desktop).  If the first two options do not cause problems, the third needs to be considered: The scheduler is a typical scheduling program for scheduled tasks. The figures show the main parameters of the task: name, config and trigger. Depending on the value of the trigger, the time settings are changed. If this is a task for a single execution, then the date and time of operation are set. Time is also set for periodic tasks, daily or weekly. And for triggers "When you start the computer" and "When you log on to the system," no parameters are needed. That's all. When the task is fulfilled, the time of the last run will be indicated: You can run the task immediately. Right click on the task and select "Run task now" from the context menu. At the same time, the builder starts: The results of the builder's work are shown on the command line. We looked at the typical task of creating a configuration file and executing it. In fact, this is working with FR Desktop, except for directly creating reports, of course. And finally. If you want to change the localization of the Configurator, open the file C: \ Program Files (x86) \ FastReports \ FastReport.Desktop \ settings.xml in the text editor. Replace the two symbolic designation of the localization to the one you need: ``` EN ``` Tags: FastReport, Desktop ### How to use custom libraries with functions in Designer URL: https://www.fast-report.com/blogs/custom-libraries-functions-designer Summary: We tell you how to use to collect all your favorite functions in a library, connect it to the report designer in FastReport .NET.. We tell you how to use to collect all your favorite functions in a library, connect it to the report designer in FastReport .NET.. We tell you how to use to collect all your favorite functions in a library, connect it to the report designer in FastReport .NET.. Despite the fact that so-called arsenal of built-in functions in the report designer is by no means small, sometimes still lacks some specific. Thanks to the script in the report we can easily implement the desired function. But what if this function is needed in many records? Each time to add it to the report script? Of course, not. You can collect all your favorite functions in a library connected to the report designer. It is desirable to have the library located in the same folder as the report. Let us create a Class Library project in which we will have a test function. For example, the function of converting an array to a string. Turned out to be such a class. ``` namespace ArrayToString { public static class UserDefined { public static string ArrayToString(List parameters) { return String.Join(",", parameters); } } } ```  Compile the library. Now create your application in which we will open report generator and use our library ArrayToString. This is a normal Winforms Application. Add the library FastReport to project references: since it is recommended that you store your library in the same directory as the executable file of your application, you can add a reference to it in draft. In addition to this, the library will be added to a folder with the executable file in the compilation. There are only form and a button in the application. Add button click event handler: ``` private void RunBtn_Click(object sender, EventArgs e) { Report report = new Report(); report.Design(); } ```  Run the application and click the button. The report designer will start with an empty report. In the report properties, you can add a link to your .net library. Now create a simple report template - a list of product categories: Add a text object to the Page Footer band. Soon you will know why it is. Let's go to the Script tab. We need to create a list in which we will add category names. The function from the user library converts the list into one line, which we will display in the basement of the page. So, create a list: ``` public class ReportScript { public List list = new List(); } ```  Let's return to the report page. For the Data band, create the AfterPrint event handler: ``` private void Data1_AfterPrint(object sender, EventArgs e) { list.Add(((String)Report.GetColumnValue("Categories.CategoryName"))); } ```  Here we add the name of the category each time the band "Data" is displayed. Now, add the BeforePrint event handler for the text object in the Page Footer band: ``` private void Text1_BeforePrint(object sender, EventArgs e) { Text1.Text = ArrayToString.UserDefined.ArrayToString(list); } ```  Here, we assign to the text object the string returned by the user-defined function from the previously added dll. Note that the path to the function is full, with the namespace and class name. You can shorten the name if you add the ArrayToString library to using. Now you can run the report in preview mode. Top of the page:  And the bottom of the page: Therefore, we got a list of product categories in one line. By the way, you can use the following expression in a text object in the bottom of the page: [ArrayToString.UserDefined.ArrayToString(list)] It is equivalent to this: ``` private void Text1_BeforePrint(object sender, EventArgs e) { Text1.Text = ArrayToString.UserDefined.ArrayToString(list); } ``` Moreover, you do not need to create an event handler. If you want to use a custom library for reports in a web project, you need to place it in the bin folder. Tags: .NET, .NET, FastReport, FastReport, Designer, Designer, Customization, Customization ### How to use data in JSON format URL: https://www.fast-report.com/blogs/report-data-in-json-format There used to be a question “How to use JSON data to my web reports?” as it was not easy to implement it in FastReport.Net. Recently  a version 2016.2 has been released to answer it and help users. It must be clarified that JSON (Java Script Object Notation) is a text data exchange format based on Java Script. It is actively used in web-programming in communication between the browser and the server or between servers. This format is laconic compared to CML. It is convenient to use it with Java Script. So, in this article it will be introduced how to use the data in JSON format in FastReport.Net. Necessary to remind, that this feature appeared in FastReport.Net 2016.2. Firstly, you should gather the connection plugin to the JSON data. It is located here: C: \ Program Files (x86) \ FastReports \ FastReport.Net \ Extras \ Connections \ FastReport.Json. Let us walk you through the steps: Open the solution FastReport.Json.sln. To build successfully it is needed to correct a reference to System.Data.Json.dll library, which is located here: C: \ Program Files (x86) \ FastReports \ FastReport.Net \ Demo. Compile the project and get FastReport.Json.dll library. There are three ways to register the plugin in a report designer: 1. Registration with report designer help: Open the report designer. There is no difference whether it is a part of Visual Studio project or as a stand-alone application; Add the plugin. You can do this in the menu: View-> Options ..., tab Plugins. Add a new plagin, using the button “Add”. Choose a previously compiled FastReport.Json.dll library; Reopen a report designer. 2. Register manually in a FastReport configuration file: By default, this file is located in the directory: "C: \ Documents and Settings \ user_name \ Local Settings \ Application Data \ FastReport"; Close all running instances of FastReport.Net; Open the configuration file with any text editor. Fix the following lines: ... 3. Register the library in an application code: Add a reference to the library in the project FastReport.Json.dll; Perform the following code once when the program starts :FastReport.Utils.RegisteredObjects.AddConnection (typeof (JsonDataConnection)). After the plug-in registration, it is possible to begin creating a data source in the report. Open the menu in the Report Designer: Data-> Add data source. Activate a data source wizard. Click the button “New connection”. Create a connection string. Select the connection type – JSONdatabase. Next, select the data file with the extension JSON. It is important to say that the database can be located on another web resource. Therefore, to get to the database you need to specify the url. Click “OK”. Click the button “Next” in the Data Wizard. Choose the desired tables. For example, “Products” and click the button“ Finish”. As table "Products" appeared in the data window,  drop the fields to the Data band: ProductName, UnitsInStock, UnitPrice and start the report. As you can see, working with data from the json database is also convenient, as with any other source. Now FastReport.Net has become useful for the followers of this storage technology. Tags: .NET, .NET, FastReport, FastReport, Data Source, Data Source ### How to use DB connectors from the Nuget repository URL: https://www.fast-report.com/blogs/connectors-databases-nuget-repository Summary: We tell you how you can quickly use connectors to databases from the Nuget repository in your project. Suitable for ASP.NET Core. We tell you how you can quickly use connectors to databases from the Nuget repository in your project. Suitable for ASP.NET Core. We tell you how you can quickly use connectors to databases from the Nuget repository in your project. Suitable for ASP.NET Core. FastReport.Net has been supplying plugins for a long time - connectors to various databases. These plugins allow you to add connectors to the report designer to connect to the required database. The purpose of creating these plug-in connectors is to simplify the process of connecting to a data source. However, there is one inconvenience in using such plug-ins - they must first be compiled. And for this you must first download third-party libraries from the developer's database site. But, once you have compiled the plug-in, you can use it for as long as you like. FastReport now distributes these connectors in the form of libraries through the Nuget package manager. This is true both for the .Net Framework 4 application and for ASP .Net Core. Now we are spared the need to compile plugins with third-party libraries, for which many thanks to the developers of FastReport. Let's talk about the peculiarities of using these libraries. To create a report, you need to call the designer. With plugins, you would use a separate Report Designer program, which is convenient. But with the installed connector libraries, you'll need to call a designer from your application to use these connectors in your report. If for WinForms applications to call the report designer from the code is a trifle, then in .Net Core applications it is impossible. Of course, there is Online Designer for web development of reports, but this is a completely different story. Therefore, you must first create a WinForms application, install the required connector into it and call the report designer. Or you can use the already compiled Designer.exe application that comes with FastReport, but in this case the list of supported DBMS will be limited (MS SQL is supported). Let's now take a look at all this with an example. Create a test WinForms application and add FastReport.Net libraries to it. And also try to install connectors from the manager Nuget. The figure shows that we have connectors to the databases: MsSql, MySql, Postgres, SQLite, Json, MongoDB, RavenDB. Let's try to connect to the Json data source. Install the appropriate connector from Nuget. On the form, add a button and the following code for it: ``` using FastReport; using FastReport.Data; using FastReport.Utils; … private void button1_Click(object sender, EventArgs e) { new JsonAssemblyInitializer(); Report report = new Report(); report.Design(); } ```  In the first line of the button click event handler, we initialize the added JSON connector. Then create a report object and call the designer. In the designer, we create a new data connection. And among the available connectors we see the JSON we added. Select it and set the path to the data file with the .json extension. Create a report template and save it. Now, in the code for our button, you can replace the line: ``` report.Design(); ```  to: ``` report.Load(@"TestJsonConnection.frx"); report.Show(); ```  Here we specify the path to the report file that we created earlier and run the report for the show. Thus, using the library-connector required from us only two actions - to install the library from Nuget, and to initialize it in the code. However, not everything is so simple if it comes from ASP .Net Core application. Firstly, we need to create a report. And for this we need to run the designer from the code. In web projects, this is impossible. I'll have to create a WinForms application, specifically to run the designer. Either install the plugin in a separate ReportDesigner and create reports in it. Secondly, the program code is somewhat more complicated. In addition to initializing the connector library, you will need to specify a connection string, create tables, and add a connection to the report: ``` JsonDataConnection conn = new JsonDataConnection(); conn.ConnectionString = "Json=\"K:\\Documents\\nwind.json\""; conn.CreateAllTables(); report.Dictionary.Connections.Add(conn); ```  By labor, this is comparable with the use of third-party libraries for connecting to databases. So, in the case of .Net Core, not everything is so unambiguous. But in the .Net Framework 4 applications, the advantages over third-party libraries are obvious. Tags: .NET, .NET, FastReport, FastReport, Data Source, Data Source ### How to use dynamic queries in FastReport .NET URL: https://www.fast-report.com/blogs/dynamic-queries-net Summary: Let's take a closer look at how to use dynamic queries in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how to use dynamic queries in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how to use dynamic queries in FastReport .NET. Find more usefull tips and articles in our blog. Most users of FastReport .NET build reports receiving data from SQL DBMS, and would like to take advantage of Sql in their reports. Nothing prevents you from using dynamic queries, stored procedures and functions. In this article, we will have a look at how to use dynamic queries when creating a report data source. This type of query is used to bypass the syntactic restrictions of the SQL language. But such requests can be performed longer due to a suboptimal query plan, and security needs to be built differently. But now it's not about that. Dynamic queries are convenient, and so we want to use them in FastReport. Let's look at the example. Let’s suppose you want to filter the data before the report is displayed. It seems that everything is pretty simple. But, if you want to change the field on which the data will be filtered? Using a dynamic query, you can add variables to the query body. One of which is the field name for imposing the condition, and the second is the value of this field. Create a report. Previously, we need to create two report parameters. Add ParamName and ParamValue of the string type. Now create a connection to the database. We connect to the SQL server: At the stage of selecting tables, click the button  . It runs the query wizard: Set the name of the future table and click Next. Enter a dynamic query manually. This query has two parameters: @ Param1 - field name, @ Param2 - field value. Here you can add the third parameter - the operation sign ( =, in, <, >, <, >). But we will limit ourselves to two. Since the query is represented as a text value, we use the Execute statement to execute. Click the Next button. In the parameter definition window, create two with the same names as in the SQL query. You must specify Expression. For the first parameter, this is [ParamName], and for the second parameter - [ParamValue]. As you guessed, these are the report parameter names that we created earlier. Click the Finish button. We got the data source: Drag the fields from the Product table to the band's data. And now, let's add a dialog form. Drag two parameters from the Data window to it. Now we can specify the name of the field and its value for filtering the sample. Run the report. Set the parameter values and click Ok. And we get the records we need. In our case, it is one. Let's try to filter the report on a different field. Run the report again. And the result: Thus, you can use dynamic queries to help you avoid unnecessary code or report settings. And if you work with large amount of data, you can speed up the time of report generation, by cutting off unnecessary data at the stage of receiving them. Tags: .NET, FastReport, SQL ### How to use Excel file as datasource in a report URL: https://www.fast-report.com/blogs/excel-file-datasource-report Summary: Let's take a closer look at how to use an Excel file as a data source in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how to use an Excel file as a data source in FastReport .NET. Find more usefull tips and articles in our blog. Let's take a closer look at how to use an Excel file as a data source in FastReport .NET. Find more usefull tips and articles in our blog. Not everyone knows that FastReport .NET allows you to use files of a spreadsheet editor Excel as a data source. It can be both .xls and .xlsx files. In this article we will show how to create such a data source in the report. First of all - about the requirements for Excel documents. Each table should be placed on a separate sheet. The first line should have the column heads that are used as the names of the table fields. 1. Create Excel document with one table: 2. Create a Windows Forms project; 3. Add the Report control on the form; 4. Double click on the added control. Skip the data source window. The report designer appears; 5. In the Report Designer create a new connection to the data source. Menu Data-> Add Data Source. The data source wizard appears: 6. Create new connection string by using the button with the same name. 7. In the window of string connection creation choose the connection type – ODBC Connection.  Switch the radio button “Use connection string”. Select the data source using button . 8. Here, select the tab "Computer data source". 9. Select “Excel Files” and click Ok. In the opened window select the file .xls or .xlsx, which contains the data. Close the wizard connection string by the button OK. The connection string is as follows: Dsn=Excel Files;dbq=C:\Users\Gromozeka\Documents\Visual Studio 2010\Projects\ExcelDataSource\ExcelDataSource\bin\Debug\Employee.xlsx;defaultdir=C:\Users\Gromozeka\Documents\Visual Studio 2010\Projects\ExcelDataSource\ExcelDataSource\bin\Debug;driverid=1046;maxbuffersize=2048;pagetimeout=5 10. In the data source wizard click Next. В мастере создания источника данных нажимаем Next. Go to the window of data selection. Select desired tables. In our case Employee. And click Finish. 11. The new data source was added to the Data window. 12. Now we can create the report template. Drop all the fields onto the Data band. Run the report: So, you can use data from Excel files to automatization your accounting statements. A data source can contain a lot of tables. It depends on the amount of sheets in the spreadsheet.  Many companies still hold their accounts in excel format. And you can use it in your reports. Tags: .NET, FastReport, Excel, XLSX ### How to Use Excel Formulas in a Report When Exporting to MS Excel URL: https://www.fast-report.com/blogs/export-excel-formulas-net Summary: Starting with version FastReport .NET 2026.1, it is now possible to export formulas to Microsoft Excel. It is important to set up formula exports correctly and follow the syntax. Starting with version FastReport .NET 2026.1, it is now possible to export formulas to Microsoft Excel. It is important to set up formula exports correctly and follow the syntax. In today's world, working with data is an integral part of many professions. Microsoft Excel is one of the most popular tools for processing and analyzing it. Formulas in Excel allow you to automate calculations, simplify data analysis, and make reports more informative. However, when exporting data to Excel, it was not always possible to immediately use all the features of formulas. In today's world, working with data is an integral part of many professions. Microsoft Excel is one of the most popular tools for processing and analyzing it. Formulas in Excel allow you to automate calculations, simplify data analysis, and make reports more informative. However, when exporting data to Excel, it was not always possible to immediately use all the features of formulas. Starting with version FastReport .NET 2026.1, it is now possible to export formulas to Excel. For example, to export the formula =A1*B1 to Excel, you need to create three text objects: 1. The first object is the value for cell A1. 2. The second object is the value for cell B1. 3. The third object is the formula that will be calculated in Excel (=A1*B1). Report Designer view: Important Points for Correct Work 1. The formula must always start with an equal sign “=.” 2. By default, formula export is disabled. 3. Formula export is controlled by the ExportFormulas parameter. To use this function, enable the checkbox in the export settings (Other → Export formulas section). What Happens if the Formula is Incorrect? If an incorrect formula is encountered in the report, the application will attempt to process it during export. In case of an error, a standard error message will appear in the file, and the cell with the formula will remain empty. Supported Formulas and Operators Formulas must use English Excel syntax. For example, instead of СУММ, you need to write SUM. Available operators: 1.  Unary +, - and binary +, -, *, /, ^, as well as comparisons <, <=, =, >=, >, <>. 2.  Unary operator % (divides the number by 100). For example: =A1% is equivalent to =A1/100. 3.  Operator : for specifying ranges. Example: =SUM(G1:G3) or =SUM(G1, G2, G3). 4.  Operator ! : for references to other sheets. Example: =SUM(PageB!C1:C10). 5.  Area intersection operator (space). For example, the expression A2:C2 B1:H8 will result in B2. What it looks like in the prepared report: What It looks like after export to Excel: Working with Functions You can call standard Excel functions in formulas. One of these well-known functions is SUM—it sums its arguments. Among these functions are the widely used SUM, AVERAGE, INDIRECT, MIN, MAX, AND, OR, and so on. What It looks like in the prepared report: What It looks like after export to Excel: A few technical details when working with formulas: In the final .xls file, the formula is stored as a regular cell. To ensure it works correctly, it is important to understand what data will be substituted into the cells that the formula references. Thus, using Excel formulas when exporting reports from FastReport .NET allows you to automate calculations and make data analysis more efficient. It is important to properly configure the export of formulas, observe the syntax, and take into account the features of working with Excel operators and functions, which will ensure the correct display and calculation of data in the final tables. Tags: .NET, Export, FastReport, Excel, Report ### How to use FastCube .NET in ASP .NET Core application URL: https://www.fast-report.com/blogs/using-pivot-cube-in-asp-net-core-application Summary: Examining the tool for not only outputting the data, but also operating (pivoting) it Examining the tool for not only outputting the data, but also operating (pivoting) it Examining the tool for not only outputting the data, but also operating (pivoting) it 1. About FastCube Report generator FastReport .NET covers nearly all requirements of users in report making. Nearly all, but still not absolutely all! When it comes to cross tables, it becomes “tight”. The Matrix object is intended only for the output of cross data, but not for manipulations with them. In those cases, OLAP system would come very useful and there is such a system in FastReports – it is FastCube .NET. It allows displaying data cubes and slices in .Net applications. Especially interesting is the possibility to use these libraries in ASP .NET Core applications. Let us consider such a case as an example. 2. How to assemble libraries At first, we have to assemble libraries of the source code. For that, use the FastCube.Core.sln solution. After the assembling, you will get two nuget packages: FastCube.Web.2020.2.1.nupkg and FastCube.Core.2020.2.1.nupkg. Place them into one directory that will be used as a local package source. 3. Creating a project Now we can transfer to creating a project ASP .Net Core MVC.  4. Adding libraries from Nuget First we add FastCube Core libraries into the created project. For that, we use the NuGet package manager. As the library packages are placed on the local disc, we will have to add the local package source. To do that, click the gear icon in the upper right corner of the package manager and add a new source, which will refer to the local directory with your nupkg packages: Now you can select the added source of packages in the drop-down list and install the packages: 5. Adding to Startup We have added the libraries to the project, now we have to plug them in. For that, in Startup.cs file in Configure() method we add the code: ``` app.UseFastCube(); ``` 6. Adding into the controller and view The standard template-based application is ready for start and contains a controller and view. We can use it to display our data cube.  ``` HomeController: public IActionResult Index() { Cube cube = new Cube(); Slice slice = new Slice() { Cube = cube };   WebGrid grid; grid = new WebSliceGrid() { Slice = slice };   cube.SourceType = SourceType.File; cube.Load(Path.Combine("C:\\Users\\FR\\Downloads\\fastcube-net-master\\Demos\\Data\\", "Cubes", "calculated_measures.mdc")); ViewBag.WebGrid = grid; return View(); } ``` Let us consider this technique in more detail. Here we use the objects of Cube and Slice. To display data, we use the object WebGrid, which can receive data from a cube or a slice via the corresponding inhering objects WebCubeGrid and WebSliceGrid. In this case, we will display a slice, thus, the second object is selected. The next step is to download the existing cube from the file. Instead of using the existing files, you may create cubes and slices within the application code. Our example shows downloading of a cube file, which contains connection to the data and the relevant slice. However, you may also download a slice file instead of a cube. In this case, you have to set the source of the cube data. For example: ``` cube.Active = false; cube.SourceType = SourceType.DataSource; cube.DataSource = new DataSource(); cube.DataSource.DataSet = new DBDataSet(); SqliteConnection connection = new SqliteConnection($@"Data source={Path.Combine(dataFolder, "demo.sqlite")}"); SqliteCommand cmdItems = new SqliteCommand(@" SELECT items.OrderNo, items.PartNo, items.Qty, orders.CustNo, orders.EmpNo, orders.SaleDate FROM items LEFT OUTER JOIN orders ON (items.OrderNo = orders.OrderNo)", connection); ((DBDataSet)cube.DataSource.DataSet).DbCommand = cmdItems; cube.Active = true; slice.Load(Path.Combine(dataFolder, "Cubes", fileName)); ``` Now let us return to our application. The only step left is to arrange a display of this object. Change the code in file Index.cshtml: ``` @await ViewBag.WebGrid.Render() ``` That is all! We can run our web application and view the data slice: Now you can not only view data in a cross table but also manipulate them – add, remove measures and facts, fold groups. This will help you to analyze data. To sum it all up, using OLAP cubes in web application is new and demanded. Today, you need not buying licenses for desktop software versions, if you can make analysts work with data via a web application. As you can see, displaying a cube or a slice in the web application is extremely simple, which is another advantage. Tags: .NET, .NET, FastCube, FastCube, OLAP, OLAP, ASP.NET, ASP.NET, MVC, MVC, Core, Core ### How to use FastCube .NET in React application URL: https://www.fast-report.com/blogs/cube-net-react-application Summary: Displaying cubes and slices of data from FastCube.Core on a web page with ReactJS, using use a template in the .Net SDK. Displaying cubes and slices of data from FastCube.Core on a web page with ReactJS, using use a template in the .Net SDK. Displaying cubes and slices of data from FastCube.Core on a web page with ReactJS, using use a template in the .Net SDK. UPD: Applies to the versions of FastCube .NET before 2022.1. License packages are now available on our  NuGet server . The ReactJs library has become widespread in the web development of single-page applications. Previously we have covered how to display reports and the online report designer in React SPA application. Now it is possible to display cubes and slices of data from FastCube.Core on a web page. Let's consider how to do this. To create an ASP .NET Core app with a React frontend part, you can use a template in the .NET SDK. Run in the command line: ``` dotnet new react -o MyReactApp ``` This command will create a demo application that we can use to display the cube. Of course, for this, you must have the .NET Core SDK installed. In addition, the application will require Node.js. Go to the directory of the created application: ``` cd MyReactApp ``` and install javascript packages using the command: ``` npm install ``` Let's start working with the created web application. First, let’s install the FastCube packages. Open the Nuget package manager. In the upper right corner of the window, you will see a gear icon, which opens the settings of package sources. Click on it and add a new package source - a folder with our FastCube packages, which are located in the C:\Program Files (x86)\FastReports\FastCube.Net Professional\Nuget folder. Select the added package source in the drop-down list and install the packages: We connect FastCube in the Startup.cs file, add the code in the Configure () method: ``` app.UseFastCube(); ``` Our application already contains WeatherForecastController. Let's add our web method to it: ``` [HttpGet("[action]")] public IActionResult ShowCube() { Cube cube = new Cube(); Slice slice = new Slice() { Cube = cube }; FilterManager filterManager = new FilterManager() { Cube = cube }; WebGrid grid; grid = new WebSliceGrid() { Slice = slice };   ViewBag.WebGrid = grid;   cube.SourceType = SourceType.File; cube.Load(Path.Combine("C:\\Users\\FR\\Downloads\\fastcube-net-master\\Demos\\Data\\", "Cubes", "calculated_measures.mdc")); return View(); } ``` The Cube and Slice objects are related because, in fact, the slice is part of the cube. A WebGrid object is used to display an interactive crosstab. It can display both a WebCubeGrid slice and a WebSliceGrid cube. In our example, we loaded the cube that we previously created in the FastCube .NET desktop version. Pay attention to the class from which the controller inherits. It should be Controller, not BaseController. Now let's create a view for this method. This can be done by right-clicking on the ShowCube method signature. The view will contain a single line of the code: ``` @await ViewBag.WebGrid.Render() ``` Now let's move on to SPA application, which is located in the ClientApp folder. We need to add our component to the src->components folder. It will display the iframe with the view we created above. Add the Cube.js file with the following code: ``` import React, { Component } from 'react'; export class Cube extends Component { static getCube() { return { __html: '
``` Mind the function safeUrl, which transforms url to a safe mode. We will add it later. The button activates the Click function, which installs the show flag to display the frame and sets url to ShowCube method in the controller at backend. This is implementation of the Click function in cube.component.ts file: ``` import { Component } from '@angular/core';   @Component({ selector: 'app-cube-component', templateUrl: './cube.component.html' }) export class CubeComponent { public show: boolean = false; public url: string;   Clicked() { this.show = true; this.url = "/WeatherForecast/ShowCube"; } } ``` Now we add the function of transforming the link into the normal mode – add file safeUrl.pipe.ts into the same directory: ``` import { Pipe, PipeTransform } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser';   @Pipe({ name: 'safeUrl' }) export class SafeUrlPipe implements PipeTransform { constructor(private sanitizer: DomSanitizer) { } transform(url) { return this.sanitizer.bypassSecurityTrustResourceUrl(url); } } ``` The added component and function must be registered in the app.module.ts file: ``` import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpClientModule } from '@angular/common/http'; import { RouterModule } from '@angular/router';   import { AppComponent } from './app.component'; import { NavMenuComponent } from './nav-menu/nav-menu.component'; import { HomeComponent } from './home/home.component'; import { CounterComponent } from './counter/counter.component'; import { FetchDataComponent } from './fetch-data/fetch-data.component'; import { CubeComponent } from './cube/cube.component'; import { SafeUrlPipe } from './cube/safeUrl.pipe';   @NgModule({ declarations: [ AppComponent, NavMenuComponent, HomeComponent, CounterComponent, FetchDataComponent, CubeComponent, SafeUrlPipe ], imports: [ BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }), HttpClientModule, FormsModule, RouterModule.forRoot([ { path: '', component: HomeComponent, pathMatch: 'full' }, { path: 'counter', component: CounterComponent }, { path: 'fetch-data', component: FetchDataComponent }, { path: 'cube', component: CubeComponent } ]) ], providers: [], bootstrap: [AppComponent] }) export class AppModule { } ``` Also, we add a new header into the menu in file nav-menu.component.html: ```
``` The application is ready. We run it: This simple example shows how one can display a data cube based on FastCube libraries in a single-page application Angular. Now the web application provides you with a convenient tool for data analysis. You can add or remove measures, facts, or filter your data. Tags: .NET, FastCube, OLAP, MVC, WebReport, Angular, SPA ### How to use FastCube .NET in the SPA application Knockout.js URL: https://www.fast-report.com/blogs/fastcube-net-in-spa-knockout-application Summary: Displaying FastCube .NET cube data on the web pages of SPA Knockout.js app. Displaying FastCube .NET cube data on the web pages of SPA Knockout.js app. Displaying FastCube .NET cube data on the web pages of SPA Knockout.js app. To output the data cube, we will create a SPA application by means of Knockout.js (library for creating web apps). With the help of this library, we will be able to use TypeScript for the frontend part of our application and also ASP.NET Core MVC for the backend part. With it, we will be able to use FastCube .NET reports. To use Knockout.js together with .NET Core, we need to have pre-installed .NET Core SDK 2.0 or MS Visual Studio. Initially, the application template with the usage of Knockout.js will not be accessible. Install it using the command. For this go to the command line and enter the command: ``` dotnet new — install Microsoft.AspNetCore.SpaTemplates::* ``` After that, you can create an SPA application based on Knockout.js. In the folder we need, open the command prompt and enter the command: ``` dotnet new knockout –o KnockWebReport ``` After creating the application, go to the folder with the created application and install the necessary packets using the command: ``` npm install ``` Before working with our web application, prepare Nuget packets with FastCube libraries. To do this, open the FastCube.Core.sln solution and execute the build. You will get two packets as a result - FastCube. Web.2020.2.1.nupkg and FastCube.Core.2020.2.1.nupkg. Place them into any local folder that we will use as a local source of Nuget packets. Now you can run the created project. Let's start by installing the FastCube packets. Open the packets manager Nuget. In the upper-right corner of the window, you will see the gear icon - it opens the packets source settings. Click on it and add a new packet source - the folder with our FastCube packets: Now select the added packets sources from the list and install them: Add the folder App_Data in the catalogue wwwroot. Here the ”Cubes” will be stored: Connect FastCube in the Startup.cs file. Add the code to the Configure() method: ``` app.UseFastCube(); ``` Our application contains a SampleDataController controller. Let's add the following method to it: ``` [HttpGet("[action]")] public IActionResult ShowCube(string name) { Cube cube = new Cube(); Slice slice = new Slice() { Cube = cube }; FilterManager filterManager = new FilterManager() { Cube = cube }; WebGrid grid; grid = new WebSliceGrid() { Slice = slice }; ViewBag.WebGrid = grid; cube.SourceType = SourceType.File; cube.Load(Path.Combine(_env.WebRootPath,(String.Format("App_Data/{0}",name)))); return View(cube); } ``` Here we use Cube and Slice objects. To display the data, a WebGrid object is used, which can receive data from Cube or from Slice using the corresponding inherited WebCubeGrid and WebSliceGrid objects. For the method ShowCube create a “view”: This view will contain only one line of code: ``` @await ViewBag.WebReport.Render() ``` Next, we need to configure the client application. It is located in the ClientApp folder: In our case, we will use the home page to output the cube. Edit the code in the file home-page.html: ```
``` We will display a button that opens a window of the file selection. And also, depending on the value of the logical parameter show, we output a frame with a web report object. Now we will write a script for this template in the home-page.ts file: ``` import * as ko from 'knockout';   class HomePageViewModel { public show = ko.observable(false); public url = ko.observable('');   upload(file: Blob) { var files = new FormData(); files.append("files", file) console.log(files); if (file != null) { fetch('api/SampleData/Upload', { method: 'POST', body: files }) .then(response => response.text()) .then(data => { this.url("api/SampleData/ShowCube?name=" + data) }); this.show(true); } } }   export default { viewModel: HomePageViewModel, template: require('./home-page.html') }; ``` In this script, we implemented the function of uploading a file to the server. A POST request is executed, and we receive the name of the saved file from the server as a result. Next, we assign the url variable the path to the report display method, taking into account the received report name. Finally, we will get a web-cube. Let's launch our application and make sure of this. Select the file in the mdc format. And we get the cube to our web page. As you may have noticed, work with FastCube .NET in Knockout.js is very simple, especially if you need to output a cube in a web application. Tags: .NET, .NET, FastCube, FastCube, OLAP, OLAP, ASP.NET, ASP.NET, MVC, MVC, Core, Core, WebReport, WebReport, Knockout, Knockout, SPA, SPA ### How to use FastCube .NET in Vue SPA application URL: https://www.fast-report.com/blogs/fastcube-net-in-vue-spa-application Summary: Looking at the way to display FastReport web report in a single-page application on Vue.js with backend on ASP .NET Core. Looking at the way to display FastReport web report in a single-page application on Vue.js with backend on ASP .NET Core. Looking at the way to display FastReport web report in a single-page application on Vue.js with backend on ASP .NET Core. The Vue.js framework is currently very popular and stands in line with Angular. We have already considered how to use FastReport.Core in Angular application. Now let us consider how to implement the display of a FastReport web report in a single-page application on Vue.js with backend on ASP .NET Core. For that, we need to install Node.js and, as minimum, NET Core SDK 2.0; however, a newer version is even better. By default, dotnet sdk does not have a vue application template. But it can be installed! To do that, create a catalog, in which your application will be placed, and run the PowerShell command line in it. This can be done from the context menu, which is invoked by a right button click on the empty space in the directory with the pressed shift button. Input the command in the command line: ``` dotnet new — install Microsoft.AspNetCore.SpaTemplates::* ``` Then you will have the Vue template available for generating a demo application. Use it to create the application with a command: ``` dotnet new vue -o FRCubeVue ``` After creating the application you will see a warning that the following command must be executed: ``` npm install ``` But before executing it, you should go to the created catalog: ``` cd FRCubeVue ``` After all the necessary packages are installed, open the project file .csproj. Now we must add FastCube libraries into the project we had created, but first they should be assembled from the source codes. For that, use the FastCube.Core.sln solution. After the assembling you will get two Nuget packages: FastCube.Web.2020.2.1.nupkg and FastCube.Core.2020.2.1.nupkg. Place them into one directory, which will be used as a local package source later. Now we start adding packages into the project with the help of NuGet package manager. It is to be recalled that the packages are stored locally. To enter the settings, click the gear icon in the upper right corner of the package manager and add a new source, which will refer to the local directory with your nupkg packages: Select the added source of packages in the drop-down list and install the packages: Plug in FastCube in Startup.cs file Configure() method by adding a code: ``` app.UseFastCube(); ``` The standard template-based application is ready for start and contains a controller and view. We can use it to display our data cube. Now add a new method to  ``` [HttpGet("[action]")] public IActionResult ShowCube() { Cube cube = new Cube(); Slice slice = new Slice() { Cube = cube }; FilterManager filterManager = new FilterManager() { Cube = cube }; WebGrid grid; grid = new WebSliceGrid() { Slice = slice };   ViewBag.WebGrid = grid   cube.SourceType = SourceType.File; cube.Load(Path.Combine("C:\\Users\\FR\\Downloads\\fastcube-net-master\\Demos\\Data\\", "Cubes", "calculated_measures.mdc")); return View(model); } ``` Let us consider this technique in more detail. Here we use the objects of Cube and Slice. To display data, we use the object WebGrid, which can receive data from a cube or a slice via the corresponding inhering objects WebCubeGrid and WebSliceGrid. In this case, we will display a slice, thus, the second object is selected. Then we download the existing cube from the file. For the added ShowCube method, we have to create a display - ShowCube.cshtml.cs with a single code line: ``` @await ViewBag.WebGrid.Render() ``` Now we pass to the SPA application. As we have created the project with a template, it already contains a demo single-page application. Thus, all we have to do is to add a new component and set the menu. Two new files must appear in the application structure:  The file cube.vue.html is the html display of the new component: ``` ``` The display formed in the ASP .Net Core application will be downloaded in iframe. The file cube.ts is the script of the new component: ``` import Vue from 'vue'; import { Component } from 'vue-property-decorator';   @Component export default class CubeComponent extends Vue { url: string = ''; show: boolean = false; cubeData: string ='';   Clicked() { this.show = true; this.url = "api/SampleData/ShowCube"; } } ``` In the script we set url for the iframe source as a button click. At this stage, the new component must be registered in the file boot.ts: ``` const routes = [ ... { path: '/cube', component: require('./components/cube/cube.vue.html') } ]; ``` Also, we add the new menu header in the file navmenu.vue.html: ```  
Category
Species Name
Length (cm)
Length In
  ``` Now to link our HTML code with data fields just use the object editor with expression editor and insert data expressions. The image data field will be automatically encoded to base64 with the correct mime-type of images stored in the database. FastReport VCL will do that automatically. The "HTMView" object supports grow to the bottom(stretch) relative to the content inside it just like the "RichText" object. And of course, "HTMLView" object supports data split when the report page doesn't have enough free space. A data stretch and data split can be activated like in other report objects of FastReport VCL. First, we need to set Stretched and AllowSplit properties of the band.  Then set  StretchMode property of the "HTMLView" object to smActualHeight in our case. That's all! Just run the report and check the result. As can be seen use HTML4.0 and CSS with links to the data is very easy in the new version of  FastReport VCL 2021.2 .  Tags: VCL, FastReport, Data Source, HTML ### Overview of Update 2026.2 for FastReport VCL URL: https://www.fast-report.com/news/release-fastreport-vcl-2026.2 Summary: Version 2026.2 of the FastReport VCL introduces 10 new UI components for Delphi and Lazarus, an updated FastGrid with nested groupings, a report validation system. Version 2026.2 of the FastReport VCL introduces 10 new UI components for Delphi and Lazarus, an updated FastGrid with nested groupings, a report validation system. Version 2026.2 of the FastReport VCL introduces 10 new UI components for Delphi and Lazarus, an updated FastGrid with nested groupings, a report validation system, and a property for managing band column layout (TfrxDataBand.BandColumns.Layout). New features include a center-align mode for containers, the UseSizeConstraints property for tables, image post-processing effects, and the ability to preserve original image links during export. Improvements have also been made to FastReport FMX, FastCube, and FastQueryBuilder. New UI Components (Editors) for Delphi and Lazarus  The component base has been expanded with 10 new UI editors: TfrBarcode, TfrButtonEdit, TfrCalendar, TfrCheckBox, TfrComboBox, TfrCurrencyEdit, TfrEdit, TfrImage, TfrMaskEdit, TfrSpinEdit. The main difference between our UI components and the standard ones is their additional display and control settings. TfrBarcode — embed all available linear and 2D barcodes from the FastReport suite into your non-reporting application. TfrCalendar — use a calendar with an extended set of settings. TfrMaskEdit — add edit fields with complex masks to your application. TfrCurrencyEdit is a currency display editor that is essential for any modern business application. Try our editors in your application. FastGrid Has Received a Major Update The update introduces the ability to create nested groupings within the grid. You can now easily collapse and expand groups. Creating groups is now easier—just drag a field into the grouping area. Each field type has its own editor. FastGrid uses all available UI editors for editing fields. You can also quickly export data as reports in any format using FastReport. Check out the new UI component functionality in our demo app. New Features of FastReport VCL Report Validation System Before saving, check your reports for errors, following development guidelines. Implement a report validation system in your CI/CD. The new system allows you to validate reports both from the designer and from code. Its flexibility allows you to add your own validation rules—whether it's checking for correct object naming or ensuring compliance with corporate style guidelines in report templates. The validation system contains a set of validation rules: object intersections, conflicting properties, data sets, expressions, empty objects, and report scripts. You can prevent users from saving reports that fail validation. Read more about the report validation system in our article. New Property for Managing the Arrangement of Band Columns The report engine now allows you to control the layout of band columns using the TfrxDataBand.BandColumns.Layout property. This property allows you to select the column display order: first to the right, then down (AcrossThenDown) or first down, then to the right (DownThenAcross). In DownThenAcross mode, you can set the maximum number of rows in a column using the MaxRows property. The average value of the total number of records is used by default. New Alignment Mode In this 2026.2 update, we've added a container center alignment mode that uses not only the width but also the height of the baHVCenter. UseSizeConstraints: New Property for Tables UseSizeConstraints property has been added to table columns and rows. This property allows you to set maximum and minimum width and height dimensions not only when creating a report, but also when designing and resizing a table. This property is useful for creating fixed rows and columns when stretching a table to the full-page width (using FitPartsToPageWidth or Align). New Image Effects  The redesigned image output now includes a post-processing pipeline. This enabled adding new post-processing properties for the TfrxPictureView object: Transparency for setting a translucency mask; image rotation; and mirroring. Export Improvement: Retaining Original Image Links The latest version of our export tool adds a new feature to preserve the original image links specified in the DataLink.Link property. This functionality allows users to more flexibly manage the export process and ensures that all necessary data is preserved. This process is controlled by the dltOnExport flag for the LoadType property and the ExportDataLinksMode property for all export filters. Exports can now operate in three modes: edmNone (default)—exports only what is loaded into the image object. edmLoadToObject —when exporting to an object, data is loaded from a link and then exported. edmInternalExport —HTML exports use the original link specified in the DataLink.Link field. This feature greatly simplifies data export and allows you to preserve all important image links, which is especially useful when working with large amounts of data and complex projects. FastReport FMX, FastCube, and FastQueryBuilder Improvements FastReport FMX now allows you to print reports with the Skia Canvas function on Windows platform in RAD Studio 13. The TfcxSliceGridToolbar.AutoExpandPopups property has been added to FastCube for automatic group expansion. The CrossView and ChartView editors have been updated and improved for integration with FastReport. FastQueryBuilder now supports escaping of fields and tables for different SQL dialects. In addition to these changes, the products include many improvements and fixes. See the full list of changes. Version 2026.2.0 VCL.Core --------------- [Engine] - fixed CSS error handling in HTMLView [Graphic] - fixed EPNGOutMemory error when scrolling images - fixed output of transparent SVG in TfrxPictureView - fixed SVG transparency  - fixed AV occurring when a TfrxSVGGraphic object is destroyed - fixed TfrxPictureView error with SVG [Localization] * updated Portuguese resources * TfrLocalizationController.Language property was made case-independent Lazarus.Core --------------- [Engine] - fixed CSS error handling in HTMLView [Graphic] - fixed EPNGOutMemory error when scrolling images - fixed output of transparent SVG in TfrxPictureView - fixed SVG transparency  - fixed AV occurring when TfrxSVGGraphic object is destroyed. [Localization] * updated Portuguese resources * TfrLocalizationController.Language property was made case-independent VCL.Controls --------------- [Engine] + added CTRL+(Up/Down/PageUp/PageDown) handling to the Memo family [UI] * improved Gutter and Footer handling for the Memo family  - fixed AV when collapsing nodes after the tree is fully expanded - fixed incorrect rendering of HotTrek and Select when using themes in TfrTreeView - fixed a TfrTreeView bug where multiple selections were not cancelled by clicking on an unselected node. - fixed incorrect colors of tooltip text and node highlighting when using themes in TfrTreeView Lazarus.Controls --------------- [Engine] + added CTRL+(Up/Down/PageUp/PageDown) handling to the Memo family - fixed AV in the Linux console application [UI] * improved Gutter and Footer handling for the Memo family  - fixed AV when collapsing a node after the tree is fully expanded - fixed a TfrTreeView bug where multiple selections were not cancelled by clicking on an unselected node. VCL.FastScript --------------- [Engine] - fixed FastScript ClearLocalVars for an array of variants - fixed fvtInt 64 support [RTTI] + added WeekOf function to the script - fixed InRange function FMX.FastScript --------------- [Engine] - fixed FastScript ClearLocalVars for an array of variants [RTTI] + added WeekOf function to the script - fixed InRange function - fixed fvtInt 64 support Lazarus.FastScript --------------- [Engine] - fixed FastScript ClearLocalVars for an array of variants [RTTI] + added WeekOf function to the script -fixed InRange function  -fixed fvtInt 64 support VCL.FastCube --------------- [Engine] - fixed a bug when working with ftBCD fields [UI] + added icon for TfcxpMemoView + added AutoExpandPopups property to TfcxSliceGridToolbar, like in TfcxSliceGrid - fixed the non-working context menu item "Create a custom filter..." for measurements FMX.FastCube --------------- [Engine] - fixed icon rendering [UI] + added icon for TfcxpMemoView + added AutoExpandPopups property to TfcxSliceGridToolbar, like in TfcxSliceGrid - fixed the non-working context menu item "Create a custom filter..." for measurements - fixed CrossView editor - fixed ChartView editor  Lazarus.FastCube --------------- [Exports] - fixed style font sizes when exporting for Lazarus and HiDPI [UI] + added icon for TfcxpMemoView + added AutoExpandPopups property to TfcxSliceGridToolbar, like in TfcxSliceGrid - fixed the non-working context menu item "Create a custom filter..." for measurements VCL.FastQueryBuilder --------------- [Engine] + added support for SQL escaping for table and field names + added the TfqbFDEngine.TablePattern property Lazarus.FastQueryBuilder --------------- [Engine] + added support for SQL escaping for table and field names + added the TfqbFDEngine.TablePattern property VCL.FastReport --------------- [Client-server] - fixed a format detection error in Server Online-Designer API [Engine] + added a validator rule for checking script compilation + added object validation rules + added validation of report datasets + added new property TfrxDataBand.BandColumns.Layout to control the order of printing columns (AcrossThenDown or DownThenAcross) + added a new alignment type for objects—baHVCenter, which aligns the object by the width and height of the parent container. + added report validator + added image post-processing pipeline (mirroring and rotating images) * network printer settings use cached results to quickly load the report designer * accelerated rotations and reflections in PictureView  - fixed rendering of translucent watermarks with Rotation less than 0 - fixed the behavior of the transparency property for vector images - fixed the use of watermarks from the script - fixed a bug that caused the dynamic table to use previous values when working with repeating data bands - fixed decoding of Base 64 strings - fixed Richview break bug - fixed KeepTogether behavior when using the StartNewPage flag - fixed the behavior of the PrintOn property when the band moves to the next page - fixed a bug in GridTableBuilder when using default property editors [Report object] + added Transparency field to the TfrxPictureView object - fixed a bug in HTMLView that occurred when the table did not contain any columns - fixed a bug where 2D barcode presets were missing when exporting to PDF - fixed rotation of vector images at angles close to 45, 135, 225, 315 degrees - fixed support for the Win 64 platform [Preview] - fixed a bug where the preview would trigger mouse click events while scrolling the page using the Pan tool [Exports] + added internal DataLink processing for HTML exports + added read confirmation for mail export (Indy) - fixed PDF export dialog - fixed missing HTML tag styles in the DOCX export filter - fixed a bug when exporting an HTMLDiv embedded in another HTML page - fixed export to RTF of reports with pages of different orientations - fixed PDF export errors - fixed PDF export for 64-bit systems - fixed PDF structure with ZUGFERD - fixed export of Arabic to PDF - fixed issue with PNG/SVG transparency when exporting to PDF - fixed Embedded Subset in PDF - fixed export of spaces to PDF for lines with tab characters ($09) - fixed export of empty TfrxMemoView with AllowHTMLTags = True to DOCX - fixed errors in PDF/A and PDF with CMYK color space [Designer] + added intersection checking for bends + added saving of DataTree settings in object and expression editors + added DebugLn function to the report designer * improved search and highlighting of intersections * the default value for the TfrxDesigner.DefaultFont.Color field has been changed to clBlack - fixed the "Access Denied" error with the clipboard in the designer. - fixed usage of frxEditSQL.inc - fixed updating of internal parameters of data sets in edit mode - fixed a bug where the report designer inserted an incorrect mouse event for dialog controls - fixed adding icons for custom components - fixed opening of the run-time designer with a custom TfrxReport.IniFile - fixed highlighting of intersecting objects FMX.FastReport --------------- [Engine] + added the ability to print reports with the enabled Skia Canvas function on Windows platform in RAD Studio 13 [Designer] - fixed tooltips in the designer - fixed a memory leak in the designer if there was an image in the clipboard - fixed sorting of the designer elements panel [Exports] - fixed RTF export of reports with pages of different orientations - fixed incorrect size of 2D barcode during code export  Lazarus.FastReport --------------- [Client-server] - fixed a format detection error in Server Online-Designer API [Engine] + added a validator rule for checking script compilation + added object validation rules + added validation of report datasets + implemented the first version of the report validator  + added new property TfrxDataBand.BandColumns.Layout to control the order of printing columns (AcrossThenDown or DownThenAcross) + added a new alignment type for objects—baHVCenter, which aligns the object by the width and height of the parent container. + added image post-processing pipeline * network printer settings use cached results to quickly load the report designer - fixed the use of watermarks from the script - fixed a bug that caused the dynamic table to use previous values when working with repeating data bands - fixed KeepTogether behavior when using the StartNewPage flag - fixed the behavior of the PrintOn property when the band moves to the next page - fixed a bug in GridTableBuilder when using default property editors [Report object] + added Transparency field to the TfrxPictureView object  - fixed a bug in HTMLView that occurred when the table did not contain any columns - fixed a bug where 2D barcode presets were missing when exporting to PDF - fixed decoding of Base 64 strings - fixed rotation of vector images at angles close to 45, 135, 225, 315 degrees [Preview] - fixed a bug where the preview would trigger mouse click events while scrolling the page using the Pan tool [Exports] + added internal DataLink processing for HTML exports - fixed PDF export dialog - fixed missing HTML tag styles in the DOCX export filter - fixed a bug when exporting an HTMLDiv embedded in another HTML page - fixed RTF export of reports with pages of different orientations - fixed PDF export dialog - fixed PDF export errors - fixed PDF export for 64-bit systems - fixed PDF structure with ZUGFERD - fixed export of Arabic to PDF - fixed an issue with PNG/SVG transparency when exporting to PDF - fixed Embedded Subset in PDF - fixed export of spaces to PDF for lines with tab characters ($09) - fixed export of empty TfrxMemoView with AllowHTMLTags = True to DOCX - fixed errors in PDF/A and PDF with CMYK color space [Designer] + added intersection checking for bends + added saving of DataTree settings in object and expression editors + added DebugLn function to the report designer * improved search and highlighting of intersections * the default value for the TfrxDesigner.DefaultFont.Color field has been changed to clBlack - fixed copying in the PictureView editor when there is no image - fixed usage of frxEditSQL.inc - fixed updating of internal parameters of data sets in edit mode - fixed a bug where the report designer inserted an incorrect mouse event for dialog controls - fixed adding icons for custom components - fixed opening of the run-time designer with a custom TfrxReport.IniFile - fixed highlighting of intersecting objects VCL.FastGrid --------------- [UI] + added a new column deletion cursor + added the ability to resize a column if its right border is out of view + added cancellation of dragging and resizing columns by pressing ESC in design time - fixed highlighting of grid elements when dragging and resizing a column - fixed the cell frame being displayed on the header when scrolling the grid while in focus - fixed an issue on Linux where editing would not work if the editor was activated by clicking the mouse - fixed support for the Win 64 platform [Engine] + added the ability to group data in a table view + added the TfrSpinEdit property. ValueType, MinValue, and MaxValue depend on the corresponding properties of the field bound to the SpinEdit column. - fixed a bug where the maximum length of text entered in a cell did not match the dimensions of the data field associated with the column of that cell. - fixed the OnKeyPress event to work with the WideChar type and fixed problems with navigation in Lazarus cells with UTF-8 characters - fixed an AV that would close the application if the built-in editor was active before setting Grid.Parent to nil. - fixed a bug where multiple exceptions were triggered when a column assigned with Image properties contained invalid data [Exports] + added the ability to create grouped tabular reports from FastGrid - improvements in the FastGrid table report builder Lazarus.FastGrid --------------- [UI] + added a new column deletion cursor + added the ability to resize a column if its right border is out of view + added cancellation of dragging and resizing columns by pressing ESC in design time - fixed highlighting of grid elements when dragging and resizing a column - fixed the cell frame being displayed on the header when scrolling the grid while in focus [Engine] + added the ability to group data in a table view + added the TfrSpinEdit property. ValueType, MinValue, and MaxValue depend on the corresponding properties of the field bound to the SpinEdit column. - fixed a bug where the maximum length of text entered in a cell did not match the dimensions of the data field associated with the column of that cell. - fixed the OnKeyPress event to work with the WideChar type and fixed problems with navigation in Lazarus cells with UTF-8 characters - fixed an issue on Linux where editing would not work if the editor was activated by clicking the mouse - fixed an AV that would close the application if the built-in editor was active before setting Grid.Parent to nil. - fixed a bug where multiple exceptions were triggered when a column assigned with Image properties contained invalid data [Exports] + added the ability to create grouped tabular reports from FastGrid - improvements in the FastGrid table report builder VCL.Transport --------------- [Engine] + added read confirmation for mail transport (Indy) VCL.FastEditors --------------- [UI] + added the OnButtonCustomDraw event to TfrButtonEditProperties + added the BorderSpacing property for all Lazarus editors  + added the ability to get the changed value of the editor using the Text property in Lazarus - fixed an error that occurred when trying to iterate through a drop-down list of values when the list is empty - fixed incorrect background display in TfrCalendar - fixed Access Violation error when TfrCalendar was destroyed or hidden during animation - fixed support for the Win 64 platform [Engine] + added new component TfrCalendar + added new component TfrCurrencyEdit + added new component TfrBarCode + added new component TfrMaskEdit Lazarus.FastEditors --------------- [UI] + added the OnButtonCustomDraw event to TfrButtonEditProperties + added the BorderSpacing property for all Lazarus editors  + added the ability to get the changed value of the editor using the Text property in Lazarus - fixed an error that occurred when trying to iterate through a drop-down list of values when the list is empty - fixed incorrect background display in TfrCalendar - fixed the Access Violation error when TfrCalendar was destroyed or hidden during animation - fixed support for the Win 64 platform [Engine] + added new component TfrCalendar + added new component TfrCurrencyEdit + added new component TfrBarCode + added new component TfrMaskEdit ### Page description language – ZPL URL: https://www.fast-report.com/blogs/zpl-language Summary: Learn about ZPL language for printing. Find more useful tips and articles in our blog. Learn about ZPL language for printing. Find more useful tips and articles in our blog. Learn about ZPL language for printing. Find more useful tips and articles in our blog. ZPL - Zebra Programming Language - the language of description of printed pages, also known as PDL (Page Description Language). There are many PDLs. Almost every printer manufacturer has its own page description language. This language allows you to describe the page by high-level commands, which will be interpreted by the printer in low-level ones. The most famous PDL is PostScript from Adobe. The PDL allows to describe page objects. There is something, that makes the program be independent from a particular hardware platform of a printer. The printer receives commands for printing a square, a symbol or a line and we do not care how it will be realized. The printer itself knows how to do this. This is the main advantage of the PDL. American company "Zebra Technologies" has developed the ZPL mainly for creating and printing of labels. Labels can contain a text, barcodes and simple graphics. Such labels are printed with special Zebra printers, which are used in the trade for printing receipts and checks. There are two standards: ZPL and ZPL ll. Differences The main reason for development of ZPL II was a significant reduction of the time when a printer starts to receive data and when the first character goes to be printed. This was made primarily by changing the way of how ZPL programs are written. The ZPL II standard is not 100% compatible with the ZPL standard. But the differences between are minimal. All programs on the ZPL can easily be modified to the level of ZPL ll. There is a backward compatibility. That is, you can write programs on the ZPL ll for ZPL printers, of course, taking into account the old syntax. So, here are two main differences between ZPL ll and ZPL: 1. In ZPL II the data is formatted immediately as received. And in the ZPL standart, the formatting does not start until you get the command to complete the process formatting ^ XZ. 2. ZPL ll has a lot of new commands. Syntax Considering a programming language without examples makes no sense. Therefore, the program code for printing a simple label is given to allow to look at the syntax. ``` ^XA   ^FX Top section with company logo, name and address. ^CF0,60 ^FO55,55^GC100^FS ^FO75,55^GC100^FS ^FO75,75^GC100^FS ^FO55,75^GC100^FS ^FO88,88^GC50,50^FS ^FO220,50^FDLorem Ipsum, Inc.^FS ^CF0,40 ^FO220,100^FD1000 Shipping Lane^FS ^FO220,135^FDShelbyville TN 38102^FS ^FO220,170^FDEURO UNION (EU)^FS ^FO50,250^GB700,1,3^FS   ^FX Second section with recipient address and permit information. ^CFA,30 ^FO50,300^FDKarl Marks^FS ^FO50,340^FD100 Main Street^FS ^FO50,380^FDEURO UNION (EU)^FS ^CFA,15 ^FO50,450^GB700,1,3^FS   ^FX Third section with barcode. ^BY5,2,120 ^FO175,500^BC^FD1234567890^FS   ^FX Fourth section (the two boxes on the bottom). ^FO50,700^GB700,250,3^FS ^FO400,700^GB1,250,3^FS ^CF0,40 ^FO100,760^FDShipping Ctr. Y74H-1^FS ^FO100,800^FDREF1 F99L17^FS ^FO100,840^FDREF2 YUH88^FS ^CF0,190 ^FO485,765^FDAA^FS   ^XZ ```  Now, we get the ticket for the shipping control: As you can see, the code begins with the tag (command) ^ XA and ends with the tag ^ XZ. The code is divided by the comments into four sections for convenience of consideration. 1)  The first section displays the company logo and its legal data: ``` ^FX Top section with company logo, name and address. ^CF0,60 ^FO55,55^GC100^FS ^FO75,55^GC100^FS ^FO75,75^GC100^FS ^FO55,75^GC100^FS ^FO88,88^GC50,50^FS ^FO220,50^FDLorem Ipsum, Inc.^FS ^CF0,40 ^FO220,100^FD1000 Shipping Lane^FS ^FO220,135^FDShelbyville TN 38102^FS ^FO220,170^FDEURO UNION (EU)^FS ^FO50,250^GB700,1,3^FS ```  It is clear that tag ^ FX means a comment. ^CF x, y, z – Default font settings: font, height and width. ^FO x,y  - left and top indentation. ^FS  – end of line. Next, draw a logo from four circles: ^GC x,y – draw a circle. Diameter – x, line thickness – y. Legal data: ^FD – data field. 2)  In the second section we will not see new tags. 3)  In the third section we add a barcode: ``` ^FX Third section with barcode. ^BY5,2,120 ^FO175,500^BC^FD1234567890^FS ```  Here: ^BY x,y,z – width, width of bar, height. 4) In the fourth section another tag appeares: ^GB x,y,z – rectangle (box). Width, height, thickness of the frame. By using a small set of tags, we described the entire printed page. The process is rather simple. You only need to set the distance in points. All the measurements are in points. Summing up, in this article we have considered a part of the ZPL commands to meet a user with the main point of the language. As on the Internet there are many online interpreters of the ZPL code, you can always test it visually. Tags: ZPL ### Partners URL: https://www.fast-report.com/partners Summary: Partners - Check out the companies we partner with. Resellers Filters Continents Com&Lan 6/F, Tower A, Fenglin Xi'ao, Datun Road, Chaoyang District, Beijing 100101 P.R. Tel. +86-10-64844488 ext. 221 | Fax +86-10-64844477 ext. 221 comlan.com info@comlan.com The the Beijing Kunlun Unicom Technology Development Co., Ltd. is a comprehensive enterprise operating direction to provide operation and maintenance services of IT products and professional. The company was founded in 1998 on the development of technology-based service to the community, "the general direction from its inception. The entire company set hardware products, software products, sales and service in one, continue to adhere to the introduction of foreign advanced products and technologies, providing IT solutions and technical support services for corporate clients. CompuCom Systems 3414 25th Street NE, Calgary, Alberta  T1Y 6C1 Tel. +1 403-205-5619 compucom.com contacts CompuCom Canada is a national IT services and solutions company providing infrastructure management services, application services, systems integration and consulting services, as well as the procurement and management of hardware and software. With more than 20 years of IT experience, CompuCom employs thousands of highly skilled associates who have earned a nearly 100 thousand industry certifications company-wide. As experts in workplace services, CompuCom’s unique Integrated Infrastructure Management (IIM™) solution reduces costs, increases productivity and helps clients gain maximum value from information. HTK Pro s.r.o. Kutnohorská 55, Praha 10, 109 00 Tel. +420-810-100-810 | Fax +420-286-891-391 devshop.cz kadlecek@htkpro.cz Petr Zahradnik, Computer Laboratory Obvodova 740/14, CZ-40007 Usti nad Labem, Czech Republic Tel. +420-47-5500610 | Fax +420-47-5511338 clexpert.cz petr@zahradnik.cz Inteli Scape Ltd 22 Larnakos Avenue, 4th Floor, Aglantzia, Nicosia 2101, Cyprus Tel. +357-22448500 | Fax +357-22448511 inteliscape.com sales@inteliscape.com In addition to turn-key solutions, inteliscape provides custom project services - we have "the glove that fits your hand"! At inteliscape, customer satisfaction is driven by our people; people who understand e-business, people who think, people who do, people who get it. We have both undergone appropriate training and gained significance in delivering e-business solutions. All our services professionals are recognised for their excellence by IBM, Lotus, and Microsoft in all competencies we perform: Consultancy, Sales, Solution Architecture/Design, Implementation, Administration, Learning, and Support. HongDi Science & Technology Development co. Room 1113 Building B JinMao Square No.251 QiLiTing Road HuZhou, Zhejiang 313000  Tel. +86 572 2607144 | Mobile +86 (0) 13511221372 cookcode.net sales@cookcode.com HuZhou HongDi science & technology development co.,ltd., located in HuZhou, Zhejiang, China, specializes in selling and supporting expert programming components. we have selled our graphical components in global countries, and take a good effect to developers. Established in 2001 , provide components and software tools to the developer community, CookCode has expanded to become a leading of components supplier in China, USA, Europe, and provide thousands of components to developers, designers, IT Managers, Network Administrators, DBAs and Corporate Buyers. Katálogo Software Tel. +55 (11) 3581-4400 katalogo.com.br vendas@katalogo.com.br Fundada em 1997, a Katálogo Software tem como objetivo de atender as necessidades em software para desenvolvedores, profissionais de TI e empresas de todos os portes. A empresa tem sua matriz em São Paulo e filiais no Rio de Janeiro, Curitiba e Estados Unidos. A Katálogo Software hoje é referência no merdado de software, com vasta experiência na área de importação e exportação de softwares profissionais. Pan Yan Chongqing Science and Technology Yanghe Road, Jiangbei District, Chongqing, the 2nd international Tongchuang the 3rd Room 1904 Tel. 023 -67870900 componentcn.com sales@componentcn.com Software reusability is one of the key factors in the development of the software industry. To achieve the software " industrialized "and " software component " is the foundation for achieving this goal. Therefore, our long-term commitment to excellent control products at home and abroad to introduce the software development process, China's major software development companyto help improve the development efficiency and shorten the development cycle of the software product, to reduce the risk of the development of software projects, thereby enhancing software products in the market competitiveness. Barnsten B.V. Zijlstraat 47, 2011 TK Haarlem Tel. +31-23-542-2227 | Fax +31-84-755-5260 barnsten.com info@barnsten.com Leading the way with Innovative, Multi-Platform, Developer and Database Solutions Barnsten is dedicated to providing its customers with the industry’s broadest and deepest set of tools for enhancing the productivity of software developers and database professionals. Cogito Software Room 5003,Guang Yuan Da Sha, No.5 Guang Yuan Zha, Hai Dian District, Beijing China 100081 Tel. +86-010-68421378, 68421379 | Fax +86-010-68703469 cogitosoft.com sales@cogitosoft.com We corporate closely with over 2000 Reseller and we had established relationships with local retail outlets and online shops. We have over 40,000 users within mainland China, a large proportion of them are from government agencies, educational institutes and commercial departments. We have established business relationships with many of the world's top 500 enterprises, for instance: Motorala, Simens, Lucent-Alcate ,etc. Qast Software Group RM 3705, BM Business Center, No.100 Yutong Road, Shanghai, 200070, China Tel:+86-21-5240-0198  | Fax: +86-21-6211-9020 www.qast.com info@qast.com Qast Software Group is one of the largest software distribution companies in China. Our goals are to continuously bring global software and technologies to the growing Chinese market. QBS Software GmbH Grünwalder Weg 13a, 82008 Unterhaching, Germany Tel. +49 (0) 89 231 4142 0 https://www.qbssoftware.com/ info@qbssoftware.de WESTcom Logiciels et Services Tel. +33-2-97-88-07-44 westcom.fr infos@westcom.fr Westcom is an IT company established in 2000 specializes in publishing management software (accounting, production management and inventory, fixed assets, ...) and LIMS (Computerized Management Laboratory). DATAVENIR sarl 119, rue Vi De Chenaz, 74380 BONNE Tel. +33-0489-61-21-40 | Fax +33-0450-92-30-77 datavenir.com info@datavenir.com DATAVENIR undertakes to study and offer at any time solution that best suits your needs for your information system. (Business, Accounting, Management, Networking, Internet Technologies, Multimedia, Online Services, Training). IT Haimerl Datentechnik Kreuzacker 10, 94356 Kirchroth, Germany Tel. +49-9428-305324 | Fax +49-9428-305325 https://www.fast-report.de/ info@fast-report.biz Mitrasoft Infonet Kompleks Roxy Mas Blok E-2 No. 3 Jl. K.H. Hasyim Ashari No. 125-B Jakarta 10150 Tel. +62-21-632-6533 | Fax +62-21-632-6364 mitrasoft.co.id info@mitrasoft.co.id We provide a wide range of IT solutions and services; Hardware & System software Infrastructure, System Integration, Structured Cabling, LAN/WAN Design and Implementation, Financial Management System, Business Intelligence, Software Licensing, Outsourcing, Maintenance, Training, Consultingand Custom Application Development. In June 1996, PT. Mitrasoft Infonet was formed to focus on software's business. Mitrasoft's main business includes providing Software Licensing, System Integration Services, Outsourcing, Maintenance, Training, Business Solutions and custom application development. It is noteworthy that one thing about our companies that have not changed over the years is our vision of providing the best products and the best solutions for our customers and today our companies continue to serve our customers even better. Intcom Systems Pvt Ltd Office No 20, Rajasthan technical Centre, Grd Floor, Patanwala Estate, Near Shre, Ghatkopar West, Mumbai, MH 400086, India Tel. +91-022-41117777 intcomsystems.com sales@intcomsystems.com Intcom Systems Pvt. Ltd., incorporated in 1994, caters to all aspects of Software Products / licenses procurement. With domain knowledge in software licensing models and years of experience reselling software products from worlds foremost software publishers, we provide purchase option that assist you get a properly licensed and most economic software deal. Our services division caters to Infrastructure solutions like, Network & E-mail Security, Print management, Online meeting solutions & Infrastructure solution. Intcom Systems Pvt. Ltd. is managed by Mahendra Patil and a team of professionals. With a focus on serving the Software Development, Corporate Houses & SME Small & Medium Enterprise in INDIA, We have tied up at various levels with software publishers worldwide to provide Indian developers with cutting edge tools to assist them through various stages of software development process. Amazing (HK) Trading Ltd Tel. +852-6255 3802 | Fax +852-3011 6235 amazinghk.com.hk sales@amazinghk.com.hk Kvazar-Miro CEE Kft Gubacsi ut 6., Budapest 1097 - Hungary Tel. +361-880-4415 | Fax +361-880-4465 kvazar-micro.hu info@kvazar-micro.hu SoDiCe Kereskedelmi Kft. 1143, Budapest, körút 83, Hungária Tel. +36 1 881 6486 sodice.hu info@sodice.hu A SoDiCe Kereskedelmi Kft. azzal a céllal jött létre, hogy közvetlenül a gyártóktól vásárolt szoftvereket kínáljon a magyar piac részére. Fő célunk, hogy a szoftver kiadókkal együttműködve részt vegyünk egy nemzetközi IT megoldásokat kínáló hálózat kiépítésében, kapcsolataik megerősítésében és a meglévő értékesítési csatornáikat kiegészítve hozzájáruljunk eredményeik növeléséhez. Kínálatunk az informatika különböző területein használatos szoftverek széles választékát tartalmazza: - Biztonsági/Security termékek - Network Management - Webdesign - Üzleti Megoldások - E-Learning - Tudományos szoftverek - Kommunikációs és Multimédiás termékek R2 Data Technology SAC. Tel. 511 402 0622  / 529 8069 r2datatechnology.com ventas@r2datatechnology.com R2 Data Technology es un proveedor de herramientas de desarrollo de software para empresas, ingenieria, investigacion e instituciones educativas. Software Sources Ltd. 64B Hasharon St. P.O.Box 639 Ra'anana 43106 Tel. +972-9-7714578 | Fax +972-9-7712194 software-sources.co.il chen@software-sources.co.il Wintech Italia Srl Tel. +39-0523.1998395 | Fax +39-0523.014654 shop.wintech-italia.com info@wintech-italia.com Wintech Italia is a training and consulting company specialized on Delphi, with the unique contribution of Delphi's "guru" Marco Cantù. We offer onsite and public training classes, consulting and development support, mentoring and code review. The company also resells in Italy the licences of Delphi and some third party components. AG-TECH Corporation 6F, Daiwa Kandabashi Bldg. 1-17-5 Kanda Nishikicho Chiyoda-ku, Tokyo 101-0054 Japan Tel. +81-3-3293-5300 | Fax +81-3-3293-5270 agtech.co.jp ``` sales@agtech.co.jp ``` AG-TECH is a company with over 35 years of experience in localizing, selling and importing packaged software into the Japanese market. We are the exclusive distributors in Japan for fully localized into Japanese versions of the FastReports.NET and FastReports VCL product range. As well as fully localized products, with full Japanese language manuals, we have an experienced team of local support and sales engineers, able to offer Japanese report developers and standalone report users a fully featured complete reporting solution. For full details, please refer to our Japanese language Fast Reports home page Danysoft Internatioal S.L. Avda. de la industria 4, edif. 1, 3ª planta, Natea Business Park, 28108 Alcobendas, Madrid +34-916-638683 danysoft.com Contact Danysoft es el representante exclusivo de Embarcadero en la península ibérica, estando especializados en ayudar a la comunidad de Delphi y C++Builder en licencias, formación, libros y utilidades tan imprescindibles como Fast Reports Isah Business Software Droogdokkeneiland 11, 5026 SP Tilburg Tel. +31-88-4724-000 | Fax +31-88-4724-001 isah.com A stable, hi-tech software solution: that is what Isah offers you. That is not just a promise. It is a guarantee. The manufacturing industry is our core market. With extensive industry experience dating back to 1987, we know precisely what is needed to optimise business management processes and attain better results. Rambla Informаtica S.L. Paseo Roma Fabra, 12, 08320 El Masnou – Barcelona Tel. +34-93-306-34-47 ramblainf.com DevTools Inc. Tel. +82-2521-7900 | Fax +82-22297-7900 devtools.co.kr midmee@devtools.co.kr AccessSoft Inc. 3F.-5, No.86, Sec. 1, Zhongxiao E. Rd., Zhongzheng Dist., Taipei City 100, Tel. +886-2-23560269 | Fax +886-2-23956826 accesssoft.com.tw rachelwu@accesssoft.com.tw  |  elsalin@accesssoft.com.tw Qun Yu Co., Ltd. (AccessSoft) positioning of the "Your Brilliant Solutions Provider", software integration services to provide customers with professional information, and for many of the world's leading software partners in Taiwan, the Taiwan user has a faster, more professional, more The regional software services. Linksoft Inc. 6th Floor, New Taipei City and District No. 351, Sec 10 Tel. +886-2-2221-2155 | Fax +886-2-2221-9008 linksoft.com.tw anna@linksoft.com.tw Founded in 2007, Linksoft is a professional distributor and reseller in Taiwan and China. As a professional software provider, Linksoft cooperates with global outstanding IT industries, reselling thousands of software includes Statistical Analysis, Development Program, Database Management, Network Security, Design and Edit software. Linksoft cultivates its mature service along Commercial, Government, Academic and Home users, with more than 500,000 customers in Asia. Working for customer-oriented, Linksoft provides in time product information and decent first-line support to overcome the difficulties caused by long distance and different time zones. Sinter Information Corp Tel. +886-2-2577-7755 | Fax +886-4-2471-7448 sinter.com.tw service@sinter.com.tw eBIZINET Co., Ltd. 24/128 Soi 21 Yak 3, Chom Phon, Chatuchak, Bangkok 10900 Tel. +66-02-5125933 ebizinet.com info@ebizinet.com Invite Course to Web Learning & Training on Internet. BTG (Bilgi ve Teknoloji Grubu Ltd.) Ankara: Bilkent 5.Cadde No:4 Ofis:9, 06533 Bilkent. İstanbul: Büyükdere Cad. No:185 Kanyon Ofis Binası K:6, 34394 Levent Tel. +90+212-319-7722 btgrubu.com cozum@btgrubu.com BTG (Bilgi ve Teknoloji Grubu Ltd.), yazılım geliştirme süreçleri ve test aşamalarında Türkiye çapında çeşitli büyük kurumsal projelerde danışmanlık, eğitim ve destek hizmetleri veren uzman bir kadroya sahiptir. Instant Buy Tel. +34-959-10-11-80 | Fax +34-959-87-06-49 instantbuy.es info@instantbuy.es Netsync Network Solutions 2500 West Loop South, Ste 410, Houston, 77027 +1-713-218-5041 | +1-832-606-2131 Lola Charles lcharles@netsyncnetwork.com Netsync Network Solutions (Netsync),is a HUB certified, minority owned, Houston-based, Value-Added Reseller,who holds a variety of manufacturer and industry certifications while specializing in the areas of Networking, Servers, Storage, Wireless Devices, Security, Enterprise Computing, Datacenter and other IT-related disciplines. Xailer +34 902 955 144 www.xailer.com sales@xailer.com Xailer Inc. is one of the most important companies in the xBase world created almost 10 years ago. They have been active in the development of Harbour since its inception. Our flagship product, Xailer is a complete visual development environment for xBase using Harbour as its main compiler. bit Time Software Via di Prataporci ,185 - 00132 Roma | Via C. Menotti 2/A, 20129 Milano 06 20763518 | 02 87399401 bittime.it dir_comm@bittime.it Bit Time Software è una dinamica IT company che opera nel panorama italiano ed europeo dell’information technology dal 2002. Nata come software house focalizzata sulla fornitura di soluzioni informatiche per la gestione delle attività aziendali, la società ha progressivamente esteso e ampliato le sue competenze, abbracciando l’area della consulenza e della formazione IT. Shanghai Quweishi Software Co., Ltd. Room 1222, No.580, West Nanjing Rd., Shanghai, 200041 021 - 3211 0920 commuch.com sales@commuch.com Quweishi Software is a professional software service vendor. We focus on providing development solution ,tools, on-site service for help , training and outsourcing. We work with many components and tools software company all over the world and provide technical support for their local customers. SOS Software Unterer Talweg 40 86179 Augsburg 0821 25782 - 0 sos-software.com info@sos-software.com Die SOS Software Service GmbH wurde im Juli 1987 gegründet und ist spezialisiert auf die Distribution und den Vertrieb von Software, Softwarebeschaffung und Lizenzberatung. Wir vertreiben Software von über 1.000 Herstellern mit 70.000 Artikeln. Täglich erweitern wir unser Software-Portfolio, um Ihnen Software aller Hersteller aus einer Hand zu bieten. FireBase www.firebase.com.br fdd@firebase.com.br A FireBase é o maior portal brasileiro de informações sobre Firebird, oferecendo serviços de consultoria, suporte, cursos, desenvolvimento, além de gerenciar uma das mais movimentadas listas de discussão sobre Firebird de todo o mundo. Cadastre-se gratuitamente para ficar atualizado com as últimas notícias do mundo Firebird! 51Component China 24D, No 15 Jincheng Mansion, Xiangcheng Road, Pudong,Shanghai,China +86-(0)21-50318395 51component.com sales@51component.com Beijing TL-Chinasoft Technology Haidian District, Beijing Zhongguancun South Street, Building 718 52 010-62115400 pcsofttech.com yiyong.ji@pcsofttech.com Codiprof Rua 31 de Janeiro, 76 4470-553 MAIA 229424216 www.codiprof.pt info@codiprof.pt Devart 192a Klochkovskaya str., Kharkov, Ukraine, 61145 sales@devart.com devart.com Founded in 1997, Devart now has 18 years of experience in developing database tools and native data access solutions for different database servers with headquarters situated in Czech Republic and research and development center - in Ukraine. Comsoft 400 Avenue de Roumanille Green Side 1 Bât. 2, 06410 Biot 0 825 07 06 07 comsoft.fr infos@comsoft.fr Corporate Tech +55 (51) 4063 8011 corporatetech.com.br comercial@corporatetech.com.br A CORPORATE TECH Tecnologia – tem por tradição à atuação no mercado de tecnologia da informação desde 2010, ano que iniciou suas atividades na cidade de Porto Alegre com o objetivo de atender pequenas, médias empresas, profissionais da área de desenvolvimento e infraestrutura com produtos de software e licenciamento. Atualmente atuamos em todo território nacional, com base em Porto Alegre e escritório na cidade do Rio de Janeiro, atendendo clientes das mais diversas áreas e seguimentos, fornecendo softwares e consultoria gratuita na área de licenciamento. Nosso trabalho é focado sempre na atuação consultiva, buscando entender a necessidade do cliente para lhe oferecer o melhor licenciamento e o software adequado a sua real necessidade e orçamento. WSB Solutions B.V. Kade 30, 3371 EP Hardinxveld-Giessendam (0184) 61 88 37 www.wsb-solutions.nl info@wsb-solutions.nl Elmer İSTANBUL Rasimpaşa Mahallesi Tayyareci Sami Sokak Demirli İşhanı No:18 Kat:2  34716 Kadıköy İstanbul +90 216 577 64 71 www.elmer.com.tr ANKARA Kabil Cad. 1335. Sokak No:10/2 06450 Öveçler, Ankara +90 312 478 42 78 www.elmer.com.tr CiKa Software Schwalmtalstr. 18 34628 Willingshausen-Steina Deutschland 06691-929621 www.cika-software.de info@cika-software.de Login Infotech #63, 1st Main Road, Seshadripuram, Bangalore - 560 020 Karnataka +91-80-23349809 | 23563500-02 login2it.com sanjay@login2it.com LOGIN INFOTECH PVT LTD was incorporated in the year 1996 by a group of professionals with more than a decade of experience in the IT industry. Login started its business as a reseller company for Software and Hardware products and in a short span of time Login was recognized as one of the leading Value Added Partners for Microsoft. Login was also appointed as Partners for leading MNC brands like HP, COMPAQ, IBM, ACER and Wipro among Indian brands. Today with a turnover of over $8 million, Login is one of the preferred vendors for leading Corporate, Government and Banks & PSU's across the country. Login will be accredited with ISO 9002 Certification shortly. Targetware (55) (11) 3665 8550 targetware.com.br comercial@targetware.com.br DHorde Gengqian Information Technology Office Building 1-2198, Building A, Baguazhou Pioneering Park, No. 270 Lidao Road, Baguazhou Street, Qixia District, Nanjing +86 17558866126 dhorde.com sales@dhorde.com Nanjing Gengqian Information Technology Co., Ltd. ("Gengqian" for short), established in 2017, is a national high-tech enterprise specializing in providing global software and information technology services. The headquarter is located in Baguazhou Pioneering Park with a pleasant environment, and has branches in various regions of the country Evget +86 (23) 68661681 www.evget.com qiuyt@evget.com EXE +421-2-67 296 111 exe.sk Uznávame princípy, ktoré sme si stanovili pri samotnom vzniku firmy. Nadobudnuté skúsenosti nám dávajú zdravé sebavedomie a rešpekt pred potrebami zákazníkov. Svojich klientov nikdy nezavádzame a vždy vytvárame len také riešenia, ktorým sami dôverujeme. Symbionis Software Nussdorfer Strasse 64, Top 3b, 1090 Wien Tel. +43-1-7866496 | Fax +43-1-7866496-30 symbionis.at office@symbionis.at Wir vereinen die drei Hauptbereiche, Software, Skills und Technologies, in einem zentralen Knotenpunkt, um Ihnen optimale Lösungen für Ihre Projekte zur Verfügung zu stellen. Durch die Verknüpfung dieser drei Schwerpunkte können wir Ihnen maßgeschneiderte Angebote von der Entwicklung Ihrer Softwarekomponenten über geeignete Fachkräfte bis zu speziellen Datenbankservices machen. Ker-Soft Computing Szombathelyi tér 14. 1119 Budapest, Hungary +36(1) 206-2147 kersoft.hu info@kersoft.hu The company, gradually faced with a greater number of complex tasks was urged to take on with more professionals thus providing further technical expertise. In respose to growing customers needs, Ker-Soft developed its IT expert team. Similarly, we have built partnerships with the world’s leading IT suppliers -enriching our competency in solutions and products of Microsoft, CA. PT Interaktif Cipta Lestari Jl. Pualam I No. 49 Sumur Batu, Kemayoran, Jakarta Pusat +62 21 21477722 www.interaktif.solutions iwancs@interaktif.solutions PT Interaktif Cipta Lestari is an IT Company that provide the best, effective, and efficient solutions for companies needs. We provide many service in several area such as Custom Software Development, Original Software License, Technical Support, Data Entry Services, Network Infrastructure Consultation, and much more DEVGEAR 359, Sapyeong-daero (Banpo-dong, 3rd floor)Seocho-gu, Seoul, 06542 02 595 4288 www.devgear.co.kr DevGear is a company established in Korea through agreements with Embarcadero (acquired by IDERA) such as Delphi and C++ Builder. In line with the ever-increasing demand for Delphi and C++ Builder developers, DevGear provides products as well as related services (books, education, technical support, etc.) to the domestic market. AHA Computer Company Ltd. Tel. 02-2749-1909 https://www.ahasoft.com.tw sales@ahasoft.com.tw AHA Computer Company Ltd. was founded in 1990, specializing in the marketing and licensing of computer software all over the world. Serving the market with active minds over decades, we are proud to say that satisfaction and support from our business partners have clearly marked our excellent reputation. Pure Green Bulevar Arsenija Čarnojevića 140/2, Beograd +381 63 640 218 puregreen.rs info@puregreen.rs PureGreen is an IT-based company founded in 2015. Great vision inspires us to connect the real and digital world in a way to be the MVP partner for both our customers and suppliers. The base structure of our portfolio has a focus on software development, design and offering the best IT products and solutions. JSC Softex Baltic Sviliškių str. 10-46, Vilnius, Lithuania +370 683 77221 www.softex.lt info@softex.lt OSB Software Rua Vergueiro, 1421, Conj. 1309, Torre Sul. Paraíso – São Paulo/SP – 04101-000  Tel. +55 11 4280 6660 www.osbsoftware.com.br contato@osbs.com.br Não importa se o software que você procura está na América, Europa, Oceania, Ásia ou África. Na OSB Software você poderá encontrar os softwares de qualquer fabricante independentemente do país onde ele esteja. A OSB Software firmou contrato de parceria com mais de 2.000 fabricantes que expressam a AUTORIZAÇÃO de comercialização do software em todo território nacional, além de uma equipe experiente que é responsável pela busca constante de novas soluções para disponibilizar o que há de mais recente no mercado de TI. MicroWay Pty Ltd PO Box 84, Braeside, Victoria, 3195, Australia Tel. +61-1300-553-313 | Fax. +61-1300-132-709 microway.com.au sales@microway.com.au MicroWay is Australia's largest distributor of development products and software for IT Professionals. With over 3,000 products and over 20,000 customers throughout Australia and New Zealand, we've been helping IT Professionals for over 27 years. We assist developers, system administrators and other IT Professionals by encouraging the use of tried and tested, quality products. Software development products fit into many categories including the category of "don't reinvent the wheel"—if someone has already written code to do what you're trying to do, why not just buy that code? Products of this sort are usually fairly robust after having been sold on the world market. InchalBase Yongsan-gu, Seoul, Yongsan-dong 5-Yongsan Park Tower 103 No. 1503 Tel. +82-02-589-2900 | Fax +82-02-548-1123 ibmart.co.kr tkim@inchalbase.com 1995 inchael goal is to computer and Internet users to offer the best experience and satisfaction . Customers a variety of products based on the technology accumulated over 10 years in software solutions, ranging from the client to the server until you are offered to Recognized in the development of a Web system used worldwide by End to End testing and performance monitoring solutions and management solutions to our customers can offer. In the development of VoIP and IMS products, network services, such as installation to provide a solution that can verify the quality and performance during the whole life cycle of up to. Web, VoIP, NGN, and IMS based on numerous tests and has the expertise and knowledge gained from experience in inchael base the quality of service in real-time visualization by showing a variety of monitoring solutions. Accumulated technology and experience a wide variety of state-of-the-art techniques provides consulting and tuning services. inchael base and OneSight 's easier and safer position in the web system management plan have been provided for users and administrators Korea empirically Riggs and merger integration decisions by truly comprehensive solutions company that provides VoIP, Enterprise & Contact Center solutions, as well as the process of expansion and diversification of business and one more step to leap to. Orangean International Corp Address: 8F., No. 527, Huajiang 1st Rd., Banqiao Dist., New Taipei City 220, Taiwan (R.O.C.) orangean.com.tw info@orangean.com.tw Orangean International Corp. ,established in 2020, primarily serves as an authorized distributor for international software. We specialize in the sale of professional commercial software and offer services in enterprise IT system planning and implementation, information security management, and computer hardware sales. ComponentSource 650 Claremore Professional Way, Suite 100, Woodstock, GA 30188-5188, USA Tel. +1-770-250-6100 | Fax. +1-770-250-6199 componentsource.com sales@componentsource.com ComponentSource was established in 1995, to ensure Software Developers were supplied with the best software development products the world had to offer. Hitherto, inefficiencies imposed by the established, country-based, software distribution channels meant that only a small number of products made it to market. Consequently, ComponentSource pioneered the open market for reusable software components and tools, through innovative use of electronic software delivery (ESD). Today, ComponentSource offer the world's best collection of labor saving software through eCommerce Web Sites; carrying over 10,000 SKU's from 230+ Publishers. ComponentSource have offices in the USA, UK and Japan supporting over 100,000+ Customers, from 160 Countries. Aquion Suite 25, L3 357 Military Rd Mosman NSW 2088 1300-AQUION (278-466) www.aquion.com.au send mail Aquion - Taking Award Winning Vendors to Customers in Australia, New Zealand, Asia Pacific and IndiaAquion supplies quality software and solutions backed by extensive technical expertise from our vendors as well as inhouse to enterprise, business and government customers in the Region. Vendors benefit from our customer relationships, established channels, and local knowledge. Our partners benefit from our close relationship with vendors, product and licensing expertise and technical support. End user customers benefit from best of breed software, locally supplied and supported. QBS Software Ltd Tel. +44-020-8733-7101 qbssoftware.com sales@qbssoftware.com Established in 1987 to provide tools to the developer community, QBS Software has expanded to become a leading software supplier in Europe providing thousands of products to developers, designers, IT Managers, Network Administrators, DBAs and Corporate Buyers. Products range from IDEs to code tools, components to Installation tools as well as security, reporting, installation, web, database, help creation, system tools and application software. QBS has developed a keen expertise in product marketing and management alongside sophisticated in-house publishing and fulfilment. We have an extensive network of industry connections and commercial relationships with software publishers and vendors throughout the world, many of whom rely on QBS Software to build strong markets for them in the UK and Europe. QBS Software is an active participant in leading industry exhibitions, conferences and roadshows and works closely with various user groups. Prianto Barthstraße 18, 80339 München +49 89 416148 210 prianto.com kontakt@prianto.com Die Prianto GmbH wurde 2009 von William Geens und Oliver Roth gegründet und gehört inzwischen zu den führenden, auf Software spezialisierten Distributoren Deutschlands. Seit 2011 ist Prianto auch in Großbritannien,Österreich und in der Schweiz vertreten, 2012 folgten die BeneLux-Staaten. Wir setzen auf absolute Fachhandelstreue und beliefern ausschließlich Wiederverkäufer im Channel (VARs, Systemhäuser, Integratoren, Fachhändler, Service-Provider, etc.). Unser Ziel ist es, langfristige, vertrauensvolle und erfolgreiche Geschäftsbeziehungen mit Fachhändlern und Systemhäusern einzugehen. Dafür bieten wir margenstarke und innovative Software-Lösungen an und garantieren schnelle und fundierte Leistungen bei der Beschaffung von Softwarelizenzen. Akdatasoft Yazilim ve Bilgisayar Kazımiye Mahallesi Aşık Veysel Sokak Çamlık Sitesi B-Blok No.:10 Daire:14 P.K.59860 ÇORLU, TEKİRDAĞ +90-282-653-13-89 akdata.com info@akdata.com Since the year of 1995, our company has been serving with integrated/modular software programs as a reliable provider for production sector with the help of operational business experienced personnel. It is only possible to provide right and on-time service to customers during changing competition conditions is to monitor / control production and stock, and to establish cost-benefit balance by using computer aided technology and services. Also used technology should be ready for development depending on changing necessities, and be modular based, has integrated parts. The major factors that are keys to be successful company; continuous cooperation with customers, support after selling, and improving our products as all we mentioned above. Thus we would like you as precious companies dealing with production to know that we are ready to create every production management systems, data collection projects, product pursuing and cost analyzing systems, and also ready to serve continuously and free of problems. Chongqing Huidu Technology Tel. 023-66090381 fastreportcn.com sales@evget.com Huidu Technology was established in 2003, focusing on controls (components and middleware) industry and software industry development consulting, which is the largest control reseller and reusable technology consulting service provider. We have a wide range of partners all over the world, adding up to more than 200 partners including top control producers in the world. We are devoted to provide world-leading reusable technology and tools for software developer, medium-sized and big enterprises, universities and etc. aiming at promote the common development of state software industry in China. Codetalk 359, Sapyeong-daero (Banpo-dong, 3rd floor), Seocho-gu, Seoul, 06542 (+82) 02 595 4288 https://www.codetalk.co.kr/ Сodetalk selects high-quality software for software professionals and then supplies and spreads genuine software based on partner agreements with the manufacturer. AVIR s.r.o. Záhumenice 15, 902 01 Pezinok Tel. +421-905-859812 | Fax +421-33-6401895 avir.sk Firma AVIR sa už dlhší čas zaoberá šírením a registráciou shareware (voľne šíriteľných) programov. Výhodou registrácie shareware u nás je možnosť platby v Euro na účet v slovenskej banke, promptné zaslanie papierovej faktúry od firmy AVIR ako slovenského platcu DPH, rýchle jednanie, komunikácia v slovenskom jazyku a mnoho ďalších výhod. Ku každému nami ponúkanému programu nájdete krátky popis alebo recenziu, ako aj link na jeho stiahnutie. Na základe overenia funkčnosti skúšobnej verzie na Vašom počítači sa potom môžete po uplynutí autorom určenej skúšobnej doby rozhodnúť pre registráciu programu (objednanie registrácie je už ale záväzné a po dodávke tovaru nie je možné jeho navrátenie, keďže licenciu firma AVIR platí autorským firmám vopred a súčasne licencie sú menovite vystavené na meno zákazníka, nie je možné ich predať inému zákazníkovi). Registrácia shareware programov sa dá realizovať aj v prípade produktov, ktoré sa nenachádzajú na týchto stránkach - kontaktujte nás s Vašimi požiadavkami. Infomedia Systems Services 18 Boon Lay Way #03-104 TradeHub21 Singapore 609966 +65-6270-0121 infomedia.com.sg sales@infomedia.com.sg Established in 1996, Infomedia Systems Services Pte Ltd is today’s leading system integration company providing One Stop Solutions for a wide range of customers ranging from the Small-Medium Enterprises (SME) to the Multi-National Corporations (MNC), Government Linked Corporations (GLC) and Government Bodies. With the extensive technical knowledge we possessed, we are able to assist customers transform their legacy and time consuming work operations into effective cost-cutting IT solutions. At Infomedia, we strongly believe in customer satisfaction and are always striving to work towards this goal. We are committed to our projects and promised to satisfy our clients by delivering quality works and solutions. It is also with this believed that we are able to offer cutting edge technology to our customers in this internet era. We understand the problems encountered by our customers when they deal with multiple vendors and thus we aim to establish ourselves as the one-stop IT solutions provider for them. We are able to provide consultancy, design, implementation and even the maintenance of the entire IT infrastructure for our customers. By engaging us you can rest assured that your network is in the safe hands and concentrate on your core business. Knowing the problems and frustrations that are faced by our customers when the system is not working in the daily operations, we are always ready to provide fast and efficient services to them when called upon. Your call is important to us and it is one of our company policies to provide prompt services without compromising on the quality of work to be done. We do not have RED TAPES like big corporations on servicing and supporting, our flexibility allow us to attend to our customers’ calls promptly. Getting your system up and running is always our number one priority. With the fast-paced and ever-changing of IT, we strive to maximize the best strategies and techniques to our staff so that they are always fully and readily equipped with the most reliable and cost effective solutions to reach customers across multiple channels. Software Asli Harco Mas Mangga Dua, Lantai Dasar No 89 (Dekat Lift) Jakarta Pusat 10739 Tel. +91-021- 6230 1345 | Fax +91-021-6230 4562 softwareasli.com info@softwareasli.com PT Digital Asia Utama/Software-Asli.com is an Indonesian leading Distributor and Master Dealer of Original Software. List of Top Brands carried includes Microsoft, Adobe, Corel, Autodesk, Symantec, Kaspersky, McAfee, AVG, Bit Defender, Norman, Zone Alarm, Eset, ACDSee, NetOp, Farstone, Oracle, SPSS, Redhat, MYOB, ESRI, Business Objects, Borland, MapInfo, IBM, Magix, UltraEdit, Techsmith, and many more. PT Digital Asia Utama is Private Owned Limited Liability company, located at Mangga Dua Jakarta, Indonesia, where the central of Computer Business located. The company was founded at 2003. After years of efforts, we have developed reputation, trust and confidence among our customers and partners. During the years, we continue to expand and grow. PT Digital Asia Utama have been working with more than 300 Reseller, Retail shops, and Online shops across Indonesia, Which is considered as one of the Biggest, most complete and most active Software Distribution channel in Indonesia. Cheer Chain Enterprise +886 4 2386 3559 cheerchain.com.tw info@cheerchain.com.tw Cheer Chain Enterprise (CCE) is a leading technology company based in Taiwan.We use our vast experience to provide a wide range of software, consulting and training services to organizations looking for solutions to qualitative research ,mixed methods research,eLearning, scientific publishing and statistical analysis challenges. BSC Polska Sp. z o.o. ul. Schroegera 32, 01-822, Warszawa bsc.com.pl BSC Polska, founded in 1996, is a representative of carefully selected software vendors offering solutions for the whole process of software development - application lifecycle management, coding, software testing, quality assurance and application performance monitoring. Our company additionally offers tools for database tuning and maintenance. We also provide training and consulting services supporting all products from our portfolio. LOGON Software Asia LOGON International Limited Unit 19, 1/F, Cheung Wah Centre, 10-12 Shipyard Lane, Quarry Bay, Hong Kong Tel. +852 2512 8491 logon-int.com logonhk@logon-int.com LOGON International Limited has created this privacy statement in order to demonstrate our firm commitment to privacy. The following discloses our information gathering and dissemination practices for this website: LOGON Software Services. LOGON's WEB Site is an extension of its customer service and technical support organizations. Through this WEB site, we strive to provide information on our products and services to valuable customers like yourself. Through this WEB site you are able to request evaluation software, software catalogs, subscription to TechNews, a weekly technical newsletter and enjoy prompt technical support assistance. In order for us to offer you these services, we require that you offer us contact information like your name, telephone, email address. In order that we understand your technical environment and your requirements, we also require that you mention information like development tools used, operating systems being managed, nature of applications being built or managed and your functional role in IT. With this information, we deliver customised information on products, technical tips, suggestions, etc.. GEN Technologies 55 Khojaly Ave., AGA Center, 1025 Baku, Azerbaijan gentech.az sales@gentech.az +994 (12) 311 3066; +994 (50) 250 9196 GEN Technologies is a software distributor and value-added reseller providing software licensing and technology solutions to corporate, government, education, and enterprise customers. The company works with leading international software vendors and supports customers throughout the full licensing lifecycle, from product selection and procurement to renewals and ongoing support. GEN Technologies operates across Azerbaijan, the South Caucasus, Central Asia, and CIS markets. info@fast-report.com Sales sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Office Alexandria, VA 22314 66 Canal Plaza, Ste 505 Products Buy Demo Documentation How to uninstall Licenses Products Buy Demo Documentation How to uninstall Licenses Support Support SLA Online support FAQ Tutorial Video Forum Articles News Support Support SLA Online support FAQ Tutorial Video Forum Articles News Company About Identity Resellers Contacts us Company About Identity Resellers Contacts us Privacy policy Cookies policy © 1998-2026 Fast Reports Inc. Trustpilot Link copied successfully ### Payment completed successfully URL: https://www.fast-report.com/successful-payment Summary: Thank you for your order. After payment checking by our payment processing service you will get a license in your personal panel. Thank you for your order. After payment checking by our payment processing service you will get a license in your personal panel. Thank you for your order. After payment checking by our payment processing service you will get a license in your personal panel . Also we will send you a notification by e-mail. In case of any problems with obtaining a license, feel free to contact us by e-mail , phone or through the support service ! We will be glad to see you as our new happy customer! ### PDF document in a report – using of new TfrxPDFView object URL: https://www.fast-report.com/blogs/pdf-document-in-report-vcl Summary: With the release of FastReport VCL 2021.3, a new TfrxPDFView object has been added, which allows you to display PDF documents inside a report. With the release of FastReport VCL 2021.3, a new TfrxPDFView object has been added, which allows you to display PDF documents inside a report. With the release of FastReport VCL 2021.3, a new TfrxPDFView object has been added, which allows you to display PDF documents inside a report. First of all, FastReport VCL is a report generator. Based on this conclusion, we can assume that previewing or embedding documents of other formats into a report is excessive. But according to requests from our customers, we can see the opposite point of view. Many of our customers are solving tasks with the integration of new and old systems. Such an old system may contain already prepared documents that need to connect to the news reports. In other words – embed and view documents of third-party formats into a report adding new pages or fields to it. For such tasks in FastReport VCL 2021.3, we have added the new report object - TfrxPDFView. This object uses the Open-source library Pdfium  and is designed to view PDF documents in a report. You can build this library from the source code or use one ready-to-use from FastReport VCL installation package (frx_pdfium.dll and frx_pdfium_64.dll in Bin folder). After the manual build, you need to rename the library to frx_pdfium.dll for 32-bit system and to frx_pdfium_64.dll for 64-bit system. For the manual build, you need Visual Studio and Google depot_tools. More information can be found here  and  here . As was written above you don’t need to build Pdfium, you can use prepared libraries from the FastReport VCL installation package, but if your company has a security limitation and requires building all code on your side use links from above. The TfrxPDFView can draw documents both on one and several report pages. Using the ability of the report engine to split objects. Let’s check more closely how to use this object and what ability it provides. After clear installation latest FastReport VCL 2021.3 version this component should appear on Delphi’s components palate in FastReport VCL section. Just place the TfrxPDFObject on the application form, to use the TfrxPDFView at Run-time. If you started with a new project also add the TfrxReport component to a Form and with a double click on it call the report designer. Then click on the PDF Object in the report designer objects panel and create a new object on the band in the report. Just like any other FastReport VCL object. The object was created. After that, the object editor should appear which allows loading a PDF document. TfrxPDFView allows printing multi-page documents. Special for this TfrxPDFView has new properties. DetailStretchMode property is responsible for displaying the content inside the container of the object and can be one of the following values: pdOneToOneStrongStretch – a page is always stretched using report object size. It does not keep the aspect ratio. pdOneToOneNormalize – a page is always stretched and keeps the aspect ratio of the original page in a PDF document. pdManyToOneNormalize – allows to fit several pages into the report object area and keeps the aspect ratio of the original page in a PDF document. Printing of multi-page PDF document FastReport VCL allows printing PDF documents as one page of a PDF document onto one page of the report for each page of a PDF document. We already created and load a PDF document on the Report Title band in the report. Let’s stretch it to the whole page of the report template page. It should look like the picture below. If we click on the report preview now, we will see only one page of the load PDF document even when a document has more than one page. To print all the pages, we need to perform a series of steps. Step 1. Turn on AllowSplit and Stretched properties and set them to True in the band object which has TfrxPDFView as a child. We need this band for stretches and splits. Step 2. Set StretchMode property to smActualHeight or smMaxHeight on the TfrxPDFView object. This object can stretch now. Let’s run the report preview and check the report output. FastReport VCL prints all pages of PDF document each on the report page. The TfrxPDFView object has and other properties. The “Password” property sets a PDF document password. “DrawOptions” flags allow controlling document output. In addition, you can use a file name as a source for the TfrxPDFView object by using the FileLink property. And that’s not all! With the new DataLink property, it’s possible to load documents even through HTTP and HTTPS protocols. Now FastReport VCL can print PDF documents inside a report and not only generate them! Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, PDF, PDF, Report, Report, Delphi, Delphi ### PDF viewing settings when exporting from FastReport .NET URL: https://www.fast-report.com/blogs/configure-viewer-pdf-exporting-net Summary: Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. This can be Acrobat Reader or browser's built-in viewer (Edge, Chrome) or any other viewer. You'll find that some of the options are very useful. Here is the tab "View" window in PDF export settings: Consider all the options in order: Show print dialog - when you start pdf file will immediately show the print dialog; Hide toolbar - disables the toolbar menu at the viewer; With the menu: Without the toolbar menu: Hide menubar - includes a main menu in the viewer; With the main menu: Without the main menu: Hide window user interface - this option enables / disables the sidebar that displays document pages in miniature. Interface hidden: Fit window - it allows you to adjust the size of the document window so that the page of the document was placed in width. If the window is smaller than the width of the document page, it will be increased; Center window - this option allows you to center the Viewer window on the screen; Print scaling - allows you to compress the large pages. For example, the image on the entire page had fields (some printers may not print entirely on the entire sheet, they require field). If you select this option, in the print window of the PDF document you will see the selected item Shrink oversized pages.  Scale - the opportunity to ask the original display scale of the document. You can change it later, when viewing the document. For example, choose the size of the "Fit Page". The scale will be chosen so that the entire page is fully displayed on the screen: Outline - allows you to display report the plan as a PDF file. Here is a sample report with a built-up: And here is the document PDF, if for such a report to include the option Outline: On the left is displayed bookmarks toolbar, which contains the report plan. We have considered all the options for configuring the display of the document in the viewer. Which of them will be useful to you to judge. But it is obvious that you shouldn't ignore these settings if you want to create a document that is easy to read the end-user. Tags: .NET, Export, FastReport, Viewer, PDF ### PDF/X, PDF/A, PDF/E: What is the difference, and why are there so many formats? URL: https://www.fast-report.com/blogs/comparison-pdf-formats Summary: Let's try to understand the variety of PDF formats, compare the pros and cons of standards for various industries and their needs. Let's try to understand the variety of PDF formats, compare the pros and cons of standards for various industries and their needs. Let's try to understand the variety of PDF formats, compare the pros and cons of standards for various industries and their needs. PDF is an all-purpose file format that allows users to present and share documents regardless of software, hardware, or operating system. Over the years, several PDF subtypes have been created to meet the different needs of various industries. Let's look at some of the most popular formats: PDF/X, PDF/A, and PDF/E. 1. PDF/X PDF/X is a professional standard for graphics interchange optimized for consistent and predictable printing. Unlike regular PDFs, which can include any content, like interactive elements and media files, PDF/X is limited to certain data types, making it especially suitable for sharing print-ready files. Main characteristics of PDF/X: Color model. All colors in a document must be defined in pre-known color spaces, typically CMYK or spot colors. It eliminates the uncertainties associated with color interpretation in printing. Built-in resources. All necessary resources, such as fonts and images, must be embedded in the file. It ensures that the document will look the same on any hardware. No interactive elements. There are no interactive elements such as comments, form fields, videos, and JavaScript. The specified output format. The document must contain information about how it will appear when printed, which implies certain requirements for the placement and layout of pages. PDF/X subtypes: PDF/X-1a: Based on the PDF 1.3 standard. Colors are defined as CMYK or spot colors only. Does not support ICC profiles. PDF/X-3: Supports CMYK, spot colors, and ICC profiles. Allows you to use different color spaces in one document. PDF/X-4: Supports layers, transparency, and other new features available in PDF 1.6 and higher. Supports multiple color spaces. 2. PDF/A PDF/A is a subset of the PDF format designed to meet the needs for long-term storage of electronic documents. Unlike PDF standard, PDF/A prohibits components that can cause problems with a document's appearance over long periods of time, making it ideal for archiving. Main characteristics of PDF/A : Built-in resources . All resources for the correct display of the document (for example, fonts, and images) must be embedded in the file. Lack of interactivity . Interactive elements such as JavaScript, audio, video, and executable files are prohibited. Color stability . The document must use a stable color model to ensure long-term display consistency. Prohibition of external dependencies . You may not refer to external resources that may change or disappear over time. PDF/A subtypes : PDF/A-1: Based on the PDF 1.4 standard. It is divided into two parts: PDF/A-1a for full compliance, including structure tags for accessibility, and PDF/A-1b for basic visual compliance. PDF/A-2: Based on the PDF 1.7 standard. Includes improved support for embedded annotations, layers, transparency, and compression. It is also divided into compliance levels: PDF/A-2a, PDF/A-2b, PDF/A-2u. PDF/A-3: Extends PDF/A-2 allowing to build in embedded files of any format (including, for example, XML, CSV, or CAD files). It is also divided into compliance levels: PDF/A-3a, PDF/A-3b, PDF/A-3u. 3. PDF/E PDF/E is a subset of the PDF format designed specifically for engineering, architecture, and construction professionals. This standard addresses the need for sharing, viewing, and printing dynamic technical documents, including diagrams, drawings, and 3D graphics. Main characteristics of PDF/E : Support for complex graphics . Including layers, transparency, 3D models, and interactive elements. Metadata . Enhanced metadata for improved search and management of document content. Precise geometry . For accurate reproduction of geometric objects such as lines, curves, and surfaces. Embedded files . Ability to include related or source files such as specifications or CAD data. Why so many formats? Various industries have different needs. The creation of specialized PDF subsets allows us to meet these needs without creating an entirely new standard. These profiles ensure standardization, predictability, and reliability for specific applications. Are these formats available in FastReport .NET? FastReport .NET has most export formats, only PDF/E is missing. These formats can be used both in the designer and the application code. To select the desired format in the designer, click "Save" and "PDF format." Then go to the "Settings" tab and select the needed format. At the end, we will receive the required file in the desired format. To export to a specific format, we need to create an application, connect the FastReport package, and write the required code. Below is an example of how to save a PDF as PDF/A. ``` Report report = new Report(); report.Load("PathToYourReport.frx"); // Setting up PDF export PDFExport pdfExport = new PDFExport(); // For export to PDF/A format pdfExport.PdfCompliance=PDFExport.PdfStandard.PdfA_2a; // You can select the desired compliance level report.Prepare(); report.Export(pdfExport, "OutputPath.pdf"); ``` Conclusion Although there are many PDF subtypes, each was developed with a specific purpose and to meet the needs of a specific industry. The choice is entirely yours, which format and for what purposes you need it. Tags: .NET, Export, FastReport, PDF ### Peculiarities of built-in Chrome PDF viewer URL: https://www.fast-report.com/blogs/chrome-pdf-viewer Summary: Let's take a closer look at how the Features of the built-in Chrome PDF viewer in FastReport works. Find more usefull tips and articles in our blog. Let's take a closer look at how the Features of the built-in Chrome PDF viewer in FastReport works. Find more usefull tips and articles in our blog. Let's take a closer look at how the Features of the built-in Chrome PDF viewer in FastReport works. Find more usefull tips and articles in our blog. The PDF format is so prevalent in the document flow, that is quite rightly called it the most popular in this area. Such a document is self-sufficient, it can include graphical information, special fonts, and more. There are many free software for viewing PDF files. Modern browsers also allow you to do this. For example, Google Chrome has its own built-in viewer for PDF documents. However, the Chrome PDF Viewer functionality is rather limited, compared with the Acrobat Reader. There is one more feature, which few people know. Chrome does not fully supports the PDF standard. This manifests itself when you print a document that contains the dotted line. These lines are displayed correctly when viewed in Chrome PDF Viewer, but when you print the document, they will not. Programmers from FastReport preoccupied by this problem. And in FastReport .NET (starting with version 2016.2.13) exported to PDF report can correctly display dotted lines when printing from Chrome PDF Viewer. To this end it was decided to depart from the PDF standard and draw dotted and dash-dotted lines by using segments of conventional lines. If you are using other means of generating PDF documents, remember the problem with the dashed lines when printing from Chrome PDF Viewer! Let's consider the situation when the error of printing the dotted line in Chrome PDF Viewer can cause serious consequences. For example, was formed a document for cutting sheet material in which the dashed lines are used. The file has been sent by mail. The manager received the letter and opened it in Chrome. The browser was use default built-in PDF viewer. Unsuspecting manager sends the document to print after previewing (where everything is displayed correctly). The document is printed incorrectly, but sure it is correct, the manager transmits it to the cutting. As a result, the master performs the job incorrectly. So, relying on the browser's built-in PDF viewer, you can get the major problems in the workplace. It is therefore important to use the professional tools. Tags: .NET, FastReport, PDF ### Performance evaluation of the new version of FastReport .Net 2017.1.0 URL: https://www.fast-report.com/blogs/performance-evaluation-net With the release of the new version FastReport.Net 2017.1.0 we got a significant acceleration of report building, exporting, and reduced memory consumption. These changes have prompted me to make a comparison test of the "old" and the "new" versions. Testing technique For testing we will build a report and make its export to multiple formats: PDF, XLSX, HTML export with layer method (because it is used in web reports).   At the same time, exports time will be measured  as well as the size of the file. First let’s test the version 2016.4.0, then - the new 2017.1.0. Let’s take the most popular template Master-Detail Report. XML data base. I've done simple enough application: Here a  Multi page is a usual multipage report, and Unlimited page  is a report with enabled property UnlimitedHeight. This wat we use two almost identical report, but one of them will have a unlimited page. Here I must point out that the size of this report is limited to 100 MB. Exceeding this limit will still create new pages. To make the unlimited report, open it in the designer. In the Property inspector, select the page of the report and set UnlimitedHeight property = true, or UnlimitedWidth = true if your report grows in width. For the measurements we use the built-in FastReport profiler: Profiler.Start(); - to start; Profiler.Stop(); - to stop and show result. I'm starting each export in turns and recording the results of profiling. By the way, profiler displays the results in a MessageBox: Measurement results For a typical multipage report time of building mostly got reduced. However, not for all reports: when exporting to PDF format time of building increased slightly. Apparently not all optimization has been completed. For the same multipage report memory consumption is reduced considerably. And what about the "unlimited" report? Here’s the same thing. Time of construction reduced for each dimension. As well as memory consumption – it has strongly reduced. For each dimension, except PDF. But the difference is minimal. For those who prefer in tabular form: Measurements version 2016.4.0 Multi page Unlimited page Размер, Kb Время, ms Размер, Kb Время, ms Prepare 1336 875 4040 875 PDF 87396 7031 81986 7220 XLSX 23092 1547 18784 1734 HTML 7354 2897 50576 1954 Measurements version 2017.1.0 Multi page Unlimited page Размер, Kb Время, ms Размер, Kb Время, ms Prepare 1020 735 1088 703 PDF 85482 7167 82654 7149 XLSX 16512 1359 16228 1640 HTML 2445 2725 9180 1890 As you can see, the overall picture is significantly improved in the new version. See how memory consumption decreased for the HTML report with dimensionless page. Unlike 2016.4.0 memory consumption has decreased from 50576 to 9180Kb. Value has improved by more than 5 times! But this is the most used reports, for the web. Excellent job! What has changed inside? In versions below 2016.4.4 used ExportPage method. It received the entire page to move then through all the objects and save them in the desired format. Then the page was removed from memory and next one was taken. If the totals were tabular formats, all of it accumulated in the intermediate matrix. If your report was not very big, you do not notice the problems. However, with the advent of "unlimited page" (UnlimitedHeight and UnlimitedWidth), there were problems - memory consumption. It was decided to move to Band's data transfer to export. This has greatly reduced memory consumption. FastReport team thoroughly worked and reworked the core of generator. However, the issue with the matrices is still not resolved because they occupy only one band, but grow in size. But it's just a matter of time. In tests, we found that memory consumption for the unlimited pages noticeably reduced. But the time of construction in some cases slightly increased. However, not much. So, as we have seen, much work has been done and performance improved significantly. This is especially noticeable for HTML export, which is extremely valuable for Web-based reporting. Tags: .NET, .NET, FastReport, FastReport ### Persian Calendar in the Report URL: https://www.fast-report.com/blogs/persian-calendar-document Summary: Coverting the date format for the persian users. Coverting the date format for the persian users. Coverting the date format for the persian users. Did you know that different countries have different date formats? When you make a multilingual report, or a report for a country where they speak Persian (Farsi), it is important to bring up dates in the correct format. By default, FastReport uses the European date format, but the .NET tools allow converting it into different formats. Thus, our task is to convert the date into the Persian format. For example, our report has an expression [Date], bringing up today’s date: The expression [Date] gets the current system date in the DateTime format, but the value of the text report after all processing is the String. Let us create a new function in the report script: ``` private void ConvertToPersianDate(object sender, EventArgs e) ``` We will evoke this function from text objects. We create a temporary variable, which will convert the text of the object into DateTime: ``` DateTime d = DateTime.Parse((sender as TextObject).Text); ``` “sender as TextObject” is the address to the object which evoked the function. We may use the functions and properties of an object if we address it in such a way. After that, we will need the PersianCalendar object, which will convert the date into the Persian format: ``` PersianCalendar pc = new PersianCalendar(); ``` Note that this object is stored in the System.Globalization library, and it must be indicated in the “using” section. Then we must change the text of the object. Consider this line in more detail: ``` (sender as TextObject).Text = string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d)); ``` Here we set the text of our object. The value will be in the format year/month/day, because we use the functions of the PersianCalendar which get the respective values. The code section where the text is set can be edited as you wish. For example, the code for the date in the day.month.year format looks like this: ``` "{0}.{1}.{2}", pc.GetDayOfMonth(d), pc.GetMonth(d), pc.GetYear(d) ``` As a result, we get the following function: ``` using System.Globalization; namespace FastReport { public class ReportScript { private void ConvertToPersianDate(object sender, EventArgs e) { // Converting to DateTime format DateTime d = DateTime.Parse((sender as TextObject).Text);   // Creating an object for conversion PersianCalendar pc = new PersianCalendar();   // Creating a string using PersianCalendar // It is possible to change the string template (sender as TextObject).Text = string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d)); } } } ``` Add the function to the AfterData event of the relevant object. Now the date looks like this: To use other functions related to time, you can consult the following table:  GetDayOfWeek(),  Day of week  GetMonth(),  Month  GetDayOfMonth(),  Day of month  GetYear(),  Year  GetHour()  Hour  GetMinute()  Minute  GetSecond()  Second Now you know how to change the format of date in your report. This article may help in changing the format to (year, month, day). This format is used in Japan, China, North Korea, South Korea, Taiwan, Hungary, Lithuania, and Iran; also, it is used as a collateral one in some European and Asian countries. Tags: .NET, .NET, FastReport, FastReport ### Pharmacode in FastReport .NET URL: https://www.fast-report.com/blogs/barcode-pharmacode-net Summary: Let's take a closer look at what Pharmacode QR-code in FastReport .NET is. Find more usefull tips and articles in our blog. Let's take a closer look at what Pharmacode QR-code in FastReport .NET is. Find more usefull tips and articles in our blog. Let's take a closer look at what Pharmacode QR-code in FastReport .NET is. Find more usefull tips and articles in our blog. In this article we are going to introduce and explore a new type of barcode in FastReport .NET - Pharmacode. One can guess from the name of the barcode, that it is related to pharmaceutical industry. Pharmacode is a binary code, which was developed by a German company LAETUS GMBH specially for pharmaceutical packaging. This code is widely used as a pharmaceutical product packaging control system. As a part of an automated packaging system, Pharmacode allows you to scan and detect pharmaceutical shipments easily by using universal identifiers. It is also easy to determine, whether the batch is mixed with other drugs by using scanners. Pharmacode is used in pharmaceutical industry as a part of their package management system and it is specifically designed to guaranty reading, despite possible misprints and typos. Also, to ensure that the rest of the package, apart from its code, is correctly printed, Pharmacode can be printed in multiple colors, as opposed to barcodes intended for reading by a laser or a laser emulation. This is possible because Pharmacode is scanned by special white color scanners LAETUS. This makes Pharmacode a very practical format for printing on packagings or documents that do not contain black ink. As it was mentioned earlier, Pharmacode can be printed in different colors. Both the code itself and the background color may be different from the white and black colors. There is a special specification code color combination and background used depending on the type of a scanner for reading. For example, standard black-and-white scanners perceive only a code and a contrasting background, whereas special scanners that recognize the color do not have strict limitations. Unlike other 1D barcodes, Pharmacode stores data in binary rather than decimal. In addition, Pharmacode can only represent single integers from 3 to 131070. The smallest number of lines is equal to 2 for the number 3 and the maximum value is 16 for 131070. Pharmacode should be read from right to left, which makes Pharmacode unique among other linear barcodes. They usually have a start and a stop character. If you read the code from left to right, you'll get an entirely different sequence of numbers. The Pharmacode creator LAETUS describes barcode standard in the document PharmaCode Guide. Here is an example of Pharmacode: FastReport.Net allows you to create such codes in your reports. You can design a package immediately with a barcode. To add a code to your report use a side toolbar, namely the component Barcode: Place the barcode object on the report page. For editing you need to double - click on the added component: In the function of the code values you can enter a numerical sequence, specify a function, select a report variable or a value from the database. In barcode propertiesy ou can change: the interval between lines (WideBarRatio), the code height (Height), displaying of numbers (ShowText). What is more important - you can set the code color and background color. To set the background color, use the feature "Fill -> Color". To change the code color - "Barcode -> Color": In such a way it is possible to set any combination of colors and background color code. However, one should still adhere the standard of colors combination for Pharmacode: Thus, the number of available FastReport .NET barcode formats has increased to 25. That covers all modern types of barcodes and extends the use of the reporting tool in pharmaceutical industry. Tags: .NET, FastReport, Barcode ### Please participate in our survey URL: https://www.fast-report.com/news/survey-training-fastreport-vcl Summary: Please participate in our survey Please participate in our survey Загрузка... ### Plugin for importing data from .XLSX to FastReport .NET URL: https://www.fast-report.com/blogs/plugin-import-excel-dotnet Summary: Expanding the number of data sources for FastReport .NET 2022.2 using a plugin to connect files in the format .XLSX. Expanding the number of data sources for FastReport .NET 2022.2 using a plugin to connect files in the format .XLSX. Expanding the number of data sources for FastReport .NET 2022.2 using a plugin to connect files in the format .XLSX. With the release of FastReport .NET 2022.2, we added a plug-in to connect .XLSX files as a data source. To use it, you must first build the project: С:\Program Files (x86)\FastReports\FastReport.Net\Extras\Core\FastReport.Data\FastReport.Data.Excel After building the project, you will need to add the plugin to the application in one of two ways. 1. Connecting the plugin through the designer: 2. Add the plugin as a dependency when starting the project and register it in the code with the following command: FastReport.Utils.RegisteredObjects.AddConnection(typeof(ExcelDataConnection)); To create a connection to Excel, you need to click on the "Data" tab in the designer, and select the "Add Data Source" item. In the window that appears, click on the "New Connection" button. To connect, you need the path to the .XLSX file. If there are no problems with accessing the file, then a list of tables will appear after clicking the "Next" button. When connecting a table, you must check the box to the left of the table name. After that, you can complete the connection. Upon completion of the data source connection, you need to connect a band to it. The final report will use the data from the created connection to Excel. An example of connecting to Excel from code: ``` // Create ExcelDataConnection instance var connection = new ExcelDataConnection(); // Set connection string connection.ConnectionString = @"C:\Matrix With Rows Only.xlsx"; // Initialize all table connection.CreateAllTables(); // Set name connection connection.Name = "NewConnection"; // Create Report instance var report = new Report(); // Add connection to report report.Dictionary.Connections.Add(connection); // Set connection show connection.Enabled = true; // Choose all tables and connect it to the report foreach (TableDataSource table in connection.Tables) { table.Enabled = true; } ``` Because of executing this code, we can see a new connection with tables in the designer. This will be shown in the list of available connections. It is worth noting that the names of the "sheets" are used as the table name, and the names of the columns are used as the field names. As you can see, it is now possible to create a connection to Excel and use the data stored there. Tags: .NET, .NET, FastReport, FastReport, Excel, Excel, Designer, Designer, Plugin, Plugin, XLSX, XLSX ### Pre-registration of data sources before create a new report URL: https://www.fast-report.com/blogs/pre-registration-data-sources In order to send a data source to a report it must previously be pre-registered in the report. Then, within the report select an available source from the list and only after that - start to work. It would be great if the data source could be available to a paste when you open the report designer. Better yet, if it was already selected in the report designer. In this case, you could immediately begin to develop a report, not worrying about the data. Such an approach would avoid the routine work during the extensive report development. Make registration of a data source and its automatic choice in a report at the launch of the designer - not a difficult task. The main problem is to keep the registered data source when creating a new report using the File menu. The essence of the method that I want to introduce - to intercept the process of creating a new report by using the File menu. Let's consider the following example. Create an application with a form and a single button. The required for work libraries are: ``` using FastReport; using FastReport.Utils; using FastReport.Data; using FastReport.Design; using FastReport.Wizards; ``` Declare the data source and then  create it: ``` private DataSet FDataSet; private void CreateDataSource() { FDataSet = new DataSet(); FDataSet.ReadXml(Environment.CurrentDirectory + "//nwind.xml"); } ``` In this case, I use XML database from the FastReport .Net package. Create a method of data source registration : ``` private void RegisterData(Report FReport) { FReport.RegisterData(FDataSet, "NorthWind");   // activate all data sources by default foreach (DataSourceBase source in FReport.Dictionary.DataSources) { source.Enabled = true; } } ``` Here, the loop iterates through all the data sources that are registered in the report and activates them. Thus they will be immediately available in the data window. Call an event handler of starting Report Designer: ``` private void DesignerSettings_DesignerLoaded(object sender, EventArgs e) { (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction); } ``` Add a custom handler for the event of creation the new report from the File menu. Now we need to write the custom handler. It will create a new, blank report with already added data source: ``` void cmdNew_CustomAction(object sender, EventArgs e) { Designer designer = sender as Designer;   //StandardReportWizard wizard = new StandardReportWizard(); // you can use any wizard form package BlankReportWizard wizard = new BlankReportWizard(); wizard.Run(designer);   RegisterData(designer.Report); // refresh data tree view designer.SetModified(this, "EditData"); } ``` Here we create an instance of a blank report or run the "standard report wizard." It's your choice. Then open a new report in the designer. Re-register a data source and update the list in the data tree. It remains to write the handler pressing:  ``` private void button1_Click(object sender, EventArgs e) { Report FReport = new Report(); Config.DesignerSettings.DesignerLoaded += DesignerSettings_DesignerLoaded; CreateDataSource();   // FReport.Load("myreport.frx"); // load report RegisterData(FReport); // register data before design FReport.Design(); } ``` Create a copy of the report object. Assign a handler of loading report designer, which we have written, instead of the standard one. Create a data source. Now you can download the report, or not do it. Then it will be created empty report. Before calling the designer is required to register the data. Now, with the launch of the designer, the database tables will be displayed immediately in the "Data" window. Also when creating a new report from the File menu, the data source will be added. In this article I showed you how to intercept the process of creating a new report, if to create it via the File menu. The same principle can override other actions of the designer, such as Save. Tags: .NET, .NET, FastReport, FastReport ### Press about us URL: https://www.fast-report.com/press_about_us Summary: Press about us Fast Reports. Press about us Fast Reports. Press about us Fast Reports Press about us Fast Reports. Press about us Fast Reports. Press about us Fast Reports Report server for small business — Reporting For Info The manager of reports — Reporting For Info Convert file .FP3 to .PDF - Indonesia ### Press about us URL: https://www.fast-report.com/publications Press about us June 12, 2022 #best-reporting-tool Best Reporting Tool for ASP.NET (MVC, Core or Web-Forms) In previous article, I have mentioned best free asp.net hosting provider and asp.net apm tools, now in this article, I will be listing best reporting tool which you can use with asp.net mvc, asp.net core or asp.net web-forms, with a brief discusion about the tools. К источнику April 06, 2022 #opensourse FastReport OpenSource Generate Pdf Without PdfSimple FastReport provides open source report generator for .NET6/.NET Core/.NET Framework 4.x. You can use the FastReport in MVC, Web API applications. FastReport Open Source is based on the FastReport.Net project. You can find more information at https://github.com/FastReports/FastReport.Documentation К источнику February 25, 2022 #OLAP Overview of the OLAP data cube technology in the FastCube VCL product FastCube VCL is a high-speed OLAP engine that will help you quickly process large amounts of data from your business process. Nowadays, one of the main problems of business processes is data processing. It takes a lot of effort and precious time of the company. К источнику December 24, 2021 #component-sourse FastReport .NET Professional Reporting for .NET 5, .NET Core, Blazor, ASP .NET and WinForms. К источнику November 26, 2021 #QR-code QR codes were discovered back in the Middle Ages! Today, it’s hard to find an individual who doesn’t know what a “QR code” is and what it looks like. It is not known whether the introduction and their subsequent use is a consequence of the pandemic (it is better to talk about them in a separate article), but absolutely everyone has become familiar with black and white squares. К источнику November 19, 2021 #NET .NET 6.0 update A closer look at what’s under the hood of .NET 6 in addition to our previous post on the topic. К источнику November 12, 2021 #Cloud A closer look at FastReport Cloud — cloud reporting FastReport Cloud is a set of tools for building documents. The service allows making reports and documents based on preconceived templates kept in a cloud. К источнику November 10, 2021 #Microsoft Brand new Microsoft .NET 6 and Visual Studio 2022 Microsoft announced the new technology on November 8. What’s new in .NET 6 for developers? К источнику info@fast-report.com Sales sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Office Alexandria, VA 22314 66 Canal Plaza, Ste 505 Products Buy Demo Documentation How to uninstall Licenses Products Buy Demo Documentation How to uninstall Licenses Support Support SLA Online support FAQ Tutorial Video Forum Articles News Support Support SLA Online support FAQ Tutorial Video Forum Articles News Company About Identity Resellers Contacts us Company About Identity Resellers Contacts us Privacy policy Cookies policy © 1998-2026 Fast Reports Inc. Trustpilot Link copied successfully ### Price of FastReport 4 URL: https://www.fast-report.com/news/price-fastreport-4 Summary: Price of FastReport 4 Price of FastReport 4 FastReport 4 editions  Basic   $79 Standard   $179 Professional  $249 Enterprise   $349 Upgrade from FR3 (purchase date after May 1st, 2006 is a FREE upgrade  to the same FR4 edition) Upgrade Basic   $39 Upgrade Standard   $99 Upgrade Professional   $139 Upgrade Enterprise   $199 Basic to Standard   $99 Basic to Professional   $169 Basic to Enterprise   $269 Standard to Professional   $69 Standard to Enterprise   $169 Professional to Enterprise   $99 ### Privacy Policy Statement URL: https://www.fast-report.com/cloud-privacy PLEASE READ THIS DOCUMENT CAREFULLY. IT CONTAINS IMPORTANT INFORMATION THAT YOU SHOULD KNOW BEFORE USING THE WEBSITE OR SERVICES. BY USING THE WEBSITE OR SERVICES, YOU WILL BE DEEMED TO HAVE ACCEPTED FAST REPORTS’ PRIVACY POLICY. Your use of the Website and Services (as each of these terms are defined in this Privacy Policy), including any dispute concerning privacy, is subject to this Privacy Policy. By using the Website or Services, you accept the practices set forth in this Privacy Policy and the Terms of Service. Fast Reports Inc. reserves the right to modify this Privacy Policy at any time by posting such changes on this page. Please check the revision date below to determine if this Privacy Policy has been modified since you last reviewed it. Your continued use of any portion of the Website or Services following posting of the updated Privacy Policy will constitute your acceptance of the changes. This privacy statement was last updated on March 12, 2021. Fast Reports Inc. and its affiliates (collectively, “Fast Reports”) have created this privacy statement in order to disclose its information gathering and dissemination practices for its website located at  https://fastreport.cloud/  (“Website”) and the services offered and provided through the Website (“Services”). Table of Contents Background Information Word from Fast Reports A. Information We Collect Information We Collect Through the Website User Content Providing Information to Fast Reports User Account Third Party Websites Third Party Applications Information Relating to Children California Online Privacy Protection Act Notice Cookies and Web Beacons B. Use and Disclosure of Information How your Information is Used Disclosure of Information to Third Parties Change in Control Disclosure of Information to Other Users Securing the Transmission and Storage and Storage of Information C. Choices Available to You D. Rights of European Users under the GDPR Data Controller Data Processor Consent Legal Basis for Processing GDPR Rights: Right of Confirmation Right of Access Right to Rectification Right to Erasure Right of Restriction of Processing Right of Data Portability Right to Objection to Automated Decision Making Right to Objection Processing Retention Policy Cross Border Data Transfers Data Protection Officer E. Privacy-Related Inquiries and Complaints Background Information Upon reading this Privacy Policy, you will be informed of the following: description of the types of personally identifiable information (yours and that of third parties) collected through the Website and Services; how the collected personally identifiable information is used; with whom the collected personally identifiable information may be shared; the choices available to you regarding the collection, use, and distribution of such information; security procedures that are in place to protect against the loss, misuse, or alteration of personally identifiable information under Fast Reports’ control; and instructions how you can access and correct inaccuracies in the information collected about you. A note about the Website and Services: some of our Services, data centers, service providers, affiliates or operating partners and servers may be located in other countries. As such, the Website and Services may be subject to the laws of numerous countries and jurisdictions, some of which may require us to disclose certain information about our users. We are committed to keeping your information private, while still complying with all applicable laws in jurisdiction in which we operate. Should you have any concerns or believe that there are problems or issues relating to compliance with the policies outlined in this Privacy Policy, please notify us by e-mail at:  info@fast-report.com A Word from Fast Reports Fast Reports has a strong commitment to providing superior service to all of our customers and visitors and particularly respecting their concerns about privacy. We understand that you may have questions about how the Website and Services collect and use your information. Accordingly, we prepared this statement to inform you of the privacy principles that govern the Website and Services (the “Privacy Policy”). We will not sell or rent your personally identifiable information or a list of our customers to third parties. However, as described in more detail below, there are limited circumstances in which some of your information may be shared with third parties, under strict restrictions, so it is important for you to review this Privacy Policy. This Privacy Policy contains numerous general and technical details about the steps we take to respect your privacy. We have organized this Privacy Policy by major processes and areas so that you can quickly link to the information of most interest to you. The bottom line is that meeting your needs and expectations forms the foundation of everything we do, including protecting your privacy. Changes in Privacy Policy We want you to always be aware of what personal and other information we collect, how we use that information, and under what circumstances we may disclose it. All personal information that we collect will be handled according to the Privacy Policy in effect at the time the information is collected. If the Privacy Policy changes in any significant respect in the meantime, we will not (without your permission) use your personal data in a manner that is inconsistent with the Privacy Policy in effect at the time your information was collected. From time to time, we may find the need to make changes to this Privacy Policy. This Privacy Policy may be amended by Fast Reports upon notice given through the Website or via e-mail. Please check the Privacy Policy published on this Website regularly to ensure that you are aware of all terms governing your use of this Website. A. INFORMATION WE COLLECT Information We Collect Through the Website This Website does not collect personally identifiable information from your computer when you browse the Website and request pages from our servers. This means that, unless you voluntarily and knowingly provide us with personally identifiable information, we will not know your name, your e-mail address, or any other personally identifiable information. When you request a page from our Website, our servers log the information provided in the HTTP request header, JavaScript or similar technical tools, including the IP number, the time of the request, the URL of your request and other information. We collect this information in order to make our Website function correctly and provide you the functionality that you see on the Website, as our servers use this information to deliver to you the pages on this Website. We also use this information to better understand how visitors use our Website and how we can better tune our Website, its contents, and functionality to meet your needs. However, this information is not associated with any personally identifiable information of persons browsing the Website. When you use the Website, Fast Reports or trusted third parties authorized by Fast Reports may also collect certain technical and routing information about your computer (also known as environmental variables) to facilitate your use of the Website and the Services enabled thereby. When you browse the Internet, your Internet browser (such as Mozilla Firefox, Google Chrome, Safari, Edge, or Microsoft Internet Explorer) automatically transmits some information to Fast Reports every time you access content on one of our internet domains. Examples of such information include the URL of the particular Web page you visited, the IP (Internet Protocol) address of the computer you are using, or the browser version that you are using to access the Website. All of this information may be collected by Fast Reports and used to help improve our offerings to you. User Content User Account holders may be permitted to upload certain content onto the Website and Services (“User Content”). This information shall be private and, except in accordance with this Privacy Policy, will not be disclosed to third parties without your prior permission. Providing Your Information to Fast Reports You never have to provide personally identifiable information to Fast Reports. However, should you choose to withhold certain required information, Fast Reports may not be able to provide you with some or all of the Services. Some of the information we ask you to provide may be identified as mandatory or optional. If you do not provide the mandatory information with respect to a particular activity, you may not be able to engage in that activity or make such a purchase. Fast Reports will inform you of the mandatory or optional nature of the requested or required information. Fast Reports is the sole owner of the information it gathers on the Website and Services. Fast Reports will only share your information with outside parties in ways that are described in this privacy statement or if we are required to do so by law or in the good-faith belief that such action is necessary in order to conform to the edicts of the law, cooperate with law enforcement agencies, or comply with a legal process served on us and otherwise to comply with any current or future laws and regulations applicable to Fast Reports. You may be provided an opportunity on the Website to allow Fast Reports to contact you from time to time regarding company news and product or Services updates. In order to do so, you may be required to provide certain personally identifiable information to Fast Reports. Fast Reports will treat this information in accordance with the policies set forth in this Privacy Policy. When you submit personal information to Fast Reports through the Website, you understand and agree that this information may be transferred across national boundaries and may be stored and processed in any of the countries in which Fast Reports and its affiliates and subsidiaries maintain offices. You also acknowledge that in certain countries or with respect to certain activities, the collection, transferring, storage, and processing of your information may be undertaken by trusted vendors of Fast Reports. Such vendors are bound by contract not to use your personal information for their own purposes or provide it to any third parties. Fast Reports may establish relationships with various service providers whose services may become available to you from the Website or from other websites that are linked to the Website. Typically, these providers would offer services that Fast Reports customers might find useful, such as those that can be used in conjunction with the Website and Services. In order to use these services, you may be required to provide personal information to the services providers. Unless expressly provided to the contrary, personal information that you provide while you are visiting a provider's website will be subject to the privacy policy posted on such site, and personal information that you provide while on the Website in conjunction with a provider’s service will be subject to this Privacy Policy. For instance, credit card information entered as part of the filling out the purchase form or registration process is collected by the third-parties registration services and subject to their respective privacy policies. You should be aware that our agreements with these service providers often provide that they will share with Fast Reports personal information collected from you. In such instances, Fast Reports may use this information in a manner consistent with this Privacy Policy. User Account When registering for a User Account or otherwise contacting Fast Reports in connection with your interest in purchasing Fast Reports products or services, Fast Reports may ask you to provide certain information. Such information may include your name, e-mail, and other personally identifiable information. It is completely optional for you to register for a User Account or engage in activities requiring a User Account or provide any personal identifiable information. However, certain information and proper identification may be required in order for you to engage in a business relationship with Fast Reports. Once you create a User Account, you will be deemed a Registered User. You may also request to change information associated with you User Account by contacting us at  info@fast-report.com . If you wish to deactivate your User Account, you may contact us at  info@fast-report.com . When you deactivate your personal account, all information stored and maintained as part of your account may be retained for archival, backup and record purposes. Third Party Websites The Website may contain links to websites owned and operated by third parties. These links are presented for your convenience and information. Fast Reports does not control these third-party websites and is not responsible for their privacy practices or content. Fast Reports does not control the information collection and distribution policies on such websites other than those that are under the control of Fast Reports itself. Content on third party websites may not reflect products, services, and/or information provided by Fast Reports. Third parties may also set their own cookies and/or use web beacons, which may be used to identify some of your preferences or to recognize you if you have previously had contact these third parties. Fast Reports does not control the use of such technology by third parties, the information they collect, or how they use such information. You should direct all concerns regarding any third-party website to the site administrator or webmaster of such website. Third Party Applications Fast Reports may make third party applications available to you through the Website or Services. The information collected by Fast Reports when you enable a third-party application is processed under this Privacy Policy. Information collected by the third-party application provider is governed by the provider’s privacy policies. Information Relating to Children The Children's Online Privacy Protection Act (COPPA) was passed by the U.S. Congress in November 1998. COPPA provides parents with specific rights regarding their children's privacy. For additional information and resources on COPPA, please visit the Federal Trade Commission Web site at  http://www.ftc.gov/ . The Fast Reports Website and any Software or Services available on that site are not directed at children under 13 years of age and, therefore, COPPA does not apply. However, we recognize that children under the age of 13 may potentially access this Website and subscribe to the newsletter, purchase Software and Services, or download software programs. The collection of information is covered above. Parents and Legal Guardians may request from us to review, delete or stop the collection of the personally identifiable information of their child. You may do so by contacting us by email at:  info@fast-report.com . California Online Privacy Protection Act Notice Fast Reports does not track users over time and across third party websites to provide targeted advertising and therefore does use do not track (DNT) signals. However, some third-party sites may keep track of your browsing activities when they serve you content, which enables them to tailor what they present to you. If you are visiting such sites, your web browser may allow you to set the DNT signal on your browser so that third parties (particularly advertisers) know you do not want to be tracked. Fast Reports does not authorize the collection of personally identifiable information by third parties and third parties cannot collect this information unless you provide it to them directly. Cookies and Web Beacons The Website uses “cookie” and “web beacon” technology. “Cookies” are short pieces of data generated by a web server that a website stores on a user’s computer. Certain pages on our Website may require the use of a cookie for purposes of keeping information you enter on multiple pages together. Cookies also enable us to customize our Website and offerings to your needs and provide you with a better online experience with us. In addition, cookies are used to: measure usage of various pages on our Website to help us make our information; more pertinent to your needs and easy for you to access; identify and categorized the internet webpages from which the visitor came to the Website and observe the browsing patterns; and provide functionality such as online orders, Fast Reports services and other functionality that we believe would be of interest and value to you. The types of cookies that we use are referred to as “session” cookies and “persistent” cookies. Session cookies are temporary and are automatically deleted once you leave the Website. Persistent cookies remain on your computer hard drive until you delete them. We do not use cookies to gather information concerning your visits to other websites, nor ascertain any personally identifiable information about you apart from what you voluntarily provide us in your dealings with Fast Reports. Cookies do not, under ordinary circumstances, corrupt or damage your computer, programs, or computer files. In addition, the service providers we use to serve and host our advertisements, and/or deliver our e-mails use session and persistent cookies, to track the number of times the Website is accessed and whether the site was accessed from an advertisement. There are no cookies in the advertisements or e-mails. A cookie is placed on your computer only if and when you click on an advertisement or open the e-mail. The cookie generated from the advertisement or e-mail does not contain any personally identifiable information and will remain on your hard drive until you delete it. You may set your browser to block cookies (consult the instructions for your particular browser on how to do this), although doing so may adversely affect your ability to perform certain transactions, use certain functionality and access certain content on our Website. Web beacons are used in combination with cookies to help website operators understand how visitors interact with their websites. A web beacon is typically a transparent graphic image (usually 1 pixel x 1 pixel) that is placed on a site. As opposed to cookies, which are stored on a user’s computer hard drive, web beacons are embedded invisibly on Web pages and are about the size of the period at the end of this sentence. These web beacons are not tied to personally identifiable information. The use of a web beacons allows the site to measure the actions of the visitor opening the page that contains the web beacon. It makes it easier to follow and record the activities of a recognized browser, such as the path of pages visited at a website. Fast Reports uses the information provided by web beacons to develop a better understanding of how the Website’s visitors use the Website, and to facilitate those visitors' interactions with the Website. Fast Reports may make the aggregate data obtained from web analytics (including from our third-party analytics providers, if applicable) publicly available. If this data is made available, none of the information will be personally identifying information or potentially-personally identifying information. B. USE AND DISCLOSURE OF INFORMATION How Your Personal Information is Used Fast Reports collects information from you in order to record and support your participation in the activities provided by Fast Reports We may use your e-mail address to send a confirmation e-mail when you sign up for a User Account and, if necessary, may use other information you provide to contact you for help to process the purchase or service you have selected. Your personal information also may be used to keep you informed about new services, service upgrades, special offers, and other Services. As described above, Fast Reports may collect information about your use of the Website and Services. This information is collected in aggregate form, without identifying any user individually. Fast Reports may use this aggregate, non-identifying statistical data for statistical analysis, marketing, or similar promotional purposes. Fast Reports recognizes and appreciates the importance of responsible use of information collected on this Website. Without your consent, Fast Reports will not communicate any information to you regarding the Website, Services, or special offers available from Fast Reports or its affiliates, although we may find it necessary to communicate with you regarding your use of the Website, or Services in certain limited circumstances. Except in the particular circumstances described in this Privacy Policy, Fast Reports will not provide your name to other companies or organizations without your consent. Disclosure of Information to Third Parties Although we will always strive to guard your identity, we may disclose your personally identifiable information without your permission in limited circumstances. We will only do so if we have a good-faith belief that disclosure is reasonably necessary to (1) comply with laws, regulations, or government requests or (2) to investigate or protect against harmful activities to our guests, visitors, associates, or property (including the Website or Services), or to others. If we are required by law enforcement or judicial authorities to provide your personally identifiable information, we will only do so upon receipt of appropriate documentation. We may also disclose your information to investigate violation of and enforce our Terms of Service. Please know that we do not take this responsibility lightly. Your privacy is of paramount importance to us. Fast Reports does use the services of third parties, such as e-mail service providers, purchase, shipping and order processing merchants and marketing companies that act as independent contractors on behalf of Fast Reports. These parties are contractually prohibited from using personally identifiable information for any purpose other than for the purpose Fast Reports specifies. We do provide non-personally identifiable information to certain service providers for their use on an aggregated basis for the purpose of performing their contractual obligations to us. We prohibit the sale or transfer of personal information to entities outside of the Fast Reports’ affiliates for their use without your approval. Change of Control In the event that all or substantially all of Fast Reports’ stock and/or all or substantially all assets are transferred or sold to another entity, Fast Reports may transfer personally identifiable information to the acquiring entity. If, as a result of such a business transition, your personally identifiable information will be used in a materially different manner, you will be given choice consistent with our policy regarding notification of changes. Securing the Transmission and Storage of Information Fast Reports operates secure data networks protected by industry standard firewall and password protection systems. Our security and privacy policies are periodically reviewed and enhanced as necessary, and only authorized individuals have access to the information provided by our users. Fast Reports takes steps to ensure that your information is treated securely and in accordance with this Privacy Policy. Unfortunately, no data transmission over the Internet can be guaranteed secure. As a result, while we strive to protect your personal information, we cannot guarantee the security of any information you transmit to us or from the Website or Services. Your use of the Website and Services is at your own risk. We treat the information you provide to us as confidential information; it is, accordingly, subject to our company’s security procedures and corporate policies regarding protection and use of confidential information. After personally identifiable information reaches Fast Reports, it is stored on a server with physical and electronic security features as customary in the industry, including utilization of login/password procedures and electronic firewalls designed to block unauthorized access from outside of Fast Reports. Because laws applicable to personal information vary by country, our offices or other business operations may put in place additional measures that vary depending on the applicable legal requirements. Information collected on the sites covered by this Privacy Policy is processed and stored in the United States and possibly other jurisdictions and also in other countries where Fast Reports and its service providers conduct business. All Fast Reports employees are aware of our privacy and security policies. Your information is only accessible to those employees who need it in order to perform their jobs. C. CHOICES AVAILABLE TO YOU You can always choose whether or not to disclose personally identifiable information and that choice will not prevent you from using the Website. Please note, however, if you should choose to withhold requested information, we may not be able to provide you with some of the Services dependent upon the collection of this information and you will be given an opportunity to “opt-in” and make your preference choices for any items that are optional and which are not prerequisite for our rendering such Services. You can choose at any time to opt-out of receiving emails from Fast Reports by clicking the unsubscribe link at the bottom of any email you receive from Fast Reports or by contacting Fast Reports directly at  info@fast-report.com . If you elect to opt-out, we will not, as applicable, share your personal information with third parties or send you emails. However, we may continue to use your personal information for internal purposes, to enhance your user experience or as necessary to administer the site or comply with applicable law. We reserve the right to send a one-time registration confirmation email, and infrequent service alert messages to users to inform you of specific changes that may impact your ability to use a service that you have previously signed up for, regardless of email contact opt-in status. We also reserve the right to contact you if compelled to do so as part of a legal proceeding or if there has been a violation of any applicable licensing, warranty and purchase agreements. Fast Reports is retaining these rights because in limited cases we feel that we may need the right to contact you as a matter of law or regarding matters that will be important to you. These rights do not allow us to contact you to market a new or existing Service if you have asked us not to do so, and issuance of these types of communications is rare. If you wish to opt out of receiving emails, the sharing or retention of any personal identification information, or otherwise change your personal preferences, you must contact Fast Reports at  info@fast-report.com To ensure that your request is honored, you must provide Fast Reports with information sufficient for us to accurately identify and access your records. The information we require is your full name, address and the email address you provided to Fast Reports when you requested Services or Software. Fast Reports reserves the right to contact you to verify that we have accurately identified your record. D. RIGHTS OF EUROPEAN USERS UNDER THE GDPR Fast Reports complies with the principles of Regulation (EU) 2016/679 of the European Parliament and of the Council “ On the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation)  (“GDPR”). If you are a natural person (“Qualified Individual”) of the European Union within the meaning of the GDPR, you are afforded certain additional rights by the GDPR as further described within this section. Data Controller When and if Fast Reports receives your personal information directly from you through its Website, it performs the functions of a Data Controller, as defined by the GDPR, and has the ability to determine how personal data is collected, for what purposes, and how this data is to be processed. As the controller, Fast Reports has implemented many technical and operational measures to ensure the most complete protection of personal data processed through its Website, and Services. Contact information for the Data Protection Officer can be found below. Data Processor Fast Reports processes your data in accordance with this Privacy Policy. Fast Reports uses industry standard safe guards to secure your information. Consent If you are a Qualified Individual, consents concerning your personal information are handled in compliance with the GDPR. Where and if consent requirements under this Privacy Policy conflict with the GDPR, the GDPR prevails if the regulation applies to you. Legal Basis for Processing Art. 6(1) a. of the GDPR serves as the legal basis for processing operations for which we obtain consent for a processing purpose. If the processing of personal data is necessary for the performance of a contract to which you are a party, as is the case, for example, when processing operations are necessary to provide a service, the processing is based on Article 6(1) b. The same applies to such processing operations which are necessary for carrying out pre-contractual measures, for example in the case of inquiries concerning our products or services. If our company is subject to a legal obligation by which processing of personal data is required, such as for the fulfillment of tax obligations, the processing is based on Art. 6(1) c. If the processing of personal data may be necessary to protect your vital interests or of another natural person, then the processing is based on Art. 6(1) d. Finally, processing operations could be based on Article 6(1) f., if processing is necessary for the purposes of the legitimate interests pursued by our company or by a third party, except where such interests are overridden by your fundamental rights and freedoms under the GDPR. GDPR Rights: 1. Right of Confirmation You may obtain confirmation of whether or not your personal data is being processed. If you wish to exercise your right of confirmation, you may contact Fast Reports and/or its Data Protection Officer. 2. Right of Access You may obtain from information about your stored personal data at any time and a copy of this information. If you wish to exercise your right of access, you may contact Fast Reports, and/or its respective Data Protection Officer. 3. Right to Rectification You may request the rectification of inaccurate personal data. Taking into account the purposes of the processing, you have the right to have incomplete personal data completed, by means of providing a supplementary statement. If you wish to exercise your right of rectification, you may contact Fast Reports and/or its respective Data Protection Officer. 4. Right to Erasure (Right to be Forgotten) You may request the erasure of your personal information by contacting Fast Reports and/or its respective Data Protection Officer. Furthermore, you may delete your User Account information by accessing your User Account settings page on the Applications. Please note that while any changes you make will be reflected in active user databases within a reasonable time, we may retain all information you submit for the prevention of fraud and abuse, analytics, satisfaction of legal obligations, or where we otherwise reasonably believe that we have a legitimate reason to do so, such as for archiving purposes within the public interest. 5. Right of Restriction of Processing You have the right to restrict processing where one of the following applies: The accuracy of the personal data is contested by the data subject, for a period enabling the Controller to verify the accuracy of the personal data. The processing is unlawful and the data subject opposes the erasure of the personal data and requests instead the restriction of their use instead. The controller no longer needs the personal data for the purposes of the processing, but they are required by the data subject for the establishment, exercise or defense of legal claims. The data subject has objected to processing pending the verification whether the legitimate grounds of the controller override those of the data subject. 6. Right to Data Portability You may request to receive your personal data in a structured, commonly used and machine-readable format. You have the right to transmit this data to another controller without interference. Furthermore, you may have the personal data transmitted directly from one controller to another, where technically feasible and does not adversely affect the rights and freedoms of others. 7. Right to Object to Automated Decision Making You may object to decisions based solely on automated processing, including profiling, which produces legal effects or similarly significantly affects you, as long as the decision is not is necessary for entering into, or performance of, a contract between you and Fast Reports; or is not authorized by European Union or Member State law to which you are subject; or is not based on the data subject’s explicit consent. 8. Right to Objection to Processing You may object to the processing of your personal data, unless there are legitimate grounds for the processing within the public interest, or for the establishment, exercise or defense of legal claims. If Fast Reports processes personal data for direct marketing purposes, you shall have the right to object at any time to the processing of your personal data for such marketing. This applies to profiling to the extent that it is related to such direct marketing. If you object to Fast Reports to the processing for direct marketing purposes, then we will no longer process the personal data for these purposes. Retention Policy We only retain the personally identifiable information about you for as long as your User Account remains active or for a limited period of time as long as we need it to provide you with services or otherwise fulfill the purposes for which we have initially collected it, unless otherwise required by law. We will retain and use information as necessary to comply with our legal obligations, archival purposes, resolve disputes, and enforce our agreements. Cross Border Data Transfers If and when sharing of information involves cross-border data transfers, for instance to the United States of America and other jurisdictions. Where the Applications allow for users to be located in the European Union, their personal information is transferred to countries outside of the EU. We use EU Standard Contract Clauses or other suitable safeguards to permit data transfers from the EU to other countries. The Standard Contractual Clauses commit companies transferring and receiving your personal information to protecting the privacy and security of your data. E. PRIVACY RELATED INQUIRIES AND COMPLAINTS Fast Reports takes and addresses its users’ privacy concerns with utmost respect and attention. If you believe that there was an instance of non-compliance with this Privacy Policy with regard to your personal information or you have other related inquiries or concerns, you may write or contact Fast Reports at email:  info@fast-report.com In your message, please describe in as much detail as possible the nature of your inquiry or the ways in which you believe that the Fast Reports Online Privacy Policy has not been complied with. We will investigate your inquiry or complaint promptly. If you are a Qualified Individual, you may lodge a complaint with the data protection supervisory authority in the country where you live if you are unsatisfied with how your complaint is handled by Fast Reports. Please note that if you provide Fast Reports with inconsistent privacy preferences (for example, by indicating on one occasion that third parties may contact you with marketing offers and indicating on another occasion that they may not), Fast Reports cannot guarantee that your most recent privacy preference will be honored. Copyright © 2021 Fast Reports Inc. All rights reserved. The Website, Services, and all documentation are the copyrighted property of Fast Reports Inc. and/or its licensors and protected by copyright laws and international intellectual property treaties. FastReport® and related logo, and all related Product and service names, design marks and slogans are the trademarks and/or registered trademarks of Fast Reports Inc. and/or its affiliates. All other product and service marks contained herein are the trademarks of their respective owners. Any use of the Fast Reports Inc. or third-party trademarks or logos without the prior written consent of Fast Reports Inc. or the applicable trademark owner is strictly prohibited. ### Proud to hire with Jooble! URL: https://www.fast-report.com/news/hiring-with-jooble Summary: Proud to hire with Jooble! Proud to hire with Jooble! Knowing FastReport and being able to work with reporting and DB is an essential skill on the job market for business software developers. We are determined to ensure that using FastReport solutions will always guarantee finding a job easily. The quintessential purpose of Jooble is to connect those who seek jobs with those who offer it. Being "Google" in a job search industry Jooble manages to aggregate all the vacancies from open sources into one compact user-friendly interface that gives access to jobs that are not yet listed on popular platforms or hidden behind the corporate websites. Another important thing is that Jooble does not claim jobs for its own. It is necessary to go to employers' website in order to apply which is crucial for driving additional traffic and reducing hiring process time. Jooble's initiative to help people find jobs all over the world fits well with our own aim to bring reporting to another level. Thus we are glad to announce our partnership with Jooble to help increase awareness about this area of programming and boost the quality level of specialists looking for data visualisation jobs . ### Publisher — the Ideal Solution for Small and Medium-Sized Businesses URL: https://www.fast-report.com/blogs/publisher-solution-for-business Summary: In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. The FastReport product line for creating, storing, and transmitting documents has been expanded with a new development. Since May 2025, it includes products such as Cloud, Corporate Server, and Publisher. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. The FastReport product line for creating, storing, and transmitting documents has been expanded with a new development. Since May 2025, it includes products such as Cloud, Corporate Server, and Publisher. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. FastReport Cloud It provides a set of services for creating various documents and reports from text templates and data sources (Postgres, MS SQL, Firebird, XML, CSV, and others) for further processing. It is offered as SaaS, meaning users do not need to worry about allocating computing resources, deploying the solution, or ongoing maintenance. Simply obtain a workspace and focus on more important tasks—creating reports for your business. You can integrate FastReport Cloud into your applications or services regardless of the programming language used in development. It can be connected from projects written in languages such as C#, Java, Kotlin, PHP, JavaScript, Angular, Python, Go, C++, and more. You can get the free version and start using Cloud at this link. However, many large companies prefer to have full control over all processes and require installing a reporting server on their own infrastructure. This is due to security requirements, data storage, and a large number of end users (or integration into their own solutions). In such cases, the right choice is to use the Corporate Server. FastReport Corporate Server This is a scalable dedicated server for generating and storing documents. It supports collaborative work: you can add multiple users, and each will have access to the workspace, templates, reports, data sources, and other resources. The permissions system of the Corporate Server allows setting different access levels for team members or groups. While one group of users creates new document templates, another group builds reports from these templates in PDF format. All the tools for secure operation are integrated into FastReport Corporate Server: private file creation and storage, protected login, access management, and authentication via OpenID. At the same time, the entire infrastructure is hosted within the client’s environment. You get flexible control over document and report generation in accordance with your company's security policies. With extended support, our specialists will help you quickly and effectively configure and fully deploy FastReport Corporate Server within your system. You will be able to start generating reports in no time! We also offer assistance in restoring functionality after any failures. Leave your details through this link , and our manager will contact you to discuss a personalized solution tailored to your business needs. If the requirement to deploy all software solutions within your own environment remains, but the number of users is low, and creating a cluster for processing a large volume of documents is not needed, then you might consider the third option — Publisher. FastReport Publisher It consists of a web interface for working with reports, an online designer, and the core functionality of FastReport. Publisher can be integrated with other enterprise systems (CRM or ERP) for automatic report generation and distribution. You will also have access rights management features. This makes Publisher a useful tool for organizations that need a centralized report management system through a single interface. You can get a trial version on this page , and our manager will provide you with all necessary access. What is the difference between Publisher and Corporate Server? FastReport Publisher is a lighter and more budget-friendly version of the Corporate Server, retaining the most essential features and offering the ability to seamlessly upgrade to the higher-tier product if needed. The differences between Publisher and Corporate Server are outlined in the table available at this link. Additionally, Publisher is easier to install and does not require knowledge of orchestrators (such as Kubernetes). The installation package includes a Setup Wizard, which guides you step-by-step through the configuration process, and with the click of a button, you can launch the solution in a Docker Compose environment. Publisher Corporate Server Cost from $1,990 from $9,650 Deployment with Docker Yes Yes Web Interface Yes Yes REST Interface (Web API) Yes Yes Ability to create and view reports Yes Yes Online Designer (ability to use the designer within the web interface) Yes Yes Connectivity via Desktop Designer Yes Yes Scheduler for scheduled task execution No Yes Share reports via link No Yes Deployment in Kubernetes No Yes Scalability (the system’s ability to handle increased workload when resources are added) No Yes OpenID Authentication No Yes User Groups (access and permission management) Yes* Yes Number of Workspaces 1 2 (additional purchases possible) Number of Data Sources 3 Potentially unlimited quantity   Number of Users 15 Unlimited quantity Number of Administrators 1 3 (additional purchases possible) *Only pre-installed groups are available: Owner, All Users, and Anonymous Users. Creating new groups is not allowed. You can find detailed instructions for using these products in our documentation. Conclusion FastReport offers ready-to-use services, client-server systems, and applications for quick data visualization and automated data processing tasks. You can choose the solution that best fits your business needs — whether it's report generation on third-party servers or within your secure environments. For those who prefer to avoid dealing with orchestrators and want to quickly get a ready-made solution, we recommend using FastReport Publisher .  Please contact our sales department at sales@fast-report.com to select the most suitable solution. Our team is always happy to assist you! Tags: FastReport, Cloud, Publisher, Corporate Server ### Quick look on minimal FastReport.NET report URL: https://www.fast-report.com/blogs/quick-look-minimal-net Have you ever noticed how a report template transformed to the prepared report? Let's look onto code of a very simple report: The single page. The single band on the single page. The single text field on the single band. Let's story it to the report template file: ```   ```  So we have minimal report with single text string on the gray background. Let's do preview of this report And source code of prepared report: ```   ``` Report template stored in prepared report within section . All constant attributes are taken from the section by transforming references via section . For example, refers to the same element in section . An attribute  "name" of element of section is set to value "Page0". By some reason we need increment a number within page name. Now we have name of element within section - it is "Page1". Therefore we link the element in section with the element in section by matching the property "name". Tags: .NET, .NET, FastReport, FastReport ### RAD Studio Reporting with Fast Reports URL: https://www.fast-report.com/news/webinar-studio-reporting-2014 Summary: RAD Studio Reporting with Fast Reports RAD Studio Reporting with Fast Reports RAD Studio Reporting with Fast Reports See what’s new with FastReport and FastCube VCL and FMX You’re invited to join Embarcadero with Fast Reports’ Michael Philippenko and Den Zubov for two new webinars on reporting for RAD Studio, Delphi and C++Builder developers. Webinar 1: New Report Generator for Delphi FastReport VCL 5 Thursday, May 22, 2014 6AM San Francisco / 9AM New York / 2PM London / 3PM Milan 11AM San Francisco / 2PM New York / 7PM London / 8PM Milan 5PM San Francisco / 23-May 9AM Tokyo / 23-May 10AM Sydney FastReport VCL is a modern solution for integrating Business Intelligence in your software. Topics covered in this webinar include: What is new and how to use it in FastReport VCL 5 New kinds of report interactivity News in objects and properties Changes in web-reporting and more! Webinar 2: FastCube VCL 2 and New FastCube FMX - OLAP Components for your Software! Tuesday, June 3, 2014 6AM San Francisco / 9AM New York / 2PM London / 3PM Milan 11AM San Francisco / 2PM New York / 7PM London / 8PM Milan 5PM San Francisco / 4-June 9AM Tokyo / 4-June 10AM Sydney FastCube enables you to analyze data and to build summary tables (data cut-offs) as well as create a variety of reports and graphs both easily and instantly. In this webinar you will learn: What is new in FastCube VCL 2 What the difference in VCL and FMX versions How to estimate performance of FastCube on your own data and application ### RAD Studio Reporting with Fast Reports - Questions and Answers - Part I URL: https://www.fast-report.com/blogs/rad-studio-fastreport-fmx-vcl Thanks a lot all attendees of our webinar with Embarcadero Technologies. We hope than you are got new useful information and as usually publishing questions and answers from this event. Q: Can an Excel report include formulas? A: Not yet, but we're planning to implement such feature. Q: A program may have many responsibilities, many steps, report-generation being only one of them. After generating the report, the program should be able to continue on immediately with its remaining responsibilities, with no left-over impact on the program's available memory and CPU time. So, is it possible to detach a report from the program that generated it? A: You can create reports in threads. Q: Can you force FastReport 5 to respect XLS/XLSX worksheet cell boundaries (e.g., EVERY cell in column B has exactly the same width), so that each (non-empty) worksheet cell contains exactly one value of the appropriate type (number, text, date, etc.), and each worksheet column is sized to fit? A: Sorry, not clearly understand what do you mean. Q: Can you design a report to fit cleanly into Excel cells, one value per cell, without page boundaries? A: Yes, we have matrix export to excel so each object will be in separate cell. Q: is there an upgrade path for EDN version to pro? A: Delete Embarcadero Edition. And setup Pro one Q: Question for David. When do we expect XE7 ???? A: When it's done. ;-) Q: will all these exports be available with the XE6 version of Fast Reports? A: Do you mean Embarcadero edition ? Q: Question for David. When do we expect XE7 ???? A: https://edn.embarcadero.com/article/43677 Check out the roadmap. Q: Yes the embarcadero Edition not Pro A: No, XE6 uses FR4 version. We're planning to deploy FR5 starts from XE7. Q: I assume the code and events are not available with the Embarcadero version? A: Yes, the script is not available in EDN version. You can always look at differences between editions here Q: I have an issue with Barcodes ... when I try to print a Barcode type Code 39 trough FR4 and when I assign a short number like a 1 .. I can't read with a barcode scanner ... do you know why happen this ? A: This can be because of printer resolution. You can try to set Zoom property or BarWideRatio property. Q: Oops... part 2. The web-report needs to export to pdf A:  Live Demo is available on our web-site - with export to pdf:  Q: Can you please show us how to incorporate a FR report into a Windows Service application. The application is multi-threaded so the report must be thread-safe. A: Not just now :) Anyway you need Enterprise Edition for web-reporting Q: Are there example reports included with FR4? Learn by example, easier to modify a report that almost does what I want, would make it easier to get into. A: Yes, the main demo has a lot of report. You don't need even to install components to try them. You can find compiled demo with reports here  Q: Where in XE5 or 6 is FR demo reports (actual srce reports, not compiled). A: If you need an examples about how to use Fast Report from code you can find them in Demo folder after install components. But if you need only to see report , the main demo will work. It has a designer and report templates, so you can always open any template and see how it works. Q: Where in XE5 or 6 is FR demo reports (actual srce reports, not compiled). A: FR4 install can be found in the registered user download area via EDN downloads menu Q: I'm still a bit confused. What exactly comes withe XE6? Is the VCL version FR4? Is the FMX version the same as the FMX 2 they show on their web site, or is it an older version? What exactly comes free with XE6? A: FR4 VCL & FMX comes with XE6 Q: I realize you are showing the VCL version. Does the FMX version work pretty much the same way? Important differences? A: Just another good question :) Here you can see comparison table of different Fast Reports - FMX and VCL More over: compare possibilities of FastReport FMX for different OS So difference is present. Q: Upgrade or new license when you update from the free be in XE6 to FR5? A: You can compare prices on the FastReport site - to move to FR5. Q: I see the prices for the products as you've shown them, but the real question is "Is there an upgrade price to move from Embarcadero to the FR5, or do you essentially get a new license with Fast Reports?" A: It is really new license Q: Can we use C++ script in FR5? A: Yes, there are 4 types of script languages C++/pascal/Basic/JavaScript. Q: Are there any restrictions on the use FastReport 5 in C++ Builder compared with Delphi? We Thanks. A: Absolutely the same. Q: Will you be offering a "Distinct Count" function in a group section ? A: No such function - you can do this at the SQL statement level. Q: How about my Distinct Count question from above ? A: Added to ours TODO list. Q: Crystal Report has distinct count A: Thanks Q: Along with SUM AVG COUNT A: Thanks Q: Are you planning to include Logfont? A: No plans for now. Q: Currently when I tried to declare Logfont: TLogFont; it raised an error "Unknown type TLogFont". Are there plans to support TLogFont? A: Do you mean in Fast Script ? Fast Script unfortunately doesnt support structures. Q: yes in FastReport events coding A: Unfortunately you can't. Structures arent supported in Fast Script yet. Q: Is there a difference between the FastReport included with Rad Studio and the paid versions from FastReport? A: Yes, compare Q: why is fast report designer so different from fast report.net A: Because there are two absolutely different products :) Q: I thought fast Reprot will now have something like Fast Report .NET but so i dont think so , i would rather enjoy working on fastreport.net A: There are two different products. With vary possibilities, platform, etc. Many customers waited these features. Q: i meant highlighting by condition Q: is the highlight feature restricted to cell only or can they be extended to row as well A: Are you mean interactive of highlighting by conditions? Q: but you said its intended for those who have used fast report and do you really think they are so naive A: There are many changes which you can see in examples only :) Interactivity, web, etc. We think that our customers - professional developers who really can estimate new features :) Q: I licensed the XE4 FR but am moving to FMX for new stuff - why not include both like EMB does? A: FR4 comes with XE6 Q: did I miss the comparison with MS-SQL Reports - I heard it asked but not answered A: We have not direct comparison with VCL, but there are something like Q: I there a limitation to use with Interbase Togo Embedded ? Use one or two connexion ? A: IBLite is only for mobile and limited to one connection. IBToGo is not limited on # of connections. Q: If use Fast Report into a Database Rad Studio application, Fast Report share the connection or need is separate connection ? A: It can share. Q: Which version are coming with XE7? A: Fast Report 5 Q: Can the VCL and FMX version coexist? A: Yes Q: Is there a way to convert existing FastReport 4 reports to version 5? A: You do not need convertor. There are converting on a fly - when you opening in FR VCL 5 Q: FastReport has a upgrade for embarcadero edition to full edition? A: No, Embarcadero edition is free version for RAD Studio users. We don't have any upgrades from this version. Q: FastReport has a upgrade for embarcadero edition to full edition? A: There are no any discount for Embarcadero Edition customers. Q: web-reporting is datasnap reporting??? A: No, its an internal components. Q: Can you show an example using a dialog page with object tfrxDBLookupComboBox ? A: Not ready just now. Remind us - we will prepare it and may be place to our demo and on our youtube also Q: Can Report Builder reports be converted? A: Yes, we have a module ConverterRB2FR.pas you need to include it in uses section of your application. And after that you can use LoadFromFile method in TfrxReport component to load Rave report. Q: what about a .NET version? A: All is good with .Net version :) You are welcome Q: Can FR4 & FR5 coexist? A: No Q: I have a bunch of Rave Reports embedded into applications (not used the form designer). How easy is it going to be to convert these? A: We have a module ConverterRR2FR.pas you need to include it in uses section of your application. And after that you can use LoadFromFile method in TfrxReport component to load Rave report. Q: Thanks on the RAve Reports question A: :D Q: can we see crystal converter in action A: You can download on web-site :) By the way wait for 5.1 version soon - it will improved Q: Is FR5 in RAD Pro XE6 and or Delphi XE6 Pro? A: FR5 Embarcadero Edition will come with XE7. Q: Is FR5 in RAD Pro XE6 and or Delphi XE6 Pro? A: Yes, It supports starts From Delphi 7 and up to XE6. Q: It seems the webinar is for people already using fastreport, but around 50% of the audience never used fastreport. How about some getting started information... A: Yes, we didnt expect such many new people. The video is for people who already using FR4 and shows the differences between versions. There are will be enough to place FRXReport component on your application form and doubleclick - very easy to start and create first report. It takes about ten minutes. I can offer just now our Youtube channel with short lessons  Anyway we will prepare soon something like "FastReport - getting started" Q: Can you supply some links to getting started information, examples and the likes? Or will there be another webinar for beginners? A: Of corse you can take a look at our youtube chanel  Q: Does the conversion happen based on file extension or an internal version number? Is there a new default extension for FR5 reports? A: FR5 uses old file extensions and determinate version by internal version number. Q: I just tried to run the Crystal Converter and it hangs on open - never even shows anything... A: Not all the versions of CR supports now Q: When you announced a updated designer for FR5, I expected a litte bit more face lift of the gui. But it seems that it still has XP style. A: It still supports D7 - that is why Q: Will XE7 be supported by FR4? A: No. Q: Can the end user of our software create it's own reports? (run time report builder) A: Yes, there are report designer for end-users - you can provide it to your customer Q: does it also work in C++. If yes, is the scripting also in C++ ? A: Yes, it is compatible with C++Builder. You can setup it to C++Builder. It is supported as well with full functionality Q: Can the end user of our software create it's own reports? (run time report builder) A: Yes - you can use a runtime report designer and call if from your application. This lets users to create reports. Also as developer you can set restrictions for what the customer/user can do in the reports you deliver with your app. Developers have custom control for their users. Q: what about Active Report Converter ? A: We don't have such convertor , yet. But this version works with not all the CR versions yet, will be updated with FastReport 5.1 Q: What should be the minimum XE version in order to use FastReport? A: Did you mean FastReport Embarcadero Edition? - it comes with every XE*. And also all other editions of FastReport support all Delphi XE* (from XE to XE6) Q: I'm using Delphi XE with QuickReport. Can I migrate to Fast Reports on Delphi XE or I need to upgrade to a newer version? A: QuickReport and FastReport are not compatible.  You can convert visual part of the report by using ConverterQR2FR.pas module. Just add it in uses section and use LoadFromFile method of TfrxReport component. But we do not know - what kind of reports did you use, not all possible to convert. Anyway you will need convert reports and remake some parts of the reports manually(Like script and expressions). We recommend use new component (FastReport) in new projects. Q: Is it possible to automatically convert Fastreport.VCL => Fastreport.NET reports? A: Conversion is possible. Same layout. Code/logic is not converted. Q: From my experience, converters aren't really an option for automatic conversion. It should be done manually. A: Yes, some parts like expressions or scripts should be converted manually. Converters can convert only visual parts. Q: What is the user experience developing reports in Fast Reports .NET compared to Fast Reports VCL. Is it similar or there are significant differences? A: If you mean "architecture" - there are absolutely different, but we are trying to make them as close as possible. Q: Fast Reports is really good reporting tool. Too bad it wasn't the part of Delphi in earlier versions. It would save us much time :-). A: :D Q: how much does it cost to upgrade from fr4? A: This depends on your edition. Go to the customer page and you'll see the upgrade price./info Q: It's ok for me that you think about building a FMX version. But can I be sure that the main focus still stay on VCL? This is very important form me! A: We are working on VCL as well as on FMX. Updates coming soon Q: Are there some changes in FR5 that belongs to UniCode. I have some applications that also use unicode (Chinese etc.). Sometimes I had problems, that not all windows fonts are supported well... A: Starts from Delphi 2010(first unicode Delphi version) Fast Report completely supports unicode. Q: Are there any issues when creating reports in threads... A: Yes, you can find more information in Fast Report Programmers manual. Part «1.22 Multithreading». Q: Charts are not working here too. Recompile will not bring the success... I use the newest fast reports enterprise and the newest teechart vcl components (including source)... A: Can you write to support@fast-report.com with discription of the error ? Q: Using the recompile wizard only provide TeeChart 4 to TeeChart 9 the actual version is TeeChart 2014. What should I select? Is TeeChart 2014 supported? A: Tee Chart 9 Q: Why are Denis not join DDD in Germany? A: We should code, make updates, fixes, answer support questions. Denis coming to Be-Delphi in Antwerp, Belgium, DDD Piacenza, Italy and DDD  Amsterdam, Netherlands at 10th-12th of June. (Done) Q: Tred to install, trial but too little disk space for it :-( A: Ok - thanks Alf. Time for a 4TB hard drive :) We're planning to change our installation tool soon, so 3+TB problem will be fixed Q: Do new Fastreport run on Delphi 2006 or only last versions of Delphi? A: Yes, FastReport VCL supports Delphi 2006 also Q: THis is perfect timing as I am converting reports from Qucik Report to Fast Report now. A: Great! Q: A reliable way to convert even simple Rave reports is a major requirement - if we had that now we would move to fast Reports today! A: Yes, you can use ConverterRR2FR.pas module. just include it in app uses section. And use LoadFromFile method of TfrxReport component. Q: ConverterRR2FR didn't even convert simple Rave reports I'm afraid A: We will reconstruct it soon. There are some problems with it. Q: Migration courses would be great. A: We will prepare. Q: The webinar seems to be concentrating on the new features in the product rather than how a new user can set up a basic report. Is this how the webinar will continue? A: Yes, this webinar is showing features of the new version. We didnt expect so many people not familiar with Fast Report. Q: Is there a reliable way to convert Rave reports to Fast Reports? A: Yes, you can use ConverterRR2FR.pas module. just include it in app uses section. And use LoadFromFile method of TfrxReport component. Q: As I said before ConverterRR2FR does not work on even simple Rave reports. Please let me know when a reliable conversion program will be available. A: We will fix it in FastReport VCL 5.1 very soon. Q: OK - youtube channel looks interesting and yes a basic reporting webinar would be good. A: Ok. Q: Are there any training courses available in Europe? A: Yes. We will run training day in Belgium 10th of June on Be-Delphi basis and with Be-Delphi help. See on Be-Delphi.com web-site. Q: Will the training in Belgium be in English? A: Yes, English Q: As I said before ConverterRR2FR does not work on even simple Rave reports. Please let me know when a reliable conversion program will be available. A: Can you send some of the Rave reports you have to us on support@fast-report.com ? Maybe you have different version of Rave report. We will chuck what we can do. Q: I can send some of our Rave reports but I have sent questions to the email you supplied before and I never got an answer to any of them. Can you provide a specific name and email address please? A: You can write directly to me at den@fast-report.com Q: There is an opportunity to gain many customers, like us, who are using other reporting tools. We need reliable converters and basic training - can you please provide both? A: Well. We will make some "migration courses" Q: Fast report is a great product, i use it a lot. Can you add a new little feature in the designer, i want to be able to focus the tool box when i press the enter key on a component. This will speed up when i need to change component name. Thanks A: Thank you for idea Q: Sorry, question to david i, can i have a grouping and ungrouped object feature like the one in Fast Report Designer :D A: (Y) :) Q: Are there published rules for manual conversion A: Not yet Q: I just noticed that FR5 report files also have the .fr3 extension; so, how can we tell what's using the new format and what is not (for downward compatibility with FR4.X)? A: We have a version number stored in the report file. Q: Do reports written in FR4.x need to be converted? A: No, all old FR4 reports will be converted on the fly when load old report file. Q: Is there limitations for converting Report Builder ? A: You can convert visual part only. Q: I have 3 computers I use for programming: my office pc, home pc and a laptop. It is needless to say that I don't use all computers at the same time; only one at any given point in time. Having said that, can I buy a single license and install it on all three of my computers. I'm sure you know that RAD Studio allows you to do that (I think on up to 5 computers). A: The same situation with FastReport Q: It is FR5 VCL stable enough to use it in real applications? :) A: Yes, more over. Soon we will run v.5.1 with some fixes. Q: is there an updated version of Fast Reports for the version that came with XE5. I have problems with charts not working. the last comment I got on forum was a new version has fix. So how do I update the XE5 embarcadero fastreport version? Thanks! A: FrxChart object has source codes you can always recompile it manually. But yes, we'are panning to update EDN versions this week , because it has some new fixes. Q: I have not used fast reports. How can you add this to a delphi App? A: Just add TfrxReport component from Fast Report components palette on the form and after you can call report designer by double clicking on the component. Q: I have not used fast reports. How can you add this to a delphi App? A: Just place "FRxreport" component to your application form and doubleclick it :) Q: is there a converter from Report Builder to Fasr Report? A: Yes, you can use ConverterRB2FR.pas module. just include it in app uses section. And use LoadFromFile method of TfrxReport component. Q: where is this converter? A: You can find it in Fast report LibDXX folder. Q: We need fastreport on IOS and ANDROID when will get? its so important... A: We are still considering support of IOS, but we faced some issues when started migration. But it's still possible that we make Ios version of Fast Report FMX. Thanks a lot for good questions! Anyway you can write us anytime. Tags: VCL, FireMonkey, FMX, FastReport ### RAD Studio Reporting with FastReport URL: https://www.fast-report.com/news/webinar-rad-studio-2012 Summary: RAD Studio Reporting with FastReport RAD Studio Reporting with FastReport Join  our webinar! Topics covered will include:  • FastReport RAD Edition - what i t i s and how to use it  • Migration of reports from QuickReport and Rave Reports to FastReport  • Introduction to data analysis and presentation with FastCube.  All registered Delphi, C++Builder and RAD Studio XE2 users who attend the webinar will get a free copy of FastCube Embarcadero Edition! (if you have n’t already receive d it from an earlier promotion) . Webinar's language - English . ### Rapor ve belge oluşturmaya yönelik çözüm türleri URL: https://www.fast-report.com/ Summary: Fast Reports - create libraries and tools for generating reports and documents. Use the FastReport report generator to create high-quality and fast reports. Create all the documentation you need easily and efficiently with our tools. FastReport .NET Core for creating, editing, and generating reports on various platforms. ASP.NET Avalonia Blazor Mono .NET WASM WinForms WPF FastReport VCL Multifunctional report and document generator for Delphi, C++Builder, RAD Studio, and Lazarus. C++Builder Delphi FMX Lazarus RAD Studio FastReport Online Designer A visual template and report designer directly in your browser. All Browsers HTML 5 RIA WEB Business Solution Ready-made services, client-server systems, and programs for quick data visualization, as well as automated tasks for information processing. Any Data Source Connect to SQL, JSON, XML, CSV, REST APIs, and business objects Powerful Designer Build simple or complex reports with charts, tables, and subreports Export Anywhere Export reports to PDF, Excel, Word, HTML, CSV, and other formats Fully Customizable Adapt reports with scripts, expressions, events, and custom APIs Flexible Licensing Choose licensing that fits your products, deployment and business AI-Ready Create AI-powered reporting workflows with flexible data integration Types of solutions for generating reports and documents FastReport .NET Sets of components that simplify and automate the process of creating reports and documents in C# for diverse technologies. Ultimate .NET WinForms WPF WEB Mono Avalonia FastScript .NET FastReport VCL Sets of VCL, FMX, and Lazarus components with full source codes for creating reports and documents in Delphi and Pascal. Ultimate VCL Optimum VCL Reporting VCL Reporting FMX Reporting Lazarus FastQueryBuilder FastScript FastGrid FastEditors WEB reporting Components for cross-platform projects to develop, build, display, print, and export reports directly in the browser. Online Designer Solutions for end-users Independent software solutions for designing, building, converting, and viewing ready-made reports on your computer. FastReport Desktop FastReport Viewer FastConverter OLAP and Business Graphics Data presentation and analytical processing tools for obtaining pivot tables with subsequent visualization based on Business Graphics. Business Graphics .NET FastCube .NET Analysis VCL Service solutions Ready-made services and client-server systems for fast data visualization and automatic execution of information processing tasks. FastReport Cloud FastReport Publisher FastReport Corporate Server News September 11, 2026 Meet Fast Reports at Entwickler Summit 2026 in Berlin! We’re excited to announce that Fast Reports will be a partner at Entwickler Summit 2026, taking place on September 17 in Berlin. Visit the Fast Reports booth to discover our latest solutions for... Read August 10, 2026 Fast Reports Anniversary Celebration — Enjoy 20% Off Every year brings new products, thousands of successful projects, and millions of reports created with Fast Reports solutions. But our greatest achievement is the community of customers and... Read May 25, 2026 Service Solutions Update to Version 2026.2 In the 2026.2 release of our service solutions lineup (FastReport Cloud, FastReport Publisher, FastReport Corporate Server), we focused on improving reliability and usability: task scheduling has... Read All news Reviews Ender Arslanturk /Trustpilot 5.0 Report from a single center 👏👏👏 In our project, we used different and various report design brands. However, these designs were scattered throughout the project. Fortunately, we met a great tool like Fast Report and this became a... Read Bruno de Chassey /Trustpilot 5.0 The reporting tool I needed ! After using QuickReport and Rave Reports in Delphi, I finally discovered Fast Reports (it was the version 5 at this time), and I decided not to change anymore. Once you understand the band... Read Stephan Kallnik /Trustpilot 5.0 Good and powerful Report-Generator After first steps, a very good and powerful Report generator, and fast in design. Very intuitive WYSIWYG Report-Designer, Easy preview and pdf-generation. Used in all reports throughout our... Read All reviews Articles September 21, 2026 How to Configure an AI Agent for FastReport .NET: Architecture, Limitations, and Report Migration Working with reports often turns into a routine: editing XML templates (.frx), configuring data bindings, and adapting legacy formats. To automate this work, a specialized AI agent was created.... Read September 08, 2026 Answers to Frequently Asked Questions about the FP3 Format The FP3 format often raises questions — especially among users who need to quickly open, view, or convert a prepared report without delving into development details. At the same time, confusion... Read September 04, 2026 How to export a report from FastReport .NET to DXF DXF (Drawing Exchange Format) is an open format for exchanging graphic data, developed by Autodesk for storing and transferring two-dimensional and three-dimensional drawings. Due to wide... Read All articles Popular questions What is a report generator? Report generators are libraries or stand-alone applications that connect a report template with a data source and generate ready-made documents based on current data. They can later be exported to various formats (PDF, DOCX, HTML, JPG, etc.) or sent for printing or storage. The report generator turns the data into information (document). Why do we need report generators and OLAP analytics tools? Any business system collects and stores data in some form. Unfortunately, this type is convenient for storage but not for presentation, obtaining important information, or making a decision by a person. Our tools, solutions and libraries allow us to make data informative. These can be documents or tables - structured as needed and convenient for users for their specific tasks. What does Fast Reports Inc. do? We create report generators and other tools for programmers and business application developers. ### Rave convertor URL: https://www.fast-report.com/blogs/rave-to-fastreport-convertor As you know, Embarcadero RAD Studio XE2 is coming with the special edition of FR4. Many people have been asking us: is it possible to convert Rave reports (.rav files) to Fast reports (.fr3 files)? It is possible, because we have developed a convertor from Rave reports for this purpose. How to convert a .rav file From a user's point of view, to convert a .rav file no special actions needed: just click File > Open in the main menu of the designer and then choose a .rav file. If you are a developer and want to know how to enable the ability to import .rav files, then consider this code: Code ``` program RaveImport;   uses frxClass, frxDesgn, ConverterRR2FR;   begin TfrxReport.Create(nil).DesignReport; end. ``` Once this program is launched, the report designer appears and its File > Open dialog will offer to open .rav files as well as .fr3 files. Note, that in order to compile this program, you need to have Rave installed, or just have its .pas or .dcu files available to the compiler. What Rave reports can be imported The convertor supports the most of components that can appear in a Rave report, including database connections. Those Rave components that have no direct representation in Fast Reports, are converted to components with the closest behaviour. Here is an example of a complex Rave report converted to an .fr3 file: The process of importing When you click the File > Open menu item and choose a .rav file, the convertor at first checks how many reports are inside the file. If there are several reports inside the file - Rave allows to have multiple reports in a single file - then each report will be converted to a fr3 file and the convertor will ask to choose a folder where all these .fr3 files can be saved: After that the convertor will start processing each report and during this stage, which can be quite long for big .rav files with numerous reports inside, the following progress bar will be shown: When all reports converted, the last created .fr3 file is shown in the designer: Notes Some old versions of Rave have certain issues with loading numerous big SQL queries, which may result in memory corruption and undefined behaviour of the convertor. To avoid such problems, the convertor provides the property LoadQueries which can be disabled in order to skip loading SQL queries. However, if the convertor is compiled with newer Rave sources, no problems should occur. Links This topic is discussed on our forum in this topic. There you can also find a test app that can convert .rav files. As you know, Embarcadero RAD Studio XE2 is coming with the special edition of FR4. Many people have been asking us: is it possible to convert Rave reports (.rav files) to Fast reports (.fr3 files)? It is possible, because we have developed a convertor from Rave reports for this purpose. How to convert a .rav file From a user's point of view, to convert a .rav file no special actions needed: just click File > Open in the main menu of the designer and then choose a .rav file. If you are a developer and want to know how to enable the ability to import .rav files, then consider this code: Code Tags: VCL, FastReport, Converter ### RDL import in FastReport .NET URL: https://www.fast-report.com/blogs/rdl-import-fastreport-net What is the RDL import RDL  report it's a report template in format of  Report Definition Language . The format used in  Microsoft Reporting Services . Reports can be generated in  Microsoft Visual Studio  and  Microsoft Report Builder , and in some third-party editors. Reports are stored in files with extension  rdl  or  rdlc .  RDL  import it's a tool that allows you to open  RDL  report in  FastReport. NET  designer. Users who have previously used the  RDL  reports and went to  FastReport. NET  can use old templates. Reports can be quickly and easily imported to FastReport .NET.  Importing RDL report It's simple operation. You should to go to the  File  menu in  FastReport .NET  desinger and select  Open... . In the window that appears, select the filter  RDL files (*. rdl; *. rdlc) . The selected file will be automatically converted to a FastReport. NET  template and opened in the designer.  On the two following pictures you can see  RDL  report (left) and the same report converted to  FastReport. NET  format. Tags: .NET, .NET, FastReport, FastReport ### Recap of 2024 and plans for 2025 URL: https://www.fast-report.com/news/recap2024-plans2025 Summary: Key achievements and changes in 2024: new product launches, support for modern technologies, and more. Key achievements and changes in 2024: new product launches, support for modern technologies, and more. Friends, this year has been eventful and productive for us! 📌 Key achievements Release of new products: we launched FastReport Avalonia – a tool for cross-platform work on reports for Windows, MacOS, and Linux. Changes in approach to product formation: we split the product content in a way where you do not have to buy unnecessary functionality. What changed for our products? For Delphi and Lazarus: Improved work with hierarchical data in FastReport for Delphi and Lazarus by adding the TfrTreeView component. Additional capabilities for working with maps were added by supporting the GeoJSON and TopoJSON formats. Improved digital signatures, added infinite table width, expanded barcode capabilities, and improved display accuracy and compatibility of PDF, HTML5, SVG, DOCX, and XLSX export filters. In the latest version, we have enhanced the capabilities of working with reports in complex scenarios and provided a higher level of integration with modern development environments, including RAD Studio 12.2. Next year, we plan to add new components, support for RFID tag EPC in ZPL, new transports, improved export filters, and much more. For .NET: We have abandoned the legacy .NET Standard 2.0 - 3.1 and .NET 5 compatibility layer in our libraries. Now the minimum supported .NET version is .NET 6, and the minimum supported framework is .NET Framework 4.6.2. With the latest version of the FastReport .NET library, FastReport Business Graphics .NET and FastCube .NET now support .NET 9. To do this, we abandoned binary serialization (BinaryFormatter). This year, we relaunched FastCube .NET , a library for working with OLAP cubes and operational analysis of big data. Now FastCube.Core.Web supports  Linux and MacOS. It opens up the possibility of developing web applications with OLAP functionality on any server. One of the key changes in the FastCube .NET 2025.1 release was the complete removal of the dependency on the System.Drawing.Common library in the FastCube.Core module. This was done to increase the library compatibility with various platforms and improve performance. The FastReport Online Designer visual template designer has also changed. In 2024, a new "SparkGraphic" object was added, it became possible to create guidelines on the page and a new component menu was implemented. When editing the report code, the Intellisense functionality was added, which provides automatic code completion and syntax hints, which allows users to write code faster and more accurately directly in the web interface. In 2025, we plan to add a new plugin allowing you to convert user reports from MS Word to .frx. In addition, a connection to Google Sheets will be implemented in the future. FastScript .NET for executing scripts will be released in the first half of the year. The new library will contain a compilation technology that allows you to convert intermediate code into machine code for a specific platform (Native AOT). We are striving to create a complete ecosystem of products for different platforms, so next year we will also work on their integration with each other. For service solutions: In FastReport Cloud , we improved the automatic task execution system, added printing from the browser, and developed a font storage, finalized the SDK. Improved the usability and speed of the API Added new API methods for working with the cloud, allowing you to perform familiar operations faster and more conveniently: bulk copying, deleting, and moving files; a new upload method that allows you to upload large files and use fewer resources; methods for obtaining the current user's rights to files, groups, tasks, and data sources; added the ability to receive and edit report parameters without opening the report itself for editing. Made the user panel more convenient Improved work with the Online Designer: added a Richtext preview, and style templates for ChartObject. Gave the ability to edit the user's avatar, made a new trash bin for deleting files, improved the Tasks page; finalized data sources, giving the ability to use stored procedures and add custom tables from SQL. In 2025, we plan to release a new product and add parameter transfer to StaticPreview UI. We thank you for trusting us in 2024. Let's move on and create the future together! Happy Holidays! ### Recursion in MS SQL URL: https://www.fast-report.com/blogs/recursion-mssql Sometimes, a stored procedure or function is required to use the results of a sample several times. In such cases, we often use temporary tables. However, it is worth considering some advantages and disadvantages of temporary tables. Advantages: Temporary tables are full tables. Therefore, you can create indexes and statistics for them. This can significantly speed up work with them. Disadvantages: Filling in a temporary table associated with the movement of data. Although it is a simple Insert operation, there is still a load on the disks with large amounts of data; There is a risk of increased query execution time. Temporary tables are created in the tempdb database. And the load on this base is substantial. Considering the risks of using temporary tables, the use of a generic table expression looks much more attractive. Generic table expression Common Table Expression (CTE) is an expression with a common table that can be used many times in a query. The CTE does not save data, but creates something like a temporary view. Some may say that a CTE is a subquery that precedes the main query. But this is not entirely true, because the subquery cannot be used several times, however, CTE can. In which cases is it better to use a generic table expression? 1. To create recursive queries, with which you can get data in a hierarchical form; 2. With multiple references to the data set within the same query; 3. In order to replace views, temporary tables, table variables. The advantages of CTE include: recursion, high speed query, concise query. And the disadvantages can be only in the limited use. A CTE can only be used for the query to which it belongs. You cannot use it in other queries. In this case, you will have to use temporary tables or table variables. Generic table expressions are simple and recursive. Simple ones do not include references to theirselves, and recursive respectively include. Recursive CTEs are used to return hierarchical data. Consider an example of a simple CTE statement: ``` WITH CTEQuery (Field1, Field2) AS ( SELECT (Field1, Field2) FROM TABLE ) SELECT * FROM CTEQuery ```  Here CTEQuery is the name of the CTE;                 Field1, Field2 – field names of the request;                 Table – some table from which data is selected for use in the main query. In this example, it is possible and not to explicitly specify the selection fields, since we select all the fields from the TestTable table: ``` WITH CTEQuery AS ( SELECT * FROM Table ) SELECT * FROM CTEQuery ```  With the help of CTE, you can optimize the main query if you take out part of the logic in the CTE. The fact is that CTE allows you to create several expressions (queries) at once. So you can split a complex query into several preliminary “views” using the CTE, and then link them in a common query:  ``` WITH CTEQuery1 (Field1, Field2) AS ( SELECT Field1 AS ID, Field2 FROM Table1 WHERE Field2 >= 1000 ), CTEQuery2 (Field3, Field4) AS ( SELECT Field3 AS ID, Field4 FROM Table2 WHERE Field4 = 'Москва' )   SELECT * FROM CTEQuery1 INNER JOIN CTEQuery2 ON CTEQuery2.ID = CTEQuery1.ID ```  As mentioned above, the main purpose of the CTE is recursion. A typical task for recursion is a tree traversal. So we can build a tree with the help of “with”. The recursive query structure first appeared in SQL Server 2005. Take a look at the WITH statement:  ``` WITH RecursiveQuery AS ( {Anchor} UNION ALL {Joined TO RecursiveQuery} ) SELECT * FROM RecursiveQuery ```  {Anchor} - anchor, a query that defines the initial element of the tree (hierarchical list). Usually in anchor there is a WHERE clause that defines specific rows of the table. After UNION ALL, the target table is followed from JOIN to the CTE expression. {Joined to RecursiveQuery}- SELECT from target table. This is usually the same table used in the anchor. But in this query, it is connected to the CTE expression, forming recursion. The condition of this connection determines the parent-child relationship. It depends on whether you go to the upper levels of the tree or to the lower ones. Let's look at a recursive query that returns a list of organizational units. Prepare data for this request: ``` CREATE TABLE Department ( ID INT, ParentID INT, Name VARCHAR(50) )   INSERT INTO Department ( ID, ParentID, Name ) VALUES (1, 0, 'Finance Director') INSERT INTO Department ( ID, ParentID, Name ) VALUES (2, 1, 'Deputy Finance Director') INSERT INTO Department ( ID, ParentID, Name ) VALUES (3, 1, 'Assistance Finance Director') INSERT INTO Department ( ID, ParentID, Name ) VALUES (4, 3, 'Executive Bodget Office') INSERT INTO Department ( ID, ParentID, Name ) VALUES (5, 3, 'Comptroller') INSERT INTO Department ( ID, ParentID, Name ) VALUES (6, 3, 'Purchasing') INSERT INTO Department ( ID, ParentID, Name ) VALUES (7, 3, 'Debt Management') INSERT INTO Department ( ID, ParentID, Name ) VALUES (8, 3, 'Risk Management') INSERT INTO Department ( ID, ParentID, Name ) VALUES (9, 2, 'Public Relations') INSERT INTO Department ( ID, ParentID, Name ) VALUES (10, 2, 'Finance Personnel') INSERT INTO Department ( ID, ParentID, Name ) VALUES (11, 2, 'Finance Accounting') INSERT INTO Department ( ID, ParentID, Name ) VALUES (12, 2, 'Liasion to Boards and Commissions') ```  It is already clear that the structure of the divisions in the organization is hierarchical. Our task is to get a list of departments subordinate to the assistant of the financial director. If we talk in the context of a hierarchical tree, then we must find a branch and its leaves. But first, let's see the whole list of divisions: ID ParentID Name 1 0 Finance Director 2 1 Deputy Finance Director 3 1 Assistance Finance Director 4 3 Executive Bodget Office 5 3 Comptroller 6 3 Purchasing 7 3 Debt Management 8 3 Risk Management 9 2 Public Relations 10 2 Finance Personnel 11 2 Finance Accounting 12 2 Liasion to Boards and Commissions  At the head there is the financial director, the deputy and the assistant report to him. Each of them has a group of units in its jurisdiction. The ParentID field indicates the "host" identifier. Thus, we have a ready-made master-slave connection. Let's write a recursive query using WITH. ``` WITH RecursiveQuery (ID, ParentID, Name) AS ( SELECT ID, ParentID, Name FROM Department dep WHERE dep.ID = 3 UNION ALL SELECT dep.ID, dep.ParentID, dep.Name FROM Department dep JOIN RecursiveQuery rec ON dep.ParentID = rec.ID ) SELECT ID, ParentID, Name FROM RecursiveQuery ```  In this example, the names of the fields that are to be selected in the CTE are clearly indicated. However, internal queries have the same fields. So you can simply remove this listing along with the brackets. Inside the CTE, we have two similar queries. The first one selects the root element of the tree that we are building. The second is all subsequent subordinate elements, due to the connection with the CTE itself. "Recursion" in SQL is not really a recursion, but an iteration. You need to submit a query with a JOIN as a loop, and then everything will be immediately clear. In each iteration, we know the value of the previous sample and get the subordinate elements. In the next step, we get the subordinate elements for the previous sample. That is, each iteration is a transition down a tree, or up, depending on the communication condition. The result of the above query is: ID ParentID Name 3 1 Assistance Finance Director 4 3 Executive Bodget Office 5 3 Comptroller 6 3 Purchasing 7 3 Debt Management 8 3 Risk Management  But what would this query look like without using CTE: ``` DECLARE @Department TABLE (ID INT, ParentID INT, Name VARCHAR(50), Status INT DEFAULT 0) -- First, we select the anchor in the table variable - the initial element from which we build the tree. INSERT @Department SELECT ID, ParentID, Name, 0 FROM Department dep WHERE dep.ID = 3   DECLARE @rowsAdded INT = @@ROWCOUNT -- We are going through a cycle until new departments are added in the previous step. WHILE @rowsAdded > 0 BEGIN -- Mark entries in a table variable as ready for processing UPDATE @Department SET Status = 1 WHERE Status = 0 -- Select child records for the previous record INSERT @Department SELECT dep.ID, dep.ParentID, dep.Name, 0 FROM Department dep JOIN @Department rec ON dep.ParentID = rec.ID AND rec.Status = 1 SET @rowsAdded = @@ROWCOUNT -- Mark entries found in the current step as processed UPDATE @Department SET Status = 2 WHERE Status = 1 END SELECT * FROM @Department ```  Such a cycle runs much slower than the CTE expression. And besides, it requires the creation of a table variable. And the amount of code doubled. Thus, CTE expressions are the best solution for a recursive tree traversal in MS SQL. Tags: SQL, SQL ### Register Json data in FastReport.NET URL: https://www.fast-report.com/blogs/register-json-net If you need to register Json as data source in FastReport.NET, this can be done through the registration of business objects. For parsing json you need to describe the data scheme in the C# classes, for example: ``` public class Product { public string Name { get; set; } public double UnitPrice { get; set; } }   public class Category { public string Name { get; set; } public string Description { get; set; } public List Products { get; set; } }   string json = "..."; // your json   List categories = JsonConvert.DeserializeObject>(json); // using the Newtonsoft.Json library for deserialization   Report report = new Report(); report.Load(@"C:\report.frx"); report.RegisterData(categories, "Categories"); ``` If you do not know the scheme or if it is changing during the work of the program, it can be generated dynamically. For this we use the library JSON C# Class Generator, you can download it from https://jsonclassgenerator.codeplex.com . Code to generate C# classes: ``` string json = "..."; // your json   if (json.StartsWith("[")) // if json is an array, then it would be better if we name it ``` ``` { json = "{\"Data\":" + json + "}"; // Under this name the data will be displayed in designer, so you can add multiple data sources ``` ``` }   JsonClassGenerator gen = new JsonClassGenerator() { Example = json, UseProperties = true, Namespace = "__JSON__", MainClass = "__JSON__", };   string source = ""; using (StringWriter sw = new StringWriter()) { gen.OutputStream = sw; gen.GenerateClasses(); sw.Flush(); source = sw.ToString(); } ``` ``` As a result we obtain the generated classes in a string. Now we need to access them from the code; in order to do this compile them using CSharpCodeProvider and get Type: ``` ``` Type type = null; using (CSharpCodeProvider compiler = new CSharpCodeProvider()) { CompilerParameters parameters = new CompilerParameters() { GenerateInMemory = true, }; CompilerResults results = compiler.CompileAssemblyFromSource(parameters, source); type = results.CompiledAssembly.GetType("__JSON__.__JSON__"); } ``` Note: This example shows a compilation in the current AppDomain. This means that it can not be unloaded from memory, and each compilation will eat off memory. To avoid this, you can use CSharpCodeProvider in another AppDomain. Deserialize json using the generated classes. The easiest way to do this is to use the library Newtonsoft.Json; You can get it through NuGet with the command "Install-Package Newtonsoft.Json". ``` object obj = JsonConvert.DeserializeObject(json, type); ``` ``` Now we have objects, so let's register them in FastReport.NET: ``` ``` PropertyInfo[] properties = type.GetProperties();   Report report = new Report(); report.Load(@"C:\report.frx");   foreach (var prop in properties) { report.RegisterData((IList)prop.GetValue(obj, null), prop.Name); } ``` So now you can run designer and see the results. Tags: .NET, .NET, FastReport, FastReport ### Release of a library for executing scripts in C# URL: https://www.fast-report.com/news/release-fast-script-net Summary: We are pleased to announce the release of a cross-platform library for executing complex scripts in C# called FastScript .NET. We are pleased to announce the release of a cross-platform library for executing complex scripts in C# called FastScript .NET. We are pleased to announce the release of a cross-platform library for executing complex scripts in C# called FastScript .NET . Libraries for executing complex scripts provide the ability to dynamically generate and execute code, which can be useful in various scenarios such as developing plugins, creating user scripts, and so on. Working in Constrained Environments. FastScript .NET is built on the classic "lexer-parser-interpreter" model. It does not use compilation to machine code, allowing it to operate in environments where code generation is restricted (NativeAOT, iOS, WASM). Its performance is comparable to other solutions that use interpretation (such as Lua and JavaScript), although it is slower than compiled C# code. C# as a Scripting Language. FastScript .NET has full integration with the .NET platform and allows the use of all libraries, frameworks, and APIs. A unified code base in C# for scripts eliminates the need to maintain code in multiple languages. Compactness. The small size of the library (just 300 KB) makes it convenient to use even in resource-constrained projects without overloading the system. Since version 2025.1.21 FastScript .NET is part of the WinForms , WPF , WEB , Mono and Avalonia packages. Our library is also part of Ultimate.NET solutions with all source codes. Learn more ### Release of FastReport Business Graphics .NET 2025.2 URL: https://www.fast-report.com/news/release-business-graphics-2025.2 Summary: If you are planning to port to .NET 9 or are already using it in your projects, you can be sure that our components are ready to work without any additional modifications! If you are planning to port to .NET 9 or are already using it in your projects, you can be sure that our components are ready to work without any additional modifications! We are pleased to announce the release of FastReport Business Graphics .NET ! In this update, we focused on increasing compatibility, improving support for modern platforms, and preparing for future versions of .NET. Compatibility with .NET 9 One of the key changes was the addition of the necessary attributes to the components to ensure full compatibility with .NET 9. This means that FastReport Business Graphics .NET now works correctly in the most latest environments, maintaining stability, performance and support for new features of the framework. If you are planning to port to .NET 9 or are already using it in your projects, you can be sure that our components are ready to work without any additional modifications! Updating supported .NET versions We have updated the list of target platforms, focusing on modern developer requirements: The main version is now considered to be .NET 8 – it is a stable and productive framework that is recommended for most projects. Support for .NET 6 is also retained for those who haven't upgraded yet but are using long-term support (LTS). Added support for .NET 9 – for developers who want to use the latest technologies and features. Thanks to these changes, FastReport Business Graphics .NET remains a relevant tool for working with business graphics in your projects. List of changes [Common] + added attributes to components required for compatibility with .NET 9; + .NET versions have been updated, the main version is now .NET 8, and supported target platforms include .NET 6, .NET 8, and .NET 9. ### Release of FastReport Online Designer 2022.1 URL: https://www.fast-report.com/news/fastreport-online-designer-2022.1 Summary: With the 2022.1 update, FastReport Online Designer has new objects and functions that will speed up the creation and optimization of your reports. With the 2022.1 update, FastReport Online Designer has new objects and functions that will speed up the creation and optimization of your reports. 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. ### Release of the New FastReport WPF Report Generator URL: https://www.fast-report.com/news/release-fastreport-wpf Summary: The release of the first version of the new FastReport WPF report generator for document creation and development of custom business applications. The release of the first version of the new FastReport WPF report generator for document creation and development of custom business applications. We are excited to announce the release of the first version of the report generator for Windows Presentation Foundation - FastReport WPF . This high-performance library for creating reports and documents will assist you in developing business applications to meet various needs on the .NET Desktop and Web platforms. Create, view, and export detailed, visually appealing, interactive reports using a lightweight, versatile reporting tool. The report generator includes a powerful core for building reports, a user-friendly designer with a familiar interface, and a fast viewer of reports. FastReport WPF uses the SkiaSharp graphics engine for comfortable work with Windows. The WPF report generator also has an advanced code editor with Roslyn-based intelligence support. FastReport WPF is part of the unified FastReport ecosystem. Reports created in other products will seamlessly work in FastReport WPF and vice versa. NuGet packages via NuGet Server will be available for download in September. Now you can get WPF packages for your project using the installer from cpanel.fast-report.com . ### Release of the new version of FastReport Desktop 2022.1 URL: https://www.fast-report.com/news/fastreport-desktop-2022.1 Summary: New Year's Eve update of FastReport Desktop to version 2022.1. New Year's Eve update of FastReport Desktop to version 2022.1. Updated version in FastReport Desktop 2022.1. Even more possibilities with FastReport. New features Added new "Advanced Matrix" object: Here is a list of its key features: row and column headers can contain groups and simple elements in any order. This allows you to build asymmetric reports; collapse buttons allow you to interactively manage the visibility of individual elements; sorting buttons allow you to interactively sort the matrix by the selected values, including the total values; Top N grouping allows you to display N values in the header, and group the remaining values into a separate element with the ability to expand; output of matrix headers in a stepped form; sorting headers by total values; a wide range of aggregate functions; support of custom aggregate functions; a wide range of special functions that allow you to get the values of totals, adjacent cells, as well as functions for calculating percentages; support for "Sparkline" and "Gauge" objects in data cells. Learn more about this object in the  documentation . Added  GS1 DataBar barcodes : Limited, Omnidirectional, Stacked and Stacked Omnidirectional. New properties: Config.CompilerSetting.ExceptionBehaviour and Config.CompilerSetting.Placeholder These properties allow you to customize the behavior when exceptions with invalid database field and table names occur. Config.CompilerSetting.Placeholder  is a string variable that is used to replace expressions with nonexistent names. By default, the value of this variable is an empty string. Config.CompilerSetting.ExceptionBehaviour  can have the following values: ExceptionBehaviour.Default  - default behavior, as it was before. If there are errors with invalid names, an error message is displayed. Report preparation is interrupted.  ExceptionBehaviour.ReplaceExpressionWithExceptionMessage  - invalid expressions are replaced by the text of the exception message. Errors are not shown at that. Report preparation is not interrupted.  ExceptionBehaviour.ShowExceptionMessage  - A message appears with the exception text, after pressing OK, report preparation continues. Incorrect expressions are replaced with the value of Placeholder variable.  ExceptionBehaviour.ReplaceExpressionWithPlaceholder  - invalid expressions are simply replaced with Placeholder. No error messages. Report preparation is not interrupted. Example with variable values:  ExceptionBehaviour = ExceptionBehaviour.ReplaceExpressionWithPlaceholder Placeholder = "NO DATA! Here you can see that the table has a field named FistName, but it's not specified correctly in the expression. And this is the result of preparing such a report. Previously it would have been impossible to prepare it due to errors. Improved translation quality of RTF into report objects. Conversion of RTF into report objects is optimized. RTF translation in table cells is added. Lots of bugs fixed. Exports improvements Implemented export of watermark to Word and RTF. Added SVG image scaling in export matrix. This improves the quality of exported images when exporting to Word and Excel. However, this increases the size of the output file. To use this feature, you must enable the "Print optimized" option when exporting. Export groups to single sheets in Excel 2007 has been implemented. Excel 2007 has added the ability to export a property that determines the size and location of the image when exporting. Now you can define how the image will behave in a cell when its position and size are changed. In doing so, the image can: move and resize together with the cell; move together with the cell, but not change its size; don't move or resize; Implemented the ability to hide or show grid lines when exporting to Excel 97. Added "Don't rotate landscape pages when printing" option in HTML export. Previously, we were forcibly rotating landscape-oriented pages when printing. The reason was that browsers cannot correctly print reports with pages both in portrait and landscape orientation. When you print such documents, pages with landscape orientation are cut off by the width of pages with portrait orientation. Now, you can adjust whether to rotate pages in landscape orientation or not. In addition, a bug where landscape-oriented pages were always rotated, even when there are no portrait-oriented pages, has been fixed. Complete list of changes [Engine] + added a new AdvMatrixObject; + added GS1 DataBar barcodes: Limited, Omnidirectional, Stacked and Stacked Omnidirectional; + added new properties: Config.CompilerSetting.ExceptionBehaviour and Config.CompilerSetting.Placeholder. These properties give the ability to customize the behavior when exceptions are thrown with incorrect names of database tables and fields; + added translation of RichObject inside TableCell; * reworked translation of RichObject into report objects; - fixed ShiftMode of translated RTF object; - fixed a bug with two parameters with the same name in report leading to System.ArgumentException; - fixed a bug with subreport containing multicolumn Databand; - fixed a bug with wrong band height calculation; - fixed a bug with displaying of hyperlinks when converting RTF to report objects; - fixed translation of RichObject if it set from a report script; - fixed a bug with private fonts added to Config.PrivateFontCollection; [.NET Core] + added support for .NET 6; - fixed incorrect search for Bold-Italic fonts; [Designer] + added verification of entered data in editing window of the QR code of SberBank; - fixed a bug with line break in text object editor; - fixed a bug when converting rdl reports containing matrices inside table cells; - fixed a bug with guide lines in the designer; - fixed a bug with Report tree window; - fixed a bug leading to System.NullReferenceException and crash of the designer during its launch when the Auto Guides option is enabled; [Preview] - fixed a bug with shifting the position of objects when switching the view of bands while editing a prepared page; [Exports] + implemented export of watermark to Word; + implemented export of watermark to RTF; + added "Don't rotate landscape pages when printing" option in export to HTML; + added the ability to change the name of the attached file when sending by Email; + add zooming of SVG images in export matrix; + added the ability to export a property that determines the size and position of the image when exporting to Excel 2007; + implemented ability to hide or show gridlines when exporting to Excel 97; + implemented export of groups on separate sheets to Excel; + implemented export of transparency level watermark images to Word; + implemented export image size of watermark to RTF; - fixed a bug leading to System.NullReferenceException when exporting to text, tables with rows count less then one; - fixed incorrect left padding of tables in export to Word; - fixed a bug with Wingdings font in HTML tags when exporting to HTML; - fixed a bug with export Wingdings and Webdings fonts to HTML; - fixed a bug with width of frame in export to PowerPoint; - fixed a bug with exporting objects with transparent fill to RTF; - fixed a bug with exporting objects with transparent fill to Word; - fixed a bug leading to System.OutOfMemoryException when exporting to PDF; - fixed incorrect line break display when exporting to HTML; - fix out of memory when export to PDF; - fixed bugs in export to PDF in non-Windows systems; - fixed a bug with exporting tables with more than 63 columns to Word 2007; - fixed a bug leading to a memory leak and System.OutOfMemoryException in PDF-export when the "Text in curves" option is enabled; - fixed a bug with line break in HTML-export; ### Release of the new version of FastReport for DBA 2022.1 URL: https://www.fast-report.com/news/fastreport-dba-2022.1 Summary: New Year's Eve update of FastReport for DBA to version 2022.1. New Year's Eve update of FastReport for DBA to version 2022.1. Updated version in FastReport for DBA 2022.1. Even more possibilities with FastReport. New features Added new "Advanced Matrix" object: Here is a list of its key features: row and column headers can contain groups and simple elements in any order. This allows you to build asymmetric reports; collapse buttons allow you to interactively manage the visibility of individual elements; sorting buttons allow you to interactively sort the matrix by the selected values, including the total values; Top N grouping allows you to display N values in the header, and group the remaining values into a separate element with the ability to expand; output of matrix headers in a stepped form; sorting headers by total values; a wide range of aggregate functions; support of custom aggregate functions; a wide range of special functions that allow you to get the values of totals, adjacent cells, as well as functions for calculating percentages; support for "Sparkline" and "Gauge" objects in data cells. Learn more about this object in the  documentation . Added  GS1 DataBar barcodes : Limited, Omnidirectional, Stacked and Stacked Omnidirectional. New properties: Config.CompilerSetting.ExceptionBehaviour and Config.CompilerSetting.Placeholder These properties allow you to customize the behavior when exceptions with invalid database field and table names occur. Config.CompilerSetting.Placeholder  is a string variable that is used to replace expressions with nonexistent names. By default, the value of this variable is an empty string. Config.CompilerSetting.ExceptionBehaviour  can have the following values: ExceptionBehaviour.Default  - default behavior, as it was before. If there are errors with invalid names, an error message is displayed. Report preparation is interrupted.  ExceptionBehaviour.ReplaceExpressionWithExceptionMessage  - invalid expressions are replaced by the text of the exception message. Errors are not shown at that. Report preparation is not interrupted.  ExceptionBehaviour.ShowExceptionMessage  - A message appears with the exception text, after pressing OK, report preparation continues. Incorrect expressions are replaced with the value of Placeholder variable.  ExceptionBehaviour.ReplaceExpressionWithPlaceholder  - invalid expressions are simply replaced with Placeholder. No error messages. Report preparation is not interrupted. Example with variable values:  ExceptionBehaviour = ExceptionBehaviour.ReplaceExpressionWithPlaceholder Placeholder = "NO DATA! Here you can see that the table has a field named FistName, but it's not specified correctly in the expression. And this is the result of preparing such a report. Previously it would have been impossible to prepare it due to errors. Improved translation quality of RTF into report objects. Conversion of RTF into report objects is optimized. RTF translation in table cells is added. Lots of bugs fixed. Exports improvements Implemented export of watermark to Word and RTF. Added SVG image scaling in export matrix. This improves the quality of exported images when exporting to Word and Excel. However, this increases the size of the output file. To use this feature, you must enable the "Print optimized" option when exporting. Export groups to single sheets in Excel 2007 has been implemented. Excel 2007 has added the ability to export a property that determines the size and location of the image when exporting. Now you can define how the image will behave in a cell when its position and size are changed. In doing so, the image can: move and resize together with the cell; move together with the cell, but not change its size; don't move or resize; Implemented the ability to hide or show grid lines when exporting to Excel 97. Added "Don't rotate landscape pages when printing" option in HTML export. Previously, we were forcibly rotating landscape-oriented pages when printing. The reason was that browsers cannot correctly print reports with pages both in portrait and landscape orientation. When you print such documents, pages with landscape orientation are cut off by the width of pages with portrait orientation. Now, you can adjust whether to rotate pages in landscape orientation or not. In addition, a bug where landscape-oriented pages were always rotated, even when there are no portrait-oriented pages, has been fixed. Complete list of changes [Engine] + added a new AdvMatrixObject; + added GS1 DataBar barcodes: Limited, Omnidirectional, Stacked and Stacked Omnidirectional; + added new properties: Config.CompilerSetting.ExceptionBehaviour and Config.CompilerSetting.Placeholder. These properties give the ability to customize the behavior when exceptions are thrown with incorrect names of database tables and fields; + added translation of RichObject inside TableCell; * reworked translation of RichObject into report objects; - fixed ShiftMode of translated RTF object; - fixed a bug with two parameters with the same name in report leading to System.ArgumentException; - fixed a bug with subreport containing multicolumn Databand; - fixed a bug with wrong band height calculation; - fixed a bug with displaying of hyperlinks when converting RTF to report objects; - fixed translation of RichObject if it set from a report script; - fixed a bug with private fonts added to Config.PrivateFontCollection [Designer] + added verification of entered data in editing window of the QR code of SberBank; - fixed a bug with line break in text object editor; - fixed a bug when converting rdl reports containing matrices inside table cells; - fixed a bug with guide lines in the designer; - fixed a bug with Report tree window; - fixed a bug leading to System.NullReferenceException and crash of the designer during its launch when the Auto Guides option is enabled; [Preview] - fixed a bug with shifting the position of objects when switching the view of bands while editing a prepared page; [Exports] + implemented export of watermark to Word; + implemented export of watermark to RTF; + added "Don't rotate landscape pages when printing" option in export to HTML; + added the ability to change the name of the attached file when sending by Email; + add zooming of SVG images in export matrix; + added the ability to export a property that determines the size and position of the image when exporting to Excel 2007; + implemented ability to hide or show gridlines when exporting to Excel 97; + implemented export of groups on separate sheets to Excel; + implemented export of transparency level watermark images to Word; + implemented export image size of watermark to RTF; - fixed a bug leading to System.NullReferenceException when exporting to text, tables with rows count less then one; - fixed incorrect left padding of tables in export to Word; - fixed a bug with Wingdings font in HTML tags when exporting to HTML; - fixed a bug with export Wingdings and Webdings fonts to HTML; - fixed a bug with width of frame in export to PowerPoint; - fixed a bug with exporting objects with transparent fill to RTF; - fixed a bug with exporting objects with transparent fill to Word; - fixed a bug leading to System.OutOfMemoryException when exporting to PDF; - fixed incorrect line break display when exporting to HTML; - fix out of memory when export to PDF; - fixed bugs in export to PDF in non-Windows systems; - fixed a bug with exporting tables with more than 63 columns to Word 2007; - fixed a bug leading to a memory leak and System.OutOfMemoryException in PDF-export when the "Text in curves" option is enabled; - fixed a bug with line break in HTML-export ### Release of Version 2026.1 for FastReport Online Designer URL: https://www.fast-report.com/news/release-fastreport-online-designer-2026.1 Summary: In version 2026.1 of FastReport Online Designer, there is a report validator, new components and controls for .NET and VCL solutions, redesigned the main toolbar, improved the IntelliSense system. In version 2026.1 of FastReport Online Designer, there is a report validator, new components and controls for .NET and VCL solutions, redesigned the main toolbar, improved the IntelliSense system. In the new  FastReport Online Designer version, significant improvements and new features have been introduced. Among the key changes is the addition of a report validator tool, which allows for automatic checking of reports for errors and potential display issues. Furthermore, this version includes new components and controls for .NET and VCL solutions, such as the RFID tag component, various controls for dialog pages (PictureBox Control, GroupBox Control, Panel Control, and others), as well as components for working with zip codes, text data, and visualizations (ZipCode, Cellular Text, Gauge, Interval Gauge, etc.). Version 2026.1 also features a redesigned main toolbar, an improved code autocompletion system (IntelliSense), implemented capabilities for adjusting Label size, and the ability to prohibit editing data sources for .NET solutions. In addition, a number of critical bugs related to saving settings, data display, and component functionality have been fixed. New Features Report Validator In version 2026.1, an automatic report validation tool has been added to check for errors and potential display issues within a dedicated console panel. It performs a comprehensive validation of the report’s structure: checking for overlapping components, components without names or with duplicate names, elements outside parent containers, and components with zero dimensions.  This helps identify and eliminate errors during the report development phase. Components for .NET Solutions Support RFID Tag Component In FastReport Online Designer for .NET solutions, an RFID Label component has been added. RFID (Radio Frequency Identification) is a radio-frequency identification technology widely used for automated accounting, tracking goods, and managing supply chains. It’s important to note that while the RFID label will not function in WebReport export, the ability to add it to a report and save it is crucial—such a report can be opened and used in the desktop version of FastReport .NET with full RFID support. Controls for Dialog Pages from .NET Solutions In version 2026.1, the following controls have been added for working with dialog pages: PictureBox Control The PictureBox control is designed to display images on dialog forms. It allows you to add company logos, icons, illustrations, and other graphical elements, making dialog forms more informative and visually appealing. The control supports various image formats (PNG, JPEG, BMP, GIF) and offers scaling modes (stretch, fit, center). Components for VCL Solutions Checkbox Component In version 2026.1, a Checkbox component has been added for reports in the .fr3 format (FastReport VCL). This component represents a boolean field that allows for displaying "on/off" states in reports. The Checkbox can be used on report pages to visualize boolean values from data sources or for interactive user interaction. The component supports all core properties from FastReport VCL, including appearance customization, data binding, and event handling. Combobox Component A Combobox component has been added—a dropdown list with pre-set values. This component allows the user to select one option from a predefined list of choices. These features will assist you in creating interactive reports and dialog forms where user selection needs to be limited to a specific set of values. The Combobox supports customization of the item list and can be bound to data sources for dynamic population of values. ListBox Component The ListBox component has been implemented—a list with values that the user can select. Unlike a Combobox, a ListBox displays all available items simultaneously as a list, making it convenient for working with a few options where the visibility of all choices is important. The component supports multiple item selection, list scrolling for many items, as well as appearance customization and data binding. ZipCode Component The ZipCode component has been added, a specialized component for displaying postal codes. The component visualizes the zip code using segmented digits, stylized to resemble the format used on postal envelopes. This ensures a standardized display of postal codes in documents, making them easily recognizable. ZipCode automatically formats entered numerical values according to accepted postal code display standards and supports customization of segment size and style. Cellular Text Component The Cellular Text component has been implemented for displaying text within cells. This component places each character of the text into a separate cell, making it ideal for displaying data where one character per cell is required (e.g., serial numbers, codes, document numbers). The Cellular Text component supports customization of cell size, borders, text alignment within cells, and can automatically split entered text into individual characters. Gauge Component The Gauge component has been added—a dial or progress indicator for visualizing numerical values. Gauge allows for a clear display of metrics, KPIs, and other indicators in reports, making them more understandable and visually appealing. The component supports various display styles (circular, linear), customization of value ranges, color zones for indicating critical values, and can be linked to data sources for dynamic display of indicators. Interval Gauge Component The Interval Gauge component has been implemented for displaying intervals and ranges of values. Unlike a regular Gauge, this component specializes in visualizing the span between values, which is useful for displaying time intervals, price ranges, permissible deviations, and other similar data. The component allows customization of the interval’s start and end values, display styling, and color coding of different range zones. Gradient Component The Gradient component has been added for creating gradient fills in reports. This component allows for smooth color transitions, which can be used to create visually appealing backgrounds, section dividers, or decorative elements in reports. Gradient supports various gradient types (elliptical, angular, horizontal, vertical, horizontal centered, vertical centered), as well as color customization. HTML Object Component The HTML Object component has been implemented to display HTML content directly within reports. This opens up wide possibilities for formatting text using HTML markup, embedding tables, lists, and other formatted content. The component correctly processes HTML tags, applies styles, and allows for the creation of complexly structured content within the report using familiar HTML syntax. Cross-Tab Component The Cross-Tab component has been added—a powerful tool for creating cross-tabulations and pivot reports without direct connection to data sources. Cross-Tab works with data already loaded into the report via other components (e.g., DataBand), allowing it to group data by multiple dimensions simultaneously and create a matrix view of information with automatic totals calculation. The component supports customizing rows and columns, applying various aggregate functions (sum, average, count), cell formatting, and creating multi-level groupings. DB Cross-Tab Component The DB Cross-Tab component has been implemented—a version of Cross-Tab with the ability to connect directly to database data sources. Unlike the regular Cross-Tab, DB Cross-Tab can independently connect to a database, extract necessary data, perform grouping, and aggregation. This will significantly simplify the creation of pivot reports. Digital Signature Component The Digital Signature component has been added for working with digital signatures in reports. This component allows for adding digital signature fields that can be configured during the report design phase. RFID Label Component The RFID Label component has been implemented for FastReport VCL reports. This is an analog of the RFID Tag component, but adapted for working with the .fr3 format and VCL architecture. The component allows you to configure RFID tag parameters directly in the report designer for label printers that support RFID technology. It is important to note that the RFID label will not function in WebReport export. However, a report containing this label can be opened and used in the desktop version of FastReport VCL with full RFID support. Subreport Component The Subreport component has been added for creating hierarchical reports. Subreport allows one report to be embedded within another, creating a nested structure. This is especially useful for generating complex documents where the main report contains general information, and subreports display detailed data. The component supports passing parameters between the main report and the subreport, linking data sources, and can use separate report files or embedded definitions. System Text Component The System Text component is a specialized text component for displaying system variables (date, time, page numbers) and aggregate functions (sums, totals, record counts) in reports. It provides a convenient configuration dialog instead of manual expression input. It is used for creating headers, footers, and summary blocks in reports. Barcode Component The Barcode component has been added for creating and displaying barcodes in various formats in reports. The component automatically generates barcodes based on input data, making it an essential tool for creating labels, invoices, receipts, and other documents that require barcode encoding. The component supports a wide range of barcode formats (EAN-13, EAN-8, UPC-A, Code 39, Code 128, QR code, and others), configuration of size, orientation, and display of text representation below the barcode. Barcode can be linked to data sources for dynamic generation of unique barcodes for each record in the report. Improvements The Ability to Customize the Size of the Label on The Dialog Form (.NET) In FastReport Online Designer for .NET solutions, the ability to change the width and height of the Label component has been added when the AutoSize property is disabled. Previously, the Label’s size would automatically adjust to its content; now, fixed dimensions can be explicitly set for the component. This provides more control over the layout of elements on dialog forms and allows for the creation of a more predictable and aligned interface. Ability to Prohibit Editing Data Sources (.NET) In FastReport Online Designer for .NET solutions, the ability to prohibit opening the "Data Connection Wizard" form for already created connections has been implemented. This feature allows administrators and developers to protect database connection settings from accidental or unauthorized modification. Redesigned Main Toolbar The main toolbar has been redesigned and enhanced with new functions for more convenient report handling. The panel now provides quick access to key report settings and parameters. Added functions: Report Settings: Quick access to main report parameters. Page Settings: Management of page parameters (size, orientation, margins). Data Source Settings: Quick management of data connections. Format Settings: Access to component formatting parameters. And other frequently used functions. IntelliSense Redesigned and Improved The code autocompletion system (IntelliSense) has been completely redesigned and significantly improved. Suggestions are now displayed more accurately and consistently when writing code in the script editing page. Key improvements: Contextual suggestions for report objects: Objects created in the report now appear in suggestions and work correctly with code completion. Correct handling of object chains: When accessing properties and methods via a dot (e.g., TextObject1.Fill.Color), IntelliSense now correctly displays available members at each level of nesting. Improved suggestion display: Suggestions appear faster and more accurately match the context in which the cursor is located. Stable operation: Instances where suggestions did not appear despite receiving data from the server have been eliminated. These improvements significantly simplify script development in reports, making the coding process more comfortable and productive. Bug Fixes Fixed an Issue with Saving the Connection String A critical error was fixed where the connection string was not saved when editing an existing data source. When attempting to modify connection parameters via the editing form, changes were not applied after saving the report. This issue also affected custom SQL queries. Fixed Unknown Characters in Databand’s Data Source Resolved an issue where, after deleting a table from the data sources, the ‘Data Source’ field of the DataBand component incorrectly displayed the ID of the deleted data source. This occurred due to incorrect handling of references to deleted data sources. Now, when a data source is deleted, all references to it in components are correctly cleared, and the interface displays an appropriate message indicating the absence of a source. Fixed Text Display on Icons A problem with incorrect text display on some icons in the new Online Designer version has been resolved. Fixed Double Call of previewReport Method An issue where calling a report preview from the main toolbar resulted in two API requests instead of one has been fixed. This led to duplicate processing on the server and increased preview loading time. Fixed Errors When Working with Empty RichObject A critical error that occurred when opening a report containing a pre-saved empty RichObject component (a component for working with formatted text) has been resolved. Attempts to open a report preview with an empty RichObject resulted in errors preventing report generation. Now, empty RichObject components are correctly handled both when loading the report and when generating the preview. Fixed Issues with Numerical Data Formatting A set of problems related to saving numerical data format settings in the TextObject component has been resolved: Problem with decimal separator. An error has been fixed where, if a comma ( , ) was specified as the decimal separator and the "Use system settings" checkbox was unchecked, a period ( . ) was displayed in the field instead of a comma when the report was reopened. Problem with negative value format. An error has been resolved where a non-standard negative number format value was reset to the standard (n) after saving and reopening the report. Problem with the number of digits in the decimal part. A specific error has been fixed where the value "2" in the "Decimal places" property, when saving and loading the report, increased to "3" or was completely reset. The problem did not manifest with other values (1, 3, 4, etc.). All format settings are now correctly saved and restored when working with reports, regardless of the operating system used (the problem was reproduced when saving under WSL, Ubuntu, and loading under Windows). Full List of Changes New Functionality: + Report Validator New Components for .NET Solutions: + RFID Tag Component New Controls for Dialog Pages (.NET): + PictureBox Control New Components for VCL Solutions: + Checkbox Component + Combobox Component + ListBox Component + ZipCode Component + Cellular Text Component + Gauge Component + Interval Gauge Component + Cross-Tab Component + DB Cross-Tab Component + HTML Object Component + Gradient Component + Digital Signature Component + Subreport Component + RFID Label Component + System Text Component + Barcode Component Improvements for .NET Solutions: + Added the ability to customize the size of a Label on a dialog form + Added the ability to prohibit opening the "Data Connection Wizard" form + Redesigned the main toolbar: new functions added for configuring reports, pages, data sources, format, and more + IntelliSense reworked and improved: suggestions now display better, and object chains work correctly Improvements for VCL Solutions: + Implemented Align property logic for components Bug Fixes: - Fixed an issue with saving the connection string - Fixed unknown characters in DataBand’s "Data Source" - Fixed text display on icons - Fixed double call of previewReport - Fixed errors when opening a report with an empty RichObject - Fixed data format issues when saving a report ### Release of Version 2026.2 for FastReport Online Designer URL: https://www.fast-report.com/news/release-fastreport-online-designer-2026.2 Summary: The new FastReport Online Designer version (2026.2) brings significantly improved UI and a reworked theming system, a new report workspace, and a substantial amount of new functionality. The new FastReport Online Designer version (2026.2) brings significantly improved UI and a reworked theming system, a new report workspace, and a substantial amount of new functionality. The new FastReport Online Designer version (2026.2) brings significantly improved UI and a reworked theming system, a new report workspace, and a substantial amount of new functionality. Among the key changes are a fully redesigned theme matching the FastReport .NET Avalonia look, a new docking manager for flexible panel layout, a designer settings pop-up, an improved undo/redo system, and much more. New Features FastReport .NET Avalonia theme In version 2026.2 the look of Online Designer has been completely reworked — a new theme matching the FastReport .NET Avalonia style has been added. Styles for all controls, panels, popups and toolbars have been updated. The theme is responsive and renders correctly on screens of various sizes. Redesigned properties panel The properties panel got a refreshed design in the form of a property grid. The properties panel is now merged with the events panel into a single interface, just like in the desktop version of FastReport. Switching between component properties and events is done via a toolbar inside the panel, without having to look for events in a separate window. Docking manager A new docking manager has been implemented, allowing users to flexibly arrange panels in the designer interface. Panels can be dragged, docked to different sides of the screen and resized. New workspace: rulers, guides, band headers The designer workspace has been fully reworked. Rulers and guides have been updated — they now reflect the position of components on the page more accurately and remain readable at any zoom level. Band headers have been moved to a separate layer. In addition, an alternative grid is supported when the Alt key is pressed — components can be moved and resized with a smaller step for the most precise positioning. Toolbars for the Data and ReportTree panels The "Data" and "Report tree" panels have received toolbars with features from FastReport .NET. You can collapse and expand nodes, use drop-down lists, and create new relations. The panels support recursive collapse/expand of nodes, as well as automatic switching to the neighboring item when a node is deleted. Designer settings window A unified designer settings window has been added, combining configuration of appearance, object parameters and ways of interacting with the application. The following sections are available: Interface  — hotkey and autosave settings Report page — grid and measurement-unit settings Object appearance — styles and display of components "Code" page — code page settings "FRX" page — settings for the FRX template editor The settings are saved when the designer is closed and restored on the next launch. Barcode editor window A dedicated window has been implemented for configuring the barcode component, replacing the previous generic expression editor. The window contains separate tabs for each barcode type with the corresponding configuration fields, including Swiss QR. Font editor window The font configuration window has been reworked — its look and structure are now aligned with the FastReport .NET design. The window replaces the previous simplified version and provides access to the full set of font parameters. FRX template editor A built-in editor for the report's XML template (FRX) has been added. The editor with syntax highlighting allows you to view and edit the report structure directly in XML form. Undo/redo is supported, as well as synchronization with the main designer view. Format painter You can now copy and paste styles between components. This is an analog of the "Format painter" tool from the desktop version, available from the toolbar. The feature lets you quickly apply font, color, border and other formatting settings to various components in the report. New shape drawing logic Drawing logic for the PolyLine, Polygon and line components has been reworked. In this version, drawing is interactive, without having to switch tools manually. Presets for quickly adding common shapes have been added to the components panel. New logic for adding components to a page The mechanism for adding components has been reworked to match the desktop FastReport .NET. A component is now added by clicking the components panel — the cursor then enters placement mode and shows a preview of the future component under it. A second click on the page creates the component at the preview position. "Open report" and "Save report" Open and save report functionality is now available. You can open a report from your local file system directly in WebReport without uploading it to the server. You can also save a finished report to your local file system. Note: before using these functions, the data sources must be configured in WebReport. Improvements Undo/Redo: named actions and group undo The undo/redo system has been extended to the code editor and the FRX template editor. Each action in the application now has a textual description, so the change history no longer contains anonymous entries. You can visually select and undo several actions at once with a single click. Code editor improvements Configurable indentation has been added to the report script editor. The indent size is now set in the code editor page settings. UI adaptability The designer interface has been adapted to screens of various sizes in both themes — Avalonia and the classic one. UI elements scale and rearrange when the browser window is resized. Pages panel improvements The pages panel has been improved with the ability to create both regular and dialog pages. A left click on the "+" button creates a regular page. A right click opens a context menu with options to create either a dialog page or a regular report page. New UI element for selecting a data source A new control has been added for selecting a data source, modeled after the desktop FastReport .NET. Instead of typing a table or field name into a text box, the user is now presented with a tree of connections, data sources and columns — the value is picked with a single click. The control is used in two modes: Selecting a data source for a band — in the band editor (the "Data source" tab) only tables are available for selection. Selecting a data field for a component — for example, in the "Data column" tab of the Picture editor: the tree shows tables and their columns, and the user can either pick a specific field or reset the value to None . Editing an existing connection It is now possible to edit a previously created data source connection — open its connection-string parameters, adjust them and save, without recreating the connection from scratch. For security reasons the connection string is not stored in the report itself and lives only in the browser memory of the current designer session. Therefore editing is available under the following conditions: the connection was created within the current session, and the designer page has not been reloaded since; the report has not been reopened after the connection was created. After a page reload or after the report is reopened the designer loses the connection string and editing becomes unavailable — in this case the connection has to be created again. Bug Fixes Fixed problems with saving Cyrillic characters in script code (VCL) Fixed an issue where Cyrillic characters in script code were not saved correctly in VCL reports. Fixed VisibleExpression property (.NET) Fixed an issue where the VisibleExpression property was missing from the properties panel of the text component. The property is now displayed correctly. Fixed an error when using fill on ShapeObj (.NET) Fixed an error that occurred when trying to apply a fill to the ShapeObj component. The fill setting now works correctly. Fixed: identical table names when connecting to JSON (.NET) Fixed an issue where multiple JSON connections produced tables with identical names. Each connection now gets a unique table name. Fixed an error when opening a report with an advanced matrix (.NET) Fixed an error that occurred when opening a report containing a heavily populated advanced matrix (AdvMatrix). With a large number of fields, the report now opens without errors. Fixed: text color was lost when reopening a report (.NET) Fixed an issue where a modified text color in a TextObject was correctly saved but did not appear after reloading the page in design mode. Text color is now saved and restored correctly. Fixed an error when using axis formatting in MsChart (.NET) Fixed two issues with the MsChart component: the format of the Y-axis labels was not preserved when the report was reloaded, and trying to prepare a report with the newly applied format produced an error for the user. Fixed: Undo/Redo buttons were unavailable until the first object was added (.NET, VCL) Fixed an issue where the Undo and Redo buttons remained disabled after a report was loaded, even if the user modified bands or moved existing objects. The buttons only became active after a new object was added to the page. The change history is now tracked correctly from the very first action. Fixed an error when copying a page containing AdvMatrix/Matrix/Table (.NET) Fixed an error that occurred when trying to copy a report page containing AdvMatrix, Matrix or Table components. Fixed: report layout was broken on save (.NET) Fixed a critical error reproduced when saving reports that used tables for layout. On save, the table width was incorrectly truncated, breaking the report layout. Fixed: currency format was missing from the locale (.NET) Fixed an issue where the currency format was missing from the numeric data formatting dialog. Fixed: built-in PadLeft function did not work (.NET) Fixed an issue where the PadLeft function worked correctly in the desktop version but did not work in Online Designer when preparing the report through WebReport. Fixed an error when preparing a report with DataType="System.Guid" (.NET) Fixed an error that occurred when trying to prepare a report containing a field with the System.Guid data type. Fixed problems when creating a Postgres data source (.NET) A series of issues with PostgreSQL connections has been fixed: correct conversion of quotes in XML for TableName and SelectCommand has been added, duplicated procedures when adding a parameter have been fixed, as well as the loss of a parameter type when switching to preview. Fixed: style name was not changed in the styles editor (.NET) Fixed an issue where changes to a style name in the styles editor were not saved. After closing and reopening the popup, the style was still displayed with the original name (for example, "Style1"). Fixed method replacement in scripts (VCL) Fixed an issue where creating several event handlers for the same component sequentially caused a new handler to overwrite the previous one. For example, creating OnAfterPrint after OnAfterData removed the code of the first handler. Fixed band sorting (VCL) Fixed an issue where band sorting in VCL solutions did not work correctly. Fixed "Data format" dialog and conditional highlighting (VCL) A set of issues with the text component in VCL has been fixed: the "Data format" dialog could not be edited if the text was not an expression; incorrect text positioning logic in a multi-line component has been fixed. Fixed Undo/Redo behavior when adding components to a band (VCL) Fixed an issue: when adding a component to a narrow band (which auto-expanded), pressing Undo removed the component but did not restore the band to its original size. A subsequent Redo had no effect. Fixed: "Fields" tab of a detail table did not open in the "Relations editor" (.NET) Fixed an issue where the "Fields" tab of a detail table did not open in the "Relations editor" when creating relations between tables of an MS SQL connection. Fixed empty drop-down for the BreakTo property (.NET) Fixed an issue where the drop-down list of the BreakTo property in the TextObject properties panel was empty and offered no value to choose. Full list of changes New functionality + FastReport .NET Avalonia theme + New properties panel + Docking manager for all panels + New workspace: reworked rulers, guides and band headers + Toolbars for the Data and ReportTree panels + Designer settings popup (appearance, objects, interaction) + Barcode editor popup + Font editor popup + FRX report template editor + Format painter + New shape drawing logic (PolyLine, Polygon, lines) and presets + New component placement logic with preview + "Open report" and "Save report" functions Improvements + Undo/Redo with named actions for the code editor and FRX + Configurable indentation in the code editor + UI adaptability for all screen sizes (both themes) + Pages panel improvements + New control for selecting a data source in the band and component editors (data tree, like in the desktop) + Editing of a previously created data source connection (within the current browser session) Bug fixes - Fixed problems with saving Cyrillic characters in script code (VCL) - Fixed VisibleExpression property (.NET) - Fixed an error when using fill on ShapeObj (.NET) - Fixed: identical table names when connecting to JSON (.NET) - Fixed an error when opening a report with an advanced matrix (.NET) - Fixed: text color was lost when reopening a report (.NET) - Fixed an error when using axis formatting in MsChart (.NET) - Fixed: Undo/Redo buttons were unavailable until the first object was added (.NET, VCL) - Fixed an error when copying a page containing AdvMatrix/Matrix/Table (.NET) - Fixed: report layout was broken on save (.NET) - Fixed: currency format was missing from the locale (.NET) - Fixed: built-in PadLeft function did not work (.NET) - Fixed an error when preparing a report with DataType="System.Guid" (.NET) - Fixed problems when creating a Postgres data source (.NET) - Fixed: style name was not changed in the styles editor (.NET) - Fixed method replacement in scripts (VCL) - Fixed band sorting (VCL) - Fixed "Data format" dialog and conditional highlighting (VCL) - Fixed Undo/Redo behavior when adding components to a band (VCL) - Fixed: "Fields" tab of a detail table did not open in the "Relations editor" (.NET) - Fixed empty drop-down for the BreakTo property (.NET) ### Release the new version of FastCube .NET 2025.1 URL: https://www.fast-report.com/news/fastcube-net-2025.1 Summary: Meet the new FastCube .NET 2025.1 release — a product relaunch with many key changes. Meet the new FastCube .NET 2025.1 release — a product relaunch with many key changes. Meet the new FastCube .NET 2025.1 release — a product relaunch with many key changes. This major update includes important architectural improvements, support for new platforms, and expanded capabilities for OLAP component developers. Removed dependency on  System.Drawing.Common library in FastCube.Core One of the key changes in the FastCube .NET 2025.1 release was the complete removal of the dependency on the System.Drawing.Common library in the FastCube.Core module. This step was taken to improve the library's compatibility with various platforms and improve performance. The graphical capabilities that were previously implemented through System.Drawing.Common have been reworked. Now FastCube .NET uses more modern and cross-platform approaches to working with data visualization and other interface elements. In particular, working with charts and visual components has been moved to separate libraries. This provides more flexibility in managing dependencies and using graphics in reports. In the new version, to specify a font in FastCube .NET styles, you must use the FastFont class instead of Font . The new font implementation does not contain any logic, and is only a container for data. The OLAP engine has been moved to the FastCube.Core library One of the most significant changes in the FastCube .NET 2025.1 release was the complete separation of the OLAP engine into a separate library - FastCube.Core . If you don't need visual components, you can add only the FastCube.Core library to your projects without including other parts of FastCube. This simplifies the setup and reduces the number of libraries to include. FastCube now has a modular architecture, where each component performs its specific task. The OLAP engine, visual components, charting and other parts of the library are in separate modules. For existing projects where visual components have been connected, no additional actions will be required. Added Linux and MacOS support for FastCube.Core.Web FastCube .NET 2025.1 release adds full Linux and MacOS support for web solutions using FastCube.Core.Web for the first time. This is an important extension of platform compatibility that allows OLAP applications to run on servers running different operating systems. Cross-platform development is available. Now FastCube.Core.Web can be used not only on Windows, but also on Linux and MacOS. This opens up the possibility of developing web applications with OLAP functionality on any server. Support for Linux and MacOS allows you to easily integrate FastCube into containers (e.g. Docker), which is important for scalable web applications and cloud solutions. You will be able to create universal web applications that work equally stably on different operating systems. ARM (64 bit) support for web components The FastCube .NET 2025.1 release adds support for the ARM64 architecture for web components. This compatibility extension allows you to run web applications using FastCube on devices with ARM64 processors, such as Raspberry Pi, servers, and cloud solutions on the ARM64 architecture. ARM64 support also makes it possible to use FastCube in low-power scenarios. Separate libraries for working with diagrams and dependencies from  FastReport.DataVisualization In the FastCube .NET 2025.1 release, the libraries responsible for working with charts and dependencies on  FastReport.DataVisualization were moved to separate FastCube.Mono.Chart and  FastCube.WinForms.Chart libraries. This simplifies dependency management and increases flexibility in application development. Previously, the functionality for creating diagrams was built into the main FastCube package, which made it mandatory even for projects where diagrams were not used. Replacement for the deprecated  IHostingEnvironment The FastCube .NET 2025.1 release replaces the legacy  IHostingEnvironment interface with the more modern IHostEnvironment . This allows the platform to adapt to current development requirements and prepare for future .NET 9 updates. XML documentation for all source codes In the FastCube .NET 2025.1 release, all source codes are now accompanied by XML documentation, which significantly improves the process of developing and integrating library components. We aim to improve the developer experience and improve code understanding. Online documentation Changing the script engine The FastCube .NET 2025.1 release includes an updated script engine. This change significantly improves scripting and increases system stability. The script engine for .NET 6 is now based on Roslyn. With the new  ReferencedAssemblies property in the FastReport.Olap.Utils.Config  static class, you can control the list of assemblies included in the script. Other breaking changes In the new release, due to the reworking of the engine architecture, some methods and types have become obsolete, they do not relate to OLAP functionality and have been removed. Full list Complete changelog + added a new demo application showing the ability to save and load a cube on the web;  + added xml documentation for FastCube.WinForms package; + added xml documentation for FastCube.Mono package; + added xml documentation for FastCube.Core.Web package; + added xml documentation for FastCube.Core package; + added xml documentation for FastCube.WinForms.Chart package; + added xml documentation for FastCube.Mono.Chart package; + added xml documentation for FastCube.Mono.Report package; + added xml documentation for FastCube.WinForms.BusinessGraphics package; + added xml documentation for FastCube.WinForms.Report package; + added XML documentation for the FastCube.Core.Web package; + added a new article describing the minimum system requirements; + added a new article to the documentation about descriptions of the packages; + added compatibility library with FastReport.DataVisualization for displaying FastCube.Winforms slice charts; + added compatibility library with FastReport.DataVisualization for displaying FastCube.Mono slice charts; + added demo application for Linux docker container; + added Linux support for FastCube.Core.Web package; * updated build scripts; * changed the way plugins registration, now plugins cannot be loaded twice automatically; * now FastCube.WinForms and FastCube.Mono are not independent packages, the core of the OLAP component is completely moved to FastCube.Core; * changed scripts in three cubes for compatibility with .NET 8 and .NET 9; * the structure of the documentation has been changed, some sections have been moved to the root; * the Extras folder that stores the compatibility package sources is now only available in the source version of the product; * updated EULA; & updated script builder for working with .net 6 and higher, this is a breaking change for all new FastCube .NET packages, if you used Variant, then instead of strict typing in the script you need to use only the name of the Variant class itself, since in some scripts there is a conflict between FastReport .NET and FastCube .NET in the script by default only a minimal set of libraries are included; & security fixes in the all demo apps; & security fixes in the chart component code for FastCube.WinForms; & security fixes in the chart component code for FastCube.Mono; - fixed the list of dlls to the script; - fixed an access modifiers of class members in FastCube.Core.Web; - removed and replaced dependency on deprecated IHostingEnvironment in FastCube.Core.Web; - fixed documentation title; - the Config class and its methods of the FastCube.Core.Web library are marked as deprecated, they are no longer used and do not affect the functionality of the component; - export to BIFF8 has been removed in the FastCube.Core package because this export requires a graphic context, if there are user requests, we will add BIFF8 export in plugins; - removed dependency of System.Drawing in FastCube.Core package, now the package can be used under Linux and MacOS. ### Release the new version of FastCube .NET 2025.2 URL: https://www.fast-report.com/news/release-fastcube-net-2025.2 Summary: In this update, we focused on speeding up calculations, improving compatibility with .NET 9, and making changes easier to understand. In this update, we focused on speeding up calculations, improving compatibility with .NET 9, and making changes easier to understand. In this update, we focused on speeding up calculations, improving compatibility with .NET 9, and making changes easier to understand. Transition to invariant mathematics – up to 2 times faster! One of the most significant improvements was the abandonment of the "variant" type in favor of invariant mathematics. This change led to a significant acceleration of the make and recalculation of the cube, in some cases - more than 2 times! In addition, the cube now works correctly in various localizations, including non-standard ones (other than Latin), which expands its application for international users. Splitting changes by product FastCube .NET updates are now split into different products (WinForms, Web, Mono, and general FastCube .NET). This makes the update process more transparent – you can immediately see what changes affect the version you need. Fixed error reading stream from compressed file Previously, in some cases, compressed files were not processed correctly, which could cause data to load incorrectly or not load at all. Now this bug is fixed and the mechanism for working with compressed files is completely fixed. This means: Correct reading of data from archive files. More stable performance when loading large files. No errors in multithreaded mode, which is especially important for Web applications. If your project makes heavy use of data compression, we recommend upgrading to version 2025.2 to avoid potential issues. The file signature for the cube is now immutable (const instead of static) Previously, the file signature was declared as static , which allowed it to be changed during program execution. In some cases, this could lead to errors related to data structure changes or even file corruption. New version: The signature is now declared as const , making it immutable at the code level. The integrity of the file structure is guaranteed, regardless of changes in the program code. Improved stability of working with cube files in different environments, including Web and Mono. This is especially important for developers who work in multi-user and distributed systems. Compatibility with .NET 9 One of the key improvements was the addition of .NET 9 support. FastCube .NET is now fully compatible with the latest version of the platform, allowing you to take advantage of new features and improvements offered by Microsoft. This is an important update for developers who are port to .NET 9 or planning to use it in their projects. We would like to point out that support for new versions ensures stable operation of the product and integration with the latest technologies. Updating supported versions of .NET The main version is now .NET 8, which is the current standard for most enterprise projects. However, support for .NET 6 is retained, which is a long-term version with extended support. Additionally, as mentioned, .NET 9 support has been added, giving you flexibility in choosing the platform to work with FastCube .NET, whether it's stability (via .NET 6) or the latest features and performance improvements (.NET 9). Fixes and improvements in the demo example In the demo for the boolean format, a bug was fixed that caused the data to be displayed incorrectly. Now this format works correctly and does not cause errors, which improves the experience of users working with demo examples. In the "Sales by months" demo cube, there were previously situations where the headers were displayed incorrectly. Now this error has been fixed, and the field names are displayed correctly, ensuring accuracy and ease of working with data. Improving data serialization One of the important improvements is the optimization of the data serialization process. New methods have been added and properties have been set, due to which default values are now serialized less frequently. Reducing the amount of serialized data reduces the load on the system when saving and loading information. In addition, these changes contribute to improved performance, which will be especially noticeable when working with large data sets. List of changes FastCube .NET WinForms [Common] - fixed a bug where the stream from a compressed file was read incorrectly; * the file signature for the cube now has a const modifier instead of static and cannot be changed; FastCube .NET Web [Common] - fixed a bug where the stream from a compressed file was read incorrectly; * the file signature for the cube now has a const modifier instead of static and cannot be changed; FastCube .NET Mono [Common] - fixed a bug where the stream from a compressed file was read incorrectly; * the file signature for the cube now has a const modifier instead of static and cannot be changed; FastCube .NET [Common] + added compatibility with .NET 9; + .NET versions have been updated, the main version is now .NET 8, and supported target platforms include .NET 6, .NET 8, and .NET 9; * some properties are hidden from the user in the WinForms editor; * the "variant" type was replaced by variant mathematics; * improved serialization, added methods and set properties, due to which default values are serialized less often; - corrected display of the field name in the "Sales by months" demo cube; - fixed bug in demo example for boolean format. Other critical changes General changes for FastCube Web, FastCube WinForms and FastCube Mono Deprecated delegates. They were replaced with compatible ones, because the Variant type was removed and now boxing via Object  is used instead: Click here to expand FastReport.Olap.Slice.Value2Delegate(System.Int32, System.Int32, FastReport.Olap.Utils.Variant, FastReport.Olap.Utils.Variant, System.Int32) FastReport.Olap.Slice.ValueDelegate(System.Int32, System.Int32, FastReport.Olap.Utils.Variant, System.Int32) FastReport.Olap.Slice.SliceChartDataHandler(FastReport.Olap.Slice.Slice, FastReport.Olap.Slice.ChartParams, System.String[], System.String[], FastReport.Olap.Utils.Variant[], System.Int32) Deprecated fields. The following fields have been replaced with the corresponding properties: Click here to expand FastReport.Olap.Types.BoolValue -> public System.Boolean Value FastReport.Olap.Types.ByteValue -> public System.Byte Value FastReport.Olap.Types.DateTimeValue -> public System.DateTime Value FastReport.Olap.Types.DecimalValue -> public System.Decimal Value FastReport.Olap.Types.DoubleValue -> public System.Double Value FastReport.Olap.Types.FloatValue -> public System.Single Value FastReport.Olap.Types.IntValue -> public System.Int32 Value FastReport.Olap.Types.LongValue -> public System.Int64 Value FastReport.Olap.Types.SByteValue -> public System.SByte Value FastReport.Olap.Types.ShortValue -> public System.Int16 Value FastReport.Olap.Types.StringValue -> public System.String Value FastReport.Olap.Types.TimeSpanValue -> public System.TimeSpan Value FastReport.Olap.Types.UIntValue -> public System.UInt32 Value FastReport.Olap.Types.ULongValue -> public System.UInt64 Value FastReport.Olap.Types.UShortValue -> public System.UInt16 Value FastReport.Olap.Slice.MeasureCell -> public FastReport.Olap.Utils.Variant Value Deprecated methods. Replaced with compatible methods, but instead of the Variant type, data boxing is now used via Object , which allows passing not values with memory copying, but a reference to an object. Click here to expand FastReport.Olap.Types.BoolDTP -> public FastReport.Olap.Types.BoolValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.ByteDTP -> public FastReport.Olap.Types.ByteValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.CommonDataTypeProcessor``2 -> public System.Int32 AddNewVariantValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.CommonDataTypeProcessor``2 -> public T VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.DateTimeDTP -> public FastReport.Olap.Types.DateTimeValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.DecimalDTP -> public FastReport.Olap.Types.DecimalValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.DoubleDTP -> public FastReport.Olap.Types.DoubleValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.FloatDTP -> public FastReport.Olap.Types.FloatValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.IntDTP -> public FastReport.Olap.Types.IntValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.LongDTP -> public FastReport.Olap.Types.LongValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.Range -> public System.Boolean Match(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.Ranges -> public System.Boolean Match(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.SByteDTP -> public FastReport.Olap.Types.SByteValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.ShortDTP -> public FastReport.Olap.Types.ShortValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.StringDTP -> public FastReport.Olap.Types.StringValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.TimeSpanDTP -> public FastReport.Olap.Types.TimeSpanValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.UIntDTP -> public FastReport.Olap.Types.UIntValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.ULongDTP -> public FastReport.Olap.Types.ULongValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.UShortDTP -> public FastReport.Olap.Types.UShortValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Slice.AxisContainer -> public FastReport.Olap.Utils.Variant GetValue(System.Int32, System.Int32) FastReport.Olap.Slice.MeasuresContainer -> public FastReport.Olap.Utils.Variant GetMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Slice.MeasuresContainer -> public FastReport.Olap.Utils.Variant GetSecondAdditionalTotalMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Slice.Slice -> public System.Object Calc(FastReport.Olap.Types.Expression, FastReport.Olap.Utils.Variant) FastReport.Olap.Slice.Slice -> public FastReport.Olap.Utils.Variant CalcFuncForSelectedArea(FastReport.Olap.Types.AggregateFunction, FastReport.Olap.Types.Selection) FastReport.Olap.Slice.Slice -> public FastReport.Olap.Utils.Variant GetMeasureValue(System.Int32, System.Int32) FastReport.Olap.Slice.SliceField -> public FastReport.Olap.Utils.Variant GetUniqueValue(System.Int32) FastReport.Olap.Slice.SliceField -> public FastReport.Olap.Utils.Variant GetUniqueValueFromRecord(System.Int32) FastReport.Olap.Slice.SliceField -> public System.Int32 GetUniqueValueIdAndVariantFromRecord(System.Int32, FastReport.Olap.Utils.Variant&) FastReport.Olap.Slice.UniqueValuesFieldFilter -> public System.Void SetAllowedUniqueValueByValue(FastReport.Olap.Utils.Variant, System.Boolean) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValueByAppend(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 GetValueIdAtValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CommonUniqueValues -> public FastReport.Olap.Utils.Variant GetVariantByOrder(System.Int32) FastReport.Olap.Cube.CommonUniqueValues -> public FastReport.Olap.Utils.Variant GetVariantByValueId(System.Int32) FastReport.Olap.Cube.Cube -> public FastReport.Olap.Utils.Variant GetSourceValue(System.Int32, System.Int32) FastReport.Olap.Cube.Cube -> public FastReport.Olap.Utils.Variant GetSourceValue(System.Int32, FastReport.Olap.Cube.CubeField) FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, System.Int32, FastReport.Olap.Utils.Variant&) FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, FastReport.Olap.Cube.CubeField, FastReport.Olap.Utils.Variant&) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(System.Int32, FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(FastReport.Olap.Cube.CubeField, FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(System.Int32, FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(FastReport.Olap.Cube.CubeField, FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.DatePartUniqueValues -> public System.DateTime GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.DayOfWeekPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.DayOfYearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.DayPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.HalfYearPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.HourPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.MillisecondPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.MinutePartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.MonthPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.QuarterPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.SecondPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.TimePartUniqueValues -> public System.TimeSpan GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValueFromParentValueByAppend(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public T2 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 GetValueIdAtValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public FastReport.Olap.Utils.Variant GetVariantByOrder(System.Int32) FastReport.Olap.Cube.UniqueValues``2 -> public FastReport.Olap.Utils.Variant GetVariantByValueId(System.Int32) FastReport.Olap.Cube.WeekNumberPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.YearMonthPartUniqueValues -> public System.Int32 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.YearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColOffsetTotalValueForDims(System.Int32, System.String) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColOffsetValue(System.Int32) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColOffsetValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColRowOffsetValue(System.Int32, System.Int32) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColRowOffsetWithLevelValue(System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetRowOffsetTotalValueForDims(System.Int32, System.String) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetRowOffsetValue(System.Int32) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetRowOffsetValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetTotalValueForDims(System.String) FastReport.Olap.Code.Measures -> public FastReport.Olap.Utils.Variant GetDetailValue(System.Int32, System.String) Deprecated properties. The following properties have been replaced by using boxing instead of the Variant  type: Click here to expand FastReport.Olap.Types.BoolValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.ByteValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.DateTimeValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.DecimalValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.DoubleValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.FloatValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.IntValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.LongValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.Range -> FastReport.Olap.Utils.Variant HighRange { public get; public set; } FastReport.Olap.Types.Range -> FastReport.Olap.Utils.Variant LowRange { public get; public set; } FastReport.Olap.Types.SByteValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.ShortValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.StringValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.TimeSpanValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.UIntValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.ULongValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.UShortValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Slice.CalculateMeasureEventArgs -> FastReport.Olap.Utils.Variant Data { public get; public set; } FastReport.Olap.Slice.CalculateValueEventArgs -> FastReport.Olap.Utils.Variant Value { public get; public set; } FastReport.Olap.Slice.SliceField -> FastReport.Olap.Utils.Variant CurrentValue { public get; } FastReport.Olap.Code.ContainerFieldItem -> FastReport.Olap.Utils.Variant CurrentValue { public get; } FastReport.Olap.Code.Dimension -> FastReport.Olap.Utils.Variant CurrentValue { public get; } FastReport.Olap.Code.Dimensions -> FastReport.Olap.Utils.Variant DetailValue { public get; } FastReport.Olap.Code.Measure -> FastReport.Olap.Utils.Variant CurrentValue { public get; } Deprecated Types. The following types are deprecated and have been removed entirely because they are no longer used. FastReport.Olap.Utils.Variant FastReport.Olap.Types.IVariantable FastReport.Olap.Types.UnAssigned The new delegates replace the old ones, which used the Variant  type. FastReport.Olap.Slice.Value2Delegate(System.Int32, System.Int32, System.Object, System.Object, System.Int32) FastReport.Olap.Slice.ValueDelegate(System.Int32, System.Int32, System.Object, System.Int32) FastReport.Olap.Slice.SliceChartDataHandler(FastReport.Olap.Slice.Slice, FastReport.Olap.Slice.ChartParams, System.String[], System.String[], System.Object[], System.Int32) The new field replaces the existing ones, now boxing via  Object is used instead of the Variant  type. FastReport.Olap.Slice.MeasureCell -> public System.Object Value The new methods replaced the old ones, which used the Variant  type. Now, boxing is used instead, and data is transferred by reference, not by value, which has significantly increased the speed. Click here to expand FastReport.Olap.Types.Range -> public System.Boolean Match(System.Object) FastReport.Olap.Types.Ranges -> public System.Boolean Match(System.Object) FastReport.Olap.Slice.AxisContainer -> public System.Object GetValue(System.Int32, System.Int32) FastReport.Olap.Slice.MeasuresContainer -> public System.Object GetMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Slice.MeasuresContainer -> public System.Object GetSecondAdditionalTotalMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Slice.Slice -> public System.Object Calc(FastReport.Olap.Types.Expression, System.Object) FastReport.Olap.Slice.Slice -> public System.Object CalcFuncForSelectedArea(FastReport.Olap.Types.AggregateFunction, FastReport.Olap.Types.Selection) FastReport.Olap.Slice.Slice -> public System.Object GetMeasureValue(System.Int32, System.Int32) FastReport.Olap.Slice.SliceField -> public System.Object GetUniqueValue(System.Int32) FastReport.Olap.Slice.SliceField -> public System.Object GetUniqueValueFromRecord(System.Int32) FastReport.Olap.Slice.SliceField -> public System.Int32 GetUniqueValueIdAndVariantFromRecord(System.Int32, System.Object&) FastReport.Olap.Slice.UniqueValuesFieldFilter -> public System.Void SetAllowedUniqueValueByValue(System.Object, System.Boolean) FastReport.Olap.Cube.BaseDataReaderDataSet -> public System.Object GetValue(System.Int32) FastReport.Olap.Cube.BaseDataSet -> public System.Object GetValue(System.Int32) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValue(System.Object) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValue(System.Object) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValueByAppend(System.Object) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 GetValueIdAtValue(System.Object) FastReport.Olap.Cube.CommonUniqueValues -> public System.Object GetVariantByOrder(System.Int32) FastReport.Olap.Cube.CommonUniqueValues -> public System.Object GetVariantByValueId(System.Int32) FastReport.Olap.Cube.Cube -> public System.Object GetSourceValue(System.Int32, System.Int32) FastReport.Olap.Cube.Cube -> public System.Object GetSourceValue(System.Int32, FastReport.Olap.Cube.CubeField) FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, System.Int32, System.Object&) FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, FastReport.Olap.Cube.CubeField, System.Object&) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(System.Int32, System.Object) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(FastReport.Olap.Cube.CubeField, System.Object) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(System.Int32, System.Object) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(FastReport.Olap.Cube.CubeField, System.Object) FastReport.Olap.Cube.DatePartUniqueValues -> public System.DateTime GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.DayOfWeekPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.DayOfYearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.DayPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.HalfYearPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.HourPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.IBaseDataSet -> public System.Object GetValue(System.Int32) FastReport.Olap.Cube.MillisecondPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.MinutePartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.MonthPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.QuarterPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.SecondPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.TimePartUniqueValues -> public System.TimeSpan GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 GetValueIdAtValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValueFromParentValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValueFromParentValueByAppend(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public T2 GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Object GetVariantByOrder(System.Int32) FastReport.Olap.Cube.UniqueValues``2 -> public System.Object GetVariantByValueId(System.Int32) FastReport.Olap.Cube.WeekNumberPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.YearMonthPartUniqueValues -> public System.Int32 GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.YearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(System.Object) FastReport.Olap.Code.Measure -> public System.Object GetColOffsetTotalValueForDims(System.Int32, System.String) FastReport.Olap.Code.Measure -> public System.Object GetColOffsetValue(System.Int32) FastReport.Olap.Code.Measure -> public System.Object GetColOffsetValue(System.Object) FastReport.Olap.Code.Measure -> public System.Object GetColRowOffsetValue(System.Int32, System.Int32) FastReport.Olap.Code.Measure -> public System.Object GetColRowOffsetWithLevelValue(System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Code.Measure -> public System.Object GetRowOffsetTotalValueForDims(System.Int32, System.String) FastReport.Olap.Code.Measure -> public System.Object GetRowOffsetValue(System.Int32) FastReport.Olap.Code.Measure -> public System.Object GetRowOffsetValue(System.Object) FastReport.Olap.Code.Measure -> public System.Object GetTotalValueForDims(System.String) FastReport.Olap.Code.Measures -> public System.Object GetDetailValue(System.Int32, System.String) New properties have replaced or expand the deprecated ones: Click here to expand FastReport.Olap.Types.BoolValue -> System.Boolean Value { public get; public set; } FastReport.Olap.Types.ByteValue -> System.Byte Value { public get; public set; } FastReport.Olap.Types.DateTimeValue -> System.DateTime Value { public get; public set; } FastReport.Olap.Types.DecimalValue -> System.Decimal Value { public get; public set; } FastReport.Olap.Types.DoubleValue -> System.Double Value { public get; public set; } FastReport.Olap.Types.FloatValue -> System.Single Value { public get; public set; } FastReport.Olap.Types.IntValue -> System.Int32 Value { public get; public set; } FastReport.Olap.Types.LongValue -> System.Int64 Value { public get; public set; } FastReport.Olap.Types.Range -> System.Object HighRange { public get; public set; } FastReport.Olap.Types.Range -> System.Object LowRange { public get; public set; } FastReport.Olap.Types.SByteValue -> System.SByte Value { public get; public set; } FastReport.Olap.Types.ShortValue -> System.Int16 Value { public get; public set; } FastReport.Olap.Types.StringValue -> System.String Value { public get; public set; } FastReport.Olap.Types.TimeSpanValue -> System.TimeSpan Value { public get; public set; } FastReport.Olap.Types.UIntValue -> System.UInt32 Value { public get; public set; } FastReport.Olap.Types.ULongValue -> System.UInt64 Value { public get; public set; } FastReport.Olap.Types.UShortValue -> System.UInt16 Value { public get; public set; } FastReport.Olap.Slice.CalculateMeasureEventArgs -> System.Object Data { public get; public set; } FastReport.Olap.Slice.CalculateValueEventArgs -> System.Object Value { public get; public set; } FastReport.Olap.Slice.SliceField -> System.Object CurrentValue { public get; } FastReport.Olap.Format.CustomFormat -> System.String DefaultFormatValue { public get; public set; } FastReport.Olap.Code.ContainerFieldItem -> System.Object CurrentValue { public get; } FastReport.Olap.Code.Dimension -> System.Object CurrentValue { public get; } FastReport.Olap.Code.Dimensions -> System.Object DetailValue { public get; } FastReport.Olap.Code.Measure -> System.Object CurrentValue { public get; } New types: FastReport.Olap.Utils.VMath - replaced the Variant type, now mathematics occurs through invariant calculations using boxing and type conversion. FastReport.Olap.Types.IValueStruct``1 - interface for implementing own boxing type. FastReport.Olap.Types.SimpleCompareAction - enumeration for types of invariant mathematics actions. Changes for FastCube WinForms and FastCube Mono The deprecated field has been replaced with a technically compatible one. FastReport.Olap.Controls.SizingInfo -> public FastReport.Olap.Utils.Variant Data New field: FastReport.Olap.Controls.SizingInfo -> public System.Int32 Data ### Release the new version of FastReport Desktop 2022.2 URL: https://www.fast-report.com/news/fastreport-desktop-2022.2 Summary: The release of version 2022.2 in FastReport Desktop took place. A large number of new features and changes have been made. The release of version 2022.2 in FastReport Desktop took place. A large number of new features and changes have been made. Now you can save a report with random data The file menu in the report designer has a new item "Save with random data...". When you save the report in this way, all data sources will be saved in the report and the data in them will be replaced by random data. Highlighting intersecting objects in the designer Now when placing objects on the report page, overlapping objects and objects beyond the bounds of the bands and the page are highlighted by color. There should not be such objects in the correct report. Failure to comply with this recommendation, can lead to a number of problems in the preparation and exporting of reports. By default, this option is disabled. You can enable it in the designer's settings File->Options. Ruler with guides in the RichObject editor The new tool allows you to conveniently adjust indentation and tab positions when editing RichObject. Read more in article. Added console utility to convert from RTF Using it, you can easily convert RTF files into report templates. Now you can use XLSX files as data sources You can now retrieve data from Excel 2007 files as from a database and use it in a report.  Read more in article . "Pinned cells" option when exporting to Excel 2007 This feature, allows you to define an area of the sheet that will always be visible when you scroll. You can lock: the first row, the first column, a certain number of rows and columns. Also added export of number and date format to Excel 97 format (BIFF8). In the HTML export now has the option "High quality SVG" - when you enable this setting, the quality of SVG images will be significantly higher. However, you should keep in mind that the memory consumption will be higher. In Word documents, export bookmarks and internal links has been added. In PDF, Word, HTML and RTF now have export tabs width. In SVG export we added a new property PrefixStyle - it allows you to set a prefix for all styles. We also improved the documentation and added the ability to switch the localization in the FastReport for DBA settings. Full list of changes in version 2022.2 [Engine] + added ability to save report with random data; * the ExportBand method now uses the BandBase argument instead of Base; - fixed bugs with double calling events AfterData, BeforePrint and AfterPrint of ContainerObject; - fixed a bug leading to System.NullReferenceException when running reports with dialog forms; - fixed a bug with not working VisibleExpression property of subreports and pages; - fixed a bug with vertical shift of non-intersecting objects when converting RTF; - fixed a bug with right anchor on pages with unlimited width and landscape orientation; - fixed translation of lists when converting RTF; - fixed a bug with not working RichObject.AllowExpressions property; - fixed a bug leading to System.OverflowException when drawing unlimited page without preparing; [Designer] + added Backlight of intersecting objects; + added ruler with guides in RichObject editor; + replaced password symbols on dots in object inspector; + added warning about possible stack overflow when putting Matrix or AdvMatrix on repeated bands; - removed error message when text of barcode consist expression; - fixed a bug with disable hot keys option; - fixed dropdown menu when click on LineStyle and LineWidth button; - fixed a bug with viewing data in designer; - fixed bugs leading to System.NullReferenceException when dragging objects into AdvMatrix; - fixed a bug with incorrect showing settings of shadow in border editor; [Preview] - fixed a bug leading to System.NullReferenceException when clicking on editable TextObject; - fixed a bug with not working hyperlinks in report with multi-column databands; - fixed a bug when exporting a report resulted to saving the prepared report; - fixed a bug with setting lists of available exports and exports to clouds in PreviewControl; [Exports] + added export to ZPL II; + added option "High Quality SVG" in export to HTML; + added option "Pinned cells" in export to Excel 2007; + added ability to scale print in export to Excel 2007; + added export of bookmarks and inner hyperlinks to Word; + added export of numbers and dates format to Excel 97; + added encryption of personal data in Email-export; + added indent of RichObject in export to RTF; + added line break of RichObject in export to RTF; + added indent of TextObject when exporting to Word; + added export of tab width in PDF, Word, HTML and RTF exports; + added property PrefixStyle to SVG-export, which allows to set a prefix for all styles; * improved export of RichObject to Excel 2007; * removed FastReport Cloud and XMPP exports; - fixed incorrect rotation of landscape orientation of pages when printing HTML if they used styles from previous pages; - fixed a bug with font scale when export to PDF; - fixed a memory lose when export SVG objects to HTML with option "High Quality SVG"; - fixed a bug with embedding fonts for which packing is prohibited in PDF-export; - fixed a bug with exporting tab symbols to Word; - fixed fill background picture and property of line-height in export to HTML; - fixed a bug with exporting custom dash line of SVGObject to PDF; - fixed a bug with exporting borders of spanned cells to SVG. ### Release the new version of FastReport Desktop 2022.3 URL: https://www.fast-report.com/news/fastreport-desktop-2022.3 Summary: The release of version 2022.3 in FastReport Desktop took place. We have prepared many new functions for you: a report template validator, an editor of the FRX format. The release of version 2022.3 in FastReport Desktop took place. We have prepared many new functions for you: a report template validator, an editor of the FRX format. The release of version 2022.3 in FastReport Desktop took place. We prepared a lot of new features for you: validator to check the report template and get the list of errors, FRX format editor, report converter from StimulSoft, dialog page copying and much more. 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. 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] + implemented converter reports of 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; + added the feature to store JSON connection data using the StoreData property; + optimized speed in reports containing large amount of objects; * 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 Spooler; - 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 OS; - 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 RichText line spacing when RTF translated to report objects; - 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 assemblies 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; + add tooltip about right and bottom indents for guides and objects in designer; + added ability to select color of backlight intersecting objects in designer; * 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 subtable 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 export of locale in Word, PowerPoint, Rich Text, OpenOffice Write and OpenOffice Calc exports; + 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; * 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 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
, , tags. ### Release the new version of FastReport FMX 2022.1 URL: https://www.fast-report.com/news/fastreport-fmx-2022.1 Summary: We have released the new version of FastReport FMX 2022.1! We have released the new version of FastReport FMX 2022.1! Starting from version 2022.1, all releases of FastReport are subscription-based. This will ensure that you have access to all the features of the latest versions while your subscription is active. We have added the support for Embarcadero RAD Studio 11 and the new macOS ARM 64-bit for Apple M1. In this release, we have also expanded the set of FastReport FMX export filters. Export filters to the OpenOffice ODT and ODS format are now available for use. Additionally, we have improved the work with FmxLinux in Linux and Metal API support in macOS. 2022.1 Version --------------- + Support for Embarcadero RAD Studio 11 was added; + Support of macOS ARM 64-bit compiler for Apple M1 was added; + ODT and ODS export filters were added; * New printing module for GTK-based FmxLinux; * The option of reading cmap table with macOS platform in TTF font was added; * Local function copyFrom for GZip packer that removes exceptions during debugging was added; - The bug with canvas.beginscene when AutoWidth = true was fixed; - Bugs in PDF export with full debugging mode were fixed; - Navigator in HTML export was fixed; - The behavior of TfrxPreview.Workspace.DoubleBuffered property on macOS using Metal was fixed; - We have fixed incorrect metrics table size, which could cause the regeneration of other font tables in PDF export; - The bug with the serialization of the edited page in previewpages was fixed; - Minor memory leaks were fixed; - The bug with the drop-down list of fields was fixed; - Print and export in Delphi 11 was fixed; - The bug with Metal canvas in the report designer was fixed; - The height of barcode lines was fixed; - Dot and dash styles in PDF export were fixed; - The list of fonts in Linux was fixed; - The structure of ODT/ODS exports and output of images in RTF under libreoffice was fixed; - We have fixed the error for "No mapping for the Unicode character exists in the target multi-byte code page" when loading text from a stream; - We have fixed HTML tags. ### Report export in FastReport.OpenSource URL: https://www.fast-report.com/blogs/report-export-opensource FastReport.OpenSource has gained a lot of interest among many developers. This is a great report generator with a long history. The open source version is FastReport.Core, which appeared at the beginning of 2018, but with some restrictions. Namely - curtailed exports. Thus, only the following formats are available to us: HTML, BMP, PNG, JPEG, GIF, TIFF, EMF. Of course, this is very little. The WebReport object displays the report in html format, so it was left. It is noteworthy that in the WebReport object, we can only save the report to the fpx preview format. Therefore, you will have to export the report from the application code. Let's have a look at how it will look like by example. I will describe in details the whole process of creating a demo application so that you can repeat if you wish. Create an ASP .Net Core 2.0 project. Next, we add packages from the NuGet repository: FastReport.OpenSource and FastReport.OpenSource.Web. Now you need to add the use of the FastReport libraries to the Startup.cs file Let's use the Index view. Change it like this: ``` @using (Html.BeginForm("Save", "Home", FormMethod.Get)) { }  
```  We will display the report in a picture format, as well as a link to download the report in HTML format. Initially, we will have a download button that initiates the formation of the report file html. Then comes the image. But the file for it will be generated on the fly from the GetImage method in the controller. Let's go to the HomeController.cs controller. We will need these libraries: ``` using System.IO; using System.Diagnostics; using Microsoft.AspNetCore.Mvc; using OpenSourceReportExport.Models; using FastReport; using FastReport.Export.Image; using FastReport.Export.Html; using System.Data; using Microsoft.AspNetCore.Hosting; ```  To set the correct file paths on the server, we use the IHostingEnvironment interface. To do this, we pass the object of type IHostingEnvironment to the controller's constructor. ``` public HomeController(IHostingEnvironment hostingEnvironment) { _hostingEnvironment = hostingEnvironment; }   private IHostingEnvironment _hostingEnvironment; ```  Index method is left unchanged: ``` public IActionResult Index() { return View(); } ```  Add a new method to get the report as an image. So we will export to image, for example, jpeg format: ``` public IActionResult GetImage() { // Creatint the Report object using (Report report = new Report()) { string path = _hostingEnvironment.WebRootPath; // Loading a report report.Load(path + "\\App_Data\\Master-Detail.frx"); DataSet data = new DataSet(); data.ReadXml(path + "\\App_Data\\nwind.xml"); //Open xml database report.RegisterData(data, "NorthWind"); //Register data source in the report report.Prepare();// Preparing a report   // Creating the Image export using (ImageExport image = new ImageExport()) { image.ImageFormat = ImageExportFormat.Jpeg; image.JpegQuality = 100; // Set up the quality image.Resolution = 100; // Set up a resolution image.SeparateFiles = false; // We need all pages in one big single file   using (MemoryStream st = new MemoryStream())// Using stream to save export { report.Export(image, st); return base.File(st.ToArray(), "image/jpeg"); } } } } ```  The second method is to save the export report in html format. Roughly speaking,this methods is pretty much the same as the previous one. ``` [HttpGet] public ActionResult Save() { using (Report report = new Report()) { string path = _hostingEnvironment.WebRootPath; // Loading a report report.Load(path + "\\App_Data\\Master-Detail.frx"); DataSet data = new DataSet(); data.ReadXml(path + "\\App_Data\\nwind.xml"); //Open xml database report.RegisterData(data, "NorthWind"); //Register data source in the report report.Prepare();// Preparing a report   // Creating the HTML export using (HTMLExport html = new HTMLExport()) { using (FileStream st = new FileStream(path + "\\App_Data\\test.html", FileMode.Create)) { report.Export(html, st); return File("App_Data/test.html", "application/octet-stream", "Test.html"); } } } } ```  In this method we got one html file. And this means that there will be no pictures in it. To save the html file with images, you need to save the files in a loop. An example of such an export can be found in the FastReport Open Source documentation: https://fastreports.github.io/FastReport.Documentation/Exporting.html . Let's run our application: The image contains all report pages, because we set the SeparateFiles property = false. Otherwise, you would have to display several files. Press the button Save report in HTML: And the file is automatically loaded by the browser. That's all. As you can see, the implementation of export in code in FastReport Open Source has no difference from FastReport.Core. Tags: Export, Export, FastReport, FastReport, Open Source, Open Source ### Report generator based on Avalonia UI: FastReport Avalonia URL: https://www.fast-report.com/news/announcement-fastreport-avalonia Summary: We are announcing a new Avalonia UI-based report generator for cross-platform development on Linux, macOS and Windows systems. We are announcing a new Avalonia UI-based report generator for cross-platform development on Linux, macOS and Windows systems. This spring we will release a powerful library with a single user interface that allows you to embed the report generator in Linux, macOS and Windows applications using  Avalonia UI . Avalonia UI is a .NET-based framework actively used for developing cross-platform user interfaces. With a universal API for building applications, Avalonia supports all major platforms and runtimes and has its own unique interface. Thus, 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. Also in the new product, all formats for exporting the generated report are available - PDF, Excel, MS Word and many others. The library is fully backward compatible with FastReport WPF , FastReport .NET , FastReport Mono . It supports Avalonia UI, .NET 7 and .NET 8. And even before the official release, we invite you to try its features in a free demo! Learn more about FastReport Avalonia and try the free demo now. Download demo for Windows Download demo for Linux Download demo for macOS ### Report generator in Visual Studio Express Edition URL: https://www.fast-report.com/news/report-generator-visual-studio Summary: Report generator with visual designer in Visual Studio Express Edition Report generator with visual designer in Visual Studio Express Edition Visual Studio Express Edition by Microsoft is a popular software development enveronment. It is popular also because it is free. By the way this tool as all that is free has some lacks. In particular complexities with using some add-onces, third party components. For example many popular component-packs for .NET have reporting tools in set. Often they use developers environment of Visual Studio (fully or partially) as the visual report development environment. But such way is impossible in Express Edition. FastReport .NET uses another approach. There are own fully independent report designer which can be called from application (from Winforms Edition and higher). That is Visual Studioàs envirinment does not need for visual design of reports.  read more... ### Report generator with visual designer in Visual Studio Express Edition URL: https://www.fast-report.com/blogs/report-generator-visual-designer  Visual Studio Express Edition by Microsoft is a popular software development enveronment. It is popular also because it is free. By the way this tool as all that is free has some lacks. In particular complexities with using some add-onces, third party components. For example many popular component-packs for .Net have reporting tools in set. Often they use developers environment of Visual Studio (fully or partially) as the visual report development environment. But such way is impossible in Express Edition. FastReport.Net uses another approach. There are own fully independent report designer which can be called from application (from Winforms Edition and higher). That is Visual Studioàs envirinment does not need for visual design of reports. So - let's setup FastReport.Net to Visual Studio Express Edition: 1. Create new project in Visual Studio. 2. Right mouse click somewhere on the blank place on Toolbox. 3. Select "Add tab" in context menu. 4. Give the name for new tab, for example FastReports Components. 5. Right mouse click on blank place of our new tab . 6. Select Choose Items in the context menu. 7. Press button "Browse..." Find and set FastReport.dll. It placed at the root folder of FastReport .NET. 8. Components will be shown on tab .NET Framework Components. Ypu can sort them by Namespace. All the components of FastReport .NET are placed on namespace FastReport. Check all needed components and press OK. Run report designer. Examle on C# Report report = new Report(); report.Design(); This is it. Tags: .NET, .NET, Visual Studio, Visual Studio, Express Edition, Express Edition, FastReport, FastReport ### Report generators family FastReport brief review URL: https://www.fast-report.com/blogs/Report-generators-FastReport Summary: Describing FastReport .NET generator, its capabilities and advantages. Describing FastReport .NET generator, its capabilities and advantages. Describing FastReport .NET generator, its capabilities and advantages. Without reporting it is impossible to carry on business in any sphere of life. Bureaucracy is an irresistible part of human society. Whether it's steel plant or a school facultative - reports are needed everywhere: accounting, statistical, operational. Since the modern world strongly computerized - reports are also conducted electronically. Create reports in large quantities would be very difficult without special programs - report generator. FastReport report generator appeared in the early days of this kind of software, and became a real hit among Delphi programmers. And with the advent of version .NET Framework - it also became widespread among the adherents of the Microsoft platform. The name FastReport was created for a reason. This report generator is indeed one of the fastest in compiling complex reports. This can be said to be its main advantage over other competitors. As noted above, the FastReport report generator is designed for different platforms. In fact, these are different products with the same ideology and similar implementation. There are products to work with such frameworks as VCL, FMX, Lazarus, .NET , .Mono. FastReport features can be described for a long time, so we will consider the most important ones: The core is the engine of the report generator that allows you to create: Reporting from code  - thanks to FastReport's public library methods, you can easily create reporting objects and change their nature. In this way, you can create a complete report without a report designer. However, this needs to be understood on the basis of reporting principles; Multi-page report  - as the template is filled with data, the report is divided into pages. But you can create multiple templates - pages in a report. So you create essentially several reports within one; Web reports  - web reports are supported. Depending on the target platform, it can be a solution for ASP .NET (Core) or a Report Server for VCL. You will be able to view reports in a browser, go to the press and to perform exports in the available formats. In addition, it is possible to distinguish between access to reports on a report server (for VCL); Inheritance  - a mechanism that allows you to use a basic template in many reports. Thus, we can minimize the work of creating the same type of reports or reports with a corporate title; Cross-table  - the ability to use spreadsheets - a popular tool for data analysis Interactive reports  - reports that respond to user actions. For example, clicking on the item will result in appearance of detailing the table or hiding / opening list; Subreports  - the ability to embed one report to another. In fact, when placing an object Subreport on the page, it creates a pattern on a separate page. Number subreports are not limited to; Export - option to convert the report to one of the many popular formats: Adobe Acrobat (PDF); Rich Text; HTML; MHT; XML; Excel 2007; Excel 97; Microsoft Word 2007; Microsoft PowerPoint 2007; OpenOffice Calc; OpenOffice Writer; Microsoft XPS; CSV; DBF; Text; ZPL; Image (Jpeg, PNG, BMP, GIFF, TIFF, Windows metafile); XAML; SVG; PPML; PostScript; Json; LaTeX. Sending by Email  – the ability to send the report by email Report designer Interface  - a modern Ribbon interface is convenient for easy access to controls. This type of interface is used in Microsoft Office since 2007; Ability to embed in an application  - report designer made a separate program (library) that allows you to run it on its own, or to include in your custom application; Preview mode  - in the Report Designer, you can view reports in built form. This mode also allows you to export the report, print, send email; Master  – there are a lot of masters available in the designer, which accelerate the process of creating the report. For example, a new report wizard allows only a few steps to create the finished sample report with a data connection. A wizard for creating a data source - creates a connection to the database, and in a few clicks; Plug-ins  - the abilities of the report designer can be extended with plugins. Basically these are plugin - connectors for quick connection to the data source, but there are also plug-ins that add new objects to be placed in the report. Report. Template pages of bands  - the ideology of building a page report based on the Band - special containers for data, which are divided by purpose and have individual behavior. For example, band "Report Title" is displayed at the very beginning, at the top of the page only once. A Band "page title" appears at the top of each new page, but it is below the title on the first page of the report. Also band exists for the data output are repeated for each entry in the table, band groups, and other cellar band; Functions and variables  - in the report, you can use a variety of built-in and user-defined functions for data transformation, as well as variables. Variables can get values from the outside report that allows you to control the logic of the report from the user application; User form - before you build a report, you can deduce a user form, or several in a row. These forms are needed to determine the value of report variables, or to set the conditions for data filtering; the report has a built-in script that allows you to access any of the report's objects and properties. This means you can do everything with the report: filter the data, change the logic of data output, convert data, add and delete objects, and more; XML format  - the report template is an XML format, although it is extended. In this way, you can easily find the direction in the report template, when you browse through the familiar markup language in the text editor; In conclusion, we can say that due to the wide toolkit, multi-platform and the presence of a script built into the report, FastReport report generator can satisfy almost all user requests and are a universal solution for a wide range of tasks in the field of electronic document management. Tags: .NET, .NET, VCL, VCL, FMX, FMX, Lazarus, Lazarus, FastReport, FastReport, ASP.NET, ASP.NET, Core, Core, C#, C#, Report, Report, .NET5, .NET5 ### Report on entire web page URL: https://www.fast-report.com/blogs/report-entire-web-page In previous articles, we discussed how to create a web report. And it looked like this: Agree that not very attractive looks. Scroll bars, a small display area of the report. But it is possible to stretch a report on the entire page. To do this, set the properties of an object WebReport1 SinglePage how true. This means that the report will be displayed without page breaks. Change the Width and Heigh to 100%. Thus we get a report on a single page, stretched to the entire available width and height of the page. Since the report has only one page, you can hide the toolbar above. To do this, ShowToolbar property is set to false. As you can see, the page of the report does take 100% of the available space. You can stretch the contents of the report on the entire page, if required. We use the property AutoWidth of WebReport object. If you enable it, the cells of the table will be automatically stretched to the desired width to fill the area of the report page. Moreover, when the browser window is resized, the width of the cell will be adjusted to display all the data. But for this property must disable another - Layers. This report will be exported to a HTML as tabular. Now let's see how the report changed: And so, if you resize the window: So, using the properties of the object WebReport you can easily improve the appearance of the Web report. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### Report script security URL: https://www.fast-report.com/blogs/report-script-security Summary: Talking about the special tools for protecting your script on FastReport .NET, FastReport .NET Core, FastReport Mono and FastReport Open Source Talking about the special tools for protecting your script on FastReport .NET, FastReport .NET Core, FastReport Mono and FastReport Open Source Talking about the special tools for protecting your script on FastReport .NET, FastReport .NET Core, FastReport Mono and FastReport Open Source FastReport .NET  supports calculation of expressions for displaying values in the desired form, or any object visibility conditions. It is also possible to process events for each object of the report, e.g., before printing it. Event handlers are placed in a report script that supports C # and VB.NET languages. In addition to processing events, the script can contain almost any calculations or actions that can generate the necessary data or change the report behavior, as is required by the developer of the report template. Before building the program in the report script language, the report generator takes into account all expressions, functions, and calls to parameters in the report. Then the program is combined with the script that the report template developer had written. The resulting script is compiled and loaded as a library into the application that works with the report generator. When you run reports in web applications, you can edit them using the Online Designer . Editing is carried out using a browser, the edited report is sent to the server and then can be built there. While reports are edited by trusted developers and run in an isolated environment, the ability to use scripts in reports gives you freedom and almost unlimited possibilities for data processing and visualization. Editing and execution is under control. As soon as the possibility of general access to editing reports through the browser and Online Designer appears, the question of the building reports security on the server arises. It becomes possible to inject malicious code into script and report expressions. To prevent the execution of malicious code in the script and report expressions when working on the web, special security features have been added in FastReport .NET 2020.3.22 . The changes concern FastReport .NET, FastReport .NET Core, FastReport Mono and FastReport Open Source. Security features are active by default, but developers can change or disable them as needed in their applications. New properties and methods: bool FastReport.Utils.Config. EnableScriptSecurity – enables or disables checking of the report script. Works only when reports are running in web applications (FastReport.Utils.Config.WebMode == true). This property is set True by default (enabled). event FastReport.Utils.Config. OnEnableScriptSecurityChanged – the event is triggered when EnableScriptSecurity has been changed. Can be used for additional security controls. FastReport.Web.WebReport. SetScriptSecurity (IScriptChecker scriptChecker) - Installs a custom implementation of a verification method that overrides the built-in security controls. ScriptSecurityProperties FastReport.Utils.Config. ScriptSecurityProps - parameters for configuring the script security check. Is set NULL if a non-web application is running. (FastReport.Utils.Config.WebMode == false). bool FastReport.Utils.Config.ScriptSecurityProps. AddStubClasses – enables or disables adding stub classes for the script. This property is set True by default (enabled). Not overridden by setting your own SetScriptSecurity handler (see above). event FastReport.Utils.Config.ScriptSecurityProps. OnStopListChanged – the event is called when the StopList has been changed. Can be used for additional security controls. string[] FastReport.Utils.Config.ScriptSecurityProps. StopList - a list of keywords that should not be used in the report script. Contains a default list of words. FastReport.Utils.Config.ScriptSecurityProps. SetDefaultStopList() - sets the default value of the StopList (discards changes). The developed report script protection complex allows to minimize the threat of malicious code injection and its execution on the server side. It is necessary to remember that even the use of built-in report script security controls does not provide one hundred percent protection against the injection of malicious code into the saved templates. Therefore, we strongly recommend keeping access logs in web applications and allowing a limited number of privileged users to edit report templates.  Tags: .NET, .NET, Core, Core, Open Source, Open Source, Script, Script ### Report validation feature in FastReport .NET and Mono URL: https://www.fast-report.com/blogs/validation-feature-net-mono Summary: Test our new report validator to check object configurations in the FastReport designer.NET and FastReport Mono. Test our new report validator to check object configurations in the FastReport designer.NET and FastReport Mono. Test our new report validator to check object configurations in the FastReport designer.NET and FastReport Mono. The "Validation" window has been added to the FastReport .NET designer and FastReport Mono, which will display errors and warnings.  Warning - Unwanted object configuration that may cause some graphical errors when exported or previewed. Errors - The object configuration will result in export errors or blocking when trying to build a report. Now the report is being checked for basic errors that occur during the creation of report templates: 1. Intersecting objects. 2. Objects that are partially or completely beyond the parent object. 3. Objects with zero height and width 4. Objects without name (property Name = ""). 5. Objects with the same name. To open the "Validation" window, go to the "View" tab, click on the "Panels" button and select "Validation" in the appearing list. When you click on a line with an error in the "Validation" window, the object related to this error will be highlighted in the designer. With the “Validation” window, users can easily find errors and omissions in their reports and avoid errors in exported documents or problems during the preview. Tags: .NET, Mono, FastReport ### Report with two data levels (master-detail) in Delphi/Lazarus by the example of FastReport VCL / FMX URL: https://www.fast-report.com/blogs/master-detail-report-vcl-fmx Summary: FastReport's powerful "Multi-level Reports" feature allows you to collect reports from multiple tables. FastReport supports nesting up to 6 levels using the "Nested Report" object FastReport's powerful "Multi-level Reports" feature allows you to collect reports from multiple tables. FastReport supports nesting up to 6 levels using the "Nested Report" object FastReport's powerful "Multi-level Reports" feature allows you to collect reports from multiple tables. In this article I would like to tell you about such a powerful opportunity of FastReport as multilevel reports. Their structure can be compared to a tree – a trunk, large branches, thinner branches growing from them, and so on up to leaves – or with a company structure: divisions, subdivisions, employees. They are often called master-detail or master-subordinate and consist of several tables. One table contains a list of the main entities; another table bound with the first one contains a list of subordinate entities with a reference to the first table specifying which entity from the first table a certain entity from the second one is subordinate to, and so on. FastReport supports nesting of up to six levels (possibly more by using the Nested report object, but this will be described later). In real applications, one rarely has to print reports with large nesting of data; usually, 1–3 levels are enough. An example of building a master-detail report Let us consider creation of a two-level report. It will contain data from Customer and Orders tables. The first table is a list of customers; the second is a list of orders made by the customers. The tables contain the data of the following types: Customer: CustNo       Company 1221          Kauai Dive Shoppe 1231          Unisco 1351          Sight Diver Orders: OrderNo       CustNo       SaleDate 1003            1351          12.04.1988 1023            1221          01.07.1988 1052            1351          06.01.1989 1055            1351          04.02.1989 1060            1231          28.02.1989 1123            1221          24.08.1993 As one can see, the second table contains a list of all orders made by all companies. To get a list of orders made by a specific company, on should select the data from the table, for which the field CustNo is equal to the number of the selected company. The report built with these data will look like this: 1221 Kauai Dive Shoppe     1023 01.07.1988     1123 24.08.1993 1231 Unisco     1060 28.02.1989 1351 Sight Diver     1003 12.04.1988     1052 06.01.1989     1055 04.02.1989 Now we start making a report. We create a new project in Delphi and set for a form two TTable components, a TDataSource component, two TfrxDBDataSet components, and one TfrxReport component. Connecting data from the base to the report objects We set the components as follows: ``` Table1: DatabaseName = 'DBDEMOS' TableName = 'Customer.db' Table2: DatabaseName = 'DBDEMOS' TableName = 'Orders.db'   DataSource1: DataSet = Table1   frxDBDataSet1: DataSet = Table1 UserName = 'Customers'   frxDBDataSet2: DataSet = Table2 UserName = 'Orders'   ``` In the report designer, we connect our data sources in the Report|Data… window.  Add the 1st level data (master) and the 2nd level data (detail) bands to the page. From the data panel (on the right), we pull the table fields to the respective bands (master and detail). It will look like this: Attention – the 1st level data band must be located above! If it is located below the 2nd level data band, FastReport will inform of an error when a report is started. After starting we will see that the list of orders is the same for every customer and contains all records from the Orders table. This is because we did not switch on filtration of records in the Orders table. Let us return to our data sources. For the Table 2 component, we set the MasterSource = DataSource1 property. Thus, we set the master-subordinate connection. Now we have to set the condition of records filtration in the subordinate source. To do that, call the editor of the MasterFields property at the Table 2 component: We have to connect two CustNo fields in both sources. To do that, select the CustNo index in the list above, select the fields and click the Add button. The bunch of fields will be relocated into the lower window. After that, close the editor with ОК button. When a report is launched, FastReport will do the following. It will select the next recording from the main table (Customer) and set the filter to the subordinate table (Orders). Only the recordings which satisfy the condition Orders.CustNo = Customer.CustNo will be left in the table. That is, for each customer only the orders of that customer will be shown: Similarly, you may build reports with up to six data levels. Tags: VCL, VCL, FMX, FMX, Lazarus, Lazarus, FastReport, FastReport, Delphi, Delphi ### Reporting FMX URL: https://www.fast-report.com/products/reporting-fmx Summary: A cross-platform set of FMX components for creating documents based on Embarcadero FireMonkey A cross-platform set of FMX components for creating documents based on Embarcadero FireMonkey A cross-platform set of FMX components for creating reports and documents based on the Embarcadero FireMonkey development environment. Reporting FMX A cross-platform set of FMX components for creating documents based on Embarcadero FireMonkey Buy Try for free Documentation Lots of components A variety of elements are available for building reports in the designer: from text and images to mathematical formulas and 3D diagrams. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Safety Protect your templates and reports with strong data encryption. Adapt all source codes to suit your solutions. Source code This set of components includes FastReport source codes. Maximum convenience for companies wishing to adapt the code to their needs. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. Graphics core For creating graphical elements, rendering text, and managing graphic images, GDI+, D2D, and, of course, Quartz can be used. Ultimate VCL Learn more about Ultimate VCL Report with two data levels (master-detail) in Delphi/Lazarus by the example of FastReport VCL / FMX FastReport's powerful "Multi-level Reports" feature allows you to collect reports from multiple tables. FastReport's powerful "Multi-level Reports" feature allows you to collect reports from multiple tables. FastReport supports nesting up to 6 levels using the "Nested Report" object How to install and use FastReport FMX 2.8 for FmxLinux How to install and use FastReport FMX 2.8 for FmxLinux. Quick start guide. How to install and use FastReport FMX 2.8 for FmxLinux. Quick start guide. Report generators family FastReport brief review Describing FastReport .NET generator, its capabilities and advantages. Describing FastReport .NET generator, its capabilities and advantages. Any other questions? Contact the manager ### Reporting FMX - FAQ URL: https://www.fast-report.com/faqs/reporting-fmx Summary: Explore reporting solutions in FMX with FastReport and get tips on how to enhance your reports. Explore reporting solutions in FMX with FastReport and get tips on how to enhance your reports. Is the product compatible with the UniGUI framework? Yes, our product is compatible with the UniGUI framework Is there support for macOS? Yes, there is support for Windows, macOS, and Linux Which IDE versions does FastReport FMX support? From the Delphi XE2 version to the current version. Is there support for Lazarus? The FMX framework does not support Lazarus. If you need to create reports in Lazarus, our FastReport VCL as a package **[Reporting Lazarus](https://www.fast-report.com/products/reporting-lazarus)** is perfect for you. Is there support for Linux? Support is available with the FMXLinux framework. For more information, see **[How to install and Use FastReport FMX 2.8 for FmxLinux](https://www.fast-report.com/blogs/install-fmx-linux)** Is the product compatible with the FMXLinux framework? FastReport FMX supports the FMXLinux framework. For more information, see **[How to install and Use FastReport FMX 2.8 for FmxLinux](https://www.fast-report.com/blogs/install-fmx-linux)** ### Reporting Lazarus URL: https://www.fast-report.com/products/reporting-lazarus Summary: A universal LCL set of components with source codes for generating reports and documents on Lazarus for Linux and Windows A universal LCL set of components with source codes for generating reports and documents on Lazarus for Linux and Windows A universal LCL set of components with source codes for generating reports and documents on Lazarus for Linux and Windows. Reporting Lazarus A universal LCL set of components with source codes for generating reports and documents on Lazarus for Linux and Windows Buy Try for free Documentation Lots of components A variety of elements are available for building reports in the designer: from text and images to tables and interactive maps. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Safety Protect your templates and reports with strong data encryption. Adapt all source codes to suit your solutions. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. Graphics core GDI and GTK are used to create graphic elements, render text, and manage graphics. Source code This set of components includes FastReport source codes. Maximum convenience for companies wishing to adapt the code to their needs. Ultimate VCL Learn more about Ultimate VCL FastReport VCL: How 25 Years of Innovation Changed the Approach to Reporting in VCL Applications FastReport VCL is a report generation tool that has become an essential part of developers' arsenal on the Delphi platform over more than a quarter of a century. Since its inception in the late 1990s, the product has evolved from a simple template designer into a comprehensive system that supports interactive elements, vector graphics, and integration with modern IDEs. We decided to take a look back to demonstrate how reporting technologies have changed and to trace the key stages of the product's development in each version. We decided to take a look back to demonstrate how reporting technologies have changed and to trace the key stages of FastReport VCL development in each version. Localization and Language Switching in FastReport VCL Starting from version 2023.2, the localization mechanism in FastReport VCL has been significantly improved — it is no longer necessary to recompile in order to translate FastReport into other languages. FastReport VCL supports 40 languages for interface localization and allows you to change the language on the fly through menus or code, without recompilation. How to Set Up WSL 2 for Working with FastReport and FastCube In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. Any other questions? Contact the manager ### Reporting VCL URL: https://www.fast-report.com/products/reporting-vcl Summary: A set of VCL components with full source codes for creating reports and documents A set of VCL components with full source codes for creating reports and documents A set of VCL components with full source codes for creating reports from a visual designer with export to various data formats. Reporting VCL A set of VCL components with full source codes for creating reports and documents Buy Try for free Documentation Lots of components A variety of elements are available for building reports in the designer: from text and images to mathematical formulas and 3D diagrams. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Compatibility and integration Reporting VCL is part of the unified FastReport ecosystem on Delphi. Reports created in the Lazarus solution will work in the Reporting VCL and vice versa. Smooth transition from other solutions Our report generator instantly converts your reports from Quick Report, Report Builder, and Rave Reports in FastReport format. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. System.Drawing (GDI) The familiar System.Drawing with GDI graphics functions is used to create graphical elements, render text, and manage graphic images. Ultimate VCL Learn more about Ultimate VCL Full Review of FastGrid Library's Capabilities FastReport VCL Ultimate users have probably already noticed that the installer now includes two new options: FastEditors VCL and FastGrid VCL. A new demo has also been added to the DemoCenter: FastGrid VCL Demo. An overview of the FastGrid library for VCL and Lazarus: data visualization, editing, and structuring. Sorting, filtering, grouping, convenient data editors — all in one article! New Report Validation System in FastReport VCL We have frequently received requests from technical support for functionality to automatically validate reports, and we are pleased to announce its inclusion in the 2026.2.0 release. The "File" menu in the report designer now features "Validate" and "Validation Rule Settings" options. This allows users not only to check reports but also to manage the set of rules, including the creation of custom ones In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. Using Watermarks in FastReport VCL The latest versions of FastReport VCL now feature watermarking functionality. Watermarks are labels embedded in electronic documents, images, videos, audio, or other digital content. Their purpose is to confirm authorship, protect against copying, and track file distribution. In this article, we'll take a detailed look at creating and using watermarks in FastReport VCL reports. An example of watermark use is available in the Demo included with FastReport VCL. The article provides a detailed overview of the watermark functionality in FastReport VCL — covering both the visual interface and programmatic methods using Delphi code and report scripts. Any other questions? Contact the manager ### Reporting with PostgreSQL in a .NET 5 application for Debian 10 URL: https://www.fast-report.com/blogs/report-postgresql-dotnet-debian Summary: Example of a report with code based on the FastReport library.Core using SQL databases on the Debian 10 operating system. Example of a report with code based on the FastReport library.Core using SQL databases on the Debian 10 operating system. Example of a report with code based on the FastReport library.Core using SQL databases on the Debian 10 operating system. Many need a solution that will generate reports for Linux systems, and support working with SQL-like databases and not only. We have such a solution FastReport.Core. This library allows you to create reports under different Linux distributions and it can connect to different databases. In this article, we will look at how to implement this on a Debian 10 distribution using PostgreSQL. First, install PostgreSQL on Debian 10. You can find a detailed installation at  the following link . Let's check the Postgres performance by going to the terminal. Switch to the postgres account with the following command: ``` $ sudo -i -u postgres ``` After that, write the following to access the postgres shell: ``` $ psql ``` Now we have access to the postgres command line, and additionally, we have checked that it works. Add a password for postgres user instead of 'password123': ``` ALTER USER postgres WITH PASSWORD ‘password123’ ``` Let's create a test table: ``` CREATE TABLE test (city varchar(80), temp_lo int, temp_hi int); ``` Fill it with data: ``` INSERT INTO test VALUES ('Chicago',30,40); ``` Done, now check the table for data with the following command. The result is shown in the figure below. ``` SELECT * FROM test; ``` To create an application on .NET 5.0, we need to install DotNet itself. Go to the page with detailed installation  and look closely at all the necessary points. For more convenient work, you can download VS code  at this link . Then download the deb package and install it on your computer. Download the C# and Nuget Gallery plugins in VS code. The latter is needed for easy search and correct installation of nuget packages. We create a project in VS code, for this, we press ctrl + J to open the console inside VS code. Then enter this command: ``` dotnet new console ``` After creating the project, we need to download and install the necessary libraries. Upon completion of the previous steps, open the Nuget Gallery in a test project. Find FastReport.Core and install it. Be sure to check the box next to Prerelease, as this package is a demo version, otherwise, the package will not be displayed. The connector is not a demo version, so you don’t have to check the Prerelease box. It is enough to find FastReport.Data.Postgres in the search bar and install it in the same way as the previous package. After installing all the necessary components, open Program.cs in our project and paste the following code into the main method: ``` using System; using FastReport; using FastReport.Data; using FastReport.Utils; using FastReport.Export.Pdf;   static void Main(string[] args) { //Creating a connection to PostgreSQL   RegisteredObjects.AddConnection(typeof(PostgresDataConnection)); PostgresDataConnection connection = new PostgresDataConnection(); connection.ConnectionString = "Host=localhost;Username=postgres;Password=1234;Database=postgres"; connection.CreateAllTables();   //Creating a report and connecting the database and table to the report   Report report = new Report(); report.Dictionary.Connections.Add(connection); connection.Enabled = true;   foreach(TableDataSource table in connection.Tables) { if(table.Name == "public_test") { table.Enabled = true; } }   ReportPage page = new ReportPage(); report.Pages.Add(page); page.CreateUniqueName();   DataBand dataBand = new DataBand(); page.Bands.Add(dataBand); dataBand.CreateUniqueName();   //Assigning DataBend to our table   dataBand.DataSource = report.GetDataSource("public_test"); dataBand.Height = Units.Centimeters * 0.5f;   TextObject City = new TextObject(); City.CreateUniqueName(); City.Bounds = new System.Drawing.RectangleF(0,0,100,100); City.Parent = dataBand;   //Assigning values to a text object from a DB field   City.Text = "[public_test.city]";   TextObject temp_lo = new TextObject(); temp_lo.CreateUniqueName(); temp_lo.Bounds = new System.Drawing.RectangleF(150,0,100,100); temp_lo.Parent = dataBand; temp_lo.Text = "[public_test.temp_lo]";   TextObject temp_hi = new TextObject(); temp_hi.CreateUniqueName(); temp_hi.Bounds = new System.Drawing.RectangleF(300,0,100,100); temp_hi.Parent = dataBand; temp_hi.Text = "[public_test.temp_hi]";   report.Prepare();   PDFExport pDF = new PDFExport(); pDF.Export(report,"test.pdf");   } ``` Then let’s compile and run our project. It will generate the following PDF report file: The conclusion will be very simple. Connecting a database to your application is not difficult, just today, we created a report using data from a PostgreSQL database in a Debian 10 distribution. Tags: .NET, .NET, Visual Studio, Visual Studio, FastReport, FastReport, Linux, Linux, Core, Core, SQL, SQL, .NET5, .NET5, NuGet, NuGet ### Reports and PDF documents in Blazor URL: https://www.fast-report.com/blogs/reports-and-pdf-in-blazor Summary: Step-by-step creation of a simple web application based on Blazor Server technology. Step-by-step creation of a simple web application based on Blazor Server technology. Step-by-step creation of a simple web application based on Blazor Server technology. Microsoft has recently launched a web platform called Blazor. This framework allows creating an interactive web interface with the C# language, as well as HTML and CSS. Blazor is highly demanded and rapidly gains popularity among many .NET developers. We have updated the FastReport.Web package, adding Blazor components for working with reports in web applications based on Blazor Server technology. These components are used in .NET Core 3.1 (and higher) and are in beta status and will be improved over time. Below we describe the creation of a simple web application based on Blazor Server technology. You can download this demo project in my profile at GitHub . To begin with, we create our new project. We will use a ready template for Blazor Server.  You can create a project with Visual Studio (both for Windows and for macOS) or with.NET CLI. In both cases, we will need.NET Core SDK (.NET SDK) version 3.1 or newer, which can be downloaded from the Microsoft official website. Visual Studio 2019: For .NET CLI we type the following command in the console (terminal): ``` dotnet new blazorserver ``` We see the following project structure: To simplify the project, we delete some unnecessary files from the created template: - the whole Data folder - Pages\Counter.razor - Pages\FetchData.razor - Shared\SurveyPrompt.razor We add a new folder called “Reports” to our project folder and place all necessary reports into it. For demonstration, I have added simple reports which are applied during installation of the FastReport demoversion : Simple List, Complex (Master-detail + Group), Subreport, Barcode, and Chart. Also, for these reports we need a database in xml - nwind.xml format; we place it in the same folder. Also, it is necessary that the content of the Reports folder could be copied into the output folder; for that, we select the relevant files in Visual Studio and “Copy if newer” in Properties. If there is no Visual Studio, you may manually indicate this property in the project file (.csproj): ``` PreserveNewest ``` Then we have to add FastReport.Core and FastReport.Web packages to our project. This can be done also via Visual Studio or via .NET CLI. Let us consider both variants. To add a package to Visual Studio, click the right mouse button on our project file (csproj). A context menu opens; select “Manage NuGet packages”. Search for both necessary packages. Mind that the tick “Include prerelease” must be active. To add a package via .NET CLI, type the following commands: ``` dotnet add package FastReport.Core --prerelease dotnet add package FastReport.Web --prerelease ``` Then we should add the namespaces used by FastReport.Core and FastReport.Web into the list of files namespace used for Razor. For that, edit the _Imports.razor file by adding several lines: ``` @using FastReport@using FastReport.Web @using FastReport.Web.Blazor.Components ``` Register FastReport in the configuration of our application. To do that, open Startup.cs file and add the following line in the end of Configure method: ``` app.UseFastReport(); ``` In Pages\_Host.cshtml file, substitute the first line for the following: ``` @page "/{ReportName}" ``` This is necessary to make the URL able to contain the name of the report that we want to open. Then we edit the navigation menu Shared\NavMenu.razor to map all the available reports in the Reports folder and to switch between them. ``` @using System.IO    
  @code { // List of reports in folder private string[] reports = Directory.GetFiles( Path.Combine( Directory.GetCurrentDirectory(), "Reports")) .Where((filename) => Path.GetExtension(filename) == ".frx") .Select((filename) => Path.GetFileName(filename)) .ToArray(); } ``` Now we are coming to the main stage. Edit the Pages\Index.razor file to map reports with the main component of the FastReport.Web.Blazor library – WebReportContainer . Type the following: ``` @page "/" @page "/{ReportName}"     @code { [Parameter] public string ReportName { get; set; }   public WebReport MyWebReport { get; set; } }   ``` We have added the WebReportContainer component and attributed a single property to it – an object of WebReport class. Let us create another file with a similar name – Index.razor.cs next to the Pages\Index.razor file and write a simple logic in it: ``` using System.IO; using System.Data; using FastReport; using FastReport.Web;   namespace DemoBlazor.Pages { public partial class Index { const string DEFAULT_REPORT = "Simple List.frx"; readonly string directory;   DataSet DataSet { get; }   protected override void OnParametersSet() { base.OnParametersSet();   var report = Report.FromFile( Path.Combine( directory, string.IsNullOrEmpty(ReportName) ? DEFAULT_REPORT : ReportName));   // Registers the user dataset report.RegisterData(DataSet, "NorthWind");   // Create new WebReport object MyWebReport = new WebReport { Report = report, }; }   public Index() { directory = Path.Combine( Directory.GetCurrentDirectory(), Path.Combine("Reports"));   DataSet = new DataSet(); DataSet.ReadXml(Path.Combine(directory, "nwind.xml")); } } } ``` This logic is responsible for registering data, creating a WebReport object, attributing the necessary parameters to it, including the very Report which we download either from the report name in the enquire line or use by default, defined in the constant DEFAULT_REPORT. After the remaining minor manipulations with the style and formatting, we get a web application that can handle reports and provides an opportunity to create documents in various formats (PDF, Excel, Word, and Open Office). Useful links: - Documentation (en):  https://www.fast-report.com/public_download/docs/FRNet/online/en/ProgrammerManual/en-US/UsingBlazor.html - Online demo: https://fastreportwebblazor.azurewebsites.net/ - NuGet package: https://www.nuget.org/packages/FastReport.Web Tags: .NET, Visual Studio, FastReport, Core, C#, Blazor ### Representation for tabular data in Excel export URL: https://www.fast-report.com/blogs/representation-tabular-excel One of the most demanded formats of report exporting is Excel file. It's the most popular format in accounting reporting. You can edit the report in Excel format using MS Excel tools further on. FastReport.Net provides the range of very interesting features of report export in Excel. Let's look at the window of report export settings to Excel 2007: So, we have the capability to export: all pages, current page, selected page. Now let’s consider the export options: • Wysiwyg - the precise location of the object after export, default true. If turned off, the border will be very "rounded". Empty rows and columns will be excluded. All this greatly changes the appearance of the report. You may disable this option if the appearance of the report does not really matter. Let us consider an example. Option Wysiwyg: And now with disabled option: Changed allocation of figures on the table columns. • Page breaks - page breaks when printing in accordance with the report pages, enabled by default. Let us consider an example. In the first case shows the excel page document when printing with the option Page breaks: In the second case shows the document with the disabled option Page breaks: Data only - just triggers the export of data band, is disabled by default Here’s how the document looks if the Data only property is disabled: The report looks the same as when you build it in the designer. Now we will do the export with enabled option Data only: As you can see just the bands with the data are displayed. There is no header, no footer. • Seamless table - allows you to remove from the export the footer bands and the following header band. This is designed to excel table looked like a uniform, with no breaks in the pages. The figure below shows a table broken by the band footer. Admit it, it’s not very convenient for an excel document. Now let's see what the table looks like, if you enable the option Seamless table: I want to say a few words about the development of reports. The report has a layered structure, and the Excel file - a tabular one. When exporting to Excel, FastReport converts layers into a table. If there is an intersection of cells in the report, the conversion algorithm may fail. Check the template to the intersection cells and the gaps between them, if you want to correct export to Excel. Tags: .NET, .NET, Export, Export, FastReport, FastReport, Excel, Excel ### Resolving Conflicts at FastReport.Net assemblies URL: https://www.fast-report.com/blogs/resolving-conflicts-net-assemblies Conflicts often occur If you use different versions of the same program. There might be different reasons for this.  Often after you remove the previous version - the old libraries still remain. Or a new version of the product can be installed "on top" of the previous one without prior proper removal. For example,  a strong indication of a conflict is a watermark of the demo version in the licensed version. Sometimes all you have to do is to correct references to the new libraries. But the used libraries can be from the GAC. One of the ways to resolve this issue is to completely remove FastReport .Net and reinstall it. Let's consider the process of the complete removal FastReport.Net: Close Visual Studio; Use FastReport.Net uninstall program from the control panel; Make sure that the folder "C: \ Program Files (x86) \ FastReports \ FastReport.Net Trial" removed, or delete it manually; In Windows Explorer, open the folder “C: \ Windows \ assembly”, and find in the list and delete libraries: FastReport, FastReport.Bars, FastReport.Editor, FastReport.VSDesign, FastReport.Web; In Windows Explorer, open the folder “C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL”, find the folder names with FastReport, FastReport.Bars, FastReport.Editor, FastReport.VSDesign, FastReport.Web and remove them; Delete the folder with the configuration files “C: \ Users \ USER_NAME \ AppData \ Local \ FastReport”. Removing a configuration may also be useful to restore the original location of the control objects in FastReport Designer; Re-install FastReport.Net. Let's look at the other possible sources of the conflict. • Wrong uninstall. If you just delete the folder with the program, conflicts are inevitable. Remove FastReport .Net using the uninstall utility from the folder with the program. • Damage to the official msi installer files. Also, these files can be deleted by utilities of the garbage cleaning or by user. We have examined the typical conflicts that may arise when you use FastReport.Net. Now you know how to avoid them. Tags: .NET, .NET, FastReport, FastReport ### Results of Embarcadero's webinar URL: https://www.fast-report.com/news/results-webinar-2012 Summary: Results of Embarcadero's webinar Results of Embarcadero's webinar As you know, on 7 F ebruary there was a webinar which was devoted to RAD Studio Reporting with FastReport.  Thank you everyone for participating! You can find a video from the webinar o n our Youtube channel . Go and subscribe to our  channel . Y ou can see a post ing about this webinar in Michael Philippenko ’s blog. ### Roslyn features in Visual Studio 2015 Preview URL: https://www.fast-report.com/blogs/roslyn-features-visual-studio Introduction Release of Visual Studio 2015 Preview includes new version of C# and VB.NET compilers called "Roslyn". Roslyn is a complete rewrite of C# and VB.NET compilers; if previously they were written in C++, now C# compiler is written in C#, and VB.NET compiler - in VB.NET respectively. Also Roslyn is fully open sourced and available on GitHub. When using the previous compiler, developer couldn't affect the compilation process. New compiler follows the idea of Compiler-as-a-Service: now it's a platform with API that allows the developers taking part in the compilation process. Benefits Refactoring becomes much easier. Developers of Visual Studio extensions can use the infrastructure of Roslyn to not waste their time on writing parsers and analyzers. Roslyn can be used in .NET applications to compile and execute dynamically generated code. Roslyn can greatly help in translating C# code to another programming language. New features based on Roslyn in VS 2015 Unused «using» directives are highlighted by gray color. Ctrl+. now contains the preview window that allows developers evaluating the result of the command. The menu Ctrl +. collected new commands to solve problems with the code and refactoring commands. Added new commands for refactoring: Inline temporary variable and Introduce local . Preview is available in renaming interface and it shows messages about possible errors. Tags: Visual Studio, Visual Studio ### Save $100 on PASS tickets in November! URL: https://www.fast-report.com/news/fastreport-economy-november-2019 Summary: Save $100 on PASS tickets in November! Save $100 on PASS tickets in November! We are excited to be a part of PASS Summit 2019 . Use promocode  PASSExhibitor  during registration to save $100 on your ticket. See you on November 5-8 in Seattle! ### Save the original image quality when exporting to PDF URL: https://www.fast-report.com/blogs/save-original-image-quality-pdf In PDF export report there is a new option - "Original Resolution". It allows you to save images in full resolution. Sometimes it is important to transfer an image with the original quality. Using this new option, you will be able to get the image from a PDF document without any quality loss. Here there is one restriction - you cannot rotate the image in the report because it will require a change of the image. However, FastReport has a special protection on the odd chance that you have rotated the image. PDF export will get the original picture. What if you find an image of not a desired angle in your PDF report? In this case, you should check the export options to make sure that the "Original Resolution" option is enabled. If it is necessary, you can scale the image. Let us take a look at the following example.  First, create a simple report. Add an object "Picture" to the report page. Double click on the added object "Picture". After this, a picture editor will open: Use the "Load" button and select the image on the local disk. Click "OK". Here, scaling of the object "Picture" is optional: Run the report in preview mode. Select «Save» -> «Adobe Acrobat» In the PDF export settings select the "Options" tab: Click "OK" and save the export file: Now change the report template. Establish the "Angle property" of the object "Picture" to 90 degrees. Take into account, that you should make export to PDF with the enabled "Original resolution": As you can see, the image has not been rotated by 90 degrees. Let us make another export to PDF, but with a disabled option "Original resolution": In this case, we get an image, rotated by 90 degrees. But what happened to the "original" image? The quality is lost. It is seen from the size of the file: In the last export, we have disabled the option "Original Resolution" and got the file size of 93 KB instead of 14 703 KB. You can stretch the image if you open your PDF file in the editor. In first two exports the picture with high resolution will retain quality: In the third one you will see a terrible pixelation: Summing up, in the article we have illustrated a method, that helps you to send documents, retaining the original image quality. Tags: .NET, .NET, FastReport, FastReport, PDF, PDF ### Saving a report in PDF/X format URL: https://www.fast-report.com/blogs/saving-report-pdf-x-format Summary: PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. It is important for polygraphy, where it is important to print documents on any print device uniformly, whether the printer or plotter. PDF/X document contains color profiles for printers, due to which will be printed out exactly the color, which was conceived by the author. Thus, the standard PDF/X gives us guarantee of unchanging the final document. That makes PDF format ideal for document management in the sphere of publishing and polygraphy. The disadvantage of this format is the impossibility of use of properties: encryption, compression JBIG2 and transparent. PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. It is important for polygraphy, where it is important to print documents on any print device uniformly, whether the printer or plotter. PDF/X document contains color profiles for printers, due to which will be printed out exactly the color, which was conceived by the author. Thus, the standard PDF/X gives us guarantee of unchanging the final document. That makes PDF format ideal for document management in the sphere of publishing and polygraphy. The disadvantage of this format is the impossibility of use of properties: encryption, compression JBIG2 and transparent. PDF/X standard is constantly evolving and has already presented 5 th generations: • PDF/X-1a - the first standard, designed to work with documents: black / white, CMYK or spot color; • PDF/X-3. The PDF/X-3 has a color management support; • PDF/X-2. Add-on PDF/X-3. Designed to interact more closely the supplier and the recipient of the file. Support OPI (Open Pre-Press Interface) and does not support embedded fonts; • PDF/X-4. The updated version of the PDF/X-3, which supports transparency and spot colors; • PDF/X-5. Based on PDF/X-4, allows external images. You probably noticed that the standard X-2 is located after X-3. It's not a mistake. Developers have created X-2 after X-3. Apparently they did not want a gap in numbering. FastReport.Net supports export to PDF/X-3 format. Thus, later on we will consider its features. There are some restrictions applicable to the PDF/X-3 files: • All fonts must be embedded in the document; • All the color data can be grayscale, CMYK or spot colors. It is also permissible RGB, LAB or ICC based color spaces. If you are using a device-independent color, the embedded ICC profiles and the Rendering Intent, should be taken into account when processing the PDF/X-3. This means that you need to know the color management process to be able to process PDF/X-3 files; • OPI is not allowed; • PDF/X-3 files can not contain music, videos, or other non-printing data; • If there are annotations (notes) to PDF, they should be located outside of the bleed; • The file should not contain any forms or Javascript code; • Supported by a limited number of compression algorithms; • You cannot use encryption; • Do not use curves; • Do not use transparency. In addition to restrictions there is also a list of what should be in PDF/X-file 3. This is what distinguishes it from ordinary PDF files: • metadata that indicates that the file is a PDF/X and some details indicating the version of the standard; • PDF/X-3 contains additional statements that define the bleed (bleed area) and the area to crop (trim area): MediaBox defines the size of the entire document; ArtBox or TrimBox defines the boundary of the printing area; If the file is printed with the bleed, you should ask BleedBox. It must be more than TrimBox / ArtBox, but less than the MediaBox. • The file must contain the ICC color profile, which specifies the color space CMYK. This profile should be implemented as OutputIntent. Now consider the process of creating a report export in PDF/X. So: - Prepare a report template and run it in preview mode; - Choose Export to PDF format. We are interested in "Settings" tab: There are some changes unlike in previous versions of FastReport. This tab looked like this, before: Added the new option " Lossless images". It allows you to use the original image without conversion to Jpeg. This is especially important for vector images and barcodes. The main differences in the "Compliance" section. Now you do not need to choose this option. The default is PDF 1.5 format. This is the usual Export as PDF. The list of compliance standards contains one more - PDF/X-3. Select it. The options of the "Security" tab will not be available. Open the export file in a PDF program Adobe Acrobat Pro. you need to open the panel "Standard" to verify compliance with the standard document. "View" opens the menu - "Show / Hide" -> "Navigation Area" -> "Standards". Now we can see that the document does conform to the PDF/X-3 ISO 15930-3: Thus FasrtReports reports become more useful, especially for polygraphy and publishing. Now there is no need to worry about repetition reproduction of a document on the different sources of print. The report will always look the same. Tags: .NET, FastReport, PDF ### Saving FastReport .NET template to RDL file URL: https://www.fast-report.com/blogs/saving-net-template-rdl Why is it necessary Possibility to save FRX report to RDL is needed for some users. Unfortunately, some objects of FRX report will be lost, because there is no relevant in the RDL . Saving the report to RDL format To do this go to the File menu in designer and select Save As... . On next window select the filter RDL file (*. rdl) and enter the file name. The designer saves report template in the RDL file. The next pictures shows FRX report (left) and the same report saved in RDL (right). Tags: .NET, .NET, FastReport, FastReport ### Saving images from Delphi / C++ Builder / Lazarus URL: https://www.fast-report.com/blogs/saving-images-delphi Summary: We talk about the advantages and disadvantages of popular raster image formats. Saving the report in the form of images with fine-tuning using FastReport VCL and code. We talk about the advantages and disadvantages of popular raster image formats. Saving the report in the form of images with fine-tuning using FastReport VCL and code. We talk about the advantages and disadvantages of popular raster image formats. Saving the report in the form of images with fine-tuning using FastReport VCL and code. BMP, JPEG, TIFF, GIF – there is a variety of raster image formats. 1. BMP First of all, you should know that since BMP is an old image format it is not so popular among Internet users, only the bitmap images are saved in this format which doesn’t support the vector ones. The size of .bmp files can differ, depending on the quality of the images. Despite the fact that users consider the BMP format obsolete, it is actively used in many spheres. For example, all Windows interfaces were based on this format. Why exactly BMP? Because it is convenient to use when creating images that do not lose quality after editing them. BMP is often used in Photoshop when editing images, this format is also easy to upload to social networks and various websites. Of course, it is better to use modern image formats, as they are multi-layered and you can upload them to any website without technical issues. At the same time, there are many options to edit these images and they have a smaller file size. 2. JPEG JPEG is a commonly used format for storing images. It has a good compression quality for viewing pictures. This format has many benefits because the user has several advantages, such as: the ability to change the quality and size of the file, open the image in any browser with ease, editing this file in any graphic editors, as well as low size, which doesn’t take much space on computers and other data storage devices. If you do not compress much, the quality of the image will be completely saved. This format has few disadvantages: a) There is no transparency unlike, for example, PNG. b) If you compress (resize) the JPG image, its distortion (or complete loss) will be noticeable. c) It is not recommended to edit the restored JPG file after compression, as it may lose the quality. Despite these drawbacks, this format is considered the most popular on the internet and people use it a lot. 3. TIFF This is a well-known raster format that supports almost all known color spaces. Images without compression has almost become the standard in the printing industry. There are various compression algorithms with or even without losses. A TIFF file can contain an image stored in the CMYK, RGB, Lab color models in indexed color mode, as well as in grayscale. This allows to use this format for storing a variety of images, used both for the preparation of web-graphics and typography. In addition to the image itself, the TIFF contains transparency channels which allows you to save transparent areas of the image or highlight objects between work sessions. Another feature of the TIFF format is the ability to save multiple images that have their own sets of attributes and properties (tags) in one file. This makes TIFF similar to GIF, though it doesn’t have the ability to create animated images. The popularity of this format makes it easy to transfer images between programs and hardware platforms. 4. GIF GIF files have small size and support simple animations, i.e. changing frames in one file. GIF format is widespread in the field of creating banners, as well as the graphic shell of video content. The main advantage is data compression without an obvious loss of quality at a depth of up to 256 colors. Animated images consist of a number of static frames, as well as data on the required time of demonstration of a frame. People use the GIF format in many fields. For example, in the design of their sites, web design, graphic design, while writing articles or books, on social networks, in the form of advertising banners, for storing photos and so on. Using this format, you can reduce the size of the image, which positively affects the speed of loading pages of the Internet website. 5. SVG This format is a vector one. In short, the websites are compiled with its help. SVG is an XML text file with tags. This format doesn’t lose the image quality when scaling and cropping. For more information on the advantages and disadvantages of SVG format, as well as about saving it from Delphi, see here .  Now we know when and which format is better to use. So how can we export to these formats from a Delphi / Lazarus application? Easy! Of course, this is not our primary goal, there are many options. We are interested in the opportunities of FastReport VCL, because using it we can prepare a document, a poster, a banner – fortunately, the visual designer includes graphic primitives and many objects with effects. You can immediately see an, if needed, change / edit the document before exporting it to the desired image format. So, we need to create / save / export to BMP or GIF from Delphi? First we have to create a document. Simple or complex – there is no difference. Now, after we created the object that we want to turn into an illustration, launch and look . In the preview window, we select the format for saving the report. For example, we need to export to BMP image. Select and click. The export settings window will appear. Configure and save. Let’s talk a bit about settings. We can save all pages, current page or a range. Here are the screenshots to compare the settings of different formats: (TIFF, JPEG,GIF)  In some cases, some settings are not available (format differences). Monochrome – images in shades of black; Crop pages – whether to crop pages; JPEG quality – setting the quality of the graphic object; Resolution (dpi) – dots per inch; Open after export – opening the document automatically after the export. You can specify where to save your file (in the local storage, send as E-mail, upload to FTP or cloud storage). Well, now we learned how to easily save the report in graphical formats from Delphi / C++Builder / Lazarus from the preview window. But how can we save BPM/JPEG/TIFF/GIF directly from the Delphi / C++Builder / Lazarus code? Here is how! Export to BMP ``` procedure TForm1.Button1Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxBMPExport1.PageNumbers := '2-3'; {Set whether to export each page to a separate file.} {.N will be added to the file name, where N is the serial number of the page} frxBMPExport1.SeparateFiles := True; {Set whether to export to monochrome image} frxBMPExport1.Monochrome := False; {Set whether to crop empty edges (page margins)} frxBMPExport1.CropImages := False; {Set the resolution, DPI} frxBMPExport1.Resolution := 96; {Set whether to open the resulting file after export} frxBMPExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxBMPExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxBMPExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxBMPExport1.FileName := 'C:\Output\test.bmp'; {Export the report} frxReport1.Export(frxBMPExport1); end; ``` Export to JPEG ``` procedure TForm1.Button2Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxJPEGExport1.PageNumbers := '2-3'; {Set whether to export each page to a separate file.} {.N will be added to the file name, where N is the serial number of the page} frxJPEGExport1.SeparateFiles := True; {Set whether to export to monochrome image} frxJPEGExport1.Monochrome := False; {Set whether to crop empty edges (page margins)} frxJPEGExport1.CropImages := False; {Set the quality of JPEG} frxJPEGExport1.JPEGQuality := 90; {Set the resolution, DPI} frxJPEGExport1.Resolution := 96; {Set whether to open the resulting file after export} frxJPEGExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxJPEGExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxJPEGExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxJPEGExport1.FileName := 'C:\Output\test.jpg'; {Export the report} frxReport1.Export(frxJPEGExport1); end; ``` Export to TIFF ``` procedure TForm1.Button3Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxTIFFExport1.PageNumbers := '2-3'; {Set whether to export each page to a separate file.} {.N will be added to the file name, where N is the serial number of the page} frxTIFFExport1.SeparateFiles := True; {Set whether to export to monochrome image} frxTIFFExport1.Monochrome := False; {Set whether to crop empty edges (page margins)} frxTIFFExport1.CropImages := False; {Set the resolution, DPI} frxTIFFExport1.Resolution := 96; {Set whether to open the resulting file after export} frxTIFFExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxTIFFExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxTIFFExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxTIFFExport1.FileName := 'C:\Output\test.tif'; {Export the report} frxReport1.Export(frxTIFFExport1); end; ``` Export to GIF ``` procedure TForm1.Button4Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxGIFExport1.PageNumbers := '2-3'; {Set whether to export each page to a separate file.} {.N will be added to the file name, where N is the serial number of the page} frxGIFExport1.SeparateFiles := True; {Set whether to export to monochrome image} frxGIFExport1.Monochrome := False; {Set whether to crop empty edges (page margins)} frxGIFExport1.CropImages := False; {Set the resolution, DPI} frxGIFExport1.Resolution := 96; {Set whether to open the resulting file after export} frxGIFExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxGIFExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxGIFExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxGIFExport1.FileName := 'C:\Output\test.gif'; {Export the report} frxReport1.Export(frxGIFExport1); end; ``` After seen how we can create and export to such formats, we come to the conclusion that it is extremely easy! But please – do not exploit these features! Very often (for example, many software products for generating tax reports or 1040-SR forms) allow to save the resulting file only in a certain closed format, send it to print or save as TIFF – unfortunately, this option doesn’t withstand any criticism from the point of view further use. It can only be admired or printed. After all, it doesn't cost you anything to export these documents to PDF (or, if necessary – PDF/A), ODS , ODT , RTF , DOCX , XLSX – with full support of relevant standards but much more convenient for working with them as text documents.  Tags: VCL, Export, Lazarus, FastReport, Delphi ### Saving report in cloud services from a user application code URL: https://www.fast-report.com/blogs/saving-report-cloud-services You are not only available report exports, but also some options for saving the report, for example, into Box, into DropBox, into Google Drives and others. In the menu "Save" allocated a special section with options for saving the report in a variety of cloud services: We are available: 1)      Box; 2)      Dropbox; 3)      FastCloud; 4)      GoogleDrive; 5)      OneDrive; 6)      XMPP. The latter option uses the FastCloud cloud service for storing and building reports. The XMPP protocol sends a link to the report to the jabber client. Using these save options is not difficult if you manually set the preferences in preview mode. But how to automate the process of saving, using code? This will be discussed in this article. With the exception of FastCloud, all cloud services use OAuth-type authorization. This is an authorization protocol that allows you, without using a real login and password from the service, to give the application access to the cloud service. However, you can restrict access rights. You will be given an identifier and a secret key that you need to use for authorization. To get the Client Id and the Client Secret, you need to create the application and register it on the OAuth server of your cloud service. Therefore, we need to specify at least two parameters to save the report to the cloud service. Let’s consider in order. 1)      For the Box service: First of all, you need to add the FastReport library: using FastReport; We create an instance of the ClientInfo class, which will contain information for authorization:  ``` FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); ```  ClientInfo can take three parameters: ClientName, ClientId and ClientSecret. In our case, ClientId and ClientSecret are required. Then create a GoogleDrive client to save the report: ``` FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient client = new FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient(clientInfo); ```  Create a report object and load the report into it: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  If you want to save the report in a format other than native fpx (the format of the report preview), you need to create an export instance: ``` FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); ```  Save the report using the client: ``` client.SaveReport(report, pdf); ```  If you save a report in the fpx format, you can pass null instead of the second parameter: ``` client.SaveReport(report, null); ```  2)  For the DropBox is slightly different. Within OAuth, you can also use access token. This is an access key that is generated as a result of successful authorization. Passing such a token, we seem to restore the previous authorization. Create a client for the DropBox and pass it access token in text format: ``` FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient drop = new FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient("accessToken"); ```  Proxy settings: ``` drop.ProxySettings.Server = ""; drop.ProxySettings.Port = 999; drop.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; drop.ProxySettings.Username = "Username"; drop.ProxySettings.Password = "Password"; ```  Next, as in the previous example: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  Save the report: ``` drop.SaveReport(report, null); ```  3)  For the GoogleDrive: ``` FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); GoogleDriveStorageClient client = new GoogleDriveStorageClient(clientInfo); ```  Proxy settings if needed: ``` client.ProxySettings.Server = ""; client.ProxySettings.Port = 999; client.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; client.ProxySettings.Username = "Username"; client.ProxySettings.Password = "Password"; ```  Create a report: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  Create export: ``` FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); ```  Save the report:            ``` client.SaveReport(report, pdf); ```  4)  For the OneDrive: ``` FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); FastReport.Cloud.StorageClient.SkyDrive.SkyDriveStorageClient one = new FastReport.Cloud.StorageClient.SkyDrive.SkyDriveStorageClient(clientInfo); ```  Proxy settings if needed:             ``` one.ProxySettings.Server = ""; one.ProxySettings.Port = 999; one.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; one.ProxySettings.Username = "Username"; one.ProxySettings.Password = "Password"; ```  Create a report: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); one.SaveReport(report, null); ```  5) For FastCloud there are differences. It does not use the OAuth protocol. Authorization is carried out by email address and password. Create a FastCloud client: ``` FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient fast = new FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient(); ```  Assign a token. To generate a token, use the GetAccessToken method:  ``` fast.AccessToken = fast.GetAccessToken("email@mail.com", "password"); ```   Create an instance of the export: ``` FastReport.Export.RichText.RTFExport rich = new FastReport.Export.RichText.RTFExport(); Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); fast.SaveReport(report, rich); ``` 6)  Send the report to Jabber (XMPP). Previously, we need to create an xmpp client: ``` FastReport.Messaging.Xmpp.XmppMessenger messenger = new FastReport.Messaging.Xmpp.XmppMessenger("user@xmpp.jp", "password", "user@xmpp.jp"); ```  If you need to configure Proxy: ``` messenger.ProxySettings.Server = "server"; messenger.ProxySettings.Port = 999; messenger.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; messenger.ProxySettings.Username = "username"; messenger.ProxySettings.Password = "password"; ```  Then, or before, create a report object: ``` Report report = new Report(); report.Load(@"С:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  And we pass it to xmpp client: ``` messenger.SendReport(report, null); ```  Having executed this code, we send the report to the cloud service FastCloud. At the same time, the jabber user receives a message with a link to the report. The link in the xmpp client looks like this: https://cloud.fast-report.com/reports/3da0fcd3f76ac1f6d87c21df85f5d5e2 Tags: .NET, .NET, FastReport, FastReport, Web Storage, Web Storage ### Saving SVG images from Delphi / C++ Builder / Lazarus URL: https://www.fast-report.com/blogs/export-svg-delphi-vcl Summary: Using SVG, you can save reports as pictures without losing quality from Delphi code. Using SVG, you can save reports as pictures without losing quality from Delphi code. Using SVG, you can save reports as pictures without losing quality from Delphi code. The SVG file is a two-dimensional vector image based on documents in XML format. The SVG format is used not only for the description of two-dimensional vector graphics, but also for mixed vector-raster images. Let's list the main advantages of SVG format: First of all, as previously mentioned in the last article , vector graphics are scaled up or down without loss of quality (and when enlarged, the image doesn’t turn into the cubism art). Second, SVG is fully compatible with web technologies and therefore will be an organic part of any web-site. Third, adding Javascript to objects, we can make the image interactive, that is, responding to certain user actions with the given answers – in relation to the image and its form. Forth, SVG files are considered text, so you can optimize the file for SEO without external meta tags by directly adding keywords to the image code. This format has some disadvantages, too: The file size will rapidly increase just like an avalanche when increasing the detailing of images. However, for images with a bunch of details, it is best to use PNG of JPG formats. So, unfortunately, SVG is completely unsuitable for realistic high-resolution photographs and detailed maps of the area. SVG is not supported by older browsers (Internet Explorer 8 and older), but I don’t think this is a great disadvantage. By default, (for example, WordPress), doesn’t allow you to upload SVG files, due to security issues. WordPress perceives this extension as something malicious and therefore blocks it. But you can bypass this block using plugins. SVG is suitable for creating simple objects that can be described by simple figures or their parts. We should also mention that social networks, such as Facebook and Twitter, do not support SVG format. If you use SVG files as thumbnails, you will have to use the plugin and set PNG or JPG for meta tags. We reviewed the main advantages and disadvantages of the SVG format and now we can return to the main topic of this article.  How to save a SVG file using Delphi or Lazarus? First you need to create the image! And then I can advise (all of a sudden) FastReport VCL, because using it you can save immediately in the desired format from Delphi. After all, there might be many objects to display apart from the pictures. It’s convenient – so, why not? From barcodes to tables and maps, it’s strongly recommended to save them in a vector format! Therefore, let’s begin! Create a report. Previewed before saving, didn’t like something? Changed, edited! Now, after we created what was required, launch it and see what happened. Call a preview and select the format we need. Here it is – below! Select and click . Now we see a window with many different settings. Set up everything we need and click OK ! Briefly about export settings You can see that when saving in SVG format, the settings are not the same with BMP, JPEG, TIFF or GIF. More precisely, such functions as: Styles – saving styles; Unified Pictures – unifying pictures; Formatted – saving formatting; Pictures – saving a document with pictures – this is the right choice for those images that were already pixel when adding to our document; Multi Page – saving multiple pages; Page navigator – creating a page navigator; Saving images in PNG, EMF, BMP and JPEG formats. And the settings for the BMP, JPEG, TIFF, GIF formats are: Monochrome – images in shades of black; Crop pages – whether to crop pages; JPEG quality – setting the quality of the graphic object; Resultion (dip) – resolution. Obviously, a vector image will be rasterized when saved in raster formats, but the opposite (raster to vector) will not happen. The only things that seem to be common among all these formats are the action settings, ability to save and automatically open the document immediately after saving. Having considered how to save using the preview window, let’s move on to the saving without a preview. Saving SVG files using Delphi / C++Builder / Lazarus code Export to SVG ``` procedure TForm1.Button1Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxSVGExport1.PageNumbers := '2-3'; {Set whether to export styles of the objects} frxSVGExport1.EmbeddedCSS := True; {Set whether to convert all images in accordance with PictureFormat:} {if the image in the report is in BMP format and the PictureFormat is PNG, then BMP will be saved in PNG format} frxSVGExport1.UnifiedPictures := True; {Set whether to format the source text of SVG (increases the size of the resulting file)} frxSVGExport1.Formatted := False; {Set whether to export pictures} frxSVGExport1.EmbeddedPictures := True; {Set whether to export each page to a separate SVG file} frxSVGExport1.Multipage := False; {Set whether to add navigation buttons to the resulting SVG file} frxSVGExport1.Navigation := False; {Set in which format to export pictures} //uses frxExportHelpers; // TfrxPictureFormat = (pfPNG, {$IFNDEF FPC}pfEMF,{$ENDIF} pfBMP, pfJPG);) frxSVGExport1.PictureFormat := pfPNG; {Set whether to open the resulting file after export} frxSVGExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxSVGExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxSVGExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxSVGExport1.FileName := 'C:\Output\test.svg'; {Export the report} frxReport1.Export(frxSVGExport1); end; ``` Let’s compare the results of exporting raster and vector objects! I will provide JPEG and SVG examples below. JPEG SVG And… here we immediately see the difference. Can you find it? :) Well, for example, a raster image has a larger size than a vector image, and when scaling, the clarity decreases. But as for a vector image (SVG), when scaling, clarity remains the same and the file size is much smaller. The only drawback is that SVG is not suitable for realistic photos (but we don’t have them anyway). Let’s summarize! The SVG vector format is very convenient (if you use it in the right place), and saving via FastReport VCL makes it simple. Tags: VCL, Export, Lazarus, FastReport, SVG, Delphi ### Scale management when printing in Excel URL: https://www.fast-report.com/blogs/scale-management-printing-excel FastReport .NET 2018.4 version brought quite a few innovations. One of them is the ability to set the scale of the Excel page of the document when printing in the Excel export settings. You can export the report to Excel in preview mode or from the code of the user application. Let's consider both options. Export to Excel 2007 from pre-view. For example, I will take a report with a large number of rows and columns - a matrix of 100 by 100. Let’s open the export menu in Excel 2007: At the bottom of the form is the “Print Scaling” option. The default setting is “Actual Size” (No Scaling). Let's make an export and see the Excel document in the view mode when printing: As you can see, the report did not fit one printing page. It will take 6 pages for our matrix. Let's export the report again. But now, for Print Scaling, we select Fit Sheet on One Page. What will we see in the print mode of an Excel document? The scale of the document is reduced so that it fits entirely one page. Well, this is a very valuable option. Often we need to print the entire report on one page. It is necessary to select the scale by trial and error. Let's move on to the next value of the “Print Scaling” option - “Fit All Columns on One Page”. In this case, our example with the matrix will not be the most indicative. As far as you understood, this option allows you to place all data columns on one printing page. In this case, the lines may not fit one page and another one will be generated. But, since our matrix is square, both the columns and the rows will fit on the same printing page. Therefore, I will generate another 30-by-100 matrix. Let's export it to Excel with the value "Fit All Columns on One Page” of the" Print Scaling "option. Let's see how it looks like in print mode in Excel: The scale of the document was chosen so that all columns fit in the width of one page. But the lines did not fit, but this is not important for us, because we chose "All columns on one page." Another value of the option "Scaling when printing" - "All lines on one page." In this case, it is important for us to put all the lines on one page, and whether the columns fit in is not of interest to us. Let's make export to Excel of our matrix 100 by 100. Let's see what happened: All requirements are met - the lines fit on one page. And only 56 columns fit. For the rest, a second print page was created. So, we consider 4 document scales when exporting a report to Excel 2007. Now let's see how to use the considered option in the code of the user application: ``` Report report = new Report(); FastReport.Export.OoXML.Excel2007Export exp = new FastReport.Export.OoXML.Excel2007Export(); exp.PrintFit = FastReport.Export.OoXML.Excel2007Export.PrintFitMode.FitAllColumsOnOnePage; report.Export(exp, @"C:\result.html"); ```  4 values available for PrintMode: NoScaling, FitSheetOnOnePage, FitAllColumsOnOnePage, FitAllRowsOnOnePage. And for the web report, only one mode of scaling Excel document is available - Place on one page: ``` webReport.XlsxPrintFitPage = true; webReport.ExportExcel2007(); ```  Thus, we have at our disposal another useful option. Tags: .NET, .NET, FastReport, FastReport ### Search result URL: https://www.fast-report.com/search Search result Search result: "" Nothing found info@fast-report.com Sales sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Office Alexandria, VA 22314 66 Canal Plaza, Ste 505 Products Buy Demo Documentation How to uninstall Licenses Products Buy Demo Documentation How to uninstall Licenses Support Support SLA Online support FAQ Tutorial Video Forum Articles News Support Support SLA Online support FAQ Tutorial Video Forum Articles News Company About Identity Resellers Contacts us Company About Identity Resellers Contacts us Privacy policy Cookies policy © 1998-2026 Fast Reports Inc. Trustpilot Link copied successfully ### Seminar Firebird and FastReport, Prague, 9. November 2007 URL: https://www.fast-report.com/news/seminar-firebird-prague-2007 Summary: Seminar Firebird and FastReport, Prague, 9. November 2007 Seminar Firebird and FastReport, Prague, 9. November 2007 Seminar Firebird and FastReport, Prague, 9. November 2007 We cordially invite you to a one-day seminar on The Firebird and FastReport database systems, which will be held in patek 9. November in Prague hotel Angelo na Smichove (Radlicka 1g, Prague 5, metro station Andel). Preface: Dmitry Yemanov, chief developer of Firebird Pavel Cisar, IBPhoenix and Firebird QA Mikhail Phillipenko, CEO of FastReport Dmitry Kuzmenko, CEO of IBSurgeon and IBPhoenix expert on data optimization and data recovery. The topic of the seminar will be news in Firebird, security, data protection and optimization, business intelligence and reporting with fastreport and Firebird products. You will not miss the chance to meet members of the developing Firebird team and the opportunity to get prime answers to your questions at the round table! Lectures will be presented in Czech and English. Admission to the seminar is free. However, the number of mist is limited, so register as soon as possible! Seminar programme: 1. Introduction 2. New features of Firebird (English, Dmitry Yemanov) 3. Fastreport kits (English, Mikhail Phillipenko) 4. Protection against damage or loss of data (English, Dmitry Kuzmenko) 5. Firebird Internals by Dmitry Yemanov 6. Business intelligence with FastCube (English, Mikhail Phillipenko) 7. Firebird and security (Czech, Pavel Cisar) 8. Optimization (English, Dmitry Kuzmenko) 9. Round table (English and Czech, all lecturers) http://ibphoenix.fr/spip.php?article80 ### Seminar in Warsaw URL: https://www.fast-report.com/news/seminar-warsaw-2007 Summary: Seminar in Warsaw Seminar in Warsaw On behalf of Fast Reports Inc. and Firebird we are pleased to invite you to a seminar devoted to new functionalities of the Fast Report and Firebird programmes. The seminar will take place on 07.12.2007 at Hotel Lord in Warsaw, Al. Krakowskie 218.    Fast Reports Inc company has been operating on the IT market since 1998 and its main objective is to develop report-generating software.  The aim of the seminar is to present new functionalities and features of Fast Report and Firebird, as well as other tools.  All the advantages and functionalities of the programmes will be presented by: Fast Reports' BI solutions for developers and end-users, Michael Philippenko, CEO Fast Reports Fighting database corruptions, Dmitry Kuzmenko, CEO IBSurgeon Fast Reports' new products and new features, Michael Philippenko, CEO Fast Reports Optimization of Firebird databases, Dmitry Kuzmenko, CEO IBSurgeon  Participation in the seminar is free of change.   All the interested persons are asked to contact us by phone: 022 885-43-21 or by writing to the e-mail address:  info@softkey.pl  in order to receive an application form.  The number of participants is limited. We invite you to take part in our seminar! ### Sending report from Delphi program via MAPI protocol URL: https://www.fast-report.com/blogs/send-report-delphi-mapi-protocol Just copy following code for sending the report from your own application: ``` procedure TForm1.Button2Click(Sender: TObject); var mail: TfrxMailExport; txt: TfrxTXTExport; begin txt := TfrxTXTExport.Create(nil); mail := TfrxMailExport.Create(nil); mail.UseMAPI := MAPI; mail.Address:='Recepient Name '; mail.ExportFilter:=txt; mail.FilterDesc:='TXT per E-Mail'; mail.FromMail:='Sender Name '; mail.Login := ''; mail.Password := ''; mail.Subject:='Subject-Text here'; mail.Lines.Add('Hi there, ' + #13#10#13#10+ 'heres comes an email with attached file'); frxReport1.Export(mail); mail.Destroy; end; ``` There are two important issues for this example:  The recepient address must be written in canonical form Name . Simple forms  - user@host.net will be rejected by some mail clients. For example, Microsoft Outlook require a  canonical form of the recepient address. You must set fields Login and Password  with empty values. Tags: VCL, VCL, MAPI, MAPI, FastReport, FastReport, Delphi, Delphi ### Sending report in PDF to Email from application code URL: https://www.fast-report.com/blogs/send-report-pdf-email-application-code It is no secret that FastReport .Net allows you to send reports by email. But few people know how to do it by using the code in a custom application. In such way that you wouldn't have to run a report and send it via email manually. The required reports will be automatically sent to a specified e-mail address with help one button, or schedule. Let's consider the example of sending the report in PDF format by e-mail. Create WindowsForms application. Add buttons and two text fields. In the first one, we will input recipient's email address, and the second - mail server for outgoing mail. We will need the following libraries: ``` using FastReport; using FastReport.Export; using FastReport.Utils; ``` Create an event handler for the button click:      ``` private void button1_Click(object sender, EventArgs e) { Config.ReportSettings.ShowProgress = false; //Disable progress window Report report1 = new Report(); //Create new report object report1.Load(Environment.CurrentDirectory+"\\text.frx"); //Load report report1.Prepare(); //Prepare report FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); //Cteate PDF export FastReport.Export.Email.EmailExport email = new FastReport.Export.Email.EmailExport(); //Create Email export   //email mailer settings email.Account.Address = "gromozekaster@yandex.ru"; email.Account.Name = "TestUser"; email.Account.Host = textBox2.Text; email.Account.Port = 25; email.Account.UserName = "Gromozekaster"; email.Account.Password = "Password"; email.Account.MessageTemplate = "Test"; email.Account.EnableSSL = true;   //email addressee settings email.Address = textBox1.Text; email.Subject = "Test Report"; email.MessageBody = "Test message";   email.Export = pdf; //Set export type email.SendEmail(report1); //Send email } ``` First of all I disabled the progress window in the report settings, but you can skip this step. If you do not need it, just do not write this line of code. Then create an instance of a report object and load the report into it. Before the export you need to prepare a report (Prepare), in other words - build it. Since the title of the article contains “PDF”, let's create an object of export to PDF.  Likewise we create export to email. Now we can customize the export settings in the Email. In the Account - the sender's settings. Basically it is the outgoing mail server settings. Next - set the parameters of the recipient as well as the email address, subject line, message text and export to the desired file type. Here it should be noted that is not necessary to export to PDF, you need only to create an export object. Email export makes exports to the specified format. If you do not specify Export parameter, then the report will be sent in the FPX format. This file is preview of the report. You can view, print or export the report, but can not edit it. Finally, we will send a letter using Sendmail method. Be sure to pass the report object to this method. Considered method will be useful for standard emails, for example, you can arrange to automatically broadcast daily reports to your chief email. Tags: .NET, .NET, FastReport, FastReport, PDF, PDF, Report, Report, Email, Email ### Sending reports by E-mail via MAPI protocol URL: https://www.fast-report.com/blogs/sending-reports-email-mapi FastReport.VCL with the very first version uses the original realization of SMTP protocol, written for sending generated reports via email. Excellent implementation, which is used by many users. These days some providers of postal services have demanded secure authentication to send mail, therefore some users have difficulty in sending reports. Customers of .NET version of the report generator does not run into this problem, because the implementation of sending reports in FastReport.NET based on MAPI protocol. In this case, the report generator uses an external mail program for sending the reports. Due to numerous requests the support of MAPI protocol was included in VCL version. We apologize to all users who are prematurely get informed of readiness MAPI - our implementation had contained some errors that did not allow to send mail when using the report generator with modern versions Delphi with Unicode support. We are pleased to report that MAPI error corrected now. All comments, bug reports and suggestions regarding sending reports via MAPI protocol in FastReport.VCL you can write into this blog. Tags: VCL, VCL, MAPI, MAPI, FastReport, FastReport, Email, Email ### Service Solutions Update to Version 2026.1 URL: https://www.fast-report.com/news/release-service-2026.1 Summary: In the 2026.1 release of our service solutions lineup, we focused on improving usability, security, and expanding capabilities. In the 2026.1 release of our service solutions lineup, we focused on improving usability, security, and expanding capabilities. In the 2026.1 release of our service solutions lineup ( FastReport Cloud , FastReport Publisher , FastReport Corporate Server ), we focused on improving usability, security, and expanding capabilities. The update includes dozens of improvements to the interface, integration mechanisms, user tools, and increased stability. Saving Documents to S3-Compatible Storage A component for working with Amazon S3-compatible storage has been added. This allows saving templates, reports, and finished documents in various formats (pdf, docx, xlsx, etc.) to S3. One use case is creating an annual report (by passing start and end dates as report parameters), exporting it to PDF, and saving it to S3-compatible storage, where it will be available for viewing and downloading.  For more details on saving to S3  and its programmatic use , please refer to the documentation. Sending Documents to Telegram Telegram Bot API support has been added. Similar to saving to S3, documents and report templates can now be sent to Telegram. Sending to channels, direct messages with the chatbot, and group chats is supported. To send, use the unique identifier or name of the public channel or group where the bot has been added. More information on Telegram bots and their creation can be found on  the official Telegram website .  Additionally, the most convenient way to send documents to Telegram is by using an export task followed by sending. To do this, select the previously created Telegram sending task from the dropdown list in the export task settings. Hotkey Hints Added to Context Menus Interface usability has been improved: hotkey hints now appear in context menus. These allow for faster interaction with the user panel interface. Enhanced API Security: CORS Support and Trusted Domain Management We have updated the API request protection mechanism in accordance with modern web security standards. Now, authorized API requests require explicitly specifying trusted domains—this enables correct handling of CORS (Cross-Origin Resource Sharing) and preflight requests in modern browsers. Browsers block cross-domain requests without explicit permission—this protects users from CSRF (Cross-Site Request Forgery) and other attacks. The previously used approach stopped working after security policy updates in Chrome, Firefox, and other browsers. Workspace administrators can configure the list of allowed domains in the “Settings → Workspace” section. Only requests from these domains will have authorized access to the API. This enhances security without compromising convenience—integrations continue to function, but now reliably and according to standards. Added Script Autocompletion Support for FastReport Online Designer Online Designer now includes support for autocompletion hints (similar to IntelliSense), which increases the speed and accuracy of template development. For other new features of the Online Designer, please refer to the 2026.1 release news .  New Template and Report Preview Modes Added The preview component has received additional modes. The following are now available: Static preview (a lightweight mode that displays/renders templates and reports in SVG format); WASM Static Preview—a more accurate, but also resource-intensive component, written in Blazor; Interactive WASM Preview—the most accurate and powerful mode, allowing interactive reports to be run. The appropriate mode can be selected before opening a template or report.  It is also possible to set a default mode in the user settings. Nested Parameters Added to Static Preview Static Preview now supports parameters of any nesting level. This improves work with complex templates and allows parameters to be grouped by topic. Global File Search Added to API The ability to perform a global search for files and folders via API has been added.  This allows you to find a template, report, or any document by its name, even without knowing which folder it is located in. Additional Changes for FastReport Corporate Server and FastReport Publisher Below are additions that apply only to the on-premise products in the lineup. Docker Image Repository Builds are now distributed via Docker Registry. Documentation has been added and updated, and related docker-compose scripts have been fixed. This simplifies product updates and deployments. Separate Sign-In Form A separate sign-in form has been introduced, fully supported by Gateway mechanisms. Old settings (SignInPagePath, DisabledPath) have been removed—they are now replaced by the built-in system. The authorization process has become simpler and requires less traffic. As of the 2026.1 release, this functionality is used for logging into the administrator panel. Support for other services will be added in future releases. Information on Active Users and Subscriptions on the Audit Page The administrator panel has gained additional functionality: the “Audit” page now displays the IDs of active users and subscriptions for a specified time interval. This allows for more effective system usage control and better user understanding. Font Management in the Administrator Panel A dedicated font management page has been added to the administrative panel. Corporate Server and Publisher Installation Wizard The installation wizard has received a major update: Added the option to install FerretDB and PostgreSQL as databases. Users can now choose to install either Publisher or Corporate Server. Added the option to select a demo version for installation. Improved configuration file creation. Reworked interface and bug fixes. Documentation The documentation has been significantly revised and expanded: Documentation for Cloud, Corporate Server, and Publisher is now unified into a single build. Added guides for working with S3, FerretDB, and Docker Registry. Added an article on integrating static preview via iframe. Corrected errors and typos. Added canonical tags and current version to the online documentation. Full list of changes [Frontend] + added font interface to workspace information page + added export parameters to localstorage + added virtualization to users page + added s3 component to user panel + added hotkey hints to various context menus + added telegram task component * added support for alternative uid / pwd keys in MySQL connection dialog (now it will also parse “user id” and “password”) * added new components for font limit designation * added S3 and FTP tasks to workspace information page - fixed product purchase link - fixed automatic connection string parsing in data source setup dialog for MS SQL - fixed file renaming with F2 - fixed export to docx in paragraph breaking mode [Admin Panel] + added more links to entities in the admin panel + added information about active users and subscriptions to the audit page in the admin panel + added a new page in the admin panel for fonts + added checks for duplicate file names and incorrect user IDs in analytics * fixed an error with parameters in the admin panel - fixed visual errors when loading fonts in the admin panel - fixed a bug where the problem solver returned an error when analytics found font problems - fixed a bug where the check for unlinked documents marked all font description models as unlinked (belonging to a non-existent workspace) [Docs] + added documentation on how to use FerretDB instead of MongoDB + added documentation for S3 + added an article to the documentation on integrating staticpreview via iframe + added canonical tag for documentation pages * added current version to online documentation * updated documentation for working with docker registry * fixed some typos in the documentation * unified documentation into one [Online Designer] * disabled html5 notifications in Online Designer * changed the preview generation mechanism for Online Designer; now the temporary template file is deleted after creation [Backend] + added S3 upload task + added Telegram sending task + added domain permissions; now, to execute authenticated requests, a list of allowed domains must be specified in the workspace; previously, due to the new browser security system, this functionality was inoperable + added IntelliSense support for Online Designer + added global file search to API * improved font caching mechanism in the worker service * added search by subscription plan to audits * replaced the view model for the request for space occupied by fonts. Now it is not the same model as for files - fixed an error where many parallel requests led to memory leak and caused an error - fixed data types of returned view models in the task controller - fixed a bug where font space calculations accounted for all workspaces - fixed a bug where OpenID users did not display any useful information in the workspace user list - fixed a bug where nested transport had a null subscription ID [Tasks] - fixed an error where a task could sometimes enter an infinite loop and hang the entire system [Preview] + added new preview modes + added localization switching logic for wasmpreview, identical to staticpreview + added nested parameters to static preview [Installer] + added FerretDB installation option + added Publisher installation capability + added Docker-related text to the final page + added demo version license keys • changed behavior: the “Next” button will now be disabled if a license key is not specified • changed behavior: the installer now creates an extended configuration file - fixed a bug where the installer crashed when clicking to show the RabbitMQ password [Demos] + added WPF demo application for FastReport .NET + Cloud [Common] + added a new AllowLocalSignUp property for Auth, which allows enabling and disabling user registration + added a new FaviconLink property for Server, which allows setting the favicon link for a white-label license * assembly download is now available via Docker Registry instead of ZIP * changed the API test cleanup method * the gateway now handles the sign-in form; sign-in is simplified and requires less traffic - fixed an error where license restrictions erroneously prevented the use of OpenID (OIDC) - removed SignInPagePath property from Gateway config; it is replaced by the built-in sign-in mechanism - removed DisabledPath property from Gateway config; it is replaced by the built-in mechanism - fixed docker-compose script for installation files, updated RabbitMQ version [Font Server] - fixed a bug where some TTF files failed to load ### Service Solutions Update to Version 2026.2 URL: https://www.fast-report.com/news/release-service-2026.2 Summary: In the 2026.2 release of our service solutions lineup (FastReport Cloud, FastReport Publisher, FastReport Corporate Server), we focused on improving reliability and usability. In the 2026.2 release of our service solutions lineup (FastReport Cloud, FastReport Publisher, FastReport Corporate Server), we focused on improving reliability and usability. In the 2026.2 release of our service solutions lineup ( FastReport Cloud , FastReport Publisher , FastReport Corporate Server ), we focused on improving reliability and usability: task scheduling has been enhanced, the admin panel has been extended with new capabilities, new integration options have been added, and bugs have been fixed across several key components. API Key Support in Online Designer Online Designer now supports authentication via API keys, expanding integration capabilities for enterprise systems. To authenticate via an API key, add the apikey parameter to the URL. For example: {hostname}/designer/?uuid={templateId}&v=df&apikey={apikey} . Online Designer also now uses the icon from the server configuration, allowing branding to be applied correctly without additional setup. Faster Task and Scheduler Execution Cron expression execution caching has been added. This significantly reduces the number of database calls when working with the scheduler. Also fixed bugs that caused tasks to run without proper permissions or execute too frequently. Documentation Updates The current product version has been added to all documentation articles. This allows you to use scripts from the documentation to install the current product version. Documentation for tasks and the scheduler has been improved, and a new article has been added on the limitations of the demo version of Publisher and Corporate Server. Additional Changes for FastReport Corporate Server and FastReport Publisher The following changes apply only to the on-premise products in the lineup. New Admin Panel built on Fluent UI The admin panel has been completely rebuilt using Fluent UI — a modern Microsoft component library. The interface is now more consistent, user-friendly, and accessible. Error handling on the bulk plan editing page has also been improved. The new admin panel is currently being tested in the cloud infrastructure and will soon be set as the default in Publisher and Corporate Server. Bulk Editing Plans in Workspaces A new flag has been added to the UpdateSubscriptionPlan method — it allows updating the current plans for all subscriptions that use the plan being updated. This simplifies bulk configuration management. Local Browser Time Support Workspace creation and renewal are now set using the browser's local time. The audit creation date on the audit page is also displayed in local time — eliminating date discrepancies for users across different time zones. Default Product Name from the License Key The product name (Corporate Server or Publisher) can now be automatically determined from the license key. Initial product configuration during deployment will now be easier. Extended FerretDB Integration A bug that prevented migrations from being applied when using FerretDB has been fixed. Additionally, the migration mechanics have been improved. Swagger File for the Admin Panel A Swagger file describing the Admin Panel API has been added to Corporate Server and Publisher. This simplifies integration and makes it easier to explore the available administrative API capabilities. The Admin Panel API description is available at /api/swagger/index.html by selecting the appropriate section in the top right corner of the screen. Installer Fix A bug has been fixed that caused the installer to use incorrect demo keys during installation. FastConverter A new service, FastConverter, has been released. It allows converting *.FPX files to various formats supported by FastReport Cloud (for example, *.PDF, *.DOCX). The service does not require installation or registration. You can convert your reports here . Full Changelog [Admin Panel] + a new flag has been added to the UpdateSubscriptionPlan method — it allows updating the current plans for all subscriptions that use the plan being updated; * workspace creation and renewal are now set using the browser local time; * the audit creation date on the audit page is now displayed in browser local time; - improved error handling on the bulk plan editing page; - fixes for the new admin panel; [Backend] + added missing audit messages; - fixed a bug where CORS returned a 500 error for static files; - added the ability to set the default product name (Corporate Server, Publisher) from the license key; - fixed permission check during bulk file move; - fixed a bug in migration #48 where a null value could not be processed as a string; - fixed MHT export; [Common] + added a Swagger file for the admin panel in Corporate Server and Publisher; + added additional health checks for FerretDB; - fixed a bug where MySQL did not allow creating SELECT command parameters for the database; - fixed a bug where migrations were not applied when using FerretDB; [Docs] + added the current product version to all documentation articles; + improved documentation for tasks and the scheduler; + added an article on the limitations of the demo version of Publisher and Corporate Server; [Frontend] + added a new admin panel built on Fluent UI; - fixed the file selection dialog in transport tasks; [Installer] - fixed a bug where the installer used incorrect demo keys; [Online Designer] + added API key support in Online Designer; * Online Designer now uses the icon from the server configuration; [SDK] - fixed a bug when passing date and time values; [Tasks] + added cron expression execution caching, which significantly speeds up database operations; - fixed a bug that allowed tasks to run if the user had no active cloud workspace; - fixed a bug where tasks executed even if the workspace had no permission to use the scheduler; - fixed a bug where a task executed too frequently when a cron expression was specified. ### Session: Generating document templates using machine learning in Azure URL: https://www.fast-report.com/news/generating-document-azure Summary: Session: Generating document templates using machine learning in Azure Session: Generating document templates using machine learning in Azure On September 26 lead developer of Fast Reports Viacheslav Shamshin will hold a session on generating document templates using machine learning in Azure during Basta! conference in Mainz. The session discusses the current MS Azure cloud possibilities focused on artificial intelligence and machine learning technologies for automatical creation of reports and document forms. In addition, the speaker presents a new approach for report generation using machine learning for data blocks recognizing. Models for templates deploying of databases and report generators based on cloud structure finalize the session. Buy your tickets for Basta! conference here:  https://basta.net/tickets/ ### Setting up the Online Designer in a React .NET Core app URL: https://www.fast-report.com/blogs/designing-react-net-core Summary: Let's take a closer look at how to setup the Online Designer in a React .NET Core application. Find more usefull tips and articles in our blog. Let's take a closer look at how to setup the Online Designer in a React .NET Core application. Find more usefull tips and articles in our blog. Let's take a closer look at how to setup the Online Designer in a React .NET Core application. Find more usefull tips and articles in our blog. Many FastReport.Core users are interested in how the report generator will work in a web application written by using the React library. We have already reviewed this in the article "How to use FR Core Web Report with React.docx". In this article we will look at the way to use an online designer. Despite the fact that it is displayed in the same web object as a regular report, the difference with the display in React is significant. But first things first. If you have never created an application on React with a backend on .Net Core, then you need: 1) Install NodeJS. This is a software package that allows you to perform JavaScript code on the server side, as well as install various JavaScript libraries. 2) Install Microsoft Visual Studio 2017 or another IDE + .Net Core SDK 2.0. To create the application, open the Windows command prompt in the folder where the project will be located and execute the command: dotnet new react –o ReactFRCoreDesigner Open the created project. Let's just add FastReport libraries to the NuGet packages manager. Configure the local package source for the folder: C:\Program Files (x86)\FastReports\FastReport.Net\Nugets Install the FastReport.Core package. Locate the Startup.cs file in the project and add one line of code to the Configure () method: ``` app.UseFastReport(); ```  Now we can use the report generator in our project. In addition to displaying the online designer, we also look at the way to transfer the name of the desired report and upload it to the online designer. Therefore, we will add the App_Data folder to the project. And in it we will add report templates from the Demos \ Reports folder in the FR.Net installation directory. As you can see, we also added an xml file from the same folder. This is a database for reports. Find the Controllers folder. A SampleDataController controller is available to us. Add two methods to it: ``` … using FastReport.Web; using System.IO; … [HttpGet("[action]")] public IActionResult Design(string name) { WebReport WebReport = new WebReport(); WebReport.Width = "1000"; WebReport.Height = "1000"; if (name != "Blank") WebReport.Report.Load("App_Data/" + name + ".frx"); // Load the report into the WebReport object System.Data.DataSet dataSet = new System.Data.DataSet(); // Create a data source dataSet.ReadXml("App_Data/nwind.xml"); // Open the database xml WebReport.Report.RegisterData(dataSet, "NorthWind"); // Registering the data source in the report   WebReport.Mode = WebReportMode.Designer; // Set the web report object mode - designer display WebReport.DesignerLocale = "en"; WebReport.DesignerPath = @"WebReportDesigner/index.html"; // We set the URL of the online designer WebReport.DesignerSaveCallBack = @"api/SampleData/SaveDesignedReport"; // Set the view URL for the report save method WebReport.Debug = true; ViewBag.WebReport = WebReport; // pass the report to View return View(); }   [HttpPost("[action]")] // call-back for save the designed report public IActionResult SaveDesignedReport(string reportID, string reportUUID) { ViewBag.Message = String.Format("Confirmed {0} {1}", reportID, reportUUID); // Set the message for representation Stream reportForSave = Request.Body; // Write the result of the Post request to the stream. string pathToSave = @"App_Data/TestReport.frx"; // get the path to save the file using (FileStream file = new FileStream(pathToSave, FileMode.Create)) // Create a file stream { reportForSave.CopyTo(file); // Save query result to file } return View(); } ```  The first method creates a web report object, sets a template and data source for it, and also sets the report editing mode, report designer settings. As a result, the method will return the view where the web report object will be displayed. The method has a parameter - the name of the report, which we substitute when loading the report template into the web object of the report. The second method is a call back handler for clicking the report save button. It saves the edited report in the App_Data folder. For these two methods, you must create two views. Create a Views folder in the project root. Now back to the controller. Right click on the design method signature and select Add view from the menu. Set the view name - Design. Replace the entire contents of the created view with the code: ``` @await ViewBag.WebReport.Render() ```  For the SaveDesignedReport method, we also create a view with the same name. Its contents are replaced by: ``` @ViewBag.Message ```  We turn to the most interesting - the frontend. React application is located in the ClientApp folder. Expand it in the tree in the solution browser. Further we open the src and components directory. Add a new component to this folder. Create a javascript file named Designer: ``` import React, { PureComponent, Fragment } from 'react'; import { WebReport } from './WebReport';   export class Designer extends PureComponent { constructor(props) { super(props); this.state = { options: [ { value: 'Select report name …', }, { value: 'Matrix', }, { value: 'Master-Detail', }, { value: 'Text', }, ] }; }   handleChange = (event) => { this.setState({ name: event.target.value }); };   render() { const { options, value } = this.state; return (
); } } ```  Probably, you paid attention to the import of the WebReport component, we will observe it later. First of all, add states to the class constructor. In our case, it is an array with the names of the reports. Next, consider render () straight away - the method that builds the web page. Rendering is performed every time the state changes. For example, when we select a list item, the onChanges event handler is executed. This method sets the new state of the name variable using the setState function. After that the contents of the render will be rebuilt. Notice the tag. Here another component is called. As a parameter, it receives the selected report name. Consider the WebReport component, which also, like Designer.js should be created in the components directory: ``` import React, { Component } from 'react';   export class WebReport extends Component { constructor(props) { super(props); this.state = { designer: "" }; }   componentWillReceiveProps(nextProps) { fetch('api/SampleData/Design?name=' + nextProps.name + '').then(response => response.text()).then(text => { this.setState({ designer: text }); }); };   render() { return (
); } } ```  The whole point of this component is to execute a ‘get’ request to the backend and return the resulting html code. The built- in function componentWillReceiveProps (nextProps) is executed each time the props property changes. That is, when this component will receive a new value when called. We get the report name from the property and substitute it in the url of the request. We get the answer in text format. It needs to be converted to secure html code in order to be inserted into the DOM. The attribute dangerouslySetInnerHTML will help us with this. It remains only to add the Designer component to the menu. Add to NavMenu file: ``` ```  And to the App.js file add this: ``` … import { Designer } from './components/Designer'; … … … ```  That's all. Run the application. On the Designer page, we will see a drop-down list: Select the name of the Matrix report: And now - Master-Detail: Go to the Report tab and click the Save button: The message “saved” appeared on the right, which tells us about the successful saving of the report on the server. Check it out: Another file appeared in the App_Data folder - TestReport.frx. This completes the creation of our demo application. We successfully displayed the report designer, loaded the necessary report into it and saved it. Tags: FastReport, Online Designer, Core, React ### Setup of advanced export functions in FastReport.Web for Core and Blazor Server URL: https://www.fast-report.com/blogs/setup-export-web-core-blazor Summary: Using the code, we configure individual options and parameters for exporting reports for FastReport.Web for Core and Blazor Server. Using the code, we configure individual options and parameters for exporting reports for FastReport.Web for Core and Blazor Server. Using the code, we configure individual options and parameters for exporting reports for FastReport.Web for Core and Blazor Server. Often, our users need to change the file export parameters, and we will look at their implementation today. This feature was integrated into the 2022.1 release. Let's say that we have a finished project. Let's take any report from the FastReport .NET demo application and add additional parameters to the export window using this code: ``` WebReport.Toolbar.Exports.EnableSettings = true; ``` Now let's run our application and see the result: Let's study how it works in FastReport Web for Core in more detail. All options for advanced export settings have been implemented to be enabled or disabled depending on just one setting, EnableExportSettings. You can set up customized export options. Let's say we only need PDF and HTML. The implementation will look like this: ``` Exports = new ExportMenuSettings() { ExportTypes = Exports.Pdf | Exports.HTML } ``` Let's slightly change the export settings in the container, you can read more about this in the article Toolbar customization and export settings in FastReport.Web for Core . Let's enable advanced settings using the EnableSettings property, this will allow calling modal windows with various additional settings for export: ``` WebReport.Toolbar.Exports.EnableSettings = true; ``` Let's run our application and see the result: In the screenshot above, we have only two formats for saving. You can also notice the possibility to localize into various languages. To use different languages, you need to write a small line of code: ``` webReport.LocalizationFile = Path.Combine(Directory.GetCurrentDirectory(),"Localization", "English.frl"); ``` But how to export a file with advanced settings? Let's look at this step by step. Step 1. Click on the gear opposite “Export to PDF”, where the following window should appear: Step 2. Select the parameters that we need, for example, an HTML file without images: Step 3. Click OK and look at the result: If the pictures are not displayed, then we did everything right. It should be noted that you can customize the settings window. Let's take a look at how to do this. First, let's write a few lines of code: ``` WebReport.Toolbar.Exports.Color = Color.Gray; WebReport.Toolbar.Exports.FontSettings = new Font("Times New Roman", 14, FontStyle.Bold); ``` Let's see what happened: You may notice that the color is set to gray and the font family is Times New Roman as specified. At this stage, we examined how to use the advanced export settings for FastReport.Web for Core. Now let's show you how to work in Blazor. Again, we will review one of the available reports. For example, let's take the demo application from our article Toolbar customization and export settings and add new features to it. Let's again add advanced settings and all kinds of exports. By the way, there is also customization here and it is used in the same way as in Core. Go to Pages/Index.razor.cs file and write two lines of code: ``` webReport.Toolbar.Exports= ExportMenuSettings.All; ``` ``` webReport.Toolbar.Exports.EnableSettings = true; ``` Let's run our application: We see that all the exports are displayed and their advanced settings too. Let's try it with the advanced export options to “HTML”. To do this, open the settings by clicking the left mouse button on the gear, where, for example, we will leave only the current page with pictures: We confirm our choice with the "OK" button and look at the result: We covered how to use the advanced export settings for FastReport.Web for Core and Blazor Server through your application code. Tags: .NET, Visual Studio, FastReport, Core, WebReport, Blazor ### Several reports in the same object WebReport - Working with tabs URL: https://www.fast-report.com/blogs/several-reports-same-object-webreport Web Reports direction actively develops in FastReport.Net. A new feature - bookmarks, you can create a bookmark to a web report toolbar. These tabs allow you to open other reports in the same window. Such a decision may be convenient to display a series of reports similar subjects or reports related by the context. It looks like this: Tabs are presented in the form of buttons. By selecting a tab, we run the report in the same window. Now there is no need to display each report in individual object WebReport. This will help to save space on the page and to avoid congestion of the site. Let's look at the implementation of this function in the example. I used the MVC web project. Add FastReport libraries to the project: FastReport.dll; FastReport.Web.dll. They can be found in the folder FastReport.Net application. Create in the controller Home: instances of report objects, data source, tabs. In general, all the logic here. Declare the libraries: ``` using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using FastReport.Web; using System.Web.UI.WebControls; ```  For Index method write the following code: ``` public ActionResult Index() { string report_path = "C:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; //Report path System.Data.DataSet dataSet = new System.Data.DataSet(); //Create DataSet instance dataSet.ReadXml(report_path + "nwind.xml"); //Read XML databse WebReport webReport = new WebReport(); //Create webReport instance webReport.Width = Unit.Percentage(100); //Set the webReport object width 100% webReport.Height = Unit.Percentage(100); //Set the webReport object heigh 100% webReport.SinglePage = true; //Enable SinglePage mode webReport.Report.RegisterData(dataSet, "NorthWind"); //Register data source in the webReport object webReport.Report.Load(report_path + "Simple List.frx"); //Load a report into the webReport object webReport.CurrentTab.Name = "Simple List"; //Set the current tab name Report report2 = new Report(); //Create a Report instance which will be displayed in the second tab report2.RegisterData(dataSet, "NorthWind"); //Register data source in the report object report2.Load(report_path + "Labels.frx"); //Load a report into the report object webReport.AddTab(report2, "Labels").Properties.SinglePage=true; //Add web tab in the webReport object. Pass as parameters report object and tab name. Enable SinglePage mode for the tab. Report report3 = new Report(); //Create a Report instance which will be displayed in the third tab report3.RegisterData(dataSet, "NorthWind");//Register data source in the report object report3.Load(report_path + "Master-Detail.frx");//Load a report into the report object webReport.AddTab(report3, "Master-Detail");//Add web tab in the webReport object. Pass as parameters report object and tab name. webReport.TabPosition = TabPosition.InsideToolbar;//Set the property TabPosition ViewBag.WebReport = webReport; //Set the ViewBag as webReport return View(); } ```  There is another interesting property: webReport.ShowTabCloseButton If it is set to true, the tabs will have an "X" to close the tab. This option may be useful in interactive reports, where tabs will be dynamically created and contain detailed reports. If a report is not needed, you can close the tab. Then, if necessary, it will be possible again to generate its tab. Above we have looked at how to create a tab, send them reports. We used: ``` public ReportTab AddTab(Report report, string name); ```  As parameters we pass the report object and the name of the tab. However, you can do one parameter: ``` public ReportTab AddTab(Report report); ```  Pass a report object. This tab name will be generated automatically. This will be the serial number of a tab. It is possible to pass the already built report to bookmark of a Web report: ``` public ReportTab AddTab(Report report, string name, bool reportDone); ```  Here, we pass: report, name for the tab and the property that indicates whether the report is to be pre-built. You can upload a file of already prepared report into the report object, and the last parameter specify as true. Then the report will be loaded from the specified file fpx. It might look like this: ``` Report report2 = new Report(); //Create a Report instance which will be displayed in the second tab report2.RegisterData(dataSet, "NorthWind"); //Register data source in the report object report2.Load(report_path + "Labels.frx"); //Load a report into the report object report2.Prepare();//Prepare the report string s = this.Server.MapPath("~/App_Data/Prepared.fpx");//Set the location to save prepared report report2.SavePrepared(s);//Save prepared report   Report firstReport = new Report();//Create instance of Report object firstReport.LoadPrepared(s);//Upload prepared report to the Report object webReport.AddTab(firstReport, "First tab", true);//Add the tab to the WebReport toolbar ```  I showed how to keep the prepared report to a file, and then download it and use it in a web report tab. Go to the view. In the folder Views-> Home open the file Index.cshtml. All page code consists of four lines: ``` @{ ViewBag.Title = "Home Page"; } @ViewBag.WebReport.GetHtml() ```  In the last line of the report output. Home controller sends a report to the page. Add scripts for the web report in the initialization of view _Layout.cshtml (in Views-> Shared folder): ``` … @WebReportGlobals.Scripts() @WebReportGlobals.Styles() … ```  Edit the Web.config, which is located in the Views folder Add the namespace: ``` … ```  Edit the Web.config, which is located in the project root. Add the handler: ``` … ``` Undoubtedly, the new feature of the addition of tabs in the Web report will be useful and in demand. Features of web reports is gradually expanding. It seems that in the near future, web reports nothing will not yield to the desktop reports. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### Shape property of PictureObject in FastReport .NET URL: https://www.fast-report.com/blogs/shape-property-dotnet Summary: With the release of 2024.1, a new property called "Shape" has been added to the PictureObject element, allowing to change the image's shape. With the release of 2024.1, a new property called "Shape" has been added to the PictureObject element, allowing to change the image's shape. With the release of 2024.1, a new property called "Shape" has been added to the PictureObject element, allowing to change the image's shape. With the release of 2024.1, a new property called "Shape" has been added to the PictureObject element, allowing to change the image's shape. The following shapes are available for the Shape property: Rectangle. RoundRecangle. Ellipse. Triangle. Diamond. In the designer, they look like this: It is worth considering that the form is not attached to the picture but to the PictureObject. Also, for correct export to PDF format, you must disable the "Original resolution" setting, otherwise, the export may not be correct. Tags: .NET, .NET, FastReport, FastReport, Designer, Designer ### Simplifying the work with TableObject in the report designer URL: https://www.fast-report.com/blogs/table-object-dotnet Summary: New features for the "Table" object in the report designer will allow you to create templates faster through the context menu. New features for the "Table" object in the report designer will allow you to create templates faster through the context menu. New features for the "Table" object in the report designer will allow you to create templates faster through the context menu. Before the 2024.1 update, to add a row or column, you had to look for the desired property in the properties panel and set the desired value. If you wanted to insert a row or column other than at the end of the table, you had to transfer all the cell values manually. In addition, to transfer values, it was necessary to open the editor, copy the value, and paste it through the same editor of another cell. To resolve these issues and make working with TableObject easier, we have added several changes to the designer. 1. Adding columns and rows using the “+” buttons; 2. Copying, cutting, and pasting cell contents into other cells using keyboard shortcuts; 3. Adding lines above and below using the context menu; 4. Adding columns on the right and left using the context menu; 5. Setting styles for a group of cells via the context menu; Thanks to all these changes, working with tables in the designer has become much easier. Tags: .NET, .NET, FastReport, FastReport, Designer, Designer ### Single ecosystem for Delphi products in FastReport 2023.2 release URL: https://www.fast-report.com/news/fastreport-vcl-2023.2 Summary: This major update links our core Delphi and Lazarus products into a single ecosystem with shared installation and authorization. This major update links our core Delphi and Lazarus products into a single ecosystem with shared installation and authorization. This major update combines our core products for Delphi and Lazarus into a single ecosystem. What does it mean? One installation system with online authorization—install and update all your products at once. Shared release system—major releases are a shared release of all products. Shared library for all products—fixes and new functions are available in several products. The Recompile utility has been removed. The functions of package rebuilding are now performed by the installer. ❗️To download the update, we recommend you uninstall all products through the old installer and then use the new one (installer). ❗️ Core library There are new Core, Core Graphics, and Core Localization packages combining products into one ecosystem. The product localization system has been changed. Now it does not require rebuilding packages: it is enough to install language packs during installation, add the TfrLocalizationController component, and select the desired language. FastReport VCL The system for editing and using styles in the report designer has been revised. The new mode allows you to: create, edit and assign styles during report design. The created styles copy the formatting of the object by default. Changing a style affects all objects that have been assigned this style. The new Style Table tool allows you to customize the appearance of a report using styles and switch between them on the fly. You can: Select style table mode; Create new custom styles and color schemes that would fit your report; Change already created styles of report objects to your taste; Switch almost instantly between ready-made solutions. Style tables are supported in a rendered report and allow you to change the report style without rebuilding. These styles are saved to the rendered report file to allow report distribution to other users. Each user can choose their style. Composite barcodes We have added a new container object for composite barcodes. The object has ready-made settings for composite barcodes: EAN 8+2, EAN 8+5, EAN 13+2, and EAN 13+5. The object editor offers functionality for quick compilation of your compound barcodes. An example of barcodes used when printing price tags. Powerful tools for your reports For the efficient work of multi-threaded applications, we have added the ability to print in multiple threads. Each thread can print to the printer without blocking others. This approach is efficient for applications running in print service mode. We have improved the digital signature object for PDF export. Now you can supplement the signature with the current signed date, name, and other additional information. The ability to override and replace the standard export dialog has been added to export filters without changes in the FastReport source codes. Example: ``` uses frxExportPDFDialog; type TfrxCustomPDFExportDialog = class(TfrxPDFExportDialog) protected procedure InitControlsFromFilter(ExportFilter: TfrxBaseDialogExportFilter); override; end; procedure TfrxCustomPDFExportDialog.InitControlsFromFilter(ExportFilter: TfrxBaseDialogExportFilter); begin inherited; SignaturePage.TabVisible := False; end; procedure SetDialogClass; begin frxPDFExport1.CustomExportDialogClass := TfrxCustomPDFExportDialog; end; ``` We have improved and fixed the bugs in export filters. PDF export has received support for handling translucent SVG images. Report compatibility between Lazarus and Delphi versions has been improved. The transfer of report variables between versions has been fixed. FastCube VCL and FastCube FMX For FastCube VCL and FastCube FMX products, we have added integration with FastScript, which we moved to a separate package. For FastScript support, it is enough to install one additional package and not rebuild all the others. We also paid attention to fixing errors in highlighting and editors. FastCube VCL gets HiDPI support for high-resolution monitors. It supports all available RAD Studio development environment modes. FastQueryBuilder gets package support for the latest RAD Studio versions. RAD Studio 11 compatibility bugs have been fixed in FastReport FMX. Product optimization and performance have been improved, and internal architectural changes have been made. The full changelog for the 2023.2 version Сore library --------------- + Added new core package with a shared code for all products + Added a new graphics core package with a shared code for all products + Added new localization packs * Changed product localization system Fast Report VCL --------------- [Designer] - Fixed Int64 support in Object Inspector - Fixed filter behavior in the data selection dialog - Fixed TfrxRichView frame borders in the designer - Fixed a bug when the dropdown code completion did not copy styles from Syntax Memo [Engine] + Added support for style tables and improved work with styles in the report designer + Added the option of simultaneous multi-threaded printing - Fixed form scaling for additional display for Delphi 10.1 and later - Fixed bug with parent container component interactive events - Fixed error handling in CrossView events - Fixed printing of current page mode - Fixed Duplex printing for multiple copies of documents with collation enabled [Exports] + Added new CustomExportDialogClass property for export filters, which allows you to override the export dialog for standard export filters * Improved translucent SVG export in PDF export via EMF - Fixed memory leak with embedded files in PDF export - Fixed progress dialog in HTML export when entering the wrong page number - Fixed export of TfrxLineView and TfrxShapeView in PPTX export [Lazarus] + Added support for variable portability in templates (Delphi <--> Lazarus) - Fixed behavior of empty TfrxPictureView in Lazarus [Preview] - Fixed button order in the preview [Report object] + Added composite barcodes (EAN 8+2, EAN 8+5, EAN 13+2, EAN 13+5) + Added TfrxPictureView.LoadFromStream method + Added handling of Hint property (similar to TagStr) - Fixed placement of SVG pictures in TfrxPictureView [Resources] * Updated Portuguese resources * Updated Polish resources FastReport FMX --------------- - Fixed integer overflow error in gradient fill object - Fixed crosstab editor bug in RAD Studio 11 FastQueryBuilder --------------- - Added packages for new Delphi versions (RAD Studio 10-11) FastCube --------------- + Added HiDPI support for high-resolution monitors + Added integration package with FastScript (integration does not require rebuilding of the main packages) - Fixed bugs in highlighting rules - Fixed Access violation error when using the component in some editors ### Special offer for the 25th anniversary of FastReport VCL! URL: https://www.fast-report.com/news/sale-25-vcl-ultimate Summary: In honor of the anniversary of the FastReport VCL Ultimate report development kit, we are giving you a discount until February 8th. Don't miss the chance to make reports fast, flexible and beautiful at a great price! In honor of the anniversary of the FastReport VCL Ultimate report development kit, we are giving you a discount until February 8th. Don't miss the chance to make reports fast, flexible and beautiful at a great price! Only from February 4 to 8 - 25% off FastReport VCL Ultimate . To celebrate the anniversary of this legendary reporting toolkit, we’re offering a special discount on FastReport VCL Ultimate - a powerful and flexible suite for creating reports, documents, and analytical interfaces in your business applications. FastReport VCL Ultimate is a professional set of reporting components for Delphi, C++Builder, RAD Studio, and Lazarus, featuring rich functionality - from visual report design and editing to advanced multidimensional analytics and export to dozens of formats. The key advantage of the Ultimate edition is that all core solutions for the Delphi ecosystem are bundled into a single package. Instead of purchasing individual products, you get a complete toolkit for report development across VCL, FMX, and Lazarus, along with a web-based designer for working with templates. This is not only convenient, but also highly cost-effective - especially now, with a 25% discount. FastReport VCL Ultimate includes: FastReport VCL report generator; FastReport FMX cross-platform report generator; FastReport for Lazarus report generator. As well as products available exclusively as part of FastReport VCL Ultimate: FastCube VCL and FMX OLAP analysis tools; FastGrid data visualization library; FastReport Online Designer for visual editing of document templates. The promotion is valid only from February 4 to 8 - 25% off any FastReport VCL Ultimate license (Single, Team, Business, or Site). This is the perfect time to upgrade your reporting tools or to introduce a professional reporting solution with maximum capabilities into your project. Don’t miss this opportunity — make your reports fast, flexible, and beautiful with FastReport VCL Ultimate at a great price. If you are purchasing through FastSpring, use the promo code FRUVCL25 , and if you are paying via PayPro, use the links below. ### Start FastCube 2 VCL beta-testing! URL: https://www.fast-report.com/news/fastcube-vcl-beta-testing Summary: Start FastCube 2 VCL beta-testing! Start FastCube 2 VCL beta-testing! We announce powerful beta-testing of FastCube 2 VCL! What does it mean? - Trial versions of FastCube 2 for all supported IDEs are available here: https://www.fast-report.com/en/download/fast-cube-2/ - All who ordered FastCube 1 from now to date of release of FastCube 2 (approximately May 2013) will get FastCube 2 for free (beta - today and release then). - All customers of FastCube 1 can order FastCube 2 with great discount (see customer panel) ### Styles in FastReport .NET URL: https://www.fast-report.com/blogs/styles-fastreport-net In this article, I would like to talk about the use of styles in FastReport .NET. Indeed, many people underestimate this feature. They think that styles helps bring documents to a unified specie. Almost every user faced with a text editor Microsoft Word. And most know that styles help instantly change the appearance of objects (such as titles). FastReport .Net also allows styles to bring individual objects or groups of objects to uniformity. The practice of style greatly accelerates the development of reports. So, open the report designer. The toolbar Stiles is located on the tab Home: There is the drop-down list that allows you to choose the current style. To apply the style you need to select an object or group of objects. Then select the desired style from the drop-down list. To open the Style Editor, use the icon below the drop-down list: In the Style Editor, you can add, delete, and edit. In addition, you can save a set of styles file * .frs, and then load styles from this file to create another report. This is very useful if you are developing many reports in the same style. Style allows you to: set the object frame. This can be a whole frame and one or more lines to choose from. Also, is defined style, thickness and color of lines; Set the fill color. This can be not only a solid color, but a gradient or hatching; Set the font. Traditionally, you can set the size, style, alteration; Set the font color. For example, apply a style for headlines data in the report Master-detail: Bands also have property Style. This means that it is possible to apply the custom styles. But let's turn our attention to the property EvenStyle. Because of this property we can set style for even rows in the table. Create another style with a light gray fill. Choose a band with the data (in our case, a detailed band data). For the property EvenStyle select created style. Preview the report: Admit this is a very simple and effective. Thus, using the styles in your reports, you will: accelerate the creation of the report, achieve a uniform design of report objects, and improves the appearance of the lists through the property EvenStyles. Tags: .NET, .NET, FastReport, FastReport ### Subscribe on save events in FastReport Online Designer URL: https://www.fast-report.com/blogs/subscribing-save-events-online-designer In case you need to do some actions on client side after saving the report like show some beautiful dialog from your code or do redirect to the other page you can use following techniques. 1) you can use the following code: ``` const eventName = 'save_success';   window.addEventListener('message', e => { if (e.data === eventName) { // here is your code. It could be something like showSuccessDialog(); } }, false);   ``` where eventName can also be: save_begin - will be executed when user starts saving the report but before sending request to the server save_failure - will be executed in case the request failed and report was not saved. 2) Another possibility to do some actions on save events is to set URL option in config section during building your online designer : Tags: FastReport, FastReport, Online Designer, Online Designer ### Summary and plans for 2021 URL: https://www.fast-report.com/blogs/2020-summary-2021-plans Summary: Summing up the year 2020 and planning 2021: new technologies and objects Summing up the year 2020 and planning 2021: new technologies and objects Summing up the year 2020 and planning 2021: new technologies and objects We could talk a lot about our experiences and difficulties in the past year, but we'll just take stock of this year and talk a little bit about our plans for the future. In spite of all the difficulties, we worked hard this year. Not everything we planned has been completed, but we are committed to achieving all of our goals for the foreseeable future. What's done? Over the past year we were able to implement new quality control processes for our products. Work in this direction will continue. We have optimized and improved exports to various formats, added new object properties, improved report generation algorithms and fixed many bugs. We have added support for 5 new barcodes and 6 new formats for saving documents. We want to acknowledge the hard work our developers did to refactor the code to merge the .NET family source code into a common repository. In addition, in FastReport .NET we added Windows Forms support for .NET Core 3.1 and support for .NET 5, introduced security control of the report script when working in web applications, and developed a new demo application. Also we deprecated .NET Framework 2.0 support in the FastReport NET product. The FastReport Mono gained the ability to build charts. We added support for new RAD Studio in FastReport VCL, did a lot of work to improve the user interface, added new features to build complex reports, and improved the quality of generated reports. Separately we note the work on improving the product FastReport for Lazarus. In turn, FastReport FMX has gained the ability to work in 64-bit apps under macOS operating system, the report designer has been improved as well as work on data processing and document generation. OLAP FastCube .NET product can be used in ASP.NET Core web-applications now, it has an improved interface, new possibilities of data filtering were added and it works in Mono. FastCube VCL got expression support, it works better in Lazarus. In FastCube FMX new options for data highlighting were added. We want to thank all FastReport Open Source users, those who contributed to its improvement and those who wrote to us with their issues. What's next? Our analysts together with the entire team closely follow trends in software development and the entire IT industry. We are constantly learning and trying to improve our products according to our customers' wishes. Let's start with the FastReport VCL and FMX product plans: we want to release FastReport VCL 7; the tables in the reports will be improved; PDF documents will get digital signing capabilities; reports will be able to use SVG images; new transports will be added; the Lazarus version will get a RichView object; new interface styles will be added. The FastReport .NET product will get: support for high-resolution screens (high dpi); components to work with the Blazor framework; support for the new .NET 6; digital signatures for MS Office documents; parallel printing on multiple printers; ability to connect to the Clickhouse column based DB. FastReport Mono cross-platform report generator will become even more compatible with different operating systems - we plan to improve stability and performance of this product. Browser-based report editor FastReport Online Designer will be added support for editing charts, new report objects, improved user interface. Work on improvement of the FastCube user interface will be continued, also it is planned to expand its capabilities to connect to different DB. It is planned to release a new product for generating reports and launch its closed beta-testing. You can take part in it. Just follow our news. We also plan to update and publish documentation for all our products. We also plan to introduce a subscription-based licensing model for those products which haven't used it yet. Good luck in the new 2021! We want to wish you good and positive emotions in the coming year 2021! May your programs be bug-free and your reports always complete and timely! May your DB queries run fast, and may users' requests to you for new features not hamper you! And let the suppliers of libraries for your products fulfill your requests quickly! In any case - we'll do our best for you! We always welcome your requests - write us your wishes about our products, and we'll try to fulfill them! With respect, Fast Reports team Tags: FastReport ### Summary and plans for 2022 URL: https://www.fast-report.com/news/summary-and-plans-2022 Summary: We are wrapping up the outgoing 2022: the release of FastConverter .FP3, the end of support for Delphi 7, and also share our plans for 2023. We are wrapping up the outgoing 2022: the release of FastConverter .FP3, the end of support for Delphi 7, and also share our plans for 2023. The year 2022 was full of important events. Despite its unpredictability and all challenges, that we've faced over the past 12 months, we've continued to work hard to improve document generation in thousands of apps. What important happened? A milestone for the VCL report generators was the end of support for obsolete non-Unicode versions, which will allow us to work harder to improve FastReport and introduce more sophisticated features with each release. Since the release of 2023.1, FastReport VCL supports Delphi versions starting from 2010. We have released the fp3 converter which converts to any FastReport VCL data format — FastConverter .FP3 . We have launched NuGet server for the .NET direction — a repository of licensed products for users. Now you can conveniently download the latest versions of our components on any operating system. FastReport.Core now supports graphics and text rendering using the SkiaSharp library. Also, FastReport .NET got a bronze medal in the "Reporting, Analysis and Visualization" nomination in the Reader's Choice Awards by Visual Studio Magazine. We were happy to share the stand with Devexpress and SAP Crystal Reports. What about plans? The release of several services at once will be a truly revolutionary breakthrough in 2023. One of them is FastReport Cloud cloud report builder. This is an online service for creating, storing, and editing reports and documents, which allows you to set up and implement reporting in companies with minimal involvement of programmers. Stay tuned and you will be one of the first to try it! We are also working on a high-performance WPF reporting and document library for business application development. Other products will have the following features: WASM support New report objects Support for the latest version of the environment — NET 8, RAD Studio 11.3 Updated user interface and user experience Digital signature stamp Support for RFID tags for ZPL export Map implementation based on GeoJson And much more! It's also time for New Year's wishes. Maybe it's reporting for Android? Or export to some exotic format? Write to us your wish in the form below. It would be great if you also tell us how this will change the work of your applications. Congratulations on the upcoming holidays, Fast Reports team. Загрузка… ### Summer events with Fast Reports URL: https://www.fast-report.com/news/summer-events-2018 Summary: Summer events with Fast Reports. We are having a busy-busy summer and invite you to meet us at the following events in Europe that we organized together with our partners Summer events with Fast Reports. We are having a busy-busy summer and invite you to meet us at the following events in Europe that we organized together with our partners We are having a busy-busy summer and invite you to meet us at the following events in Europe that we organized together with our partners:  Date Name Location For .Net Developers For Delphi Developers Link June 6 – 7 Delphi Day Italy Piacenza, Italy + June 15 SDN (Free!) Zeist, Netherlands + + June 25-28 DWX Nuremberg, Germany + June 29 Workshop (Free!) Nuremberg, Germany + + July 2 Workshop (Free!)  Barcelona + + ### Summer offer: 10% off on FastReport VCL editions URL: https://www.fast-report.com/news/fastreport-vcl-discount-2023 Summary: Get Lazarus support and source code with 10% off in FastReport VCL Professional and Enterprise editions with VCL Ultimate. Get Lazarus support and source code with 10% off in FastReport VCL Professional and Enterprise editions with VCL Ultimate. From  July 11 to July 25 , get Lazarus support and source code with 10% off in FastReport VCL Professional and Enterprise editions, or full cross-platform with FastReport VCL Ultimate. Save from $39,9 when purchasing a Single license, $89,9 when purchasing a Team and $599,9 when purchasing a Site! Take advantage of getting much more functionality for less cost. You can see the differences between editions here . The offer is valid only for the license purchase and does not apply to an upgrade or renewal. You can use the hot offer by clicking on the link. ### Summing up. Rewarding our partners URL: https://www.fast-report.com/news/summing-up-rewarding-our-partners Summary: We would also like to acknowledge sales growth in the UK of 52% and the Czech Republic of 69%. We would also like to acknowledge sales growth in the UK of 52% and the Czech Republic of 69%. Dear Friends! We are going to reward our best dealers and present them with personal certificates for their good work and special contributions in FastReport product promotion. The key results and awards given are:  Germany. We have awarded a certificate and "Partner of the Year" status to  Christian Haimerl  and  McLicense   for their active promotion of our products and high sales levels. Japan! This is exceptional! The  Ag-Tech  company has localized FastReport.Net and FastReport VCL to Japan, and sales have grown by 1973% Brazil. Very good performance. Growth is low at 8% but we thank  our dealers  from Brazil for the stable sales and technical support. Netherlands.  Growth is 73% for the year 2011. We would like to mention in a special way  Isah , our technical partner in Holland. Poland. Rising sales  of 73%. Moreover, we have opened a training center for FastReport customers. An award goes to  Softkey.pl  and  BSC Polska . China. Very good work by resellers in this country. We thank our partners for their hard work and marketing campaigns! Awards go to  Qast Software Group ,  Panyan Tehnology (Component CN) ,  Chongqing Huidu Technology (Evget) . Italy. Many thanks to  Andrea Urbani   for his work and product technical support. Andrea is our friend and very good partner. We would also like to acknowledge sales growth in the UK of 52% and the Czech Republic of 69%. We thank our partners from other countries and give them “Partners of Year 2011” status : Component Source  (UK and World),  Jan Kadlecek  (Czech Republic),  Olivier Pennec  (France),  Danysoft  (Spain),  Linksoft  (Taiwan). Michael Philippenko rewards Jan Kadlecek ### Support URL: https://www.fast-report.com/support Summary: Customer Support Center. Contact us in a convenient way or leave a request through the contact form. We are always ready to help you. Support Center We are here for help Contacts Tickets Forum Frequently Asked Questions Licensing issues FastReport .NET - FAQ FastReport VCL - FAQ Reporting FMX - FAQ Analysis VCL - FAQ Online Designer - FAQ FastReport Publisher - FAQ Do you need help? Useful materials Documentation Blogs Tutorial Video info@fast-report.com Sales sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Office Alexandria, VA 22314 66 Canal Plaza, Ste 505 Products Buy Demo Documentation How to uninstall Licenses Products Buy Demo Documentation How to uninstall Licenses Support Support SLA Online support FAQ Tutorial Video Forum Articles News Support Support SLA Online support FAQ Tutorial Video Forum Articles News Company About Identity Resellers Contacts us Company About Identity Resellers Contacts us Privacy policy Cookies policy © 1998-2026 Fast Reports Inc. Trustpilot Link copied successfully ### Support for .NET 7 in new FastReport .NET 2023.1 URL: https://www.fast-report.com/news/fastreport-net-2023.1 Summary: We are pleased to present you a integration with FastReport Cloud, .NET 7 support, JasperReports converter, connection to stored procedures in MsSQL. We are pleased to present you a integration with FastReport Cloud, .NET 7 support, JasperReports converter, connection to stored procedures in MsSQL. The autumn update for the report generator is now available! The functionality of our solutions is expanding every day and we are pleased to present you a partial integration with FastReport Cloud, .NET 7 support, JasperReports template converter, connection to stored procedures in MsSQL, and much more. Integration with FastReport Cloud FastReport .NET, FastReport Core, and FastReport Mono now support some interaction experience with FastReport Cloud. Downloading and uploading reports Now you can download the report from Cloud and work on it in the designer, or vice versa — upload your files to Cloud. Web Preview A web preview function has also appeared in addition to the standard preview. The report can only be viewed this way if it was opened from Cloud. Connecting to FastReport Cloud data sources FastReport Cloud can store connections to data sources. From now on, you have the option to add these data sources to your report.  It also became possible to add the connection to Cloud. R ead this article to learn more about the new features.  .NET 7 support We have added  .NET 7  support for FastReport.Core and FastReport.CoreWin. This platform improves application performance and adds many new features to your projects. Report validator improvements Increased work speed Now the report validator runs in a single thread. The speed of its work is significantly optimized. You can notice the changes in processing reports with a large number of errors. While the validator is checking the report, the check window shows a respective message. In this case, you can edit the report. A table with errors will appear upon completion of the validator. Validator table setup For convenience, we have added a new column with error numbers. Its display can be enabled or disabled via the table context menu. In the same way, you can customize the display of the error type column. JasperReports Template Converter We have added the option to convert report templates from JasperReports to FastReport .NET templates. JasperReports reports may contain objects that are not supported by the FastReport designer. These objects will not be converted or will be replaced to make the generated report as similar as possible to the one created in JasperReports. Read more in the article. MSChartObject improvements and fixes The MSChartObject object has many properties and settings. The most frequently used ones are moved to the object editor. Properties that are not available in the editor can be modified using the Object Inspector. However, there was a problem with these properties — when they were changed, the report was not seen as modified. As a result, saving was not available. To save the report, it was necessary to change its other property or object. In addition, the values of the specified properties were reset to their default values when preparing a report and after closing the preview window. This bug has been fixed in the new version. Connection to Stored Procedures in MsSQL We have added the option to connect to procedures stored in MsSQL. This was previously available via a database query. Now you can connect to procedures much more conveniently using the interface of database table connection. They will be displayed in the selection window along with the tables. Once you select a procedure, a window with parameter settings, if any, will appear.  Read more in the article. Export Improvements "Print optimized" option in RTF export We have added a new PrintOptimized property and a corresponding option in the export window. Enabling this option will greatly increase the quality of the exported image. However, the size of the output file will be bigger. UseFileStream property in Excel 2007 export We have added a new option, UseFileStream, for exporting to Excel 2007. It can only be used when exporting from code to a file. This option is useful when exporting reports with a large number of pages (several tens of thousands) in multiple threads. This will help you avoid memory shortage errors. In other cases, it does not make much sense to use it and it is not recommended to do it. Example: ``` Report report = new Report(); Excel2007Export export = new Excel2007Export(); export.UseFileStream = true; report.Export(export, "report.xlsx"); ``` Accounting format when exporting to Excel 2007 You can now export the currency data format as an accounting format. To do this, a corresponding option has been added in the export window and the CurrencyToAccounting property. Upgrading the minimum .NET Framework version from 4.0 to 4.6.2 We are upgrading the minimum supported version of FastReport .NET to .NET Framework 4.6.2 due to the following: support for .NET Framework 4.0 has long been ended; there are problems with building the FastReport source code in the latest versions of Microsoft Visual Studio; the need to implement new APIs. The full list of changes is available at the following link. ### Support for editable fields in WebReport URL: https://www.fast-report.com/blogs/support-editable-fields-webreport In the article "Interactive forms in the PDF export of Fast Report .Net 2018" I have already considered editable fields. The bottom line is that the Text and Checkbox objects can be edited in the report preview mode if you include the Editable property. Until recently, this function was supported only for desktop reports. Now, starting with version 2018.2.3, web reports can also have editable fields. That is, when viewing the report in the browser, you can change the text and the checkboxes, and after that, for example, export the report to the desired format. Let's look at an example of how this works. Let's say we have a Web application with a WebReport object. An arbitrary report is displayed in the object. I took for example the Master-Detail report from the FastReport.Net delivery. Select the desired text object and set its properties to Editable = true. I made two fields editable: Unit price and Discontinued. Launch the web application: Before us there are categories with lists of goods. Let's say I'm a businessman and look through the goods of my store. I see an error in the price or description and correct it right in the report. Then, I can save the report or print it to transfer it to the price adjustment to the administrator. Everything is simple and convenient. Let's fix the price for a product. Just click on the desired text field, and before you open the editing window: Put the check boxes in the Discontinued field for other products: By the way, if you use the Editable property, and set the InteractiveForms option when exporting to PDF, you will get editable fields in the PDF document. Tags: FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### Support of Lazarus in FastReport VCL 6 URL: https://www.fast-report.com/news/support-lazarus-vcl6 Summary: Support of Lazarus in FastReport VCL 6 Support of Lazarus in FastReport VCL 6 We are excited to announce that FastReport VCL 6 now supports Lazarus in beta test mode. Update your FastReport VCL Professional edition and see it first. Feedback is welcomed at support@fast-report.com What's new?  - Support of Lazarus 2.0.0 Improved: - paper handling by default - refreshing page count when jumping between tabs - drop-down list of fonts Fixed: - undo-redo buffer in Linux - hyperlinks in Text object - nested cross objects - report variables Added: Export to following formats: HTML, HTML5, RTF, DBF, CSV, ODS, ODT, XML, PDF, DOCX, PPTX, XLSX. ### Support our products in Community Choice Awards URL: https://www.fast-report.com/news/community-choice-awards-2010 Summary: Support our products in Community Choice Awards Support our products in Community Choice Awards Two community choice awards votings are taking place now. These are:  1. "2010 SQL Server Magazine Community Choice Awards" Our great reporting product- “Fast Report .Net"- is taking part in this voting .It is in the second category called “Best Business Intelligence & Reporting Product”. This is our great chance to vote for our product, let others what it can do and promote it in different communities.  And to add to that, are you impressed with our tech support team?  Then you have a chance to vote for our own team in the ninth category called “Best vendor tech support”. And what can be the best way to encourage our team than to vote for it?  2. "2010 DevProConnections Community Choice Awards". Our impressive and effective data analysis tool –FastCube- is taking part in the second category “Charting & Graphics Tool”, The best way to tell others that there is a better way to analyze their data is by voting for our product. And this will do us all pride that once again, we are together supporting our team and making others aware of better ways to handle and report their data. Thanks for your support! ### Tabs in WebReport URL: https://www.fast-report.com/blogs/tabs-web-report We can use tabs to view multiple reports in WebReport  in version FastReport.NET 2013.4 and newer. Tabs can be useful for viewing many reports with additional information. Each report in tab has own navigation and may be attached to any data source. Saving in different formats is performed for each tab. We have plans to implement FastReport.NET for open the detailed report in a separate tab by clicking on the object page. Also we will add the ability to close unnecessary tabs. Tabs can be added directly in the application code, for example: ``` WebReport webReport = new WebReport(); webReport.Report.RegisterData(dataSet, "NorthWind"); webReport.Report.Load(report_path + "Simple List.frx"); webReport.CurrentTab.Name = "Simple List"; // tab 2 Report report2 = new Report(); report2.RegisterData(dataSet, "NorthWind"); report2.Load(report_path + "Labels.frx"); webReport.AddTab(report2, "Labels"); // tab 3 Report report3 = new Report(); report3.RegisterData(dataSet, "NorthWind"); report3.Load(report_path + "Master-Detail.frx"); webReport.AddTab(report3, "Master-Detail");   ``` A property “webReport.CurrentTab” needs for access to the current tab, for example: “webReport.CurrentTab.Report”. By default, the first tab is available. In each of the tabs we have next available properties: “Report” – report object, “Name” – tab name. The name of the tab will be taken from the properties of report or report file name if the “Name” property is not specified. The collection of tabs "webReport.Tabs" is also available. These can be used to refer to the tab by its index, for example: webReport.Tabs [0]. Name. WebReport.AddTab method adds a new tab. We can use any declaration from next: ``` // an adding of report object public ReportTab AddTab(Report report); // an adding of report object with its name public ReportTab AddTab(Report report, string name); // an adding of prepared report object with its name (reportDone = true) public ReportTab AddTab(Report report, string name, bool reportDone);   ``` Last call declaration can add any prepared report. An example of adding some prepared reports: ``` webReport.Tabs.Clear(); string s = this.Server.MapPath("~/App_Data/Prepared.fpx"); // first Report firstReport = new Report(); firstReport.LoadPrepared(s); webReport.AddTab(firstReport, "First tab", true); // second Report secondReport = new Report(); secondReport.LoadPrepared(s); webReport.AddTab(secondReport, "Second tab", true);   ``` In the near future we will add the display settings for tabs and an implementation of interactive reports. LIVE DEMO Thank you for attention! Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC ### Thank you for your request URL: https://www.fast-report.com/user-request-successful Summary: You succesfully applied your contest project! Thanks for being a part of it. We will notify you about your status change via email You succesfully applied your contest project! Thanks for being a part of it. We will notify you about your status change via email You succesfully applied your contest project! Thanks for being a part of it. We will notify you about your status change via email ### The content of .NET component packages URL: https://www.fast-report.com/fastreport-packs-net Summary: The composition of the product line .NET directions, effective from June 1, 2024: now the products are more specialized The composition of the product line .NET directions, effective from June 1, 2024: now the products are more specialized Here you can learn how .NET products will be formed starting on June 1, 2024. Instead of the usual product and edition, we suggest choosing the set of components (pack) that is right for you.  Ultimate WEB Avalonia WinForms WPF Mono Open Source The composition of component sets Run-time report designer ✓ ✓ ✓ ✓ ✓ ✓ ✓ Report Viewer ✓ ✓ ✓ ✓ ✓ ✓ ✓ Saving and uploading templates to  FastReport Cloud ✓ ✓ ✓ ✓ ✓ ✓ ✓ Saving prepared reports to the cloud ✓ ✓ ✓ ✓ ✓ ✓ Report script ✓ ✓ ✓ ✓ ✓ ✓ ✓ Print support ✓ ✓ ✓ ✓ ✓ ✓ In-report data sources ✓ ✓ ✓ ✓ ✓ ✓ ✓ In-report dialogue forms ✓ ✓ ✓ ✓ ✓ ✓ Export the prepared report to other formats ✓ ✓ ✓ ✓ ✓ ✓ Partly* Advanced report objects : Table, Matrix, AdvMatrix, Barcode, Charts, Maps, RichText, Checkbox, Zip code, CellularText, Digital signature ✓ ✓ ✓ ✓ ✓ ✓ Partly** Report objects - Text, Picture, Shape, Line, Subreport ✓ ✓ ✓ ✓ ✓ ✓ ✓ System.Drawing (GDI) ✓ ✓ ✓ ✓ ✓ ✓ ✓ FastReport.Drawing (Skia) ✓ ✓ ✓ Blazor Server ✓ ✓ Blazor Webassembly (WASM) ✓ ✓ ASP.NET components (WebReport) ✓ ✓ ✓ WinForms components ✓ ✓ WEB components  ✓ ✓ ✓ Avalonia components ✓ ✓ WPF components ✓ ✓ Mono components ✓ ✓ OLAP components ✓ Business Graphics components ✓ Online Designer included ✓ ✓ Source code ✓ Operating systems Windows ✓ ✓ ✓ ✓ ✓ ✓ ✓ macOS ✓ ✓ ✓ ✓ Linux ✓ ✓ ✓ ✓ ✓ Pricing policy Single $1,499 $799 $599 $499 $499 $499 Team $4,499 $2,399 $1,799 $1,499 $1,499 $1,499 Site $22,499 $11,999 $8,999 $7,499 $7,499 $7,499 *Only PDFSimple, Images (Jpeg, PNG, BMP, GIF, TIFF, EMF), HTML, HTML5 (layered) are supported **Only Table, Matrix, Barcode, RichText, Checkbox, Zip code, CellularText are supported ### The content of Delphi component packages URL: https://www.fast-report.com/fastreport-packs-delphi Summary: The content of the Delphi product line, effective from June 1, 2024: now the products are more specific foк your needs The content of the Delphi product line, effective from June 1, 2024: now the products are more specific foк your needs Here you can learn how Delphi products will be for med starting on June 1, 2024. Instead of the usual product and edition, we suggest choosing the set of components (pack) that is right for you. Ultimate VCL Optimum VCL Reporting VCL Reporting FMX Reporting Lazarus Analysis VCL Embarcadero Edition The composition of component sets Report Designer ✓ ✓ ✓ ✓ ✓ Partly* Report script ✓ ✓ ✓ ✓ ✓ Connecting data sources ✓ ✓ ✓ ✓ ✓ ✓ ✓ In-report dialogue forms ✓ ✓ ✓ ✓ ✓ Export to other formats ✓ ✓ ✓ ✓ ✓ ✓ Partly** Advanced report objects - Table, Matrix, Barcode, Charts, Maps, RichText, Checkbox, Zip code, CellularText ✓ ✓ ✓ ✓ ✓ Partly*** Report objects - Text, Picture, Shape, Line, Subreport ✓ ✓ ✓ ✓ ✓ ✓ Converters from Quick Report, Report Builder, Rave Reports ✓ ✓ ✓ VCL components (Core, Core controls, Core Graphic, Core Localization) ✓ ✓ ✓ ✓ VCL OLAP components ( FastCube VCL ) ✓ ✓ ✓ VCL ClientServer components ( learn more ) ✓ ✓ FMX components (Core, FastScript, Reporting) ✓ ✓ FMX OLAP components (FastCube FMX) ✓ Lazarus components (Core, Core UI,  FastScript, Reporting) ✓ ✓ Lazarus OLAP components (FastCube Lazarus) ✓ Lazarus ClientServer components  ( learn more ) ✓ Save prepared reports to clouds (transports) ✓ ✓ Source code ✓ ✓ ✓ ✓ ✓ ✓ FastScript included ✓ ✓ ✓ ✓ ✓ ✓ FastQueryBuilder included ✓ ✓ ✓ Operating systems Windows ✓ ✓ ✓ ✓ ✓ ✓ ✓ macOS ✓ ✓ ✓ Linux ✓ ✓ ✓ Pricing policy Single $1,299 $899 $499 $499 $499 $399 Download Team $3,899 $2,699 $1,499 $1,499 $1,499 $1,199 Site $19,499 $13,499 $7,499 $7,499 $7,499 $5,999 *Design time only **Only PDF, RTF, HTML, TXT, Images, CSV  are supported ***Only Сharts, Linear barcodes, Rich Text, Checkbox are supported ### The era of WinForms is over, the era of FastReport.Core.Skia began URL: https://www.fast-report.com/blogs/fastreport-core-skia Summary: The new Sharp graphics engine for creating high-quality reports and correctly exporting to different formats is available in FastReport .NET. The new Sharp graphics engine for creating high-quality reports and correctly exporting to different formats is available in FastReport .NET. The new Sharp graphics engine for creating high-quality reports and correctly exporting to different formats is available in FastReport .NET. To create high-quality reports and correctly export them to different formats (PDF, Word, Excel, etc.), it is necessary to use the graphics engine. Since the earliest versions of the .NET Framework, Microsoft has used GDI+ and its wrapper as part of the System.Drawing library. FastReport .NET has long been using the same library to create beautiful and functional reports. The Mono team has developed their GDI+ version for Unix systems: libgdiplus, which is used by System.Drawing.Common. However, this method does not work perfectly. GDI+ problems Unfortunately, unlike on Windows, System.Drawing.Common works on other platforms very specifically. Such common issues that we receive from our users include incorrect rendering text sizes, lack of RTL language support, incorrect word spacing, word break error in sentences, lack of ARM processor support, and general libgdiplus instability (“Out of memory”, problems during the work in a multi-threaded configuration). You can solve some of these problems by manually rebuilding libgdiplus from the Mono repository  with Pango/Cairo support . In any case, this is inconvenient, especially if your application uses containerization. The other problems affect the quality of report export on all operating systems except Windows. As a result, Microsoft officially dropped support for System.Drawing.Common on non-Windows platforms. Here is their post:“ Breaking change: System.Drawing.Common only supported on Windows - .NET | Microsoft Docs “ . After it, our users began to actively ask how they could use the powerful functionality of FastReport on Linux or macOS. Solution We have developed a special version of FastReport.Core, which uses Skia as a graphics engine and its wrapper for .NET - SkiaSharp, called FastReport.Core.Skia. The FastReport.Core.Skia and FastReport.Web.Skia packages are available on our private NuGet server.  In case you have problems rendering text under Linux with libgdiplus, we highly recommend trying FastReport.Core.Skia. To use it in your application, just change the package name  FastReport.Core -> FastReport.Core.Skia , and add the following packages on Linux (on Windows and macOS, the necessary packages are added automatically) : - SkiaSharp.NativeAssets.Linux ( NuGet ). - HarfBuzzSharp.NativeAssets.Linux ( NuGet ). Let's now compare FastReport.Core with libgdiplus and FastReport.Core.Skia on Linux/macOS. First, let's look at the incorrect calculation of text length after exporting to HTML format on Linux Ubuntu 20.04. In the images below, you can see how libgdiplus with Pango, even rebuilt from the source, does not display the end of the 1st line correctly, dropping some information, Skia works fine. Incorrect HTML export on Linux, libgdiplus + Pango Correct HTML export on Linux, SkiaSharp Let's look at exporting the Unicode.frx report from our demo with texts in different languages. Unfortunately, even after rebuilding libgdiplus with Pango, it does not work with RtL languages such as Hebrew, Arabic, and others. FastReport.Core.Skia can work with such languages. Incorrect PDF export of RtL text on Linux, libgdiplus with Pango wrote all text in 1 column for 8 pages Correct PDF export of RtL text on Linux, SkiaSharp We can see the similar situation with some Eastern languages, the correct display of which requires a special font: Incorrect PDF export of text on Linux, libgdiplus with Pango Correct PDF export of text on Linux, Skia. An appropriate font is automatically selected for each text. Let's try FastReport.Core.Skia in a previously unsupported scenario: working on devices with ARM processors, such as Apple M1. Let's create a .NET 6 console application (because only .NET 6 has native support for ARM architecture for macOS) and export the Simple List.frx report from our demo. In the end, we recall that System.Drawing.Common, starting with version 7.0, will completely stop supporting non-Windows systems, so the examples of libgdiplus given above will soon not work at all. Limitations: This version of FastReport.Core cannot be used with the System.Drawing API: in some .NET Framework projects, NET Core 3.1/ NET 5+ WindowsForms projects, and in projects with System.Drawing.Common due to the specifics of this modification. Try the new version of FastReport.Core with SkiaSharp support and enjoy all its advantages. If you have any questions, please contact our  Support . Tags: .NET, MacOS, Mono, FastReport, Linux, Core, PDF, WinForms, HTML, Libgdiplus, Windows ### The Event of ExportParameters in WebReport.Report URL: https://www.fast-report.com/blogs/exportparameters-in-webreport Summary: The article discribes how to use event ExportParameters with FastReport.Net reports. The article discribes how to use event ExportParameters with FastReport.Net reports. The article discribes how to use event ExportParameters with FastReport.Net reports. In FastReport 2020.1 we have added the ability to change export parameters. To do this, you must subscribe to the ExportParameters event in WebReport.Report. Until now the FastReport.Net library did not provide access to the export parameters. Or rather, it did, but only to some of the parameters, and with the help of individual properties of the Web report. All these properties are piled up and working with them using intelisense is quite inconvenient, and they do not cover all the needs of users. So it was decided to give users access to all properties of the export object, using a special ExportParameters event. In the event handler you can get the export object and set all the properties you need. Thus, it is now possible to configure the export more precisely due to previously unavailable properties. This is how you can use the new event: ``` WebReport.Report.ExportParameters += (sender, e) => { PDFExport export = e.Export as PDFExport; if (export != null) { export.Title = "test"; export.DefaultPage = 2; } }; ```  In this example, we only changed the header and the default page. Note that we are expecting a PDF export when processing, which means that this code will not work for another type of export. In one handler you can specify settings for several export types at once. Now, let's take the example of PDF export as an example of how the available export properties have expanded. Previously WebReport offered us a set of export properties, which were essentially wrappers over the properties of the PDFExport export object: ``` public string PdfTitle { get; set; } public string PdfAuthor { get; set; } public string PdfSubject { get; set; } public string PdfKeywords { get; set; } public string PdfCreator { get; set; } public string PdfProducer { get; set; } public string PdfUserPassword { get; set; } public bool PdfPrintScaling { get; set; } public string PdfOwnerPassword { get; set; } public bool PdfAllowModify { get; set; } public bool PdfAllowCopy { get; set; } public bool PdfAllowAnnotate { get; set; } public bool PdfA { get; set; } public bool PdfShowPrintDialog { get; set; } public bool PdfImagesOriginalResolution { get; set; } public bool PdfJpegCompression { get; set; } public bool PdfAllowPrint { get; set; } public bool PdfCenterWindow { get; set; } public bool PdfHideWindowUI { get; set; } public bool PdfFitWindow { get; set; } public bool PdfEmbeddingFonts { get; set; } public bool PdfBackground { get; set; } public bool PdfInteractiveForms { get; set; } public bool PdfPrintOptimized { get; set; } public bool PdfOutline { get; set; } public bool PdfDisplayDocTitle { get; set; } public bool PdfHideToolbar { get; set; } public bool PdfHideMenubar { get; set; } public bool PdfTextInCurves { get; set; } ```  I must say that this list of properties includes the main and most popular, but not all. Many users want more. And now, with the new event ExportParameters, they have the full set of properties available: ``` public bool HideWindowUI { get; set; } - hide user interface; public bool ShowPrintDialog { get; set; } – show printing dialog; public bool HideToolbar { get; set; } – hide toolbar in PDF viewer; public bool HideMenubar { get; set; } – hide menubar in PDF viewer; public GradientInterpolationPointsEnum GradientInterpolationPoints { get; set; } – gradient interpolation poinrs; public bool FitWindow { get; set; } – enable window fitting; public bool CenterWindow { get; set; } – center window; public bool PrintScaling { get; set; } – show scaling; public bool Outline { get; set; } – show contents; public MagnificationFactor DefaultZoom { get; set; } – default zoom; public int RichTextQuality { get; set; } – RichText quality; public bool Compressed { get; set; } – compress file; public bool TransparentImages { get; set; } – transparent image; public bool DisplayDocTitle { get; set; } – display document title; public int DefaultPage { get; set; } – default page number; public byte[] ColorProfile { get; set; } – color profile; public ExportType ExportMode { get; set; } – export type; public bool InteractiveForms { get; set; } – enable interactive forms; public bool IsDigitalSignEnable { get; set; } – enable digital signature; public bool SaveDigitalSignCertificatePassword { get; set; } – save digital signature certificate password; public X509Certificate2 DigitalSignCertificate { set; } – digital signature certificate; public string DigitalSignCertificatePath { get; set; } – digital signature certificate path; public string DigitalSignCertificatePassword { set; } – ; digital signature certificate password public string DigitalSignLocation { get; set; } – digital signature location; public string DigitalSignReason { get; set; } – digital signature reason; public string DigitalSignContactInfo { get; set; } – digital signature contact info; public CurvesInterpolationEnum CurvesInterpolation { get; set; } – curves interpolation; public bool AllowAnnotate { get; set; } – allow annotation; public bool AllowCopy { get; set; } – allow copying; public bool AllowModify { get; set; } – allow editing; public bool AllowPrint { get; set; } – allow print; public GradientQualityEnum GradientQuality { get; set; } – gradient quality; public PdfStandard PdfCompliance { get; set; } – PDF standard complience; public bool EmbeddingFonts { get; set; } – enable embedded fonts; public bool Background { get; set; } – enable background; public CurvesInterpolationEnum CurvesInterpolationText { get; set; } – interpolation text curves; public PdfColorSpace ColorSpace { get; set; } – color space; public bool ImagesOriginalResolution { get; set; } – use original image resolution; public bool PrintOptimized { get; set; } – print optimization; public bool JpegCompression { get; set; } – Jpeg image compression; public bool TextInCurves { get; set; } – make text in curves; public string Title { get; set; } – title; public string UserPassword { get; set; } – user password for encrypted documents; public int JpegQuality { get; set; } – Jpeg image quality; public string OwnerPassword { get; set; } – Owner’s password; public string Producer { get; set; } – Producer; public bool SvgAsPicture { get; set; } – Display Svg objects as pisctures; public string Keywords { get; set; } – Keywords; public string Subject { get; set; } – Subject of the document; public string Author { get; set; } – Author; public string Creator { get; set; } – Creator; ```  And this is without considering the properties common to all exports. Let's summarize what benefits the new ExportParameters event brings us. By using an object for a specific export, we can only access the properties of that export. Previously, it was required to select from a common list of properties of all possible exports, which is not always convenient, because the names of some properties are not obvious to identify the export. You will see the full list of available properties using Intellisense or you can see the full list of available properties. Tags: .NET, .NET, Export, Export, FastReport, FastReport ### The Future of Report Generation with Blazor WebAssembly URL: https://www.fast-report.com/blogs/blazor-webassembly-manual Summary: Step-by-step instructions for creating a demo application on .NET 6 and 7 directly in the browser using Blazor WebAssembly in FastReport .NET. Step-by-step instructions for creating a demo application on .NET 6 and 7 directly in the browser using Blazor WebAssembly in FastReport .NET. Step-by-step instructions for creating a demo application on .NET 6 and 7 directly in the browser using Blazor WebAssembly in FastReport .NET. Microsoft has long introduced a framework for creating an interactive web interface with C#, HTML and CSS. It comes in two versions: Server-side (Blazor Server) and Client-side (Blazor WebAssembly). WebAssembly is particular because it is executed right in the user’s browser and accesses the remote server only for the libraries required for code execution. FastReport .NET already supports Blazor technology as part of the FastReport.Web package ( more ). However, until now, we have only supported Server-side rendering (Blazor Server). It took us a long time to get FastReport .NET working right in the user’s browser because we needed  Skia  support for stable work. Starting with version 2023.2, we are pleased to announce Blazor WebAssembly support as part of the FastReport.Blazor.Wasm package. This package is available as part of a FastReport .NET Enterprise subscription and higher (including Ultimate).  Attention! Blazor WebAssembly support is currently in beta. Some reports and functionality may not work. Read the documentation and restrictions carefully before using. Creating a demo application Let’s create a test demo application to see the work of FastReport in WebAssembly. First, install WebAssembly Build Tools to build your project with WebAssembly. If it is not installed, then run the following commands on the command line, depending on the TargetFramework of your application: For .NET 6: ``` dotnet workload install wasm-tools-net6 ``` For .NET 7: ``` dotnet workload install wasm-tools ``` Now let’s create a simple Blazor WebAssembly demo project from a template. You can do this using Microsoft Visual Studio 2022 or the dotnet CLI. For simplicity, let’s use the command: ``` dotnet new blazorwasm -n BlazorWasmDemo ``` Let’s edit the csproj of our project and add the latest FastReport.Blazor.Wasm package: ``` ``` Now, if you want to prepare your report in the browser (.frx), you must disable Trimming, as it interferes with the report script compilation. You can do this in the following way: ``` false ``` Now we add the native SkiaSharp libraries as part of our application. Depending on the TargetFramework we need to add: For .NET 6: ``` ``` For .NET 7: ``` ``` In the _Imports.razor file, similarly to the Blazor Server components, add the necessary namespace to view the FastReport components: ``` @using FastReport.Web @using FastReport.Web.Blazor.Components ``` Register FastReport services in our DI container (file Program.cs): ``` builder.Services.AddScoped(_ => new HttpClient{ BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); builder.Services.AddFastReport(); ``` Note that for FastReport to work in WebAssembly, you must have a configured HttpClient in a DI container that can access root to load the necessary dlls builds. If you need to override HttpClient for your use, you can just set a separate HttpClient only for FastReport needs: ``` builder.Services.AddFastReport(options => options.HttpClient = new HttpClient{ BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)}); ``` We have almost completed our long journey of preparing FastReport in WebAssembly, but there are just a few finishing touches. In the standard wwwroot\index.html file, we need to add the loading of js scripts for the proper work of FastReport: ``` ``` Font registration FastReport must interact with the user’s fonts since FastReport works with reports and the font is an integral part of any report with text. This is what happens when the report generator runs on Windows or Linux. However, the information about installed fonts on the user’s computer becomes unavailable when FastReport runs in a browser. Thus, our application must register the fonts that we will use in our reports. In our application, we will use a font that we will embed in our library as an embedded resource (EmbeddedResource) in advance. For this, specify in our project (.csproj): ``` Fonts\%(RecursiveDir)%(Filename)%(Extension) ``` Let’s put all the fonts we need in the Fonts folder and register them in our Program.cs. Let’s create this method and call it immediately: ``` static void AddFonts() { var resources = Assembly.GetExecutingAssembly().GetManifestResourceNames(); foreach (var resource in resources) { using var font = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource); FastReport.Utils.Config.PrivateFontCollection.AddFontFromStream(font); } }   AddFonts(); ``` Data registration That’s quite difficult. Few database connectors can work directly from the user’s browser. Therefore, we leave this to the discretion of our users. For example, you can request data from some third-party resource via HTTP and then register this data in a report before preparing it. In our application, for demonstration, we use the data from the xml file, which we put in wwwroot together with the report. Attention! Do not use this method for the final project publication because hackers can easily steal your data. Using WebReportContainer component Finally, let’s change the file Index.razor to use our WebReportContainer component. It will require the following code: ``` @page "/" @using FastReport @using System.Data; @inject HttpClient HttpClient   @if (isReady) { }   @code{ WebReport myWebReport; private bool isReady = false;   protected async override Task OnParametersSetAsync() { // We receive a report var reportBytes = await HttpClient.GetByteArrayAsync("Simple List.frx"); var reportStream = new MemoryStream(reportBytes); var report = Report.FromStream(reportStream);   // Get xml database and register it var dataBytes = await HttpClient.GetByteArrayAsync("nwind.xml"); var dataSet = new DataSet(); dataSet.ReadXml(new MemoryStream(dataBytes)); report.RegisterData(dataSet, "NorthWind");   // Create a WebReport and assign a report to it myWebReport = new WebReport() { Report = report, EmbedPictures = true }; isReady = true; } } ``` Everything went well if we saw our report in the browser: You have access to the reporting engine, you can build reports and view ready-made. Online designer support will be added in future. For security reasons, database connections are disabled inside reports, you will need to connect data from your application yourself. We are working hard on improving our WebAssembly component. If you have any questions, write to our support at  support@fast-report.com . Tags: .NET, FastReport, WebReport, Blazor ### The indicator of the presence of events in the object in the report designer FastReport.Net URL: https://www.fast-report.com/blogs/indicator-presence-events-designer-net In FastReport 2018.2.3, new settings for the report designer appeared - objects appearance. Settings can be opened in the File menu - Settings. The new section contains only two settings for now: • Show indicator on bands with events; • Show indicator on objects with events. Both settings allow you to enable the indication of the presence of events in the object. Thus, you can quickly find in the report objects for which there is code in the report script. The indicator is a small red triangle in the upper left corner of the object: For example, select the CheckBox object and look in the Property inspector for the events for it: Indeed, it's fast and convenient to search for objects with events. An alternative path is to go to the Code section, find the desired event and read the name of the report object. Then you need to return to the report page and, in the Property inspector, select the desired object from the drop-down list. This is very inconvenient, isn’t it? With the indicator, you can open a large, complex report and instantly detect objects with events. Obviously, the new settings section "Appearance of objects" will be replenished with other interesting options. Tags: .NET, .NET, FastReport, FastReport ### The InterBase and Firebird Developer Magazine 2005 URL: https://www.fast-report.com/news/firebird-developer-magazine-2005 Summary: The first issue of "The InterBase and Firebird Developer Magazine" The first issue of "The InterBase and Firebird Developer Magazine" The first issue of "The InterBase and Firebird Developer Magazine" is published. It is a free electronic magazine in PDF devoted to InterBase`and Firebird database development. You can download the first issue and subscribe to the next issues at  www.ibdeveloper.com ### The Latest FastReport Version: 50% Discount on Updates URL: https://www.fast-report.com/news/promotion-march-2026 Summary: From March 23 to April 6, 2026, a special offer is available for customers with expired licenses. Report generators FastReport .NET and FastReport VCL with a 50% discount. From March 23 to April 6, 2026, a special offer is available for customers with expired licenses. Report generators FastReport .NET and FastReport VCL with a 50% discount. From March 23 to April 6, 2026 , a special offer is available for customers with expired FastReport licenses. During this period, you can purchase the latest versions of FastReport .NET and FastReport VCL report generators with a 50% discount. The promotion applies to FastReport .NET editions: Ultimate, WEB, Avalonia, WPF, WinForms, Mono, as well as to FastReport VCL editions: Ultimate, Optimum, Reporting VCL, Reporting FMX, Reporting Lazarus, Analysis VCL. The offer is valid for Single, Team, Business, and Site licenses and allows you to upgrade to the current product versions under special conditions, even if your license has expired a long time ago. Updating provides access to the latest FastReport features, including new functionality, an updated report designer, technical support, and improved performance. Additional releases with new functionality are also planned in the coming months and will be available only to owners of active licenses. After the promotion ends, the discounted price can still be locked in for an additional 7 days if necessary. To take advantage of the offer or receive more information, please contact the sales team at sales@fast-report.com . ### The new version of FastCube FMX - 2021.1 URL: https://www.fast-report.com/news/fastcube-fmx-2021.1 Summary: The new FastCube FMX with the support of RAD Studio 11 Alexandria, improved interface, and the new licensing model - subscription. The new FastCube FMX with the support of RAD Studio 11 Alexandria, improved interface, and the new licensing model - subscription. New features Now FastCube OLAP decision cube for FireMonkey supports the new RAD Studio 11 Alexandria. On top of that, we have improved the interface - there are new items in the context menus, improved the ability to search for values. We also fixed bugs. New licensing mode l Starting version 2021.1 all FastCube FMX editions are subscription-based. It means that you will always have an up-to-date version as long as your subscription is valid. Full list of changes + Add support for RAD Studio 11 Alexandria. + Axis position changes on DblClick in the axis field popup. + Added search in the popup list of unique values by pasting from the clipboard. + Added "Copy" menu item to the axis menu. Item copies dimension value to the clipboard. * Fixed keyboard handling in the popup grid list (grid must have CanFocus = True). * DataZone gets the focus and therefore keyboard handling on the grid focus (grid must have CanFocus = True). ### The new version of FastReport Online Designer 2024.1 URL: https://www.fast-report.com/news/fastreport-online-designer-2024.1 Summary: With the release of 2024.1, the visual convenience when creating reports has been improved, new fills and gradients for objects and bands have been added. With the release of 2024.1, the visual convenience when creating reports has been improved, new fills and gradients for objects and bands have been added. Exciting updates to the report designer in the 2024.1 release! We have paid special attention to the internal architectural product changes and improved the visual ease of reporting. We have also added new object fills and gradients. New opportunities We added the ability to apply a "Linear Gradient" fill to an object or band To apply the "Linear Gradient" fill to an object or band, you need to select the element first and then click on the "Fill" group in the properties panel: A dialogue box will open where you need to navigate to the "Gradient" tab. After that, you can choose the gradient parameters (start color, end color, gradient angle, focus, and contrast) and apply the changes: Added the ability to apply a "Shape Gradient" fill to an object or band To apply a "Shape Gradient" fill to an object or band, you need to select an element and then click on the "Fill" group in the properties panel: You will see a dialog box in which you need to go to the "Shape Gradient" tab. After, you can select the parameters of the figure gradient (center color, edge color, shape) and apply the changes: Added the ability to apply the "Hatch" fill to an object or band To apply the "Hatch" fill to an object or band, you need to select an element and then click on the "Fill" group in the properties panel: A dialog box will open in which you need to go to the "Hatch" tab. Here, you can select hatch parameters (hatch color, background color, hatch style) and apply the changes: Added the ability to apply the "Glass" fill to an object or band To apply the "Glass" fill to an object or band, you need to select an element and then click on the "Fill" group in the properties panel: You will see a dialog box in which you need to go to the "Glass" tab. Then you can select the glass fill parameters (color, transparency, shading) and apply the changes: Added the ability to apply a "Texture" fill to an object or band To apply the "Texture" fill to an object or band, you need to select an element and then click on the "Fill" group in the properties panel: You will see a dialog box in which you need to go to the "Texture" tab. After this, you can select the texture parameters (image, texture pattern dimensions, transfer mode, "save proportions" option, pattern shift along the X and Y axes) and apply the changes: Added the ability to drag a field onto a barcode so that it is recorded in the DataColumn Now, to insert any data into a barcode, you can, in addition to using the properties panel, drag data from the data panel directly onto the barcode: Added the ability to delete a matrix via the context menu Based on user requests, we have added a useful "Delete" item in the context menu of the matrix: Improvements Rework and new design of pop-ups All pop-up windows, such as the expression and format editor, have been completely redesigned and improved to meet modern UI standards. We have completely reviewed and rewritten all dialog boxes in our project. This was done to ensure better performance, ease of use, and optimize user experience. For example, now the expression in the expression editor field is transferred to the specified location: Here is the full list of changed windows: MS Chart editing; Band editing; Border editing; Connection string editing; Data band editing; Fill editing; Font editing; GroupHeader editing; Conditional selection editing; Map editing; Matrix cells editing; MS Chart series editing; Image editing; RichText editing; Format; Link editor; Map layer loading; Adding connection; Outline editing. Rework and new design of elements in pop-up windows In addition to functional improvements, you will also notice visual changes. The design of controls has become more modern, clean, and intuitive. These changes improve user experience with the application. Rework and new design of the work panel (properties, report tree, data, events) The work panel has been redesigned and changed. It includes: Properties panel; Report tree panel; Data panel; Events panel. Now, the work panel is located on the right: The design of the properties panel has been changed. Now it looks like this: Also, the report tree panel has been redesigned: The data panel has been redesigned: And another event panel: New Components Panel for Desktop Devices For desktop devices such as personal computer or laptops, the component panel is now on the left: For devices with a touchscreen display, the component panel remains in the same place: Changed Color Picker The color picker has been updated to a more powerful version. The new version of the tool allows you to select preset colors and adjust color transparency. The old version of the tool looked like this: The new version looks like this: Now, when deleting GroupHeader, the Data band is not deleted with it Previously, if you deleted a GroupHeader, the Data band was also deleted. Now the Data band is saved: If you used JS injections for FastReport Online Designer, their functionality may be impaired! If you have any problems, please contact our support . Full list of changes ----- + Added the ability to apply a "Linear Gradient" fill to an object or band; + Added the ability to apply a "Shape Gradient" fill to an object or band; + Added the ability to apply the "Hatch" fill to an object or band; + Added the ability to apply the "Glass" fill to an object or band; + Added the ability to apply a "Texture" fill to an object or band; + Added the ability to drag a field onto a barcode so that it is recorded in the DataColumn; + Added the ability to delete a matrix via the context menu; * Rework and new design of pop-up windows; * Rework and new design of elements in pop-up windows; * Rework and new design of the work panel (properties, report tree, data, events); * New component panel for desktop devices; * Replacement of the color selection tool; * Now, when deleting a GroupHeader, the Data band is not deleted along with it; * Updated localization; * And other improvements; - Fixed a bug when the "Simple Progress Sensor" object was not displayed; - Fixed a bug when nothing happened when selecting a data format in some cases ; - Fixed default color for table borders; - Fixed reset of the separator when re-opening the "data format" form; - Fixed a problem where the CheckedListbox on the dialog form was not updated; - Fixed compatibility issues for old reports; - Fixed display of numbered list in RichText; - Correction of errors in dialog forms; - Fixed display of events after report reloading; - And other fixes. ### The new version of FastReport VCL 2022.3 is now available! URL: https://www.fast-report.com/news/fastreport-vcl-2022.3 Summary: We have compiled the most interesting improvements and fixes that came out with the release of FastReport VCL 2022.3. We have compiled the most interesting improvements and fixes that came out with the release of FastReport VCL 2022.3. We have compiled the most interesting improvements and fixes that came out with the release of FastReport VCL 2022.3. We have decided to drop support for non-Unicode Delphi versions to ensure quality and constant updating. All further releases will use Delphi 2010. FastReport VCL 2022.3 now supports the latest update of Embarcadero RAD Studio 11.2. Report engine The new ClearEmptyLines property of the Text object allows to delete empty lines in the object. Combined with the CanShrink and ShiftAlways properties, this property makes it possible to collapse objects with empty values. In this case, the entire tree of objects at the bottom will move up. The new stretch mode of the text object (StretchMode) is smPartMaxHeight. Breaking objects in this mode use the height of each part after the break with correction. Unlike the smMaxHeight mode, which uses the band's height before the break. Static table cell objects now have OnBeforePrint / OnAfterPrint / OnAfterData events. We have added support for printing translucent images for non-AlphaBlend devices using Dithering. Note: Some devices may not be supported. Report Objects We have added support for TfrxPDFView object rotation. We have added a basic rotation of some figures in the report. We have added a new Code11 barcode. You can now use the TfrxHtmlView object in Lazarus. We have also added the output format from left to right with the processing of the dir="rtl" parameter. Exports and transports 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 and create questionnaires and survey forms. 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 end  Gmail  from FastReport VCL. We have added the possibility to hash duplicate images in export filters. The new cache reduces the number of duplicate images and the resulting export size. You can enable this feature using the CalculatePictureHash property of the export filter. Report Designer New pop-up tips (hints) for text objects, which do not fit in the box. 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”. Client-Server We have added the option of using the mask ‘*’ in configuration files with a list of IP addresses. An example of using a server via GCI was added in Lazarus. Full list of changes in the 2022.3 version --------------- [Transports] + New Outlook webmail transport; + New Gmail webmail transport; - Unicode names in GDrive transport have been fixed; [Client-server] + GCI example for Lazarus has been added; + Support for '*' mask in IP server lists has been added; [Designer] + New pop-up tips in the report designer that show the full text of the Memo object; + Quick comments in the Syntax Memo editor for selected text (default hotkey "Ctrl + /"); + New tooltips in the Syntax Memo editor; + Step over and StepReturn debugging modes have been added; + Quick addition of selected text from Syntax Memo to the Watches list from the context menu; - TfrxDesignerForm.GetCurrentForm has been fixed (TFrame support has been added); - We have fixed the issue with the component editors of the report designer when editors have the same property names with different flags (paMultiSelect); - Fixed paper size B4 has been adjusted (JIS); - We have fixed the destruction of CodeCompletion thread when custom scripts are assigned by Report.Script.Parent; - The generation of Unicode names for objects during Drag&Drop from DataTree has been fixed; [Report engine] + We have added a new ShiftMode, smPartMaxHeight stretches each part of the split object to the maximum height of the Band and adjusts the height of each part; + We have added the hash calculation for images used in the report, for export filters (ExportFilter.CalculatePictureHash property), and the prepared report (TfrxReport.PictureCacheOptions.CalculateHash); + We have added the emulation for printing a translucent mask using dithering for printers without alpha blending (may not be supported on all printers); + We have added TfrxTableCell.OnBeforePrint/OnAfterPrint/OnAfterData event handlers for static table object; + We have added a new property of the Memo object ClearEmptyLines, which removes all empty lines inside the Memo object after the GetData method; - We have fixed a bug in using a combination of MemoView.AutoWidth=True and Align=baWidth to position objects on container; - We have fixed a bug with the wrong value of basic object shift when the first object in the container moved to the next page; - Proper removal of editors when unloading packages; - We have fixed the mechanism for partitioning the Table static object; [Exports] + We have added interactive PDF support for Listbox and Combobox objects; - We have fixed a Unicode password when exporting to PDF; - We have fixed the export of HTML tags to PDF for Embarcadero edition; - We have fixed the export of translucent vector graphics (SVG) when AllowVector is set to False. - We have fixed XLSX export for Delphi versions, which do not support Unicode; - PDF export with European ligatures via EMF (ETO_GLYPH_INDEX) has now been fixed; - PDF export now doesn't export clip text if the entire line doesn't fit; [Other] + We have added new openssl libraries (static crt and x64 support); - We have fixed the generation of CBuilder 2007 headers; - We have fixed the issues with HiDPI PerMonitorV2; [Preview] - Setting units of the preview page have been fixed; [Report objects] + New Code11 barcode; + Basic rotation has been added to the TfrxShapeView object; + Linux support for TfrxPDFView has been added in Lazarus; + TfrxPDFView rotation has been added; + Support for RTL attributes in the TfrxHtmlView object has been added; + Support for TfrxHtmlView object in Lazarus has been added; - The bug in QR EPC barcode has been fixed; - We have fixed the bug in Datamatrix C40 encoding when data size was equal to code size limits; - We have fixed the bug in scaling of 2D barcodes during the export to PDF for applications that do not support dpi; - The processing of TfrxHTMLView expressions for data fields has been fixed; - The bug in GS1-128 code has been fixed; - RichView splitting in double pass reports has been fixed; * Laz Chart support has been updated to version 2.2.0; [Resources] * Swiss resources have been updated; * German resources have been updated. ### The object rendering border for the Clip property URL: https://www.fast-report.com/blogs/clip-setting-boundaries-drawing Summary: Let's take a closer look at how the object rendering boundary works for the Clip property in FastReport. Find more usefull tips and articles in our blog. Let's take a closer look at how the object rendering boundary works for the Clip property in FastReport. Find more usefull tips and articles in our blog. Let's take a closer look at how the object rendering boundary works for the Clip property in FastReport. Find more usefull tips and articles in our blog. In this article I would like to draw your attention to an interesting property of the of the object Text. Clip property determines whether to display the text, if it goes beyond the boundaries of the object. If this feature is enabled, the text will be cut according to the boundaries of the object. If disabled - will be displayed in full, as if the object was stretched. Let's look at an example. Create a simple report. For example, I bring a list of product categories with pictures: Please note that the selected text object with the name of the category has a small size. I specifically disabled text wrapping (WordWrap property) for clarity. Preview the report: As you can see, the names of the categories cut because of the small size of the text object. Now, set the Clip property to false (default true) for the same object. Let's see how the report will look is now: Names are displayed in full, despite the size of the text object. Now do export to PDF format:  The document corresponds to the report, everything is correct. I went ahead and decided to display the text vertically. To do this, change the angle of the text of the object in the Angle property, for example - 270. Now the object of the text is as follows:  Run the report:  At this time, the property did not work. But it is not all that bad. Let us export the report in PDF: And here, the Clip property really disabled and the text is displayed correctly, despite the size of the text object. Make text slope of 45 degrees and repeat the experiment.  The report is still not fully displayed text. And now export to PDF: And this time, export to PDF did not disappoint. Everything looks correct. Summarize. The property Clip of the text object truncates text that does not fit within the boundaries of the object. If you use the autogrow feature object may occur displacement of neighboring objects or objects overlap that for some exports will lead to an incorrect display of the report. In such cases it is convenient to disable Clip property. From considered above, it is clear that now this "feature" works only with horizontal withdrawal of the text in the reports. However, when exporting to PDF, the rotation angle of the text does not matter. The text is always displayed in its entirety. Tags: .NET, FastReport, Designer ### The way to add a data field to a matrix row URL: https://www.fast-report.com/blogs/add-data-field-matrix-row Summary: Let's take a detailed look at how to add a data field to a matrix row in FastReport. Find more usefull tips and acticles in our blog. Let's take a detailed look at how to add a data field to a matrix row in FastReport. Find more usefull tips and acticles in our blog. Let's take a detailed look at how to add a data field to a matrix row in FastReport. Find more usefull tips and acticles in our blog. In this article, we'll have a look at the way to create a dynamic matrix that is populated from the report's script code. The peculiarity of this matrix is that in addition to the data added from the script, we will insert the data field in the report cell using a text object. Suppose you create a matrix with a variable number of columns, which will be added depending on any conditions, but some of the data you have is constant. They are always filled. It would be nice just to put these data fields simply in the matrix, and the remaining cells should be filled from the code. Despite the fact that the filling of the matrix data is provided only in two ways (from the code or automatically, the data fields) we will match them. In fact, the technology is very simple. The data field is simply inserted into the cell as a separate text object. However, this is not all. When you add data to the matrix in the report, you must add the row number from the data set. Let's have a look at the example. Create a report and add the matrix to the "Data" band. Connect the data source - the demonstration database from the delivery, the Employees table. The matrix template looks like this: In the cell with a value of 2, we added a text object. In it, select the field Employees.LastName. This is exactly the "static" field about which we have spoken in above. Create the AfterData event handler for the matrix. ``` private void Matrix1_AfterData(object sender, EventArgs e) { DataSourceBase rowData = Report.GetDataSource("Employees"); // we get the data source Employees. Matrix1.DataSource = rowData; // assign it to the DataSource matrix property   rowData.Init(); // initialize the data source // we go through all records of the data source while (rowData.HasMoreRows) { Matrix1.Data.AddValue(new Object[] {"Phone" }, new Object[] { (string)Report.GetColumnValue("Employees.City"), (string)Report.GetColumnValue("Employees.FirstName")}, new Object[] {(string)Report.GetColumnValue("Employees.HomePhone") }, Report.GetDataSource("Employees").CurrentRowNo); // add another record rowData.Next(); //get the next record } } ```  It is clear from the comments that when you add a data string, we define the title of Phone. Then we insert the data in order: city, name and phone. And also, we need to transfer the data line number to insert the last name from the current data record. Now run the report: As you can see, you can make it easier for yourself and not add all the necessary data in the report script, but simply place them in the matrix template using a text object. Tags: .NET, FastReport, Data Source ### Toilet paper printing URL: https://www.fast-report.com/blogs/printing-on-toilet-paper Summary: How to print report on toilet paper if needed with FastReport .NET. How to print report on toilet paper if needed with FastReport .NET. How to print report on toilet paper if needed with FastReport .NET. Gentlemen jokes aside! Today we are talking about toilet paper. This essential hygiene product was only recently developed in the United States in the 19th century. But to be honest, toilet paper was first mentioned in China as early as the 6th century, but this product was only available for a narrow circle of people. In preparation for the self-isolation in the midst of a pandemic, almost every inhabitant of the planet has got a myriad supply of toilet paper. It is worth remembering that first of all this is a paper. And so happened, that the paper - the carrier of information. So let's consider if we can use toilet paper to output information? You can ask a reasonable question: why? Of course for fun! For example, here is a shortlist of possible applications of printing on toilet paper: News - but they quickly become out of date, it is unlikely you will spend the toilet paper as fast; Jokes - humor never hurts, and such information is quite appropriate in this medium; Comics, manga, stories - as well as anecdotes - easy entertaining reading, just what we need; Images and pictures - are purely decorative prints. By the way, this kind is the most popular now print on toilet paper. Advertising - and this is a commercial approach. It is strange that until now there are no advertising prints on toilet paper, they are certainly more effective than billboards; Calendars and horoscopes. And these are only the options that appeared in my mind right now. You are limited only by your imagination. Let’s print on toilet paper! Printers Many inkjet and matrix printer models support roll printing. This function is not new, but the dying function on the home printer. But the laser printer is not suitable for printing. This is related to the mechanism of making news pages. A laser printer stores the entire page in memory in a line with jet or matrix printing. Therefore, we will no longer consider laser printers. Given the high roughness of toilet paper, printing on an inkjet printer will be fuzzy. The paint will fade on soft paper. Therefore, do not expect high-quality printing. Try printing the image on ordinary office paper. Even her stiff paper is not able to give a decent picture. A good matrix printer will give more clarity, simply because it was originally created for low-quality paper. The thinnest needles of the printing head carry microscopic drops of ink on paper, which are much thicker than the colors of the inkjet printer. Therefore, if you do not need color printing and you are ready to tolerate low printing speed, then the matrix printer is the best choice for your purposes. Carrier size Now it is necessary to think about the source of printing, the document itself. In fact, you will not be able to find a toilet paper template in any text or graphic editor. Width and length have to be chosen by yourself. FastReport.Net report generator allows you to create pages with reports of arbitrary width and length - according to our needs. What are the dimensions of the toilet rolls? Very different. Nevertheless, we can highlight the most popular sizes. As you remember, in the US and the UK to measure the length and width is inches, and in all other countries - centimeters. The most common sizes of roll width are 4.5 "(11cm), 4.1" (10 cm) and 3.7 "(9.4cm). The length can be completely different for different manufacturers and models. For example, rolls with an empty middle are more likely to be about 17 meters long. But there are quite large ones - 200m and even 500m. Among all the characteristics of toilet paper examined, we can draw the conclusion that the most suitable for printing is a harder paper with the minimum roughness. This kind of paper can often be seen in public toilets, placed on the large steering wheel. This is usually a single layer of grey paper from the second material. It's harder to break than soft. How to print? Now let’s move to create the document for printing. Let’s create it with the help of FastReport .NET report designer icon: In the form you need to set only the height and width: For example, the length of paper in a roll is 17 meters, and the width is 11 centimeters (670"). By default, the values are set in centimeters. Therefore, we introduce 1700cm in length and 11cm wide. The units can be changed in the designer's settings: Now, in the property inspector on the right, you need to select the object of the page and set the Property UnlimitedHeight to true. This property will not break the report into separate pages and will output all on one, as on a roll. Also, we set the PrintOnPollPaper property to true. It can't be set as true until you turn on the UnlimitedHeight property. Now it's time to decide what we will print. Report Generator can take the data not only from the database but also from the files. You can also add images. If your toilet paper is perforated to break into individual sheets, it is necessary to adjust the height of the DataBand according to the length of the resulting paper passage. In this case, the remaining bands are better to remove or take into account their height. Suppose we decided to display images. Then add on the band Picture object and set its properties Dock = Fill, so that it fills the entire area. Given that the band height 10 cm, and 1700 cm roll length, it is necessary to display the band 170 times. When the DataBand band is connected to a data source, then for each row of data appears a new instance of a band. But, as in our case there is no data source, we're just in the properties of the band shall indicate the number of times it should be repeated. To this end, the properties of the band set a property RepeatBandNTimes = 170. This is how will look like part of our report: Now you can load paper in the printer and start printing right out of the mode of viewing the report. But if you do not want to print right now, or want to share a document obtained, with colleagues working remotely, you can export the report, for example, in PDF. Tags: .NET, .NET, FastReport, FastReport, Printing, Printing ### Toolbar customization and export settings in FastReport.Web for Core URL: https://www.fast-report.com/blogs/toolbar-customization-and-export-settings-in-fastreport-web-core Summary: We add colors to your application by customizing the appearance of the toolbar. We add colors to your application by customizing the appearance of the toolbar. We add colors to your application by customizing the appearance of the toolbar. Our users often need to change the appearance of the toolbar or customize the export menu, but not everyone knows how to do this. Let’s say that we already have a finished project. As an example, we can use any report from the FastReport .NET demo application. Let’s add some colors to our toolbar. We need to write a code that will be responsible for customization: ``` ToolbarSettings toolbar = new ToolbarSettings() { Color = Color.Red, DropDownMenuColor = Color.IndianRed, IconColor = IconColors.Left, Position = Positions.Left, IconTransparency = IconTransparencyEnum.Low, }; webReport.Toolbar = toolbar; ``` Now let's run our application and see the result: Let’s take a look at how customization of the toolbar works in FastReport Web for Core in more detail. All customization parameters are stored as a collection of properties. There are several options of how you can implement changes in the appearance of the toolbar, but they all come down to adding or changing parameters. Let’s consider the appearance customization from the code, where you can see a list of collections and properties. Here are some of them: Color – change the background color of the toolbar. DropDownMenuColor – set the background color of the dropdown menu. DropDownMenuTextColor – set the text color of the dropdown menu. Position – change the toolbar position in the report. Roundness – add roundness to the toolbar. ContentPosition – change the content position. IconColor – change the icon colors. IconTransparency – adjust the icons transparency. FontSettings – fine-tune text styles. Let’s assume that we want to change the color of the dropdown menu and display all kinds of export options in it. To change the appearance of the dropdown menu, you just need to write some changes in the toolbar. But to display all the exporting data options, you need to add the following piece of code: ``` ToolbarSettings toolbar = new ToolbarSettings() { Color = Color.Red, DropDownMenuColor = Color.Red, DropDownMenuTextColor = Color.White, IconColor = IconColors.White, Position = Positions.Right, FontSettings = new Font("Arial", 14, FontStyle.Bold), Exports = new ExportMenuSettings() { ExportTypes = Exports.All } }; model.WebReport.Toolbar = toolbar; ``` If we run our project, we will see that the dropdown menu has changed, and the exporting data options have significantly increased: Now we see a customized menu with export formats. But what if we need only certain formats? For example, we need PDF, XPS, and CSV only. Let’s implement it! We need to slightly change the export settings in the container: ``` Exports = new ExportMenuSettings() { ExportTypes = Exports.Pdf | Exports.Xps | Exports.Csv } ``` Let’s run our application and see the result: If only these export options are displayed, then you did everything right. So, we have described how to customize the toolbar and edit the dropdown menu with export options in FastReport Web for Core. In addition to these examples, you can use the parameters discussed in combination with the other ones. Customization of objects appearance in Blazor We also need to mention Blazor, which includes everything that a regular version does, but with more advanced functionality. We will use the project from the following article:  Reports and PDF documents in Blazor .  Let’s customize the toolbar appearance. Go to the Pages/Index.razor.cs file. Here we will customize the toolbar, and add a part of the code that is responsible for customization in Blazor: ``` var toolbar = new ToolbarSettings { FontSettings = new Font("Verdana,Arial sans-serif", 15), Color = Color.Red, DropDownMenuColor = Color.Red, DropDownMenuTextColor = Color.White, IconColor = IconColors.White, Position = Positions.Bottom, ContentPosition = ContentPositions.Center, }; ``` Let’s run our application and see the result: Imagine, that in addition to simple customization we need to add export to PS, HPGL, JSON, and PDF. Let’s add the following code to implement this: ``` Exports = new ExportMenuSettings() { ExportTypes = Exports.PS | Exports.Hpgl | Exports.Json | Exports.Pdf } ``` As a result, we will get the export settings we need. At the moment, the Index.razor and Index.razor.cs files look like this: Pages/Index.razor ``` @page "/" @page "/{ReportName}" @inject NavigationManager NavManager     @code { [Parameter] public string ReportName { get; set; }   protected override void OnParametersSet() { base.OnParametersSet();   Load(); } } ``` Pages/Index.razor/Index.razor.cs ``` using System; using System.Drawing; using System.IO; using FastReport; using FastReport.Web; using System.Data;   namespace Blazor.UserDebugApp.Pages { public partial class Index { private readonly string directory;   private const string DEFAULT_REPORT = "Simple List.frx";   public WebReport UserWebReport { get; set; }   Report Report { get; set; } DataSet DataSet { get; } ToolbarSettings Toolbar { get; }   public Index() { directory = Path.Combine( Directory.GetCurrentDirectory(), Path.Combine("..", "Demos", "Reports"));   DataSet = new DataSet(); DataSet.ReadXml(Path.Combine(directory, "nwind.xml"));   Toolbar = new ToolbarSettings { FontSettings = new Font("Verdana,Arial sans-serif", 15), Color = Color.Red, DropDownMenuColor = Color.Red, DropDownMenuTextColor = Color.White, IconColor = IconColors.White, Position = Positions.Bottom, ContentPosition = ContentPositions.Center, Exports = new ExportMenuSettings() { ExportTypes=Exports.PS|Exports.Hpgl|Exports.Json|Exports.Pdf } }; }   private void Load() { Report = Report.FromFile( Path.Combine( directory, string.IsNullOrEmpty(ReportName) ? DEFAULT_REPORT : ReportName));   Report.RegisterData(DataSet, "NorthWind");   UserWebReport = new WebReport(); UserWebReport.Report = Report; UserWebReport.Toolbar = Toolbar; } } } ``` We have covered how to customize the objects appearance and set up the list of export options in Blazor. Now you can use the discussed options in your own applications.  Tags: .NET, Visual Studio, FastReport, Core, WebReport, C#, Customization, Toolbar, Blazor ### Top 100 Bestselling Publisher Award 2012-2013 URL: https://www.fast-report.com/news/publisher-award-2013 Summary: Fast Reports - Top 100 Bestselling Publisher Award 2012-2013 Fast Reports - Top 100 Bestselling Publisher Award 2012-2013 Good news! We ranked in 63rd place in ComponentSource Top 100 publisher list, up from 78th place last year.  ### TOP100 companies on the ComponentSource Awards 2011 URL: https://www.fast-report.com/news/component-source-awards-2011 Summary: Fast Reports in TOP100 companies on the ComponentSource Awards 2010-2011 Fast Reports in TOP100 companies on the ComponentSource Awards 2010-2011 This is great news for us and for all our customers. Now the FastReport becomes better known throughout the world. Thank you our dear customers - at affordable price, we compete with more expensive products. So you agree that the main thing - the quality of the product. We will continue to delight you with quality products for developing and implementing Business Intelligence. ### Transition to a new product forming system URL: https://www.fast-report.com/news/fastreport-packs Summary: We are changing our approach to product line formation: the new system will allow to select only the components and platforms needed in development We are changing our approach to product line formation: the new system will allow to select only the components and platforms needed in development Starting  June 1 , Fast Reports will switch to a new product forming system. Previously, the product line was formed on the principle of "Product + platform", and compatibility with platforms was evolutionarily added to the entire tool. Now a software product will represent a more specific set of components, providing a wider range of choices for the specific needs of developers. We have divided products into a set of components and put them together in such a way that you no longer have to pay for unnecessary or unused functionality. This makes our software solutions more flexible. Now you can purchase not the entire report generator, for example FastReport .NET, but choose the set of its components that you need. We kept the possibility to choose the license by the number of developers, and also left the option to purchase a separate version with source code or web components. Ultimate edition will also be available, which contains maximum components and additional tools for working with reports. The changes will take effect on June 1, 2024. You can read about the package components and prices here: Delphi direction .NET direction ### Try Beta-version of FastReport VCL 5 URL: https://www.fast-report.com/news/beta-fastreport-vcl Summary: Try Beta-version of FastReport VCL 5 Try Beta-version of FastReport VCL 5 Trial version and install packages of FastReport VCL 5 for Delphi 7'XE5 and C++ Builder 2005-XE5 published. You can download and try it. If you are our customer of FastReport VCL 4 you can get discounted upgrade to FastReport VCL 5 beta (and than free upgrade to release) from your customer panel. ### Turn database data into a document in Delphi / Lazarus / C++ Builder URL: https://www.fast-report.com/blogs/turning-database-into-documents Summary: How to use the data more efficiently by turning it into an understandable and structurized document. How to use the data more efficiently by turning it into an understandable and structurized document. How to use the data more efficiently by turning it into an understandable and structurized document. How to make a mush of data into an informative report? Oracle DB, MySQL, Microsoft SQL Server, PostgreSQL, FireBird are probably the most popular, but by no means all, of the many DBMSs in which data can be created, populated, modified and managed. Often they are filled with this very data for quite a long time (e.g. in timekeeping systems, goods-orders, and the question "how to get information out of them?" (readable, encompassable by sight and human mind, for further analysis) is put off for later. Let's consider what to do "then" - when we have a "full database" and we (or the company's management) have wondered "what's actually happening? Let's make effective use of the data we collect in the process, derive information from that data and make decisions based on that information!". Basically, this is the definition of Business Intelligence (BI) in plain language. There are many possibilities to create them (reports), but here we will look at FastReport VCL. There's a designer for generating templates, a preview and many other features to perform different levels of tasks - we've looked at them in other articles, but we still haven't looked at all of them. FastReport can work with several data sources (databases) at the same time, or retrieve them from so-called user sources (not databases) - arrays or regular files. How to get information from DB in Delphi? In order to connect the data source, a connector (TfrxDBDataSet) must be applied from the component palette. This is the link between the data and FastReport. Now I will tell you briefly about the role of the components: TfrxDBDataSet is an element used to work with data source, it is also compatible with TDataSet, but TfrxIBODataSet is used for IB Objects, also TfrxUserDataSet is used for other resources - arrays, files, etc. First of all, using the DataSet property, connect to the query or table itself, well, or DataSource (it connects to the TDataSource component). For the data to already be in the report, you will need to specify which of them will go into our report! This is also easy to do. Select in FastReport VCL designer in menu Report -> Data. Select necessary elements and click “OK”!  Connect this data source to the band. Select DataSet (table) in its properties. Now drag and drop table/request fields to the appropriate bands. After single dragging have peculiarity of automatic linking on band - fields of base. If you need to view the generated report, you can use the preview! Don't forget that you can add almost anything, be it QR codes, maps  and other add-ons, which are enough in FastReport VCL. Preview: In the top left corner select “File” . A list of settings appears immediately. In it, select "Preview". That's it! After this action, you will see what the finished report will look like. If you are satisfied, you can save to different formats and export to cloud storage or PC memory, as well as print. Select "Save" and the desired format. The selected one will be sent to the specified location for saving/export! The following steps are required to generate a report from the code: - clear the report. - add data source. - add “Data” page - add report page. - add bands on the page. - set band properties and connect them to the data. - add objects on every band. - set object properties and connect them to the data. Save the template and press “Preview”!  The report is ready! We can also save it in XML, PDF, even CSV or DBF for further analysis! I understand that such an abundance of screenshots can make one get depressed. But in writing this article making all these screenshots was the longest and most time consuming task. Preparing the report itself took about 5 minutes. And if it is quicker and without screenshots? Create a report from our database from Delphi / Lazarus - code! Consider creating a simple "list" type report. Assume we have the components frxReport1: TfrxReport and frxDBDataSet1: TfrxDBDataSet (the latter is connected to data from DBDEMOS, table Customer.db). Our report will contain one page with report title and master data banks. The report title band will have an object with the text "Hello FastReport!" and the master data will have an object with a reference to the field "CustNo". Turn database data into a document in Delphi / Lazarus / C++ Builder ``` var DataPage: TfrxDataPage; Page: TfrxReportPage; Band: TfrxBand; DataBand: TfrxMasterData; Memo: TfrxMemoView;   { Clear the report } frxReport1.Clear;   { add data source to the available list for the report } frxReport1.DataSets.Add(frxDBDataSet1);   { add “data” page } DataPage := TfrxDataPage.Create(frxReport1);   { add page } Page := TfrxReportPage.Create(frxReport1); { create unique name } Page.CreateUniqueName; { set page properties by default } Page.SetDefaults; { change page orientation } Page.Orientation := poLandscape;   { add report title } Band := TfrxReportTitle.Create(Page); Band.CreateUniqueName; { it’e enough for a band to set coordinate Top and hight } { both coordinates are in pixels } Band.Top := 0; Band.Height := 20;   { add object on report title } Memo := TfrxMemoView.Create(Band); Memo.CreateUniqueName; Memo.Text := 'Hello FastReport!'; Memo.Height := 20; { this object will be aligned with the band width } Memo.Align := baWidth;   { add master data } DataBand := TfrxMasterData.Create(Page); DataBand.CreateUniqueName; DataBand.DataSet := frxDBDataSet1; { coordinate Top shouldn’t cross the previous band! } DataBand.Top := 100; DataBand.Height := 20;   { add object on master data } Memo := TfrxMemoView.Create(DataBand); Memo.CreateUniqueName; { connect to data } Memo.DataSet := frxDBDataSet1; Memo.DataField := 'CustNo'; Memo.SetBounds(0, 0, 100, 20); { align text on the right side of the object } Memo.HAlign := haRight;   { show the report } frxReport1.ShowReport; ```  So - we have learned how to turn invisible but collected data into reports - documents. You can now publish them or pass them on to analysts! Tags: VCL, Lazarus, FastReport, Data Source, SQL, Firebird, Delphi ### Ultimate .NET URL: https://www.fast-report.com/products/ultimate-net Summary: .NET iş uygulamaları ve platformlar arası geliştirme için raporlama altyapısı oluşturmaya yönelik bir araç seti. .NET iş uygulamaları ve platformlar arası geliştirme için raporlama altyapısı oluşturmaya yönelik bir araç seti. A set of tools for creating reporting infrastructure for .NET business applications An ultimate package for creating reporting infrastructure with additional tools for report design and data analysis Ultimate .NET A set of tools for creating reporting infrastructure for .NET business applications and cross-platform development. Buy Try for free Documentation Practically any: invoices, financial reports, product catalogs with color profile support, restaurant menus, sales details, questionnaires with electronic forms, airline tickets, utility bills, and much more. If you have data that needs to be made visually understandable, FastReport is the perfect solution for you. Embeddability in projects Install the required package from the NuGet repository, or download the package from our website to your computer and add the necessary libraries to the project. No additional modules or special extensions are required. High performance Our components have gone through many stages of testing to truly work stably with large volumes of data. Your multi-page report will be processed on the fly. Complete control over the development This set of tools is provided with the source code. The most convenience for companies that want to adjust the code to their needs. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Compatibility and integration Ultimate .NET allows creating the FastReport ecosystem on C#. Reports created in all products within the Ultimate package are completely compatible with each other. Smooth transition from other solutions Our report generator instantly converts your reports from List&Label, DevExpress, Microsoft Reporting Services (RDL, RDLC), Crystal Reports, StimulSoft, and Jasper Library into FastReport format. Cross-platform development Report in the browser .NET Core demo Online Designer demo Blazor WASM demo Blazor Server demo How to Configure an AI Agent for FastReport .NET: Architecture, Limitations, and Report Migration Working with reports often turns into a routine: editing XML templates (.frx), configuring data bindings, and adapting legacy formats. To automate this work, a specialized AI agent was created. This agent understands the FastReport .NET architecture and strictly follows enterprise development standards. AI feature for FastReport .NET: automated migration of reports from Crystal Reports and StimulSoft, refactoring for .NET 8/9, template generation, and protection against data leaks. How to export a report from FastReport .NET to DXF DXF (Drawing Exchange Format) is an open format for exchanging graphic data, developed by Autodesk for storing and transferring two-dimensional and three-dimensional drawings. Due to wide support from various CAD systems, DXF has become one of the most common formats for exchanging engineering and technical documentation between applications. In this article, we will consider methods of exporting a report to the DXF format, and also see what the resulting output looks like after opening the file in a CAD application. In this article, we will consider methods of exporting a report to the DXF format, and also see what the resulting output looks like after opening the file in a CAD application. How to Export a Report from FastReport .NET to PostScript FastReport .NET supports exporting reports to many popular formats, such as PDF, Excel, Word, and others. However, professional printing, plotters, and specialized printing equipment often require the PostScript (.ps) format. In this article, we will look at exporting a FastReport .NET report to the PostScript format, using a practical example to examine parameter configuration and programmatic implementation. In this article, we will look at exporting a FastReport .NET report to the PostScript format, using a practical example to examine parameter configuration and programmatic implementation. Any other questions? Contact the manager ### Ultimate VCL URL: https://www.fast-report.com/products/ultimate-vcl Summary: Delphi kurumsal uygulamaları için raporlama altyapısı oluşturmaya ve çapraz platform geliştirmeye yönelik araç seti Delphi kurumsal uygulamaları için raporlama altyapısı oluşturmaya ve çapraz platform geliştirmeye yönelik araç seti A set of tools for creating reports in Delphi and for cross-platform development A comprehensive package for creating a report ecosystem with additional tools for data analysis "on the fly". Ultimate VCL A set of tools for creating reporting infrastructure for Delphi business applications and cross-platform development Buy Try for free Documentation Transports Save prepared reports to the cloud storages: Google Drive, Next Cloud, Box, Dropbox in a couple of mouse clicks for convenient delivery to your clients Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Client-server components Build reports directly on the WEB using standard FastReport VCL components without the need to connect the client directly to the database server. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. Source code This set of components includes FastReport source codes. Maximum convenience for companies wishing to adapt the code to their needs. Helpful additions Ultimate includes systems for multidimensional analysis: FastCube VCL and FMX, as well as FastConverter .FP3 plugin for exporting reports in all possible formats. Client-Server components Cross-platform developing Full Review of FastGrid Library's Capabilities FastReport VCL Ultimate users have probably already noticed that the installer now includes two new options: FastEditors VCL and FastGrid VCL. A new demo has also been added to the DemoCenter: FastGrid VCL Demo. An overview of the FastGrid library for VCL and Lazarus: data visualization, editing, and structuring. Sorting, filtering, grouping, convenient data editors — all in one article! New Report Validation System in FastReport VCL We have frequently received requests from technical support for functionality to automatically validate reports, and we are pleased to announce its inclusion in the 2026.2.0 release. The "File" menu in the report designer now features "Validate" and "Validation Rule Settings" options. This allows users not only to check reports but also to manage the set of rules, including the creation of custom ones In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. In this article, we'll explain how report validation works, how to set it up, how to write your own rules, and share some interesting new features. Using Watermarks in FastReport VCL The latest versions of FastReport VCL now feature watermarking functionality. Watermarks are labels embedded in electronic documents, images, videos, audio, or other digital content. Their purpose is to confirm authorship, protect against copying, and track file distribution. In this article, we'll take a detailed look at creating and using watermarks in FastReport VCL reports. An example of watermark use is available in the Demo included with FastReport VCL. The article provides a detailed overview of the watermark functionality in FastReport VCL — covering both the visual interface and programmatic methods using Delphi code and report scripts. Any other questions? Contact the manager ### Update for FastReport .NET 2026.1 version URL: https://www.fast-report.com/news/release-fastreport-net-2026.1 Summary: A new version of FastReport .NET 2026.1 has been released with several updates: a unified demo center for .NET products, a report designer with built-in plugins for databases. A new version of FastReport .NET 2026.1 has been released with several updates: a unified demo center for .NET products, a report designer with built-in plugins for databases. A new version of FastReport .NET 2026.1 has been released with several significant updates: a unified demo center for .NET products with demonstration applications, a report designer with built-in plugins for databases. A new Ribbon UI interface and RibbonDesignerControl have been added, and exports have been improved (the ability to export formulas to Excel and configure image quality when exporting to Word). Changes have also been made to our WebReport. The toolbar design has been improved, cache clearing has been added when the Circuit is completed in Blazor Server, and additional settings have been added for WebReport created through the Online Designer . WEB demo applications for ASP.NET, ASP.NET Core, Blazor Server, and Blazor WASM have been updated, and much more. New Features Unified Demo Center for the .NET Lineup We have a rich lineup of .NET products. Each one comes with at least one demo application. In some cases, there can be up to a dozen. We’ve developed a demo center—an application that brings together all our demonstration examples. Now, after installing it, you can explore and try out all of our products. In the demo center, you can select the application you need. It will launch either as a program or open in your browser for an online demonstration. Report Designer Build with Connection Plugins The report designer allows you to use connections to various databases as data sources for reports. Some data sources are available by default. However, many of them are implemented as plugins for technical reasons. The advantage of plugins is that you can install only the ones you need. But there is also a downside: they need to be downloaded, compiled, and added to the designer. Difficulties can arise at this stage. To avoid installing plugins yourself, we’ve included a build of the designer with all available plugins in our application. Learn more about the designer with plugins in the article.  Read the article New Ribbon UI and RibbonDesignerControl A modern interface for report designers based on Ribbon UI is a significant upgrade, improving the user experience. It features high interactivity and an intuitive structure, optimizing report creation and editing. Previously, Ribbon support already existed, but the old interface had its drawbacks. It can still be enabled in the designer settings, as before.  A restart of the designer is required for the changes to take effect. In addition, a new control has been added —  RibbonDesignerControl . It allows you to use Ribbon UI in your own applications. Previously, this was not possible, as only  StandardDesignerControl  was available. Excel Report Export with Formula Support Now, when saving reports to Excel, it’s possible to enable the “Export Formulas” option. This means that text elements, table cells, and matrices with valid Excel formulas will be saved as formulas. When you open such a file in Excel, all the formulas will function correctly. For example, an object containing the text: =A1+B1 Will be converted to a cell with the corresponding formula. If the formula is incorrect from Excel’s perspective, the object will be saved as plain text. Find more detailed information about the limitations and features of exporting with formulas in the article.  Read the article Image Quality Settings for Word Export You can now configure the image quality when exporting a report to MS Word. A new “Images” tab has appeared in the export settings. There, you can choose to save with the original resolution, for printing, enable compression, or select one of four qualities: standard, low, medium, or high. For more detailed information, read the article. Read the article Improved Paragraph-Based Export in OpenOffice Writer The paragraph-based export mode in OpenOffice Writer has undergone significant changes. The process is now faster, the document complies with modern standards, and takes up less space. Numerous errors have been fixed, including issues with styles. The logic for generating pages has also been updated. Changes in WebReport New Toolbar Design in .NET Framework WebReport A new toolbar design has appeared in .NET Framework WebReport, which now matches the other versions of WebReport. To use the updated interface, use the following property: ``` WebReport.UseNewInterface = true; ``` Before: After: WebReport Cleanup on Circuit Completion in Blazor Server In Blazor Server, the ability to clear WebReport from the cache when a user session (Circuit) ends has been added. A Circuit is a user session based on SignalR (WebSocket or long polling). Now, when a Circuit closes (for example, when a tab is closed or a report is switched), the associated WebReport is automatically removed from the cache, which reduces memory consumption. The option is enabled as follows: ``` services.AddFastReport(options => { options.CacheOptions.UseCircuitScope = true; }); ``` The new UseCircuitScope option works as an add-on to the existing cache settings and does not change their logic. UseCircuitScope can only speed up the removal of the report from the cache, but never extends its lifetime beyond the specified rules. Configuring a New WebReport Created via Online Designer In the Online Designer, it is now possible to create a new WebReport directly from the interface. However, by default, the report will be empty: without connected data and without configured restrictions. To solve this problem, the following options have been added: ``` services.AddFastReport(options => { options.Designer.OnWebReportCreated = (webReport, serviceProvider) => { // WebReport configuration example webReport.EmbedPictures = true; webReport.Report.RegisterData(...); }; // or an asynchronous version of the method options.Designer.OnWebReportCreatedAsync = (webReport, serviceProvider, cancellationToken) => { webReport.EmbedPictures = true; webReport.Report.RegisterData(...); return Task.CompletedTask; }; }); ``` Using one of these options, you can further configure the WebReport (or the Report itself) using any available parameters. The changes will be immediately applied to the report in the Online Designer. Updated WEB Demos We have updated the WEB demo applications for ASP.NET, ASP.NET Core, Blazor Server, and Blazor WASM. The updates include a unified design and new reports. Ability to Disable Borders on WebReport Pages It is now possible to disable the shadows that separate pages in WebReport. To do this, use the following code: ``` WebReport.PageBorderVisible = false; ``` Full list of changes [Engine] + added the ability to choose encoding when connecting to an XML database; + added support for asynchronous requests in database connectors; + fixed an error with calculating the sizes of Polygon and Polyline objects; * supplemented the description of the IsNull function; * changed behavior in the methods for setting the values of the RFIDLabel.UseAdjustForEPC and RFIDLabel.RewriteEPCbank properties; - fixed an assembly loading error when compiling a report script; - fixed an error with the clipping area in SVG; - fixed a text display error in SVG if absolute character positioning is specified; - fixed an error with resetting the parameter value when setting it using the SetParameterValue() method; - fixed an error where table rows and columns with the Printable property disabled were printed; - fixed an XXE vulnerability in the SVG object; [Designer] + added support for horizontal scrolling gesture in designer and report preview windows; + added Ctrl key support for selecting multiple objects in the designer (previously the Shift key was used); + added a build of the designer with database connection plugins; + added display of the number of bytes in the RFID editor; + added a setting to display extended information about the position of an object in the designer; + added an alternative grid (Alt + mouse) in the designer; + added scaling of objects relative to their own center (Shift + corner markers); + added RibbonDesignerControl and new Ribbon UI; + added transfer of fields by dragging and double-clicking in the standard report wizard; + added the PaperSizeEqual(...) method for comparing the sizes of the paper used; + added support for change notifications in the Collection Editor; * changed the OpenLink method in AboutForm; * changed the sequence of calling the CheckDirectories method; - fixed the visibility error of the StartReport and FinishReport events; - fixed an error with an empty database name when connecting to MongoDB; - fixed an error with line spacing when exporting to Word; - fixed an error with resizing small objects; - fixed an error with displaying the position and size of an object in the designer; - fixed an error with returning the result of an empty parameter expression; - fixed an error with missing icons in the code editor; - fixed an error in the code editor when using snippets; - fixed an error with the line offset when resizing non-diagonal lines in the designer; - fixed errors in the SVG object editor; - fixed an error in the MDI mode of the report designer; - fixed an error where Scale, Pointer, and Border were drawn twice for SimpleGauge; - fixed the incorrect display of some windows in High DPI mode (target net60-windows); - fixed drag and drop in Avalonia and WPF designers; [Preview] - fixed errors when selecting the paper type; - fixed the behavior of the “Properties” button in the print window; - fixed an error in the print dialog; [Exports] + added XPSExport.PrintOptimized property; + added exporting the digital signature object name when exporting to PDF; + added changing the text color and filling the text box in ZPL; + added the ability to validate Excel formulas for MS Excel export; + increased the export speed of a table with an opaque background; * corrected the brightness of the watermark when exporting to MS Word; - fixed the export of semi-transparent images to PDF; - fixed an error with incorrect closing of the “div” tag during tabular export to HTML; - fixed the export of different top and bottom headers on separate pages in all export options to Word (tabular, layered, paragraphs); - fixed an error with the Cambria font in PDF export; - fixed errors causing slow export of interactive forms to PDF; - fixed an error with missing characters when exporting to PDF; - fixed an issue with missing Padding when exporting to Word using TextRenderType = HtmlParagraph; - fixed the export of transparent fill of shapes in Word; - fixed incorrect navigation to a bookmark in a Word document after export; - fixed text positioning when exporting to HTML with the HrAlgin.botom property enabled; - fixed an error when exporting to PDF with some SVG files; - fixed the export of LineObject to HTML; - fixed an error with the space width when exporting to PDF; - fixed the appearance of a border around the image in a table after exporting to Word; - fixed incorrect indents when using the top/bottom header option in Word export; - fixed an error when opening a file after exporting to Word using headers; - fixed an error with double borders of an object in layered HTML export; - fixed the export of RichObject to ODT format in paragraph mode; - fixed the formation of text with the justification property when exporting to Word; - fixed text styles and pagination during ODT export in paragraph mode; - fixed an error when exporting to Word in paragraphs with an incorrect left indent of the object; - fixed a problem with opening some files when exporting to Excel; - fixed an error with field widths when exporting to Word; - fixed an error importing DOCX documents; [Common] + added a field of properties of the start/end character in Codabar; * updated MySqlConnector dependency to version 2.4.0; - fixed database binding for a chart with a JSON data source; - fixed an error when changing the printer, the paper format was reset; - fixed an error displaying extra coordinates when exporting to ZPL; [Demos] - fixed the “Deutsche Leitcode” barcode type in demo reports; [Extras] + added support for the Apache Ignite plugin for other platforms; - fixed an error when importing docx files. ### Update of .NET-based products to ver. 2023.2 URL: https://www.fast-report.com/news/fastreport-net-2023.2 Summary: Support for Blazor Web Assembly, new icons for the Ribbon interface, changes to the report validator and WebReport in update 2023.2. Support for Blazor Web Assembly, new icons for the Ribbon interface, changes to the report validator and WebReport in update 2023.2. Meet new opportunities for your projects! Added support for Blazor Web Assembly, new icons for the Ribbon interface, the ability to open a page of another report inside the current one, changes to the report validator and WebReport, and much more. Changes are available for the following products: - FastReport .NET, - FastReport Mono, - FastReport Desktop, - FastReport for DBA, - FastCube .NET. New opportunities Blazor WebAssembly support Added FastReport.Blazor.Wasm package with Blazor WebAssembly support for owners of FastReport .NET Enterprise and higher editions. Now you can use Razor components to display a report in your WebAssembly application. Attention! Blazor WebAssembly support is currently in beta. ``` ``` Read more in this article. Ability to open another report page The designer now allows you to open and add pages and dialog forms of another report to the developing report. To do this, go to the "File" menu and select "Open Page...". Next, the standard file selection dialog box will open where you can select a report. After that a window will appear with a list of pages and a preview of the selected page. Here you can select one or more pages to be added to the current report. The names of pages and all objects contained in them, will be changed to unique, if the report already has them. This is necessary to avoid errors, as identical names are not allowed. Read more in this article. New icons for the Ribbon interface New Visual Studio-style icons have been added to the Ribbon interface in the designer. You can select them in the user interface options. Will need to restart the designer for the changes to take effect.  Filter in the properties window A new button has been added to the properties window that allows you to enable the display of object-specific properties. For example, for a text object, this mode displays the Text, Font properties. Common object properties such as Top, Left, Height and Width are not displayed. Report validator changes The report validator now doesn't run in the background, but runs with a separate "Validate Report" button in the "Report" menu. In addition, the validator window has been removed, and its messages are displayed in the window "Messages". Ability to hide connection string Added a new property Config.ConnectionStringVisible, which gives the ability to hide the connection string in the designer. Can be used to differentiate permissions between the application developer and the report user. When set to false, the user will not be able to see and edit connection strings in the designer. WebReport changes Added support for MemoryCache. By default, at the moment, the current WebReportCache is used. You can enable MemoryCache when registering FastReport services: ``` services.AddFastReport(options => { options.CacheOptions.UseLegacyWebReportCache = false; }); ``` Unlike the built-in cache in WebReport, MemoryCache unloads WebReport instances more aggressively after a certain time CacheOptions.CacheDuration of WebReport instance inactivity, which can help in cases where the old cache for some reason does not clear memory. Added the ability to fix the toolbar on the screen. Now you can configure the toolbar to always stay in place, even when scrolling through the page. This is convenient when working with large reports - the toolbar will always be visible. To pin the toolbar on the screen, you need to set the following property: ``` webReport.Toolbar.Sticky = true; ``` Now the toolbar will always be in view. Also, the ability to customize the export settings window has been added. Now it can be made fixed on the screen and displayed in the foreground. To do this, you need to set the following property: ``` webReport.Toolbar.Exports.PinnedSettingsPosition = true; ``` Validation for entering a range of pages has been added to the export settings window. Now, in case of incorrect input, the field will look like this. FastReport.Core.Skia improvements Improved the performance of the FastReport.Core.Skia package. Export errors have been fixed, examples are listed below. Fixed the rendering of objects with CanShrink = true: Fixed the background rendering of objects with transparent backgrounds: Added a standard font that depends on the operating system. Now, if the font from the report is not detected in the system, the export will not produce an error, but will render the report with the standard font. For other fixes, please refer to the full list of changes. Updated design of FastReport Cloud file manager Updated the design of the file manager window for more convenient and intuitive use of the service. Changes have been made to the layout of interface elements and color scheme, which will improve the overall visual perception of users. Full list of changes [Engine] + added property Config.ConnectionStringVisible, which indicates whether the connection strings of data sources will be displayed in the designer; - fixed a bug with extraction of procedures in connection that cannot contain procedures; - fixed a bug where the first column of the page was always displayed in the leftmost position; - fixed a bug when GaugeObject.Value property was set equal GaugeObject.Minimum, if new value was more than GaugeObject.Maximum. Now it will be set equal GaugeObject.Maximum; [Designer] + added the ability to open report from FastReport Cloud using recent files list; + added a context menu to the page panel elements; + a context menu for creating new pages and dialog forms has been added for the panel with report pages; + added new Visual Studio style icons for the Ribbon interface; + added "Sync" button in the "Report Tree" window; + added Filter button in the Properties window; + added HiDPI icons for Ribbon-interface; + added support of DBNull and Guid types for parameters; * now the name of the attached file when exporting to mail, can be set from the code when creating the export form; * report validator now runs from "Report|Validate report" menu. "Messages" window is used to display validation messages; * changed interface of QR code editor; - fixed a bug on right clicking Data Sources menu item; - fixed a bug when checkbox "Select all" was not visible in Data wizard; - fixed a bug causing System.NullReferenceException when deleting dialog form; - fixed the absence of the Api key when re-opening the Account->Server window if it was entered in the standard server item; - fixed incorrect web address when trying to preview webview for custom server; - fixed the problem of collapsing panels and incorrect change of the language of tabs and bars when changing the localization in the Ribbon interface; - fixed issue with adding tables that were not selected in the connection wizard; - fixed a bug causing System.NullReferenceException when creating connection to stored procedure; - fixed exception when manually entering an invalid parameter type; - fixed a bug where it was impossible to set an object to a transparent color; - fixed reopening of the query wizard; [Preview] + added a message about sending a report to the mail in the status bar; [Exports] + added word wrapping in cells when exporting to Excel 2007; - fixed a bug that made MSChart text blurred after HTML export; - fixed incorrect margins when exporting the report to HTML; - fixed an error that made the transparent background become white with Skia; - fixed a bug with an extra empty page when exporting if there are bands with the Exportable property equal false; - fixed a bug when padding top was not taken into account when exporting to layered HTML; - fixed an error that made the text go beyond the table when the page was zoomed out in HTML export; [WebReport] + added Blazor WebAssembly support; + added support for DI in WebReport.Core/Blazor. To use, call services.AddFastReport(); + added support for Microsoft.Extensions.Caching.Memory.MemoryCache instead of the standard WebReportLegacyCache. To use, when registering a DI container, use services.AddFastReport(options => options.CacheOptions.UseLegacyWebReportCache = false); + implemented the ItemCheck event in CheckedListBox; + added an option to enable the toolbar to display regardless of the screen position in WebReport using WebReport.Toolbar.Sticky property; + added asynchronous version of method WebReport.Designer.SaveMethod - WebReport.Designer.SaveMethodAsync; + added validation of page range in WebReport export settings window; + added WebReport.Toolbar.Exports.PinnedSettingsPosition property. If enabled, the container of export settings will be fixed on the screen and displayed in the foreground; - fixed a bug when selection mode in ListBox was multiple, but it was able to select only one item; - fixed a bug of non-refreshing dialog when CheckedBox was the initiator of the event. In this case, add at least one dependent object of the CheckedBox to the DetailControl property; - fixed a bug when in .NET Framework MVC application the report with dialog form on clicking "OK" would not hide dialog form and not show loading of the report; - fixed an error that caused extra pages to appear when printing; - fixed incorrect work of report 'Interactive Report' on WebReport.Core; - fixed rare NullReferenceException in WebReportLegacyCache; [Online Designer] - fixed a bug where First Page Source, Other Page Source, Last Page Source and Duplex properties was not saved when changing ReportPage; - fixed an error that made the report preview not refresh before pressing "Refresh" button; [.NET Core] + the script compiler will now display errors depending on the selected locale set with FastReport.Utils.Res.LoadLocale() or FastReport.Utils.Config.CompilerSettings.CultureInfo; - fixed an issue where text with CanShrink = True was incorrectly rendered after export with Skia; - fixed a bug with incorrect indent width between characters with TextRenderType = HtmlTags in Skia; - fixed a bug that caused the watermark with transparency to have a gray background when exporting with Skia; - fixed an error that caused incorrect calculation of table row height; [CoreWin] - fixed error when trying to add new data connection; [Mono] + added zoom control in preview and designer windows; - fixed problem of scaling PreviewControl; [Demos] + added demo-app ASP.NET Core (Razor pages) under .NET 6.0; * updated demo applications for FastReport Core; [Extras] - fixed a situation in which the host during logout could not match the one during authorization; - fixed a bug when updating an expired session in the Account window, a browser opens and requests re-authorization. ### Update of Cloud Services to 2025.2 Version URL: https://www.fast-report.com/news/release-service-2025.2 Summary: In version 2025.2 the ability to use custom fonts has been added, functionality for Tasks, data sources, and preview service has been improved, the installation wizard has been redesigned. In version 2025.2 the ability to use custom fonts has been added, functionality for Tasks, data sources, and preview service has been improved, the installation wizard has been redesigned. In version 2025.2 of FastReport Cloud and Corporate Server , the ability to use custom fonts has been added, functionality for Tasks, data sources, and preview service has been improved, the installation wizard has been redesigned, and a new edition of Corporate Server — FastReport Publisher — has been introduced. Font Service Users can now upload their own fonts in *.ttf and *.otf formats and use them for template design in the Online Designer , in the preview window, and in exports to various formats. Fonts are stored in the user's workspace. New fonts can be added or existing ones can be configured on the "Workspace Information" page or via the API (method descriptions are available at the link https://fastreport.cloud/api/swagger/ in the Fonts section). Once a font is added, it can be used within the Online Designer. In the preview window, it will appear as follows. When exporting to various formats, it will also work correctly. However, please keep in mind some details. For the font to be displayed in the generated document, you need to have that font installed on the device from which the document is being viewed or embed the font in the document itself. This functionality is supported, for example, in PDF export. Task Filtering by Task Type Added Two new parameters have been added to the method for retrieving the list of Tasks /api/tasks/v1/Tasks : taskType useProjection The taskType parameter allows the user to specify the type of Tasks to be returned. The useProjection (true/false) parameter indicates whether all information about the task will be returned or only the minimum necessary information. These parameters will help when you need to find all tasks of the specified types, for example, email tasks and FTP tasks. Ability to Search for Files Saved as a Result of Task Execution Added The models of export and prepared reports have been updated to include the fields taskId and taskMessageId . After the execution of transformers, the generated report is saved in the Reports or Exports folder, depending on the type of Task being performed.  Additionally, the taskId field of this document includes the identifier of the transformer Task (for example, the task of exporting from a template) that created the file. To find an export or report by taskId use the following methods: /api/rp/v1/Exports/File/Task/{taskId} /api/rp/v1/Reports/File/Task/{taskId} The taskMessageId field contains a unique identifier that is generated with each execution of a Task. Below are the methods used to search for documents created after the specified task execution. /api/rp/v1/Exports/File/TaskMessage/{taskMessageId} /api/rp/v1/Reports/File/TaskMessage/{taskMessageId} Additionally, running a "Task without saving" (/api/tasks/v1/Tasks/run) returns taskMessageId , which can be used to find the generated documents in Exports or Prepared Reports. Custom Query Names in Data Sources Now Unique With the release of 2025.2, when creating custom SQL queries, table names will be unique. Duplicate names entered will be automatically supplemented with characters to ensure uniqueness. This will help avoid issues when working with the Online Designer. Parameter Input in the Preview Window If you open the preview window for a template with parameters, you will see a sidebar where you can set the input for these parameters. After changing a parameter, the report will be restructured. The parameters are also saved in the URL. This means that parameters can be saved in a link and shared with a colleague. Alternatively, you can generate these parameters programmatically and display the current report. New Demo Application in Java A new demonstration application in Java has been added, which uses the REST API to work with FastReport Cloud or Corporate Server. Try out our application right now on GitHub . Saving Sort Orders in the User Panel The feature to save table sort selections on the user panel pages has been implemented. Now, when the page is reopened, the previously selected sort order will be applied, for example, by date or document size. Additional Changes for FastReport Corporate Server   Page with License Limitation Description in the Admin Panel An admin panel page has been added where you can view the current limitations of the Corporate Server. Improved Corporate Server Installation Wizard The Corporate Server installer has been significantly reworked. The design and application stability have been enhanced. FastReport Publisher A new lightweight edition of the Corporate Server — Publisher — has been introduced. It is designed for companies with a small number of users that do not require the reporting server to be run in a cluster. The Publisher is the most accessible solution for deploying a full-fledged reporting system. Additionally, the Publisher provides seamless functionality expansion whenever needed. You can find more details about the Publisher on the product page or in articles on the website. Full List of Changes [Backend] + Added task ID and task message ID to export and report;   + Added Google Fonts caching;   + Added report parameters to temporary files;   + Added a new system for fonts;   + Added task type filter for retrieval method;   + Added company name to configuration;   * Custom query names for data sources are now unique;   * More options for searching tasks added;   * Error messages in the report script are now localized;   * Demo and missing white-label headers are now different;   - Fixed subscription owner's permissions retrieval;   - Fixed file (or folder) moving to the same folder where it was located;   - Fixed issue with MongoDB connection;   - Incorrect Authorization header will now result in a 401 response instead of using an anonymous user;   [Common] + Added parameter input in static preview;   + Added change log to the product page;   + Added a link to Online Designer documentation in Corporate Server documentation;   * Documentation removed from Corporate Server loading script;   * Updated documentation for VM types in tasks;   - Fixed bug with disappearing transports on the tasks page;   [Demos] + Added new Java REST demo;   [Frontend] + Added sorting saving to local storage;   + Added links to the report store;   + Added error handling for data sources that do not support parameters;   + Added license limitation page to the admin panel;   * Tasks page changed, task controller fixed;   * You can no longer click "create task" if it is not in your subscription plan;   * SQL query step hidden when editing a data source that is incompatible with SQL;   - Added padding in the sidebar, added title to task launch buttons, changed access rights display to a column;   - Fixed context menu on document pages;   - Fixed double request when creating a folder;   - Fixed error regarding empty name parameter in notifications;   - Fixed loading indicator in static preview;   - Fixed issue with a popup window inside another popup when accepting an invitation in the Corporate Server;   [Installer] + Added Installer localization;   * New Corporate Server installer design;   [SDK] + Added TasksClient in CSharp SDK. ### Update of Cloud Services to Version 2025.1 URL: https://www.fast-report.com/news/fastreport-cloud-2025.1 Summary: In version 2025.1 has significantly improved work with data sources, tasks, and report templates. We also added API methods for retrieving user rights and new demo applications In version 2025.1 has significantly improved work with data sources, tasks, and report templates. We also added API methods for retrieving user rights and new demo applications For FastReport Cloud and FastReport Corporate Server , version 2025.1 has significantly improved work with data sources, tasks, and report templates. We also added API methods for retrieving user rights and new demo applications, and, of course, fixed numerous bugs. Changes for FastReport Cloud and Corporate Server Custom SQL Tables Added to Data Sources The ability to add custom tables as SQL queries to data sources has been added. To do this, create or edit a data source on the corresponding page, click “Next,” and enter the SQL query. If the query contains parameters starting with the “@” symbol, a data source parameter will be created, allowing you to configure its data type and default value. After adding your own table and saving the data source, it will become available for use in Online Designer. Stored Procedures Creation Included in the Data Source Structure Starting from the current version, stored procedures are available for use when creating data sources for layout templates. Data Source and Task Names Have Become Unique As with files, when creating data sources and tasks, they will be automatically renamed to avoid name duplication. Template Engine for File Names Added  In the name of the template or report file, you can use the variables ${Date} and ${Time} . Then, in the final exports, the file name will contain the date or time of export (UTC) instead of these variables. For example, when exporting sales_report_${Date}.frx to PDF, the final file will be named sales_report_2024-07-08.pdf. The order of the day, month, and year depends on the localization chosen during export or the default localization.   These variables can also be specified in the output file name when creating tasks.   Report Parameters Are Now Available for Retrieval and Editing Via API The following API methods have been added: ``` - GET /api/rp/v1/Templates/File/{id} - now this method returns a list of report parameters if they are set. ``` ``` - POST /api/rp/v1/Templates/File/{id}/parameters - with this method, you can set or edit report parameters. ``` Report parameters also remain available for editing in Online Designer and when downloading report templates.   Added API Methods For Retrieving the Current User’s Permissions on Files, Groups, Tasks, and Data Sources Previously, there was only one method for retrieving user permissions, which makes the following request:   ``` /api/manage/v1/Subscriptions/{subId}/mypermissions ``` With this update, we have added 10 more requests:   ``` /api/data/v1/DataSources/{id}/mypermissions/api/rp/v1/Exports/Folder/{folderId}/mypermissions/api/rp/v1/Exports/File/{id}/mypermissions/api/manage/v1/Groups/{id}/mypermissions/api/rp/v1/Reports/Folder/{folderId}/mypermissions/api/rp/v1/Reports/File/{id}/mypermissions/api/tasks/v1/Tasks/{id}/mypermissions/api/rp/v1/Templates/Folder/{folderId}/mypermissions/api/rp/v1/Templates/File/{id}/mypermissions ``` With them, you can find out what permissions the user has and only perform corresponding actions if these permissions are available. Added Current Product Version Display  Now, at the bottom of each page in the user panel, you can see the current product version.   Case Insensitivity in Sorting   Previously, when sorting documents by name, those whose names started with an uppercase letter were shown first. Now, the sorting works independently of letter case in file names. New Demo Applications Added New console and Android applications in Kotlin and Angular have been added to GitHub. In addition, you can deploy demo applications in Java, PHP, Cpp, Haskell, JavaScript, Go, and Python in your projects. Try the demo Additional Changes for FastReport Corporate Server   Added the Ability to Download Files and Folders from The Admin Panel  To download a template, report, export, or folder in the admin panel, simply click the corresponding button on the row displaying the item.   A Graph of Active Users and Workspaces Added to The Admin Panel With this, you can evaluate user activity for each month. To view the graph, go to the ‘Audit’ page and click the ‘Show Statistics‘ button at the bottom of the page.   Added Parameters for Scheduling Tasks in The Admin Panel  On the ‘Tasks’ page of the admin panel, a ‘Details’ button has appeared, which opens a page with a detailed description of the task. Full list of changes --- [Backend] + added a log for invalid license keys;   + added tests for upload size limits;   + added custom tables to data sources;   + added a template engine for file names;   + enabled the creation of stored procedures in the data source structure;   + added a new parameter to the license key;   + added a method for retrieving the current user’s rights on files;   + added retrieval of mypermissions for groups, tasks, and data sources;   * changed sorting for backend;   * changed data source names to be unique;   * changed the maximum number of users in the Corporate Server without a license key (5);   * added parsing of template parameters from metadata;   * changed case sensitivity in sorting;   * changed task names to be unique;   - fixed file uploads with identical names;   - fixed the path for the destination folder;   - fixed report parameters;   - fixed duplication of the jti claim in the JWT token;   - fixed task execution with files in the request body;   - fixed rights checking for moving to the trash;   - fixed an error returning an incorrect ID when creating nested tasks;   - fixed a bug where the UsersPerWorkspace parameter in the configuration was not considered if there were no user limits in the license key;   - fixed a bug where an anonymous user received errors in the controllers;   - fixed a bug where the administrator received a 403 error when retrieving the data structure;   - fixed delayed task execution in the scheduler;   - fixed the incorrect creation time for data sources;   - fixed an error when opening compressed templates in Online Designer. [Common] + added an article on Webhook;   + added the ability to download folders and files to the admin panel;   + added a graph of active users and subscriptions in the admin panel;   + added documentation for custom queries in data sources;   + added current product version display;   + added documentation for export parameters;   + added a Name in the docker-compose installer;   * improved the task scheduler;   * changed the name in the docker-compose installer; it is now always the same by default;   - fixed the documentation;   [Demos] + added console and Android demos in Kotlin;   + added Angular demo. [Frontend] + added task scheduling parameters to the admin panel;   + added notifications for failed folder exports;   + added an interface for creating custom SQL queries;   + added a check for the user’s subscription limit;   + added localization for export parameters in the admin panel;   + added error texts in notifications within the admin panel;   + added a ‘Refresh’ button in the context menu on document pages;   + added localization for audit notifications;   * shortened links in the admin panel to delete the scrollbar;   * changed input for users and subscriptions on the audit page;   * changed sorting for the admin panel;   * changed notifications for deleting API keys;   * removed mutations from injection in Online Designer;   * the ‘Plus’ button on the document page will no longer appear if the current user does not have permission to create files in the folder;   * improved localization in the admin panel;   * all online libraries became local;   * displayed date and time have been converted to local time zones;   * new .fpx icon;   * connection testing on the ‘Data Sources’ page has become optional;   - fixed export and download buttons;   - fixed history on export and report information pages;   - fixed an error when creating a data source from the online designer;   - fixed the display of the user deletion button in the admin panel in corporate server mode;   - fixed a white stripe appearing after clicking on the checkbox and the disappearing title on hover;   - fixed localization of workspaces in the admin panel;   - fixed validation of the owner ID in the admin panel;   - added a default avatar for all user icons;   - fixed localization for starting a task;   - fixed an error regarding payment necessity on the expired subscription detail page;   - fixed notifications for downloading files without permissions;   - fixed the search field and the output file name field;   - fixed the ‘Select All’ button on the API keys page;   - fixed a bug with an incorrect default subscription when updating a user in the admin panel;   - fixed a bug where pages did not refresh after deletion in the admin panel. ### Update of Delphi and Lazarus Products To 2025.2 Version URL: https://www.fast-report.com/news/fastreport-vcl-2025.2 Summary: With version 2025.2 appeared: setting up watermarks, updating server components, a new mechanism for dialog pages of a WEB report, an object for RFID tags, changes in the reporting engine, support for themes. With version 2025.2 appeared: setting up watermarks, updating server components, a new mechanism for dialog pages of a WEB report, an object for RFID tags, changes in the reporting engine, support for themes. Get ready for the highly anticipated update for the entire line of Delphi and Lazarus products! With version 2025.2, you’ll enjoy exciting new features, including an easy-to-use tool for configuring watermarks, an updated set of server components, a brand-new dialog page mechanism for web reports, and the innovative TfrxDeviceCommand report object for RFID tags. We've also made significant enhancements to the reporting engine, improved export and transport options, added theme support, and much more! Upgrade your product today and unlock a world of new possibilities with us! New Features in FastReport VCL User-Friendly Watermark Customization Tool   A customizable watermark feature has been added for report pages. Watermarks are often used for document protection or to indicate the type of document. We have introduced an easy-to-use tool that allows you to configure watermarks for each page of the report effortlessly. Any page in the report can have multiple watermarks, enabling individual customization for print, display, or export. Watermarks can utilize both images and text, with a wide range of customizable parameters (text rotation, style). Watermarks can be set up both in the report designer and in the preview mode. Update of Server Components   With the release of 2025.2, all available export filters from FastReport VCL are now also available in server components. Take advantage of all these formats in your web application. New Mechanism for WEB Report Dialog Pages   The completely revamped mechanism allows for the use of container objects such as PageControl and groups, as well as extending the functionality of available controls on the dialog page for web dialogs. In this update, we have expanded support for new components for dialog pages. Specifically, we have added dialog page controls that were not previously available in WEB. List of new dialog form controls: Date picker — date picker DBComboBox — drop-down list linked to a data source List Box — selection list CheckListBox — selection list (with checkboxes) MaskEdit (without mask) —Input field Password edit —input field for password PageControl —creating pages with tabs GroupControl — grouping panel Panel — panel You can now also apply a custom HTTP header for your projects. New TfrxDeviceCommand Report Object  This non-visual object is designed to send commands to devices (exports) that can process these commands. In the current version, the object contains a settings class for RFID tags. RFID tags transmit non-visual data to the ZPL export to write this data to the chip using specialized equipment. The RFID tag class has its own editor and set of properties for precise adjustment of the information being written. You can read more in our article. Read the article The TfrxPDFView report object now allows you to configure the range of pages to be output. You can set values using expressions in the TfrxPDFView.PagesRange  property. Thus, you have access to filtering the output pages for a PDF document. Changes in the Report Engine Combining Object Output Techniques New changes to the report engine allow you to combine different object output techniques, giving you the freedom to create complex reports with a variety of options. The operation of the bottom alignment mechanism (baBottom) of a growing band has been changed when one of the band's objects is split into several parts (pages). In the old implementation, an object with the baBottom property is displayed on the very first part of the data break. The new mechanism for operating such a report corrects objects with baBottom, placing them on the last part of the data (at the end of the band). Please note that this behavior of the report engine is considered correct and should be taken into account when developing reports. Support for smMaxHeight Stretching for a Static Table (AllowSplit rows only) The smMaxHeight stretching in a table works differently than in objects. The desired height is set for the entire table on the band. Then it is distributed among the rows with the AllowSplit=True property set and AutoSize=False  disabled. Rows with the MaxHeight value are also taken into account. This approach allows you to choose which rows of the table can be stretched to fill the empty space, and which cannot. New TfrxRichView Report Object Splitting Behavior The RichText object allows you to use tables, images, and other objects that cannot be split for a specific size. Such objects could sometimes create entire non-splittable blocks of content that extended beyond the page. In the current version, TfrxRichView splitting has been reworked and works selectively depending on the situation. Finding the smallest splittable part . If an object contains a part that cannot fit on a new page and is non-splittable (an object or table row is larger than the height of the entire sheet). Then the smallest "non-splittable" part is now found for such a part and is displayed as is. Splitting does not stop. If there are other parts, they will also be split and output. The main difference from the old mechanism is the search for the smallest value for the non-splittable part and the continuation of the build. Previously, all content fell into the "non-splittable" part and the separation stopped there, and some of the text could be lost. Finding the largest splittable part . If a part is encountered that cannot fit on a new page, but it is splittable, such as the same table, then a search for the largest splittable part will be performed and the output will continue. Report Designer Added Theming Support (Runtime Themes) The report designer and its components have been adapted to support themes, both system and custom. Now the report designer will always be in the same style as your application! In Rad Studio 12.3, work with monitors with high display scaling was improved. This change is aimed at improving the quality of visualization and usability of the interface in the development environment when working on monitors with high resolution and scaling settings. In this update, the dialog editor in the report designer has been redesigned. Now this is a fixed workspace, just like the report page. The position of the dialog can be changed through the object inspector. Improved Code completion in the report code editing window. For your convenience, a pop-up menu has been added for the watch list window. We also redesigned the "Designer Options" window for the best support for small screen resolutions. Exports and Transports Support for user-defined characters has been implemented in PDF and SVG exports (EUDC) . Also improved alignment of RTL text with ligatures. Added support for ZUGFeRD 2.3 with the following profiles: “MINIMUM”,” BASIC WL”, ”BASIC”, ”EN 16931”, ”EXTENDED”, ”XRECHNUNG”. An example with the inclusion of data for this format can be found in InvoiceDemo, which comes with the product. In the new version, the mechanisms for exporting to XLSX and DOCX formats have been improved. This has enhanced the quality of the generated documents and expanded their customization options. The e-mail (SMTP) transport has been improved with native support for TLS\STARTTLS and support for XOAUTH authorization. Use secure channels to send your reports. FastReport Lazarus In addition to the fundamental changes that have been included in the VCL and Lazarus versions, FastReport for Lazarus has received support for high-resolution monitors (HiDPI). FastCube VCL and FMX In the VCL version of FastCube, all TTreeView controls have been replaced with TfrTreeView. All versions received filter indication in the list of available fields. The FMX version received the ability to save Custom Filter and Custom Group, as well as a number of improvements and fixes. FastQueryBuilder Added support for high-resolution monitors (HiDPI). FastScript In this update, we have implemented Android support. This innovation works only when compiling with strings that are indexed starting from one. You can use all the power of the script engine in your mobile Android applications. Added support for classes for working with XML and JSON. You can read more about how to work with these formats using the example of loading data into a report in this article. Read the article FastReport VCL Controls For the TfrShellTreeView control, it became possible to create custom nodes and shortcuts to other nodes. You can read about how to configure TfrShellTreeView and add custom nodes in this article. Read the article Installer You can now install our products with Android support. Also, support for installing packages on the 64-bit version of the IDE Embarcadero RAD Studio 12.3 has been added. Complete List of Changes: 2025.2 version ======================== VCL.Core [Localization] - Fixed sorting in LocalizationEditor; VCL.Controls [Engine] + Added the ability to create a custom structure of root Shell Node and regular Node; - Fixed HiDPI support in smartMemo; - Fixed the behavior in which the control is not scaled when Parent is assigned when csFreeNotification is set in ComponentState; - Fixed some shortcomings in the rendering of TfrTreeView and TfrShellTreeView; [UI] - Fixed custom color rendering and disabled state for tfrTreeView; Lazarus.Controls [Engine] + Added the ability to create a custom structure of root Shell Node and regular Node; - Fixed HiDPI support in smartMemo; [UI] - Fixed custom color rendering and disabled state for tfrTreeView; - Implemented HiDPI support for Lazarus; - Fixed some shortcomings in the rendering of TfrTreeView and TfrShellTreeView; VCL.FastCube [UI] + Added filter indication to the list of available fields; + Added the ability to save Custom Filter and Custom Group; • TreeView replaced with TfrTreeView; - Fixed localization of the FastCube toolbar; FMX.FastCube [UI] + Added filter indication to the list of available fields; + Added removal of ActivePopup in TfcxSliceGrid.FullUpdate; • TreeView replaced with TfrTreeView; - Fixed localization of the FastCube toolbar; - Fixed incorrect operation of the TfcxRangesEditor form; - Fixed the problem of positioning and visibility of the "OK", "Cancel" buttons; - Fixed FastCube FMX error in the selection rules editor; - Fixed the operation of incremental search in drop-down lists; [Engine] + Added the ability to save Custom Filter and Custom Group; - Fixed an error when clicking in the Top-N filters list area after zeroing TfcxSliceGrid.Slice := nil; Lazarus.FastCube [UI] + Filtering indication added to the list of available fields; * TreeView replaced with TfrTreeView; - Localization of the FastCube toolbar fixed; VCL.FastQueryBuilder [UI] + First version of HiDPI added; Lazarus.FastQueryBuilder [UI] + First version of HiDPI added; VCL.FastScript [Engine] + Support for XML and JSON added to FastScript; * Improvement of TfsTree by replacing TTreeView with TfrTreeView; - Fixed error in TfsScript.Destroy that could lead to a crash; FMX.FastScript [Engine] +Added support for Android; - Error fixed in TfsScript.Destroy that could lead to a crash; Lazarus.FastScript [Engine] + Added support for XML and JSON to FastScript; * Improvement of TfsTree by replacing TTreeView with TfrTreeView; - Fixed error in TfsScript.Destroy that could lead to a crash; - Fixed fs_ibx package for compilation in Lazarus; VCL.FastReport [Preview] + Fixed collapsing when Application.MainFormOnTaskbar = True; [Engine] + Added the ability to configure watermarks for report pages; * Modified the RichView splitting mechanism, added minimum non-breakable part definition; - Fixed HTMLView with Page.EndlessHeight; - Fixed "Class not found" error when using the UseFileCache property with empty pages in the report; - Fixed frxDecompressStream function; - Fixed error with incorrect value in CopyName macros; - Fixed date and time export to XLSX; - Fixed splitting of the RichView component with an empty line at the end; - Fixed SVG boundaries updating; - Fixed loading order of 'hmtx' table in TTF fonts; - Fixed error where a renamed dataset did not change the default username; - Fixed error where the print dialog reset settings when moved to a secondary screen; - Fixed size of the signature for non-visual components; - Fixed HiDPI support for smartMemo; - Fixed behavior of the band with additional height; - Fixed memory access error when using external DBX connection; - Fixed error when printing a nested report with multiple columns on the page; - Fixed missing line break in CellData.Text; - Fixed Memo AutoWidth error with macros like TotalPages; - Fixed error where some table events were triggered twice; - Fixed baBottom when the object breaks across multiple pages and added support for smMaxHeight for static tables (only AllowSplit rows); - Fixed rounding height error in band breaks; - Fixed left coordinate of the subreport when moving to a new page; - Fixed AnyDAC packages in FastReport product so they automatically install on RAD Studio XE3 and older IDEs; - Fixed error when macros are updated at design time; - Fixed duplex selection mode; - Fixed baBottom and smMaxHeight behavior in the page footer; - Fix that clears the ParentForm singleton when the parent form is closed not from the report component; [Exports] + Improved export of RTL text to PDF; + Added export of external symbols; + Added support for ZUGfERD 2.3 in PDF export; - Removed compiler warning; - Fixed export of long HTMLView; - Fixed generation of PDF/A metadata; - Fixed PDF using the ZUGFeRD standard; - Fixed incorrect input focus transition via Tab in export dialogs; - Fixed numerical format in XLS export filter; - Fixed character size in SVG and PDF exports; - Removed floating anchor for the docx table, replaced with an empty line; [Client-server] + Added new dialog form controls: Date picker, DBComboBox, ListBox, CheckListBox, MaskEdit (without mask), Password edit, PageControl, GroupControl, Panel; + Added the ability to use a custom HTTP header in client-server components; * Redesigned the dialog generation engine, supporting nested controls and the ability to extend with custom controls; * Updated exports for client-server components; - Fixed an error when working with parameters and dialogs; [Designer] + Improved rendering and functionality of designer elements in VCL themes; + Added context menu for watch list windows in the report designer; * Redesigned the "Design -> Options" window for small screen resolutions; * Redesigned the dialog editor in the report designer; - Fixed error in RichEditor with older versions of msftedit.dll; - Fixed dialog scaling (TfrxDialogPage); - Fixed TfrxLabel behavior when AutoSize = True; - Fixed TfrxDesigner.DefaultFont functionality with HiDPI; - Fixed TfrxDialogPage behavior on a secondary screen; - Fixed barcode editing behavior in the report designer via the object inspector; - Fixed code completion behavior in nested procedures and functions in scripts, as well as in scripts with string concatenation expressions; - Fixed tooltip behavior in the code window; - Fixed menu style for the report designer in RAD 12.2 at design time; [Other] + Added the ability to override the search form; * Updated Romanian resources; - Fixed compilation of InvoiceDemo; - Fixed example of CustomScrollsDemo; [Report object] + Added support for single-page TIFF in TfrxPictureView; + Added object for RFID Tags (TfrxDeviceCommand); + Implemented a list of displayed pages in a PDF document (Range) in TfrxPDFView; - Fixed compatibility with HTML Viewer; - Fixed barcode rendering when ((Rotation > 0) and (WideBarRatio > 2)); - Fixed default font size for the top label of barcodes with HiDPI; - Fixed behavior of the HTMLView component when colgroup width overrides td tag width settings; - Fixed report generation with RFID; - Fixed incorrect clipping in RichView; - Fixed label for two-dimensional barcodes; - Fixed label for two-dimensional barcodes; - Fixed setting "Swiss QRCode" for QRCode barcode; FMX.FastReport [Engine] - Fixed "Class not found" error when using the UseFileCache property with empty pages in the report; - Fixed rotating text transfer when exporting to PDF; - Fixed date and time export to XLSX; [Exports] - Removed compiler warning; - Fixed WordWrap in PDF export with simple text visualization; [Designer] - Fixed group header editor; Lazarus.FastReport [Engine] + Added the ability to configure watermarks for report pages; - Fixed HTMLView with Page.EndlessHeight; - Fixed "Class not found" error when using the UseFileCache property with empty pages in the report; - Fixed frxDecompressStream function; - Fixed error with incorrect value in CopyName macros; - Fixed date and time export to XLSX; - Fixed loading order of 'hmtx' table in TTF fonts; - Fixed error where a renamed dataset did not change the default username; - Fixed error that caused the print dialog to reset settings when moved to a secondary screen; - Fixed error when creating TfrxComboEdit for Lazarus; - Fixed size of the signature for non-visual components; - Fixed HiDPI support for smartMemo; - Fixed behavior of the band with additional height; - Fixed memory leak when exporting PDF in Linux; - Fixed error when macros are updated at design time; - Fixed duplex selection mode; - Fixed baBottom and smMaxHeight behavior in the page footer; - Fix that clears the ParentForm singleton when the parent form is closed not from the report component; [Exports] + Improved export of RTL text to PDF; + Added export of external symbols; - Removed compiler warning; - Fixed export of long HTMLView; - Fixed generation of PDF/A metadata; - Fixed PDF using the ZUGFerd standard; - Fixed PDF export with HiDPI; - Fixed export dialogs with HiDPI; - Fixed image inversion in ZPL export; [Client-server] + Added new dialog form controls: Date picker, DBComboBox, ListBox, CheckListBox, MaskEdit (without mask), Password edit, PageControl, GroupControl, Panel; + Added the ability to use a custom HTTP header in client-server components; * Redesigned the dialog generation engine, supporting nested controls and the ability to extend with custom controls; * Updated exports for client-server components; - Fixed an error when working with parameters and dialogs; [Designer] - Fixed error in RichEditor with older versions of msftedit.dll; - Fixed dialog scaling (TfrxDialogPage); - Fixed TfrxLabel behavior when AutoSize = True; - Improved rendering and functionality of designer elements in VCL themes; [Other] + Added the ability to override the search form; [Report object] + Added object for RFID Tags (TfrxDeviceCommand); - Fixed behavior of the HTMLView component when the colgroup width overrides the settings for the "td" tag; - Fixed label for two-dimensional barcodes; - Fixed compatibility with HTML Viewer; - Fixed creation of composite barcodes; [Preview] - Fixed preview with HiDPI. ### Update of Delphi and Lazarus Products to Version 2025.1 URL: https://www.fast-report.com/news/fastreport-vcl-2025.1 Summary: Version 2025.1 introduces a new application to demonstrate the capabilities of FastReport VCL, expands the component library, and improves the report designer and export filters. Version 2025.1 introduces a new application to demonstrate the capabilities of FastReport VCL, expands the component library, and improves the report designer and export filters. Our products are constantly evolving, with new features continuously added and the quality of the code improving. This update includes enhancements and fixes for the entire line of Delphi and Lazarus products. Version 2025.1 introduces a new application to demonstrate the capabilities of FastReport VCL, expands the component library, and improves the report designer and export filters. New App for Demonstrating FastReport VCL Capabilities We have updated our main demo application for FastReport VCL to ensure that the product not only delights you with its rich functionality but also with its appearance. Expansion of the Component Library for Delphi and Lazarus We introduce the new visual component TfrShellTreeView for developing applications in Delphi or Lazarus. This is a fully functional file system navigation component that works on Windows and Linux (Lazarus). Key Features: •    Native rendering (icons and themes from the operating system) •    Subscription to file system changes and automatic updates •    Fast rendering (utilizes a virtual tree) •    Customization and overriding options allow you to extend the component to suit your needs. Improvements in the FastReport VCL Designer The FastReport VCL designer offers extensive functionality for designing your reports. In version 2025.1, we have added the ability to customize the highlighting of expressions, which you can find in the designer settings. A search feature has been introduced in built-in editors such as Memo and SQL. Improved working with hiDPI modes in Embarcadero RAD Studio 12 and fixed issues affecting the user experience of creating templates. A new interactive editor for the "Table" object has been added. Edit the table in a familiar way, just like in Microsoft Word. FastReport VCL Reporting Engine A new feature in the reporting engine allows you to create chains of Subreports with printing on the parent (Subreport.PrintOnParent). This approach enables printing structures similar to tree-like structures and stretching elements located on the parent band. This method is based on the height of the structure printed in the Subreport. Export Filters The ability to edit the CellularText object in interactive PDF forms has been added. You can now use CellularText as an element of an interactive form. In table export filters, a new feature has been added to select the quality of objects exported as images. This setting allows you to set the scale for all images in table export filters. Fixes and quality improvements have been made to export filters: PDF, DOCX, PPTX, XLSX, SVG. Preview The ability to copy the contents of the RichView object in the preview has been added, including group selection of objects via Shift + Right Mouse Button. FastReport FMX A new export to PPTX has been added for Windows, macOS, and Linux platforms. Delphi and Lazarus Version 2025.1 also supports Embarcadero RAD Studio 12.2 (including the new Windows 64 Modern platform for C++ Builder) and Lazarus 3.6. Version 2025.1  ---------------   [Designer] + Added expression highlighting settings in the report designer; + Added basic search in editors with Memo; * Improved mouse functionality in SimpleMemo; - Improved scrolling in the Memo editor; - Fixed the issue when opening the report designer; - Fixed a potential AV error after deleting a StyleSheet element in the report designer; - Fixed name duplication when dragging from DataTree; - Fixed stretching of the object toolbar when the height is insufficient in the designer; - Fixed calling the text editor through the object inspector; - Fixed an issue with the Auto Update Fields option enabled; - Fixed navigation issues in the Report Tree of the designer; - Fixed SmartMemo (code editor) for HiDPI;   [Engine] + Added TfrShellTreeView control for shell management in VCL and Lazarus with Linux support; + Added nested handling for Subreport.PrintOnParent in the reporting engine; + Added support for the Win64x compiler during development; + Implemented native rendering of controls for VCL and Lazarus in Linux; + Added WideString type in FastScript; - Fixed compatibility with C++ Builder and JVCL; - Fixed updating DBX parameters when extracting field definitions; - Fixed an issue when using a multi-column page along with PrintOnPreviousPage and KeepTogether options; - Fixed a problem in automatically generated headers for C++ Builder; - Fixed the HTML editor; - Fixed RTL output with tags in TfrxHTMLView; - Changed data field updates to clear automatically defined fields when DataSet is modified; - Fixed incorrect rendering of SliceGrid when loading a scheme at high DPI; - Fixed icon caching during scaling for HiDPI; - Fixed an issue when changing the DBDataSet.DataSet property did not clear field definitions; - Fixed TfrxComboBoxView and TfrxListBoxView; - Fixed the field type definition for ftFixedChar; - Fixed memory leak when displaying SVG; - Fixed an issue where DataLink did not clear previous data; - Fixed the error 'Resource FCXBUTTONS not found' in FMX RS12 Builder when calling the formula editor; - Fixed the state of the old XML format flag after clearing; - Fixed initialization of the interactive parameters structure; - Fixed warning in frxGetCertificate.   [Exports] + Added the ability to edit the CellularText object in interactive PDF forms; + Added the FromName field in TfrxMailExport when using Indy SMTP; - Fixed EMF export to SVG; - Fixed font substitution in PDF export; - Fixed line break issue when exporting to .rtf format from Lazarus on Linux; - Fixed export of katakana, hiragana, and geometric symbols in PDF export; - Fixed line selection and bottom field line during DOCX export; - Fixed EMF export to PDF; - Fixed hyperlinks in RTF export; - Eliminated GDI object leaks; - Fixed customizable PDF signature; - Fixed alignment issues in TfrxMemoView and reduced sizes of images with alpha channels in PDF export; - Fixed date formatting in XLSX export; - Fixed compiler warnings; - Fixed XLS export for empty pages; - Fixed date format in XLSX export; - Fixed "Unexpected variant error" in XLS export;   [Lazarus] - Fixed ODF export when AllowHTMLTags is enabled; - Fixed RTF export when AllowHTMLTags is enabled; - Fixed TfrxDateEditControl in Linux under Lazarus; - Removed unnecessary ScrollBar rendering in the designer; - Fixed selection reset in the Linux Lazarus Rich editor; - Fixed infinite loading when using Linux Lazarus Rich;   [Other] + Added VarIsNull function; - Fixed issue with displaying the Data Highlighting dialog in FastCube; - Fixed converters for QuickReport, ReportBuilder, and Rave Reports;   [Preview] + Added the ability to copy RichView content in preview; - Fixed issues with active preview tabs when exporting all open preview tabs; - Fixed toolbar issues in HiDPI mode in version 10.4, when some toolbar buttons were disabled; - Fixed AV when calling preview in XE2; - Fixed display of double tooltips in the preview window;   [Report object] + Added property TfrxFIBDatabase.LibraryName; * Added Tab key handling in TfrxRichView editor; - Fixed serialization of TfrxPictureView.Stretched property; - Fixed barcode positioning after changing BarType when Align is set to [baCenter, baRight]; - Fixed Swiss preset in QR barcode;   [Resources] * Updated Polish resources; * Updated German resources for FastCube; - Fixed FCXBUTTONS resources for applications with run-time packages;   [FastReport FMX] - Added export to PPTX for Windows, macOS, and Linux platforms; - Fixed export dialog display in macOS; - Export dialogs have been separated from export filter modules (ability to override export dialogs with custom ones). ### Update of FastCube 2 beta URL: https://www.fast-report.com/news/update-fastcube2-beta Summary: Update of FastCube 2 beta Update of FastCube 2 beta 1. Improved integration with FastReport: reports now use grid highlights and style. Fixed cell autosize options: adjust width, adjust width with restrictions and adjust height. 2. Added FireDac support. 3. Extended scripting abilities :  a. «Calc all cells» option –to build calculated measure for empty cells (which does not have records in source dataset),  b. calculate totals with script,  c. “FormulaDetail” aggregate - calculate measure values on source data (not on other measures). 4. Copy to clipboard now copies headers . ### Update of FastReport Online Designer 2025.2 URL: https://www.fast-report.com/news/release-fastreport-online-designer-2025.2 Summary: We are pleased to introduce the new version of Online Designer 2025.2, which includes support for VCL reports, the ability to create new reports when working with .NET WebReport, a new bands menu. We are pleased to introduce the new version of Online Designer 2025.2, which includes support for VCL reports, the ability to create new reports when working with .NET WebReport, a new bands menu. Exciting changes in our product! We are pleased to introduce the new version of Online Designer 2025.2, which includes support for VCL reports in the .fr3 format, the addition of parameters when creating SQL queries, the ability to create new reports when working with .NET WebReport, a new bands menu, and much more. New Features [Beta] Support for .fr3 Reports   With the 2025.2 release, an experimental feature for working with .fr3 format reports has been introduced. This format is used in reports for FastReport VCL . Now, you can build a designer for WebReport VCL, which allows using Online Designer for projects based on another reporting platform without the need to adapt existing .fr3 reports.   Available: All types of horizontal bands are supported A limited set of components is available (Text object, Image, Table) Fill styles for components are supported Component borders are supported Font settings can be edited Component properties can be edited   Limitations: Vertical bands are not available Creating data sources is not available There may be differences in property structure and logic of operation. However, report preview and basic editing are already operational. In future versions, we plan to significantly expand this set of features.  To build Online Designer with support for the FastReport VCL reporting core (in .fr3 format), you can follow these instructions: 1.    Open the Designer Builder (FastReport Online Designer Builder). 2.    Go to the build page. 3.    Select “Reporting Core” from the build menu. This menu allows you to specify which core (.NET or VCL) the designer will be built for. 4.    Choose the “VCL” option. This will activate the designer’s build with support for .fr3 format reports. Components related to FastReport .NET will not be included in the build. 5.    Click the “Build” button. This will start the process of generating the build with the selected configuration. Wait for the build to complete. This may take some time depending on the options you have chosen. After the build is finished, you will receive a link to download it. Please note that this version is in beta status, and there may be limitations in functionality. Style Editor Implemented The Online Designer now features a style editor that allows for centralized management of the appearance of report components. You can now create your own styles and customize fill colors, fonts, borders, and other formatting parameters just once. Then, you can apply them to multiple elements without the need to adjust each component manually! Create a style, adjust it to your requirements, and simply select it for the desired report components. This simplifies the formatting process and ensures a consistent visual style. Ability to Create Parameters When Writing SQL Queries Added Now, when creating a custom SQL query in the data source, you can use parameters that make the queries more flexible and adaptable to various scenarios. In the SQL query creation window, there is now an option to add parameters that can then be used directly in the query text by referencing them with the @ symbol. For example: ``` SELECT * FROM Orders WHERE Category = @cateroryParam ``` Parameters specified in the interface will be automatically substituted when executing the query. This allows for the creation of more versatile reports where data can be filtered based on external conditions or values entered by the user. Ability to Create a New Report Added The Online Designer now includes the ability to create a new report when working with WebReport .NET. You can now start creating a report from scratch directly from the interface without the need to upload a file in advance. A new menu item called “File” has also been implemented, providing convenient access to the main actions related to the report. This menu allows you to: Create a new report (if supported by your server); Save the current report; Change the interface language; View information about the version and build of the designer. The new menu simplifies navigation and makes working with reports more flexible and intuitive. Improvements New Bands Menu Implemented In version 2025.2, the band panel has been redesigned with an updated interface and improved structure. The new panel was developed with a focus on responsiveness and ease of use on various devices, including tablets and mobile screens. Ability to Change the Order of Conditions in the “Text Highlighting” Window Added The “Text Highlighting” window now has the ability to change the order of conditions that govern text formatting. This is especially useful in cases where multiple rules apply to the same element, and their order affects the display outcome. This mechanism allows for precise control over the visual logic of the report and helps achieve the desired formatting in various scenarios. Ability to Use Views and Procedures in Data Sources Added The new version of the designer introduces support for views and stored procedures in the list of available data sources. Previously, when connecting to a database, the designer only displayed tables, and views were not available for selection. Now, views returned from the server are correctly displayed and can be used alongside regular tables. After creating a data source, you can use stored procedures and views just like tables. Please note that the support for views and procedures depends on the capabilities of your database and the connection settings. Ability to Disable Popup Messages Added The behavior of popup notifications in the Online Designer can now be configured through settings received from the server when the application starts. This allows for centralized control over the display of messages related to events, errors, or user actions. In the configuration, it is sufficient to specify the notifications parameter and select one of the operating modes: "default" — displays built-in notifications in the upper right corner of the interface (default setting); "html5" — uses system HTML5 notifications (if permission is granted in the browser); false — completely disables all popup notifications. Example configuration: { notifications: "html5" } — activates system notifications. { notifications: false } — completely hides all popup messages. Full List of Changes + Support for reports in .fr3 format; + Implemented the Style editor; + Added the ability to create parameters when writing SQL Query; + Added the ability to use views and procedures in data sources; + Implemented new bands menu; + Added the ability to resize the expression editor; + Added the ability to disable popup messages; + Added the ability to change the order of conditions in the “Text Highlighting” window; - Fixed an error in the advanced matrix when calculating span (colSpan, rowSpan) in cells; - Fixed the display of the “MSChart Editor” window; - Fixed the behavior of the ruler when clicked frequently; - Fixed fields in the properties panel; - Fixed the Container object; - Improved the appearance of the “Watermark” window; - Fixed an issue with saving ConnectionString; - Fixed an issue with incorrect positioning during drag and drop in the expression editing window; - Fixed the display of the “Fill” window; - Fixed an issue with incorrect restoration of position values when using Ctrl+Z; - Fixed an issue with saving format properties. ### Updated export engine in FastReport VCL URL: https://www.fast-report.com/blogs/updated-export-engine-vcl Summary: Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. This means the scaling of objects does not affect the quality. Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. This means the scaling of objects does not affect the quality. It is better to consider this with examples. Since there was no Map object in the 5th version of FR VCL, let's look at the example of a Chart object. I will present screenshots of the export of the one and the same report in the 5th and 6th versions. Diagrams’ representation in the 5th and 6th versions differs in color filling. In the previous version, the diagram was painted with a lurid vivid colors. I agree, it contrasts, but looks "childish". In the 6th version, quiet colors are used for filling, and it looks "more mature". Let's look at exporting to a PDF report format with a chart in version 5. To show the disadvantages of using a picture to display compound objects, I zoomed in: Even with a slight zooming, the picture quality deteriorates noticeably. In addition, there is no way to select and copy the inscription. Now look at the PDF export of the same report in FR VCL 6: And even at high magnification ... The chart looks perfect. Note that on the previous screenshot, I showed the highlighted chart title. Any text in a diagram, map or RichText can now be selected and copied to the clipboard. The PDF file size for FR VCL 5 is 447KB, and for FR VCL 6 is 307KB. That is, updates have benefited not only the quality of exports, but also the size of the resulting file. Since we are considering PDF export, take a look at its settings for the 5th ...  and the 6th version: The Outline option is available. At the bottom of the form appeared drop-down list with options for saving the report: As you can see, in addition to saving to the local disk (File option), you can save the report to a remote FTP server or to one of the cloud stores. Updated export is applied for three formats: PDF, HTML5 and SVG. Tags: VCL, Export, FastReport ### Updated Export menu FastReport.Net report URL: https://www.fast-report.com/blogs/updated-export-menu-net In the version of FastReport.Net 2018.3.14 appeared useful refinement that does not relate to the functionality of generator. However, it significantly improves usability report designer, or rather the report preview mode. Finishing touched menu exports. Because developers regularly delight us with new export formats, their recruit until 31. Let's take a look how it looked until recently: In such a huge list is not just quickly find export, not to mention the size of the menu that on smaller screen resolutions are simply not fit entirely. There is only one way out-group exports by destination. Here is what we have now: Very compact. Just some relief. Briefly go through the menu. Prepared report formats and Adobe Acrobat stand apart. For them there is no pair to create the drop-down list. All formats of Microsoft Office and Open Office in the same group. XML group contains export formats such as: Web group contains other markup languages used in the Web: In the Image group - export formats in image. Export Image file formats support: JPG, BMP, PNG, GIF , TIFF, Windows metafile. Export to SVG stands out because it has a lot of their own settings.  Group Database contains formats commonly used to store data: Print Group gathered all export formats that are relevant to printing. And the Other group includes other export formats for which a separate section is inappropriate: Group Cloud contains exports to external storage. Usually it is cloud services. Here you need to understand that it is not enough simply to have an account in one of cloud services, you want to create an application in the cloud-based service through which you will save the report to the store. More details can be found in the documentation of FastReport.Net. The last group contains Messengers only one export to XMPP for now, also known as the Jabber. The fact that exports in Messenger placed in a separate section, gives us hope for the addition of new export formats to the most popular instant messengers. What is the export of this? FastReport.Net loads report to the cloud FastReport Cloud. And then sends a link to the report in the messenger. In conclusion, I would like to commend the work of FatReport.Net team that she does not forget about usability. I look forward to further work in this direction. Tags: .NET, .NET, FastReport, FastReport ### Updated FAQ URL: https://www.fast-report.com/news/update-faq-fastreport-vcl4 Summary: Updated FAQ Updated FAQ Added FAQ sections for  Fast Report 4 VCL  and for  Fast Report Studio . ### Updating .NET products to 2024.1 version URL: https://www.fast-report.com/news/fastreport-net-2024.1 Summary: In this release, we focused on implementing the long-awaited features that greatly simplify the process of developing reports. In this release, we focused on implementing the long-awaited features that greatly simplify the process of developing reports. In this release, we focused on long-awaited features that greatly simplify developing report templates. The following are now available to you: custom line styles, changing the shape of the "Picture" object, setting up hotkeys, support for the ODBC connector, and much more. New opportunities Improved work with the Table object Working with the report designer has become easier and more convenient. There are new capabilities for working with the "Table" object. 1. Quickly add columns and rows. If you point to a row boundary to the left of the table or a column boundary at the top, a conditional display will appear showing where a new row or column will be added. There is also a button that, when clicked, will add a new row or column to the table. The table must be active (selected). Otherwise, new controls will not appear. 2. Change the height of rows and width of columns. Now, you can change the column width or row height accordingly by dragging the column or row border using the mouse. 3. Drop-down menu "Insert". When you right-click a cell in the context menu, you will see a drop-down list that allows you to insert a new column or row next to the cell. 4. Hotkeys. Copy cell text and paste text into a cell using the hotkeys Ctrl+C and Ctrl+V. Read more about the new table capabilities in the article. Merging text objects Now, there is a mechanism for merging text objects with the same text. For this purpose, a new MergeMode property has been added to the "Text" object, which allows you to configure the merge mode. The new property works very similar to the Duplicates property in Merge mode, but there are important differences: Duplicates works only with one object located in the “Data” band. For example, the Data1 band has a text object named Text1, and the Duplicates property is set to Merge. When building a report, at the first iteration of Data1, when the first record is displayed in Text1, the text "10" will be displayed. On the second iteration of Data1 and the output of the second record, the same text will be output in Text1. As a result, two instances of Text1 will be connected, and the text "10" will be displayed only once. MergeMode, unlike Duplicates, can merge instances of different text objects, and do this both vertically and horizontally. For example, when building a report, the text "10" will be displayed in Text1 and Text2, located next to and to the right. In this case, Text1's MergeMode property is equal to Horizontal. In this case, the text objects will be connected and the text "10" will be displayed once. Read more about the new property in the article at this link. Custom line styles For the LineObject, ShapeObject, PolyLineObject, and PolygonObject objects, a new property has been added—DashPattern, which allows you to create your line styles. Previously, the line style of these objects was set using the Border.LineStyle property. Only six styles were available: Solid, Dash, Dot, DashDot, DashDotDot and Double. With the new property, you can specify a collection of values that will sequentially specify the length of strokes and spaces. For example, with values 5, 4, 3, and 2, we set a pattern in which a stroke of length 5, a space of length 4, a stroke of length 3, and a space of length 2 will be displayed. Then, the values will be repeated in a circle, starting from 5. The unit of measurement here is the Border.Width. If there is at least one value in the DashPattern collection, then this new mechanism will work. And the Border.LineStyle property will be ignored. If the DashPattern collection is empty, the Border.LineStyle property mechanism will still work. Below, you can see some examples: Instructions for setting up lines are available at the following link. Change the shape of the Picture object It is now possible to change the shape of the "Picture" object. PictureObject now has a new Shape property that allows you to specify the following shapes: rectangle (default), round rectangle, ellipse, triangle, and diamond. You can find out more in the article. Setting up hotkey combinations It is now possible to customize hotkey combinations at your discretion. You can configure commands for actions such as "Open file," "Save file," "Prepare report," and much more. To do this, a new button has been added to the "Interface" tab in the designer settings. Pressing it opens a window for setting up hotkey combinations. Here is a table with actions and their assigned keyboard shortcuts. You can change the combination by double-clicking on the desired line. You can also navigate the table using the Up and Down keys, and make changes by pressing the Enter key. You can also return all combinations to their default values. You can find more information about setting up keys in this article. .NET 8 support Added  .NET 8 support  for FastReport .NET, FastReport.Core, FastReport.Core.Skia, and FastReport.WPF. This platform improves application performance and adds many new features to your projects. Refusal of support for .NET Standard 2.0 in FastReport.Web To cover more and more technologies that are constantly being added to the .NET world, we have decided to abandon the legacy .NET Standard 2.0 compatibility layer in our Web integration library FastReport.Web (WebReport Core/Skia). The minimum supported version of TargetFramework for this product will now be .NET Core 3.1 and higher (including .NET 5, 6, 7, and 8). FastReport.Core and FastReport.Core.Skia will still support .NET Standard 2.0 without changes. Added ODBC connector support for FastReport.Core Our users have been asking us for a long time to add the ability to connect to databases via the ODBC protocol for our cross-platform products. This feature was present only in FastReport .NET and FastReport WPF previously. With this update, it is also available in FastReport.Core and FastReport.Core.Skia. To use it, add the FastReport.Data.Odbc plugin to your project and register it with this code: ``` FastReport.Utils.RegisteredObjects.AddConnection(typeof(OdbcDataConnection)); ``` Changes in WebReport Email Export to WebReport Now, WebReport has a function for sending reports by email. To enable this feature, you need to configure the SMTP server parameters when registering FastReport services. Just add the code: ``` services.AddFastReport(options => options.EmailExportOptions = new FastReport.Web.EmailExportOptions { Address = "SomeAddress@example.com", EnableSSL = true, Host = "Host", MessageTemplate = "Message template here", Name = "John", Password = "password", Port = 25, Username = "Username" }); ``` After this, activate the option WebReport.Toolbar.Exports.ShowEmailExport and users will be able to send reports by email: When you click the "Send by mail" button, the user will be asked to configure the message through a convenient modal window: Printing in Blazor WebAssembly WebReport now allows you to print reports in Blazor WebAssembly. This feature is enabled by default, but if you need to disable it, just use the following code: ``` webReport.Toolbar.ShowPrint = false; ``` Your reports can now be printed directly from Blazor WebAssembly: Full list of changes --- [Engine] + added merging of text objects; + added the ability to change the shape of PictureObject; + added the ability to create custom line styles; * now working with fonts is done without blocking; - fixed text going beyond the boundaries of the TextObject when TextRenderer = HTMLParagraph; - fixed creation of fonts from PrivateFontCollection; - fixed incorrect text color in RichObject; - fixed a break between RichObject and image; - fixed a bug when the focus was lost from the DateTimePicker object if it had the DetailedControl property specified; - fixed a bug in barcodes (display on HiDPI, export to PDF); - fixed indentation in HTMLTextRenderer; - fixed incorrect RichObject breaks; [Designer] + added the “Show progress window” property to the designer settings; + added the ability to configure hotkey combinations; * updated checks for links; links with spaces are now processed correctly; - fixed the appearance of extra lines when scaling a RoundRectangle of small size; - fixed slash encoding in Barcode 93 Extended; - fixed deleting a link when merging dictionaries; - fixed a bug with the choice of date or time formatting in the Hungarian localization; [Preview] - fixed incorrect size of the page border when the page height or width is infinite; [Exports] + implemented saving of each image in a separate thread; + added missing links to event handlers in exports to Excel 2007, Word 2007, and RTF; + added a new property for scaling barcodes when exporting to ZPL; + added selection of group by which the report will be divided into sheets in Excel 2007; + added the ability to disable grouping of sheets when exporting to Excel 2007; + added the use of wrap mode for texture fill when exporting to SVG; * when exporting to cloud storage, the window automatically closes after receiving the authorization code; - corrected private font collections; - fixed error in parsing the GSUB table; - fixed incorrect export of DashDot, DashDotDot, and Double object border styles to PDF; - fixed a bug when the numbers in the Gauge were displayed blurry during HTML export; - fixed calculation of the ContentMD5 header in S3 export; - fixed incorrect positioning of text when exporting to ZPL; - fixed incorrect export of GaugeObject to PowerPoint 2007; - fixed incorrect export of RadialGauge with filling in layered export in Word 2007; - fixed incorrect export of RadialGauge with filling in non-layered HTML; - fixed display in "Clamp" transfer mode for texture fill when exporting to SVG; - fixed the change in text size when using HTML tags in Excel 2007 export; - fixed the incorrect behavior of HTML tags with tabs when exporting to Excel 2007; - fixed the problem of reducing the quality of the watermark when exporting to PDF; - fixed a bug with incorrect indents when exporting to tables in Word 2007; - fixed image positioning in CheckBox when exporting to Word 2007; [WebReport] - support for .NET Standard 2.0 has been removed in FastReport.Web; - fixed an error when exporting in the Blazor application; - fixed ignoring Margin when printing with PrintHtml in WebReport; [.NET Core] - fixed a bug when the text width was incorrectly calculated when exporting to PDF; [Demos] - fixed a bug in displaying the navigation menu after minimizing Demo New; [Extras] + added Variant conversion to CLR types in MySqlDataConnection; + added FastReport.Data.Odbc plugin; + added support for FastReport.WPF for FastReport.Data connector plugins; * changed the behavior of the message about duplicate names in a request; - fixed the automatic creation of parameters in a request. ### Updating .NET products to 2024.2 version URL: https://www.fast-report.com/news/fastreport-net-2024.2 Summary: From version 2024.2 you have access to a new report generator with Avalonia UI, improvements in exports, support for HTML Plugin for Core.Skia. From version 2024.2 you have access to a new report generator with Avalonia UI, improvements in exports, support for HTML Plugin for Core.Skia. We are pleased to present you the long-awaited update for the entire FastReport .NET component line. In this release, you can expect a new report generator with Avalonia UI support, improvements in data exports, HTML Plugin support for FastReport.Core.Skia, and, of course, the discontinuation of support for .NET Standard 2.0 - 3.1 and .NET 5. New FastReport Avalonia component The FastReport .NET component lineup has introduced a new addition — FastReport Avalonia . This is a versatile library that enables report creation when developing cross-platform applications using Avalonia UI. This component allows for the development of applications with a unified user interface for macOS, Linux, and Windows. FastReport Avalonia is compatible with x64, x86, and arm64 processor architectures. It supports Avalonia UI, .NET 6 and above. FastReport Avalonia is part of the unified FastReport ecosystem in C#. Reports created in other products will work in FastReport Avalonia and vice versa. The product includes the report development core, designer, and viewer with a familiar interface. The report designer looks like this: And this is how the viewer looks like: For more information about the new component, please read the articles. New opportunities ReportPage object's PageCreate event The ReportPage has a StartPage event, which is triggered before the page is rendered. This event is called once for each template page in the report. Now, there is a new event called PageCreate, which is triggered when a page is created in the prepared report. Unlike StartPage, it is called more frequently, for each prepared page that corresponds to a template page. Both events can have their handlers assigned, allowing you to perform actions in addition to the standard ones. Read more about PageCreate in the article. Export improvements in Word 2007 Word export has undergone significant changes. Its performance has been improved, resulting in faster operation. New options have been added, such as "Keep Line Height" and "Use Headers and Footers of Word Pages". Additionally, we have fixed various bugs that had a significant impact on the functionality of the export. Export of hyperlinks and bookmarks to SVG With this update, hyperlinks and bookmarks of report objects are also exported to SVG format images. PostgreSQL functions and views When connecting to Postgres databases, you have the ability to use function and view data in your reports. To do this, use the FastReport.Data.Postgres plugin. HTML Plugin support for FastReport.Core.Skia FastReport.Core.Skia has now support for HTML Plugin. Now you can easily embed HTML content in your reports, enhancing their creation and presentation. To use this functionality, install the FastReport.Plugins.HtmlObject package using NuGet. Changes in Blazor WebAssembly Webcil support for .NET 8 Starting with .NET 8, by default, all libraries necessary for operation are packaged in the Webcil format (.wasm) instead of the usual.dll . This is a more secure and web-friendly format ( see more ). However, to compile the report script we must use these libraries. Previously, we advised our users to disable packaging in .wasm. Starting from the current version, FastReport.Blazor.Wasm can work with Webcil resources and use them to compile a report script without preliminary settings, everything happens automatically. Automatic addition of required SkiaSharp resources Previously, one of the requirements for using FastReport.Blazor.Wasm was that users had to manually add the necessary SkiaSharp and HarfBuzzSharp resources to their Blazor WebAssembly projects. The main issue was that these resources varied depending on the .NET version and the use of multithreading in WASM. Users had to manually select which libraries they needed, which caused a lot of complexity. Starting from the current version, FastReport.Blazor.Wasm can determine the resources needed depending on the environment, and apply them to your application automatically. However, if you still need to select the required resource manually, then you can disable automatic behavior by adding to your .csproj project the following code: ``` False ``` Removal of support for .NET Core 2.0, 2.1, 2.2, 3.0, 3.1, .NET 5 To cover an increasing number of technologies continually being added to the .NET world, we have decided to drop support for the outdated .NET Standard 2.0 - 3.1 and .NET 5 compatibility layers in our libraries. The minimum supported version is now .NET 6, and the minimum supported framework is .NET Framework 4.6.2. Read more about the changes in the news. Full list of changes [Engine] + added OnCreatePage event for the ReportPage object; * now, when converting RTF, insignificant spaces after tabs are discarded; - added exception handling if the contents of the RichObject are incorrect; - removed top and bottom padding when splitting TextObject between pages; - fixed vertical indents in RichObject; - fixed the display of a row following a row with a column union; - fixed an exception when preparing a report with a TableObject containing MSChartObject; - fixed loss of spaces in the RTF parser; - fixed display of the bottom border line when using GrowToBottom; - fixed support for the Portuguese language in the RTF parser; - fixed a bug when the Report.IsPrepared parameter returned an incorrect value when preparing a report asynchronously; - fixed translation of RichObject to TableObject; - fixed error when printing with different pages selected; - fixed IndexOutOfRangeException when executing Graphics.Path.AddBeziers; - fixed vulnerability with the ability to call JS code from a hyperlink; - fixed default tab setting when converting RTF; [Designer] + added interaction with FastReport Cloud in the Community edition; + added the Contains (string , string) function, which determines whether a string contains a substring; * changed the text of the warning message about duplicate parameter names in the query wizard; *replaced the error with a warning form about parameters with the same names in the SQL query; *changes in SwissQR: the processing of the "Amount" field has been changed; the "Currency" field is now a text field; added processing of data from the database in the fields of information about the Recipient, Payer and in the "Link" field; - fixed Datamatrix brush color; - fixed errors in the PictureObject editor; - fixed a bug in the format editor; - fixed a bug when resizing the dialog form; - fixed the drawing of a rotated ITF14 barcode; - fixed a bug with the operation of the "select all" keyboard shortcut; -fixed a bug in resetting the format when changing an expression; - fixed errors with the separation of source data into lines, both separator options (\r\n and \n) are now supported; - now during the QR code generation process, extra \r\n characters at the end of the line are removed; - fixed NullRreferenceException when editing the SelectCommand of the data source table; - fixed text scrolling in AdvMatrix; - fixed context menu of the RFIDLabel object; - fixed the band title in the classic band display mode; - fixed a problem when using the hh:mm time format; - fixed a bug leading to System.NullReferenceException when connecting to JSON; - fixed a bug when resizing objects while holding down the Shift key; - fixed an exception that occurred when using DontEditCode; - fixed incorrect behavior of lines when changing the Height property for a horizontal line or the Width property for a vertical line if the Diagonal property is set to False; [Preview] - fixed a bug with the search dialog in the preview; - fixed rendering of report objects outside the page; - fixed incorrect display of superscript or subscript text for RichObject if such text is at the beginning of the line; - fixed display of vertical paddings in preview when using the LineHeight property; [Exports] + added the option "Use Headers and Footers of Word Pages" when exporting Word; + increased speed of export to docx; + added the "Keep Line Height" option to export to Word 2007; + added export of hyperlinks and bookmarks to SVG; - fixed error in exporting a rotated svg image to pdf; - fixed a bug when images with a transparent background were incorrectly exported to PDF of the PdfA_1a standard in FastReport.Skia; - fixed font reset in an empty cell after exporting a report to Word; - fixed a bug with incorrect export to a JSON file; - fixed a problem with exporting to Word 2007 when using a watermark and the "Page Title" band with a system variable; - fixed a bug in svg export (hangs if text contains incorrect cr/lf sequences); - fixed incorrect calculation of row height in a table when exporting to Excel; - fixed error in exporting vector graphics to PDF; - fixed error in SVG export (table with merged cells); - fixed opening of exported reports in Word 2007; - fixed incorrect black background when exporting RichObject with image to layered HTML-export; - fixed the value of the paddingNonSeparatePages variable in ImageExport (OpenSource) to eliminate unnecessary padding; [WebReport] + added support for the Webcil format in FastReport.Blazor.Wasm; + added dialog form title to WebReport; + added a detailed description of the report compilation error in the WebReport preview; * the logic of standard images in WebReport has been reworked. Now images are loaded directly into the report, rather than being loaded by a large number of requests from the server; - fixed a problem with editing tables in a document when exporting a report to Word 2007 via WebReport; [Extras] + added support of FastReport.Plugins.HtmlObject for FastReport.Core.Skia + added support for views and functions in the PostgreSQL connector (Extras/Core/FastReport.Data/FastReport.Data.Postgres); + added a new filter for selecting file extensions when connecting to SQLite, combining .db and .db3, with the first filter selected by default; - fixed import of plugins for FastReport .NET with TargetFramework net6.0 and higher; - fixed the issue of object alignment in a report that contains an HTMLObject plugin; [Mono] * changed the tooltip text in RichObject in Mono; - fixed maximum text length on code pages in the designer. ### Updating .NET products to version 2025.1 URL: https://www.fast-report.com/news/fastreport-net-2025.1 Summary: In this release, we have focused on implementing long-awaited features that greatly simplify the process of developing templates for reports. In this release, we have focused on implementing long-awaited features that greatly simplify the process of developing templates for reports. In this release, we have focused on implementing long-awaited features that greatly simplify the process of developing templates for reports. Now you can add a report page with a link, asynchronous report preparation with undo support, text rotation with TextRenderType.HtmlParagraph, text search in code editors, export to images for WebReport and much more. New Opportunities Adding a report page with a link In previous releases it was possible to add a page of another report to a report. This option can be found in the  "File->Open Page..".  By default, a copy of the page is added to the report. You can now enable the "Add as link" option, which will add a link to the page to the report rather than a copy of the page. This means that when you change a page in the original report, the changes will be reflected in all reports to which the page is added as a link. And vice versa, if a page is changed in one of the reports that has a link to it, it will be changed in the original report as well. Asynchronous report preparation Added the report.PrepareAsync() method, enabling asynchronous report preparation in addition to the existing synchronous report.Prepare() method. This method also supports CancellationToken , allowing users to cancel the report preparation process if needed, improving control and performance for large reports in non-blocking environments. This functionality may be further enhanced in the future, with new methods providing additional asynchronous access. IfNull function ``` object IfNull(object expression, object defaultValue) ``` There is a new function allows to avoid  System.NullReferenceException when evaluating expressions. The function has two parameters: the first is the expression to be evaluated, the second is the default value. If the expression can be evaluated, the function returns its result. If not, it returns the default value. Rotate text with TextRenderType.HtmlParagraph Added support for rotating text with TextRenderType.HtmlParagraph. Previously, text rotation was only available with other text renderer types. You can see examples of text rotation below. In addition, such texts are now correctly exported to PDF. Text search in FastReport WPF and FastReport Mono code editors Now you can search for text not only in FastReport .NET code editor, but also in FastReport WPF and FastReport Mono editors. An example of searching for text in FastReport WPF code: And in the FastReport Mono code editor: Changes in WebReport Localization support for Blazor WASM WebReport Introduced localization support for the WebReport interface in FastReport Blazor WebAssembly. Previously, localization was managed through file-based methods, which were incompatible with the WASM environment. A new method, webReport.SetLocalization(Stream) allows loading localization from a Stream, making it compatible with Blazor WASM applications. Image Export to WebReport Added export of the report to images. To display it in the list of exports, add the following code: ``` WebReport.Toolbar.Exports.ShowImageExport = true; ``` If necessary, you must enable the WebReport option to configure the export to images  WebReport.Toolbar.Exports.EnableSettings . After enabling it, you can click on the "gear" and change the settings in the modal window that appears. Full list of changes [Engine] + added PicturesInParagraph property to RichObject; + added method for asynchronous report preparation PrepareAsync(); + added converting of strings to dbtype compatible; + added print scale; + added decimal conversion to words in ToWords functions; + added locale identifier for Spanish is 22538 (Spanish - Latin America) and 3082 (Spanish - Spain (Modern Sort)); + a new IfNull function has been added for working with expressions. It returns the result of the calculated expression if it is not null, otherwise the specified default value; + implemented calculation of horizontal position of pictures in RichObject; + added the ability to send a request in the virtual-host-style; + added support for text rotation with TextRenderType = HtmlParagraph; + added the ability to use header bands for the "PrintOn" property of the Totals; * upgraded Oracle.ManagedDataAccess.Core in FastReport.Data.OracleODPCore; * methods GetConnection, OpenConnection and Dispose marked as virtual; * added null check for incoming value for Hyperlink.Value property; * static verification methods TryParse has been introduced into classes of QRCodes; - fixed text break issues; - fixed page visibility change after PageStart event; - fixed conversion to parameter type; - fixed checking of the report script for stop-words if it contained in the variable name; - fixed visibility of the bottom border of a text object with enabled GrowToBottom; - fixed border doubling when the grouped DataBand has the GrowToBottom option; - removed rendering of child clipPath tags in SVGPictureObject; - fixed a bug in FinishReport event; - removed invalid ability to add SubreportObject to ContainerObject; - fixed changing the CommandType of the request if it was set in GetAdapter; [Designer] + added ability to open page as link from another report; + added italic, bold, underline and strikethrough font styles to the span tag; + added a search in the TreeView by the character entered from the keyboard; + add a search function in the code editors in WPF and Mono; * added a check for duplicates of downloaded fonts; * replaced default property values in the constructors of CurrencyFormat, NumberFormat, and PercentFormat classes from fixed values to values from CultureInfo.CurrentCulture; - fixed incorrect position of Amiri, Cambria Math, DejaVu Math TeX Gyre fonts in the font selection drop-down list; - fixed a bug leading to System.NullReferenceException when saving borders via Border Editor; - fixed incorrect display of SVG-images in the designer; - fixed the display of variables declared in one line on the Code tab in the tooltips; - fixed page margins length in "ExtraDesignWidth" mode; - fixed the length of the Guides in the designer for long reports; - fixed a bug where the selected font was not displayed in the drop-down list; - fixed incorrect application of data formats; - fixed an error leading to System.NullReferenceException when deleting a band with a Subreport object; [Preview] + added properties Outline.Expand and Outline.Width in PreviewControl; - fixed index out of range when previewing empty SvgObject; - fixed closing of PreviewSearchForm after clicking the "Next" button; [Exports] + added the ability to combine all report pages into one when exporting to Excel; + added an option to use a custom format instead of general in Excel-export; + added strikethrough text formatting to Word-export; + added the MemoryOptimized option for Word-export, which enables the use of FileStream instead of MemoryStream; + added support for rotating text with TextRenderType = HtmlParagraph when exporting to PDF; * format display adjustments - format 'D' and 'MMMM yyyy' are displayed as dates (format 'MM yyyy' if possible), numeric format with negative pattern '-n' is displayed in standard Excel numeric format; * changed the export of the PictureObject border as an image in Word; * optimized memory consumption when exporting to PDF; * changed layout of table export to fixed; - fixed the issue with HTML tags rendering in HTML export; - fixed the export of negative PDF property values; - fixed the color of cell borders in the browser after exporting to Excel; - fixed border style of cell in Word and PowerPoint; - fixed export of pictures in header and footer to Word; - fixed bug with deleting temporary file; - fixed calculation of line-height when exporting to HTML; - fixed incorrect export of borders with double line style to PDF; - fixed a bug with transparency in HTML-Export; - fixed an issue where the <p> tag was incorrectly displayed during HTML-export; - fixed default value of "UseHeaderAndFooter" option in Word export; - fixed incorrect location of images in tabular export to Word; - fixed the row height of objects sets after TableObject when exporting to Excel; - fixed NullReferenceException when exporting font to PDF with alternative lookup of substitution; [WebReport] + added the ability to display the report name instead of parameters in the tab; + added  SetLocalization method for loading WebReport localization from a Stream; + added ability to export report to image format in WebReport; - fixed inheritance of "box-sizing" from custom application styles in WebReport; - fixed IndexOutOfRange exception when previewing a WebReport; - fixed a bug that caused the WebReport.Debug property to not display error information in the report when enabled; - fixed a bug where a NullReferenceException exception could occur when clicking a tab in WebReport; - fixed reset AdditionalFilter in WebReport; - fixed WebReport printing with pages in landscape orientation; [Online Designer] + added a method for updating the table; - fixed previewing of empty SVG object in Online Designer; [.NET Core] + added methods for MS SQL stored procedures in FastReport Core; [Common] + added a new method for setting an parameter expression via code; + added a timestamp when signing installs; [Extras] + added ability of connection to stored procedures in Oracle; * updated the Firebird.Client version to 10.0.0; * updated vulnerable packages Npgsql(Postgres) and System.Data.SqlClient; * changed the text of the error message when pressing the "Advanced" button in the connection to Linter; - fixed a bug with missing menu in the designer of forms for the Report object; - fixed a bug with "character varying" type of Postgres; [Demos] - fixed demo-report Barcode.frx. ### Updating .NET products to version 2025.2 URL: https://www.fast-report.com/news/release-fastreport-net-2025.2 Summary: In version 2025.2 appeared: .NET 9, the FastScript library.NET, an import plugin from Word, a connector to Apache Ignite, improvements to the designer and exports, new features in WebReport. In version 2025.2 appeared: .NET 9, the FastScript library.NET, an import plugin from Word, a connector to Apache Ignite, improvements to the designer and exports, new features in WebReport. Meet the new release 2025.2  for supply options FastReport .NET : WinForms , WPF , Avalonia , Mono , WEB , Ultimate . Support is waiting for you in this update .NET 9, a library for executing scripts in C#, a plugin for importing documents from Word, a connector to Apache Ignite, improvements to the designer and exports, as well as new features in WebReport. Don't miss the opportunity to update FastReport .NET and expand your capabilities! Import of Word documents The  FastReport .NET Ultimate component set now includes a plug-in that allows you to import Microsoft Word (.docx) documents. When you open such a file, it is converted into a FastReport .NET report template (.frx). Due to the large differences in formats, it is not always possible to completely match two documents. However, this plugin allows you to significantly reduce the time required to create a template based on an existing docx file. At the moment our plugin does not support: background highlighting of part of a line, Shapes, as well as nested vector graphics Vector Markup Language (VML) and OLE objects. You can read about the peculiarities of import and how to connect the plugin in the article. Read the article .NET 9 Support This platform improves application performance and adds many new features for your projects. There is more support in this update  .NET 9 for: FastReport .NET, FastReport.Core, FastReport.Core.Skia, FastReport.WPF, FastReport.Avalonia, FastReport.Web, FastReport.Web.Skia, FastReport.Blazor.Wasm. We have done away with binary serialization. BinaryFormatter caused a number of security issues and Microsoft in .NET 9 dropped its use. Our team has also removed the BinaryFormatter class from the source code. You can read more about it at this link. Learn more Report Designer Improvements Also in this version, several useful features have been introduced to simplify work with reports. In the Object Inspector, you can now quickly copy data from the list of object properties using the  Ctrl + C  hotkeys. This will help you easily transfer object properties between different parts of the document or even between different reports. In addition, it is now possible to copy totals and parameters while preserving the nesting hierarchy. This means that when copying complex data structures, their original organization will be preserved, avoiding  Connection to Apache Ignite With this update, a new plugin has been added that greatly simplifies the process of working with Apache Ignite databases when creating reports. This plugin allows you to directly connect reports to the specified databases, providing convenient access to the necessary data for analysis and visualization.  The Apache Ignite connector is implemented based on the .NET Thin Client Ignite.NET. It provides the ability to connect to Apache Ignite clusters, work with caches (including SQL tables) and process various types of data. In addition, the connector supports connecting to one or more Apache Ignite nodes. Node addresses are specified in  host:port format and separated by commas. Connection is possible with or without authentication (if authenticationEnabled is used in the configuration). The connector supports working with caches created as key-value and SQL tables. For caches with QueryEntity metadata, operations of getting the list of fields and their data types are supported. Read more in the article. Read the article Improvements of the preview window In OutlineControl we have added handy buttons with icons for minimizing and maximizing. These buttons were there before, but without icons. In addition, properties have been added that allow you to change the width and height of the scrollbars in the preview window. Export Improvements Added export of number, currency, date, time and percent formats to OpenOffice Calc (.ods).  This update also introduces a new paragraph export mode for OpenOffice Writer (.odt) format files. This makes it easier to edit generated documents and makes them more visually understandable to humans. The new export mode does not replace but complements the existing mode and extends its capabilities.   In addition, an “Autosize width” option for MS Excel export has been added. Will only work with certain values of text object properties: AutoWidth and AutoShrink properties are enabled; HorzAling property value is any except Justify. Changes in WebReport Search across the entire report Added text search for the entire report, similar to the desktop version of the Viewer, if a word is found on another page, the viewer will automatically switch to it. Search is available in WebReport with FastReport.Core, in WebReport for Blazor Server and WebReport for Blazor Wasm. You can control the display of the search button by using the property:  ``` WebReport.Toolbar.ShowSearchButton = false; ``` The highlighting color of the words found can be changed using the property: WebReport.Toolbar.SearchHighlight = Color.Red; Improvements in caching configuration for WebReport With the release of the new version, WebReport now has additional options for caching configuration. First, you can now set individual caching parameters for each specific instance of WebReport. Previously, only general settings applied to all reports were available, which could be inconvenient, especially if you needed to keep certain reports in memory longer. With the webReport.CacheOptions property, you can customize the cache retention time for a specific report. Secondly, there is more flexibility in setting the report cache retention time thanks to the  AbsoluteExpirationDuration and AbsoluteExpiration  options. Previously, only the CacheDuration  option was used, which was based on a sliding principle: if the report was used for a given amount of time, the timer would reset and the report would remain in memory. This could result in a report never being removed from the cache. The new parameters allow you to specify the exact time when a report should be permanently deleted from the cache, regardless of its usage. In this case, CacheDuration and the new parameters AbsoluteExpiration and AbsoluteExpirationDuration can be used together. ``` // Global settings for all WebReports services.AddFastReport(options => { options.CacheOptions.CacheDuration = TimeSpan.FromMinutes(10); options.CacheOptions.AbsoluteExpirationDuration = TimeSpan.FromMinutes(20); });   // Individual WebReport settings, which take precedence webReport.CacheOptions = new WebReportCacheOptions() { CacheDuration = // ..., AbsoluteExpiration = DateTime.Now.AddMinutes(30), // or AbsoluteExpirationDuration = // ... }; ``` Updated demo web application on ASP .NET Core We have updated our demo application to ASP.NET Core, so that the product pleases you not only with its functionality, but also with its appearance. The updated application is available at the link. Online demo Updated Online Designer Demo In addition, we have updated the  Online Designer  demo application, where you can view more examples of our reports, export them, and try the updated online designer on them. The updated application is available at the link. Try the demo Support of FastScript .NET Added ability to use FastScript .NET to run report scripts. FastScript .NET is a library for running C# scripts. It does not depend on CodeDOM/Roslyn and can be used in environments where code generation is restrictedя (Native AOT, iOS, WASM).  FastScript .NET is included in the following supply options FastReport .NET : WinForms , WPF , Avalonia , Mono , WEB , Ultimate . To use FastScript .NET in the FastReport .NET: in your application, add the  FastReport.Plugins.FastScript  nuget package; run the following code before the first use of the  Report  class: ``` FastReport.Code.CodeProvider.DefaultProvider = typeof(FastReport.Code.FastScript.FastScriptCodeProvider); ``` Now, all the reports will utilise FastScript .NET to calculate expressions and run the report script. FastScript .NET does not support VB.NET script language. The dynamic type is not supported too, some of "Advanced Matrix" functions will not work. Detailed documentation on how to work with FastScript .NET is available at this link. Online documentation Full list of changes [Engine] + added new scripting engine - FastScript .NET; + added support for vertical tabulation; + added import of DOCX files to FRX report template; + added support of encoding for Chinese (simplified) language when converting RTF; + added the ability to disable integration with FastReport Cloud ; + added GS1 Datamatrix barcode; + added the conversion of SkBitmap to a Bitmap and Image in FastReport.SkiaDrawing; - fixed error with RichObject (zh-tw codepage); - fixed a bug with simultaneous compilation of a report script when preparing reports in multiple threads; - fixed a bug when printing an empty matrix; - fixed bug when passing null value to a MS SQL query parameter; - fixed errors when compiling libraries under .NET 9; - fixed a bug leading to infinite loop when child band of "Page Header" or "Column Header" has "StartNewPage" property turned on; - fixed a bug leading to System.ArgumentException when connecting to MySQL; - fixed calculation of PrintableExpression of page; - fixed a bug leading to System.NullReferenceException in the Report.GetParameterValue method; [Designer] + added a possibility to copy data from the list of properties of an object using the keyboard shortcut Ctrl + C; + added the ability to copy totals and parameters, preserving their hierarchy; * in the window for opening the report page, it is still possible to select only a *.frx file; * in the Mono designer settings, the tab "Code page" with inaccessible settings was hidden; * changed the logic of style processing for .rtf files when opened in the designer; - fixed a bug where the image of PictureObject disappeared after canceling changes in the designer when editing a prepared page; - fixed a bug with the search filter in the data tree that reset the current search state; - removed the "New Dialog" context menu item in the Community version, which when selected resulted in an unhandled exception; - fixed a bug when running preview from a designer; - fixed System.InvalidOperationException when deleting a data source column when that column no longer exists in the database; - fixed reading the GS1 DataMatrix barcode as a DataMatrix; - fixed a bug with selecting layout of band columns in "Data Band Column Editor" window; - fixed deleting objects and categories from the sidebar in the designer; - fixed a bug with displaying icons that appeared in version AvaloniaUI 11.1; - fixed deleting objects and categories from the sidebar in the designer; - fixed a bug when adding IsNull function via "Text editor" added an extra comma; [Preview] + added a button to send a report by email when using MAPI in a preview in WPF; + added collapse and expand buttons with icons in OutlineControl; + added the ability to change the width and height of the scroll bar through the code; - fixed disabling the button to save the prepared report in the preview; - fixed disabling the "Storage" tab in the report saving menu in the preview; - fixed bug with "Advanced Matrix" when filters are missing; - fixed a bug where the print form did not appear in the preview when pressing Ctrl + P; - fixed a bug with incorrect paper size for printers without "Auto paper size" option, when clicking "Settings" and then "Advanced" buttons in "Print" window; [Exports] + added export of "Author" property in export to PDF/A; + added support for HTML non-breaking space tag when exporting to Excel; + added export of number, currency, date, time, and percentage formats to OpenOffice Calc (.ods); + added "Shrink to fit" option for export to MS Excel; + added paragraph export mode in OpenOffice Writer export (.odt files) * now, when exporting Pages with ExportAlias property to Excel, suffix "-n" will not be added to sheet name if it's possible; - fixed a bug where the font name was exported without quotes to HTML; - fixed a bug in FR.Core with some user fonts; - fixed a bug in HTML-export when the barcode border was not displayed; - fixed the error of opening files when exporting a report with special characters to ODT and ODS formats; - fixed incorrect display and export of some unicode symbols in Skia/Avalonia; - fixed export of TableObject fills to PDF; - fixed export of TableObject and page fills to HTML; - added export of height for the merged cells in Excel export; [WebReport] + added WebReport search; + added WebReport WASM search; + added .NET 9 support for FastReport.Blazor.Wasm; + added the ability to create a connection to a stored procedures in WebReport; + added the ability to configure caching for a single WebReport using the WebReport.CacheOptions property; - fixed an issue that made it impossible to change the DataConnection after it was created in OnlineDesigner; - fixed converting of TextObject to SVG when preview in Blazor; - fixed support for the Size of the CommandParameter; - fixed rendering of page toggle buttons in Blazor when they are disabled; - fixed a bug when the value of the RouteBasePath parameter was not taken into account when setting up WebReport; [.NET Core] + added a filter for connection tables; + added a JsonConnectionType class for use in the JsonDataConnection.GetConnectionType method and GetConnectionType() and GetParameterType() methods; - fixed a bug with encoding when connecting of CSV data file for report in .NET Core; [Common] * changed width of "About..." window; [Extras] + added connection to Apache Ignite; [Demos] + added UsedPackages.version file for WPF packs; - fixed Avalonia and WPF name in demo. ### Updating .NET-based products to 2023.3 version URL: https://www.fast-report.com/news/fastreport-net-2023.3 Summary: 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 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 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 . New features New RFIDLabel object 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. Read more in the article . Support for WebP images 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. Preview in the designer window and asynchronous report viewing 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 toolbar in the context menu 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: Export to S3 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. Read more in the article. Ability to customize barcode font settings 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. "Convert general format to text" option when exporting to Excel 2007 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. Support for partial report compilation 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. New WebReport features Improvements in WASM 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. Toolbar personalization 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 { 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: Full changelog [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 , and 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. ### Updating Delphi and Lazarus products to 2023.3 version URL: https://www.fast-report.com/news/fastreport-vcl-2023.3 Summary: With version 2023.3, NextCloud transport was added, the report engine was changed, and support for new types of electronic signatures appeared. With version 2023.3, NextCloud transport was added, the report engine was changed, and support for new types of electronic signatures appeared. We are pleased to announce the release of a new version of Delphi and Lazarus products. In this update, we paid special attention to ergonomic design and component performance. With 2023.3 version, we have added a new NextCloud transport, changed the operation of the report engine, added support for new electronic signatures, and much more. Changes (different for each product) are available for the following products: FastReport VCL , FastScript , FastConverter .FP3 , FastQueryBuilder , FastReport FMX , FastReport Viewer , FastCube VCL , FastCube FMX . New demo reporting center For convenience, we have combined all demos into a single demo center. It is available with the new FastReport product installer. Changed the operating mode of the report engine The new mode allows you to automatically select the font size to match the size of the “Text” object and its content (ContentScaleOptions property). Selecting the size to match the static dimensions of the object allows you to reduce the text if there are physical limitations when printing. You can find an example of use in the article at the following link . Dynamic font sizing allows you to control the font scale that is applied to dynamically resizing or stretching objects. The report engine reduces the contents of such objects to fit the band on the current page. New resource localization editor With this update, you can edit language resources to suit your needs directly from the IDE. Thanks to the new editor, this has become as fast, simple, and convenient as possible. Full language switching at run-time. Now all language resources are updated immediately without the need to restart the report designer. Added new NextCloud transport  You can save and load reports from your corporate storage directly from the designer, as well as from code. Read in the article how to set up a connection. New types of electronic signatures When exporting to PDF format or working with random files, you can sign documents using the following electronic signatures: CADES_T and CADES_X_LONG_TYPE_1. We have also added partial font embedding in PDF export. It allows you to reduce the size of the PDF export. FastCube for Lazarus has added support for integration with the Chart component for the FastReport integration package. Full list of 2023.3 changes --------------- [Designer] - Fixed drop-down InPlace editor in the DPIAware application. [Engine] + Added the ability to automatically select the font size to match the size of the “Text” object and its content (ContentScaleOptions property); + Added language resource editor; + Added frThreadSynchronizeProc variable to override the default synchronization procedure in FastReport; + Added implementation for UP/DOWN/MOVE mouse events for report script objects; + Added support for signatures CADES_T and CADES_X_LONG_TYPE_1; + Added TfrxHtmlView.LoadFromString method to RTTI. + Added compatibility of old behavior in TfrWideStrins; + Added correction of the height of the last line of text to the tmDescent value (required for some fonts); * Improved language switching in the report designer; * Changed the TfsScript.OnSetVarValue event; * Changed the order of finalizing datasets; - Fixed work of TfrLocalizationController in FastReport FMX; - Fixed printer font scaling in FastReport FMX for RAD 11.3; - Fixed a bug where the frxIBO package did not compile in some IDEs; - Fixed a bug when the dclfqbFIB package was not compiled; - Fixed the name of the groups in the component palette; - Fixed a problem with data when editing a chart in a report for integration with FastCube; - Fixed behavior of HideIfSingleDataRecord with delayed expressions; - Fixed chart rendering in Lazarus; - Fixed TfsCustomHelper in debug mode; - Fixed out-of-range issue in FastCube; - Fixed a bug with case-insensitive keys in resources; - Fixed post-processing of expressions for paReportFinished/paGroupFinished when the ReportSummary/GroupFooter band is visible or invisible; - Fixed Job method TfrLocalizationController.ShowLocalizationEditor; - Fixed a problem with a blank page when duplex printing is forced in the printer settings, and single-sided printing is set for the report page; - Fixed inability to compile the project for FMX versions below Tokyo; - Fixed FastCube compilation for C++ Builder FMX; - Fixed behavior of the TfrxHTMLView.DefBackground method when the value is clNone; - Fixed a bug in FastScript when adding nested components via AddComponent; - Fixed an error in determining the SVG format with a BOM header; - Fixed several GDI descriptor leaks; - Fixed TeeChart package names in FastCube package templates; - Fixed inheritance of styles in the report template. [Exports] + Added the ability to partially embed fonts; + Added LineSpacing support for PPTX export; - Fixed PDF export with CJK fonts; - Fixed a bug with multi-page HTML export when the image cache was cleared for each page; - Fixed work of PDF form fields with owner password; - Fixed substitution of font names; - Fixed application closing with PDF export; - Fixed export of time format in XLSX export; - Fixed SMTP in TfrxMailExport. [Lazarus] + Added a new integration package with LazChart; - Fixed PDF export dialog for Lazarus; - Fixed visual errors in the report designer for Lazarus; - Fixed the designer reopening with TfrxLazSqliteQuery; - Fixed Unicode output from the database for Lazarus; - Fixed barcodes in Linux. [Other] + Added support for FibPlus, IB Objects, and BDE in the installer; - Fixed description of the FastCube FPC package; - Fixed a bug with using an OLE object in FastScript code; - Fixed FastCube FMX packages; - Fixed chart templates for FastReport Demo for compatibility with TeeChart 2023.38. [Preview] + Added TfrxPreviewTabs.CurrentTab property; - Fixed the HighlightRuleEditor form in FastCube; - Added the “Search” item to the preview context menu. [Report object] + Added TTeeFont and TteeShadow classes to RTTI for diagrams; * Changed the DefaultDatabase class from TFDConnection to TFDCustomconnection; - Fixed rotation of 2D barcodes; - Fixed list of modules in FireDAC; [Resources] * Updated Serbian resources; * Updated Arabic resources; * Updated Bulgarian resources; - Fixed string resource numbers. [Transport] + Added NextCloud transport. ### Updating Delphi and Lazarus products to 2024.2 version URL: https://www.fast-report.com/news/fastreport-vcl-2024.2 Summary: This update to 2024.2 version includes improvements and fixes for our entire line of Delphi and Lazarus products. This update to 2024.2 version includes improvements and fixes for our entire line of Delphi and Lazarus products. This update includes improvements and fixes for our entire line of Delphi and Lazarus products. One of the main features of this update is the new package with visual components TfrTreeView. The new TfrTreeView allows you to quickly create your custom equivalents of TreeView, expanding the functionality of your application. Compared to the standard TreeView, our component has fast and convenient navigation, collapsing and expanding the tree of thousands of elements. This enhances the responsiveness of your application's interface for end users. And, of course, TfrTreeView is supported in both VCL and Lazarus! FastReport VCL You can experience the responsiveness of the interface in the FastReport VCL report designer when working with a large amount of data or objects, thanks to the use of the new TfrTreeView component. Support for GeoJSON and TopoJSON formats has been added to the map object. Use maps in whichever format is most convenient for you. Improved handling of digital signatures in PDF and other files. Our product allows for maximum flexibility in configuring digital signatures. You have access to the following settings: Signing method: FastReport, CryptoAPI, CryptoPRO Signature type: CAdES-BES, СAdES-T, CAdES-X Type 1. Time Stamping Authority servers. Certificate stores. Signature hash: md5, sha1, sha256. A mode of infinite width has been added for the dynamic table object. The size of the table grows depending on the data being output. In the preview window, you can see a page that fits all the table columns. Meanwhile, in normal mode, columns that do not fit on the sheet will be moved to the next page. Reports with detailed pages retain the states of the transmitted variables for each tab, allowing for individual reconstruction of each tab when updating parameters. A new property for linear barcodes, DigitsAutoFillMode, has been added. dafmLeftOnly fills missing barcode digits with zeros from the left side. dafmRightChecksum always adds a zero checksum when there is a shortage of digits required by the barcode standard. In this update, we have enhanced and addressed numerous issues with the HTML5, SVG, PDF, XLSX, and DOCX export filters. HTML5, SVG, and PDF exports are now closer to full WYSIWYG. The quality of DOCX and XLSX exports has been improved for table exports. An alternative path on Linux has seen overall improvements in operation under WINE on Linux. FastQueryBuilder Lazarus support has been added to FastQueryBuilder—now you can connect and use it in your Lazarus projects. FastCube The errors found were fixed and integration with the common code base was improved. FastReport FMX Added two new export DOCX and XLSX filters—export reports to the format you need. Starting with release, we will no longer support development environments released before Embarcadero RAD Studio 10.4 for the FireMonkey platform.  2024.2.0 version --------------- [Designer] + fixed SQL editor; - fixed autocompletion in memo syntax; - fixed a bug when Unicode characters could disappear when saving script code in .pas file from the report designer; - fixed TfrxRichView editor for 64 bits; - fixed scrollbars for TfrxSimpleSyntaxMemo; - fixed display of tooltips on the frxEditFieldDefs form; [Engine] + added support for infinite width for dynamic tables; + added support for GeoJSON / TopoJSON to the map object; + added new control TfrTreeView; + fixed a bug of compatibility with old aliases; + detailed reports save the states of the passed variables for each tab when using the DetailPage hyperlink; * added the ability to change the signature hash algorithm; * improved signatures for pdf and other files, improved consistency of signatures; - fixed an error in the position of the data set in the TfrxCustomLayer of the map object; - fixed update of field definitions after SQL changes; - fixed bugs when working with WINE; - fixed TfrxCustomQuery.SQLChangeHandler when destroying a complex report; - fixed a bug that could lead to a crash when exporting to BIFF8 (RS12, 64-bit); - fixed AV in FastCube when dragging a field from the filter zone to the Y axis and back; - improved synchronization with the old list of aliases and the new collection of field definitions; - fixed inherited parameters in the request; - removed duplicate Left / Top properties in serialization for components that are not internal DB components; - fixed type conversion for a field collection property in an inherited report; - fixed a bug in FastCube FMX when right-clicking on the drop-down list of measurements; - fixed a bug when using a dynamic table with manual construction on a page with several columns; - fixed behavior of alClient for diagonal TfrxLineView; [Exports] - fixed a bug when exporting in RTF format when the left position is reset to the coordinate of the left page margin; - fixed interactive Combobox in preview and pdf export; - fixed incorrect position of images when exporting xlsx; - fixed system colors in the xlsx export filter; - fixed scaling factor for images and text when exporting to docx; - fixed a bug that could lead to a crash in XLSX export; - fixed errors in HTMLDiv and SVG exports; - fixed array unlocking in XLS OLE export; - fixed pdf export errors; - fixed memo export with APAC fonts to SVG and HTML5 - fixed PDF/A export and vector export with PS_USERSTYLE; - fixed memo export with HAlign = haRight; [Lazarus] + added support for Lazarus in FastQueryBuilder; + fixed a list of paper without printers in Linux Lazarus; - fixed errors in exporting some objects in PNG mode in Lazarus; [Other] + the SmartMemo object with basic syntax highlighting has been moved into a separate package; + added RTL support to SmartMemo; - fixed certificate dialog; - fixed caret for SmartMemo in Lazarus GTK2; [Report object] + added a new linear barcode property DigitsAutoFillMode (dafmLeftOnly—fills missing barcode digits with zeros on the left side, dafmRightChecksum—always adds a zero checksum if there are not enough digits required by the barcode according to the standard); - fixed RTTI for TfrxHTMLView; - fixed incorrect clipping boundaries for the TfrxPDFView object in the preview; - fixed FireDAC DriverID; [Resources] * updated Portuguese resources. ### Updating Delphi and Lazarus products to version 2024.1 URL: https://www.fast-report.com/news/fastreport-vcl-2024.1 Summary: This update includes improvements and fixes for all Delphi and Lazarus products with Embarcadero RAD Studio 12 support. This update includes improvements and fixes for all Delphi and Lazarus products with Embarcadero RAD Studio 12 support. This update includes improvements and fixes across our entire line of Delphi and Lazarus products. All products have received updates and support from Embarcadero RAD Studio 12. Report designer improvements The new "Text" object editor features highlighting of expression elements and tags, allowing for quick identification of expressions within regular text. With interactive bracket highlighting, you will no longer forget to close the bracket of an expression. Furthermore, the editor allows for word wrap during text editing. Note! This functionality is available in the Enterprise version and higher. Expression highlighting is available not only in the editor but for "Text" objects when editing a report template. New data field editor Data presentation is important. The redesigned Data Field Editor allows you to fine-tune the field definitions in the report designer. In the editor, you can update, reset, add, delete, and customize field properties. Properties allow you to assign objects that the designer creates automatically when dragging fields from the data tree, simultaneously linking them to the fields. Configure the report designer for efficient data handling. The new mode for updating the list of fields in the designer allows you to disable the auto-updating of fields and active data connections. Customize field definitions and use them in the report designer without being tied to a heavy database. Please note the change in the serialization scheme of built-in data sources! The internal properties of such objects are now fully serialized to XML in the report template. Such properties may not be readable on older versions of FastReport after they are converted to a new version. FastQueryBuilder FastQueryBuilder integration has become optional and is enabled when the appropriate components and packages are added. Enabling or disabling FastQueryBuilder no longer requires package recompilation. Transports We have added a new transport to S3 (AWS)—save and download reports from your enterprise storage. Read this article to learn how to set up a connection. Starting with release 2024.1, we will no longer support development environments released before Embarcadero RAD Studio 10.4 for the FireMonkey platform. Supported environments for the VCL platform remain unchanged. See the full list of changes Version 2024.1 --------------- [Engine] + Added support for Embarcadero RAD Studio 12; + Added the ability to optionally use FastQueryBuilder in FastReport; - Fixed the behavior of the virtual data set; - Fixed a bug in FastCube with RAD Studio 12 under x64; - Fixed HIDPI problems in RAD Studio 10.4; - Fixed incorrect font scaling in barcodes at HiDPI; - Fixed incorrect sizes of export filter dialog forms when changing DPI; - Fixed an error after editing a measure in FastCube FMX; - Fixed changing the selected line when switching the filter in the Localization Editor; - Fixed a bug in FastCube when calling the editor script function when double-clicking on a calculation field; [Designer] + Added a new Memo object editor with syntax highlighting (starting from the Enterprise version); + Added highlighting of expressions and syntax in the Memo object in the report designer workspace; + Added a new field definition editor (replacing the old alias editor); + Added the ability to specify the type of drag object when dragging data from the data tree; + Added the ability to disable auto-updating of the list of fields in the report designer; - Fixed a bug with the “Gradient” object style property in the Object Inspector; [Export] *Сhanged the use of Indy TLS in the email export filter; - Fixed positions of ligatures in languages written from right to left in the PDF export filter; [Lazarus] - Fixed a bug in the frxSQLEditorForm form; - Fixed syntax note error in Lazarus; - Fixed FastCube cross-editor in FastReport integration components; [Other] - Fixed the error “module FMX.ConverterFR3toFRFMX.pas does not exist in LibRSXX\FMX”; - Fixed the error “frx package does not contain the frxFileSignature module”; [Report object] - Fixed IBO package for RAD Studio 12; [Transports] + Added S3 transport; + Added support for AWS in S3-Transport; - Fixed default file extension when saving to clouds from preview; - Fixed opening reports from cloud storage. ### Updating HTMLObject as a plugin for FastReport .NET URL: https://www.fast-report.com/blogs/plugin-html-object-net Summary: Detailed instructions for using the new HTMLObject plugin, which uses splitting DOM HTML into FastReport report objects. Detailed instructions for using the new HTMLObject plugin, which uses splitting DOM HTML into FastReport report objects. Detailed instructions for using the new HTMLObject plugin, which uses splitting DOM HTML into FastReport report objects. Our company regularly receives requests for changes in products. This time, we have improved the display of content in a report, which is stored in HTML markup format due to certain circumstances. FastReport has a built-in object for visualizing content in HTML markup format—HTMLObject. It is still being improved, but it already solves many user problems. The previous implementation of HTMLObject could not be divided into FastReport report objects and was displayed only in HTML export. Therefore, we released a separate plugin for FastReport .NET Ultimate that uses the division of the HTML DOM into FastReport report objects. Each HTML markup object is translated into FastReport objects with a specified style, with the calculation of the required sizes, and with the possible page break. To use the plugin, you need to add the FastReport.Plugins.HtmlObject package to your project. Then register it using the following line of code: FastReport.Plugins.Html.HtmlObjectAssemblyInitializer.Init() After that, the necessary libraries will be automatically added to the project, based on the product used (FastReport .NET, FastReport.Core, FastReport.WPF, FastReport.Core.Skia). It's important to note that only a subset of HTML 4 tags and styles are supported. Scripts are not supported. Supported tags:
Category
Species Name
Length (cm)
Length In
  ``` Um nun unseren HTML-Code mit Datenfeldern zu verknüpfen, verwenden Sie einfach den Objekteditor mit Ausdruckseditor und fügen Sie die Datenausdrücke ein. Das Bilddatenfeld wird automatisch in Base64 mit dem richtigen Mime-Type der in der Datenbank gespeicherten Bilder kodiert. FastReport VCL wird dies automatisch tun. Das "HTMView"-Objekt unterstützt das Wachsen nach unten (Stretch) relativ zum Inhalt darin genau wie das "RichText"-Objekt. Und ebenso unterstützt das "HTMLView"-Objekt das Teilen von Daten, wenn die Berichtsseite nicht genügend freien Platz hat. Ein Daten-Stretch und Daten-Split kann wie in anderen Report-Objekten der FastReport VCL aktiviert werden. Zuerst müssen wir die Eigenschaften Stretched und AllowSplit des Bandes einstellen. Dann setzen Sie die StretchMode-Eigenschaft des "HTMLView"-Objekts auf smActualHeight in unserem Fall. Das war's bisher! Starten Sie einfach den Report und prüfen Sie das Ergebnis. Wie man sieht, ist die Verwendung von HTML4.0 und CSS mit Links zu den Daten sehr einfach in der neuen Version von  FastReport VCL 2021.2 .  Tags: VCL, FastReport, Data Source, HTML ### If you have Delphi XE 7 - get your FastCube VCL 2! URL: https://www.fast-report.com/de/news/free-fastcube-vcl-2015 Summary: If you have Delphi XE 7 - get your FastCube VCL 2! If you have Delphi XE 7 - get your FastCube VCL 2! If you bought Delphi XE 7 from September 2014 to January 2015 then you know that it was additionally supplied with FastCube VCL 2. This special offer is over now but we know that some of you are still having difficulties installing the free FastCube. We decided that everyone should be able to use the benefits of full version of FastCube 2. We want all of you to receive access to FastCube VCL 2 along with Delphi XE7 even if it wasn't installed right away. Just visit your customer panel at  cpanel.fast-report.com  and get your FastCube 2. In case you missed the special offer – there's one more chance to receive FastCube VCL 2 with 25% discount! Get it here before March 31 ### Importieren von Berichten aus Crystal Reports in FastReport .NET URL: https://www.fast-report.com/de/blogs/import-reports-from-crystal-reports-to-fastreport-net Summary: Wir importieren die Berichtsvorlage aus dem RPT-Format, das in Crystal Reports erstellt wurde, in das FRX-Format, das in FastReport verwendet wird. Wir importieren die Berichtsvorlage aus dem RPT-Format, das in Crystal Reports erstellt wurde, in das FRX-Format, das in FastReport verwendet wird. Wir importieren die Berichtsvorlage aus dem RPT-Format, das in Crystal Reports erstellt wurde, in das FRX-Format, das in FastReport verwendet wird. Häufig erstellen die Entwickler von Berichtsgeneratoren ihre eigenen Formate für die Speicherung von Vorlagen. FastReport verwendet beispielsweise .frx zum Speichern von Vorlagen und .fpx zum Speichern von exportfähigen Berichten, während Crystal Reports .rpt-Dateien verwendet. In diesem Artikel erfahren Sie, wie Sie eine Berichtsvorlage aus dem in Crystal Reports erstellten RPT-Format in das von FastReport verwendete FRX-Format importieren. Um Vorlagen zu importieren, müssen Sie einen Desktop-Berichtsdesigner installiert haben. Der Import wird durchgeführt, wenn eine korrekte RPT-Datei geöffnet wird. Sie können diese Funktion zum Designer hinzufügen, indem Sie eine spezielle Erweiterung (Plugin) kompilieren. Betrachten wir den ganzen Prozess von Anfang bis Ende. Laden Sie zunächst das Plugin-Projekt herunter. Sie finden es in den Erweiterungen  unter . Der erforderliche Link ist mit " Konverter von Crystal Reports (*.rpt) in das FastReport .NET-Format (*.frx) " unterzeichnet. Wenn Sie darauf klicken, wird das Archiv heruntergeladen, das Sie an einem für Sie geeigneten Speicherort entpacken müssen. Öffnen Sie dann die Datei FastReport.RPTImportPlugin.sln mit Visual Studio. Laden Sie das Paket herunter, das für die Funktion des Plugins erforderlich ist. Es heißt " Crystal Reports, Version für Visual Studio " und kann  unter folgendem Link   heruntergeladen werden (die Anmeldung auf sap.com ist erforderlich). Über den Link werden mehrere Download-Optionen verfügbar sein. Laden Sie das folgende Paket herunter und installieren Sie es. Es ist in einer 32-Bit- und einer 64-Bit-Version verfügbar: SAP Crystal Reports for Visual Studio (SP30) runtime engine for .NET framework MSI. Im FastReport.RPTImportPlugin-Projekt, das Sie heruntergeladen haben, sind folgende Links konfiguriert: Entfernen Sie alle Links zu FastReport und CrystalDecisions und fügen Sie dann Links zu den gültigen Dateien hinzu: 1) CrystalDecisions.CrystalReports.Engine.dll und CrystalDecisions.Shared.dll . Nach der Installation des Pakets, das Sie heruntergeladen haben, befinden sich diese DLL-Dateien unter dem folgenden Pfad: ``` C:\Windows\Microsoft.NET\assembly\GAC_MSIL\CrystalDecisions.CrystalReports.Engine C:\Windows\Microsoft.NET\assembly\GAC_MSIL\CrystalDecisions.Shared ``` 2)  2)FastReport.dll, FastReport.Compat.dll und FastReport.DataVisualization.dll . Diese DLLs befinden sich im Stammverzeichnis des installierten FastReport .NET. Wenn Sie den Standardinstallationspfad nicht geändert haben, finden Sie sie hier: ``` C:\Program Files (x86)\FastReports\FastReport.Net ``` Stellen Sie sicher, dass Sie die richtigen DLLs verwenden! Wenn Sie mehrere Versionen von FastReport .NET installiert haben, kann es passieren, dass Sie versehentlich die falsche DLL auswählen und der Designer das Plugin nicht erkennt oder nicht startet. Nach diesen Schritten sieht Ihre Liste der Links wie folgt aus: Kompilieren Sie das Projekt. Danach gehen Sie in den Ordner FastReport.RPTImportPlugin\bin\Debug und suchen die Datei FastReport.RPTImportPlugin.dll. Öffnen Sie den Berichtsdesigner und wählen Sie im Menü "Einstellungen..." die Registerkarte "Plugins". Klicken Sie auf die Schaltfläche "Hinzufügen", und wählen Sie die Datei FastReport.RPTImportPlugin.dll. Sie sehen sie dann in der Liste der installierten Plugins: Nachdem Sie das Plugin hinzugefügt haben, starten Sie den Designer neu und wählen Sie "Öffnen...". Dadurch wird das Menü zur Dateiauswahl geöffnet, in dem ein neuer Eintrag in der Dateiformatwähler erscheinen sollte: Achtung! Wenn Sie beim Kompilieren DLLs ausgewählt haben, die nicht mit den vom Designer verwendeten DLLs übereinstimmen, dann: Der Designer startet möglicherweise nicht, wenn er neu gestartet wird. Der Eintrag "Crystal Reports Datei" wird nicht zum Exportmenü hinzugefügt. Öffnen Sie in diesen Fällen das FastReport.RPTImportPlugin-Projekt erneut, entfernen Sie FastReport.dll, FastReport.Compat.dll und FastReport.DataVisualization.dll daraus, fügen Sie die richtigen DLLs hinzu und kompilieren Sie das Plugin neu. Wenn der Designer nach dem Ersetzen der DLL nicht startet, überprüfen Sie alle anderen Schritte noch einmal. Wenn auch dies nicht funktioniert, entfernen Sie den Plugin-Link aus der Config-Datei und kontaktieren Sie unser Support-Team. Die Config-Datei befindet sich unter dem folgenden Pfad und enthält eine Reihe von FastReport .NET-Einstellungen: ``` …AppData\Local\FastReport ``` Um die Verbindung zum Plugin zu entfernen, suchen Sie die Zeile, die mit Beachten Sie, dass es aus verschiedenen technischen Gründen einige Beschränkungen beim Importieren gibt. So werden beispielsweise konfigurierte Verbindungen zu Datenquellen nicht gespeichert, und einige Objekte werden möglicherweise mit leichten Ungenauigkeiten angezeigt. Wenn Sie mit irgendeinem Aspekt des Vorlagenimports nicht zufrieden sind, wenden Sie sich bitte an unser technisches Support-Team. Wir sind stets bestrebt, unsere Produkte zu verbessern, einschließlich der Qualität der importierten Berichte. Zusammenfassend lässt sich sagen, dass Sie an diesem Punkt das kompilierte Plugin haben sollten, das Sie zu dem FastReport Designer hinzugefügt haben. Nach diesen Schritten können Sie RPT-Dateien, die in Crystal Reports erzeugt wurden, im FastReport .NET Designer öffnen und als FRX-Dateien, d.h. als Berichtsvorlagen für FastReport .NET, speichern. Tags: .NET, Visual Studio, FastReport, Report, Converter ### Importieren von Berichten aus JasperReports in FastReport .NET URL: https://www.fast-report.com/de/blogs/converter-jasper-reports-dotnet Summary: JasperReports Berichtsimport-Plug-in wurde zu FastReport .NET hinzugefügt, das Dokumente automatisch in das .frx-Format konvertiert JasperReports Berichtsimport-Plug-in wurde zu FastReport .NET hinzugefügt, das Dokumente automatisch in das .frx-Format konvertiert JasperReports Berichtsimport-Plug-in wurde zu FastReport .NET hinzugefügt, das Dokumente automatisch in das .frx-Format konvertiert Wir haben das Importieren von Berichten aus JasperReports hinzugefügt. Um es zu benutzen, müssen Sie im FastReport .NET Designer ins Menü "File" gehen und "Open..." auswählen. Wählen Sie in dem erscheinenden Fenster den Filter „JasperReports files (*.jrxml)“ aus. Die ausgewählte Datei wird automatisch in einen FastReport .NET Bericht konvertiert und im Designer geöffnet. Der importierte Bericht kann Unterschiede aufweisen, und es ist wahrscheinlich, dass dieser Bericht durch Ändern von Objekteigenschaften und Hinzufügen von Verbindungen verfeinert werden muss. „Tabelle“ Objekte von JasperReports werden in Unterberichte mit ähnlichen Funktionen konvertiert. Außerdem können JasperReports-Berichte benutzerdefinierte Berichtselemente enthalten, die nicht importiert werden. Solche Objekte müssen dann vom Benutzer selbst durch Analoge ersetzt werden. Im Übrigen sind die Positionen, Größen und Typen von Objekten mit einigen Eigenschaften dieselben wie in den JasperReports-Berichten. Vergleichstabelle der JasperReports- und FastReport .NET- Berichten: Funktion FastReport .NET JasperReports Berichtsobjekt   Text + +   Figur + +   Abbildung + +   SVG + +   Unterbericht + +   Systemtext + -   Diagramm + +   Barcode + +   Zweidimensionaler Barcode + +   Karte + +   Postleitzahl + -   Text in Zellen + -   Rich Text + +   Gradient + -   Cross-tab (Matrix) + +   Advanced Matrix (AdvMatrix) + -   Tabelle + +   Container + +   Anzeiger + +   Kontrollkästchen + -   Sparkline + -   HTML + +   Digital Signatur + - Berichtsmöglichkeiten   Dialogformen + -   Vererbung von Berichten + -   Master-detail-subdetail + +   Drill-downs + -   Gruppierung + +   Sortierung + +   Kopf- und Fußzeilen + +   URLs and hrefs + +   HTML-Tags in Textobjekten + +   Seiten ohne Dimensionen + -   Vorschau-Komponente + +   Berichtsdesigner in der Entwicklungsumgebung + +   Berichtsdesigner in einem Batchprogramm + +   High DPI-Unterstützung - +   Visueller SQL-Abfragegenerator + -   Sprachen der Benutzeroberfläche 29 1 Beispiel für einen Bericht, der durch den Import von JasperReports in FastReport .NET generiert wurde Originalbericht, der in der JasperReports Testversion generiert wurde: Importergebnis mit kleinen Änderungen: Diese Beispiele haben einen deutlichen Unterschied: bei gleicher Zeilenzahl ist der von der Tabelle eingenommene Teil der Seite unterschiedlich groß. Dies ist auf die unterschiedlichen Abstände zwischen den Textzeilen zurückzuführen. Nehmen wir einen anderen Bericht, der Code 128, Codabar, 2/5 Interleaved, 2/5 Industrial enthält. Das Ergebnis der Konvertierung in den FastReport-Designer ist im folgenden Screenshot dargestellt: Dieser Import sollte es FastReport-Benutzern ermöglichen, einen Bericht aus JasperReports sehr schnell mit der höchstmöglichen Genauigkeit zu konvertieren. Dadurch wird den Arbeitsaufwand für die Übertragung und die Erstellung üblicher Berichte in unserem Designer reduziert. Tags: .NET, FastReport, Converter ### Importieren von Crystal Reports in FastReport .NET URL: https://www.fast-report.com/de/blogs/crystal-reports-import-net Summary: Sehen wir uns genauer an, wie Sie Crystal Reports in FastReport .NET-Berichte importieren. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Sehen wir uns genauer an, wie Sie Crystal Reports in FastReport .NET-Berichte importieren. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Sehen wir uns genauer an, wie Sie Crystal Reports in FastReport .NET-Berichte importieren. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Import Crystal Reports template Crystal Reports template it's a report created by Crystal Reports designer. These reports are stored in files with rpt extension. Importing a report template Converter is implemented as a plug-in. You can download it here, in Extras. The plugin should be compiled in Visual Studio and added in the FastReport. NET designer. To do this, go to the View menu, click Options... and add a plug-in in tab Plugins. After restarting the designer in Open File window will be filter Crystal Reports file (*. rpt). About how to build and connect the plug-in you can learn in the readme.txt. The next pictures shows the Crystal Reports template (left) and the same report imported in FastReport. NET (right).  Tags: .NET, FastReport, Converter ### Importieren von RDL-Berichten in FastReport .NET URL: https://www.fast-report.com/de/blogs/rdl-import-net Summary: Wir sprechen über die Einschränkungen beim Konvertieren von Berichten aus anderen Generatoren am Beispiel eines Formats von Microsoft Reporting Services. Wir sprechen über die Einschränkungen beim Konvertieren von Berichten aus anderen Generatoren am Beispiel eines Formats von Microsoft Reporting Services. Wir sprechen über die Einschränkungen beim Konvertieren von Berichten aus anderen Generatoren am Beispiel eines Formats von Microsoft Reporting Services. Wie Sie wissen, gibt es sehr unterschiedliche Berichtsgeneratoren, und sie funktionieren auch unterschiedlich. Es kann Situationen geben, in denen es unmöglich ist, in einem System genau denselben Bericht wie in einem anderen zu erstellen. Selbst wenn man einen Bericht von Grund auf neu erstellt, kann keine hundertprozentige Identität erreicht werden. Unser Team kennt sich sehr gut in dem FastReport Generierungskern aus, zugleich aber können wir nicht wissen, wie das Berichtssystem in anderen Generatoren funktioniert. Um dieses Problem zu lösen, sind vollständige Quellen solcher Lösungen erforderlich. Was ist ein RDL-Import Ein RDL-Bericht ist eine Berichtsvorlage im Report Definition Language -Format. Dieses Format wird in Microsoft Reporting Services verwendet. Berichte können in Microsoft Visual Studio und Microsoft Report Builder sowie in einigen Editoren von Drittanbietern erstellt werden. Berichte werden in Dateien mit der Erweiterung .rdl oder .rdlc gespeichert. Beim RDL-Import geht es um ein Tool, mit dem Sie einen RDL-Bericht im FastReport .NET Designer öffnen können. Unser RDL-Import arbeitet speziell mit der Berichtsdatei, die nicht alle Informationen enthält, die für eine vollständige Konvertierung erforderlich sind. In der gleichen RDL-Datei sind die Datenquellen oft auf dem Server gespeichert, aber nicht in den Bericht einbezogen. Nur Objekte, die den FastReport-Objekten ähnlich sind, können in FastReport .NET konvertiert werden. Dementsprechend wird nur die allgemeine Ansicht mit einigen einfachen Objekteigenschaften konvertiert. Skripte, Formeln und Ausdrücke werden nicht konvertiert. Importieren von RDL-Berichten Öffnen Sie den FastReport .NET Designer, gehen Sie zum Menü „File“ und wählen Sie „Open“ aus. In dem erscheinenden Fenster wählen Sie den Filter RDL files (*.rdl;*.rdlc) aus. Die ausgewählte Datei wird automatisch in einen FastReport .NET Bericht konvertiert und im Designer geöffnet. Die beiden folgenden Abbildungen zeigen einen Bericht im RDL-Format und denselben Bericht, der in das FastReport .NET-Format konvertiert wurde. Das Wichtigste ist, dass eine vollständige Konvertierung leider unmöglich ist. Sie können einen komplexen Bericht nicht sofort öffnen und ausführen, und es ist sehr wahrscheinlich, dass er nicht funktionieren wird. Und es wird definitiv eine manuelle Änderung für den korrekten Betrieb erforderlich sein. Tags: .NET, .NET, FastReport, FastReport, Converter, Converter ### Improved customer panel URL: https://www.fast-report.com/de/news/improved-customer-panel Summary: Improved customer panel Improved customer panel We have updated the customers web-panel. We hope it is eas ier to use ; you can tune it (select which IDE you use, which files you want to see for downloading etc.) and it is now available i n 4 languages ( with 3 more to be added very soon - i f you want to add your own language , please write to  us ).  It is only available for our customers: please come and check it out now!  We are waiting for your  opinion . ### In: FastReport Mono. Was ist das? Wofür ist es? URL: https://www.fast-report.com/de/blogs/what-is-mono Summary: Erfahren Sie, wie Sie Mono in der Berichterstellung verwenden. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Erfahren Sie, wie Sie Mono in der Berichterstellung verwenden. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Erfahren Sie, wie Sie Mono in der Berichterstellung verwenden. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Mono is an open source development platform based on the .NET Framework, allowing developers to create cross-platform applications. The implementation of Mono .NET is based on the ECMA standards for C # and Common Language Infrastructure. Initially, Mono was developed by Novell, then it was developed by Xamarin, and now by Microsoft. The Mono project has an active and enthusiastic community. Mono includes both developer tools and the infrastructure needed to run .NET client and server applications. The Mono platform consists of several components: The C # compiler supports C # standard 1.0, 2.0, 3.0, 4.0, 5.0 and 6.0 (ECMA). Mono Runtime is the ECMA Common Language Infrastructure (CLI) framework. The runtime is provided by the Just-in-Time (JIT) compiler, the Ahead-of-Time compiler (AOT), the library loader, garbage collector, and so on. The .NET Framework class library. The Mono platform provides the implementation of libraries WinForms, ADO.Net, ASP.Net and others. Mono Class Library - Many classes have been created with additional functionality specifically for Mono, which go beyond the base class library provided by Microsoft. Despite the prejudiced attitude of developers to the Mono platform, many well-known companies use it. For example: • Novell uses Mono for client and server applications; • Unity Technologies uses Mono in the Unity 3D computer game simulation tool. This makes it possible to create cross-platform video games; • Artisteer uses Mono to transfer its web designer to another platform. Starting with version 2.2, you can run your software with Mono. Since there are not so many cross-platform generators, but really good ones can be counted on fingers, FastReports decided to create a report generator for Mono. Moreover, there is a ready-made popular report generator FastReport.Net, on the basis of which FastReport.Mono has been created. It appeared in 2013, and at that time it repeated the functionality of FastReport.Net. For now, however, there are differences between them. To be honest, FastReport.Net has made great progress. Nevertheless, FastReport.Mono remains a strong competitor in its niche. Moreover, personally I do not know other report generators under the Mono framework with such rich functionality. What does FastReport.Mono offer? • User-friendly and functional report designer; • Connection to any database, and not only. Even text files can be data sources, not to mention XML and JSON; • Presence of built-in report script. That gives the report huge opportunities. After all, you can use the Mono libraries directly in the report, to produce data transformations, and also work with report objects; • Web reports, based on ASP.Net; Let's take a closer look. With FastReport.Mono you can work in different operating systems. Well, of course, Mono is a cross-platform framework. Therefore, there are available systems: Windows, MacOs, the Linux family. To work with Mono, and accordingly with FastReport.Mono, the following development environments are suitable: Microsoft Visual Studio (under Windows), MonoDevelop (Windows, MacOs, Linux) and Embarcadero Delphi Prism (Windows, MacOs, Linux). Programming languages for working with FR.Mono: C #, VB.Net, Oxygene (Embarcadero Delphi Prism). The language of the built-in report script: C #, VB.Net. Everything is the same as in FastReport.Net. The data sources available by default are XML, CSV. And to connect to databases, you need to use the data source of the user application, or external connectors that are installed in the system. Interesting features of the report generator: • dialog forms - before displaying a report, you can display a form with controls. In this way, the report user can set the report display options. For example, filter the required values; • report inheritance - the ability to use the report as an initial template for others. This is convenient when you make many similar reports. In addition, changes to the base report will be displayed in all inherited reports. This can be attributed to the pluses as well. After all, you do not need to change a large number of reports if you need to edit the base template; • Preview report component - allows you to view the report and do its export, send email, and manage viewing by displaying a report plan, navigate between pages; • The report designer can be called separately as a standalone program, can be called up during the development of the user application, and during the execution of the user application. The latter option is very interesting. In fact, you embed the designer in your program and give the user the ability to edit the reports themselves. • Advanced print mode - another thoughtful tool. Print settings are very rich. Web reports are implemented through ASP.Net and ASP.Net MVC. What can I say -  it is a modern and popular approach. The list of possible export reports is quite large: Acrobat PDF; Images Jpeg/PNG/BMP/GIF/TIFF; RichText; Word OOXML (docx); PowerPoint OOXML (pptx); HTML; MHT (web archive); Microsoft XPS; Excel OLE; Excel XML; Excel binary (xls); Excel OOXML (xlsx); Comma separated values (CSV); DBF (table); Open Document Speadsheet (OpenOffice); Open Document Text (OpenOffice); Email; PostScript; Json; LaTex; FTP; Text File / Matrix Printer; Clouds (DropBox); Clouds (Box); Clouds (FastReport Cloud); Clouds (GoogleDrive); Clouds (OneDrive). Pay attention, the last elements of the list - Clouds – are essentially saving the report to cloud services. The format of the report file is frx, the same as in FastReport.Net. Yes, in fact, the reports are compatible between FR.Net and FR.Mono. Developers, choosing a logo for FastReport.Mono, showed wit. Judge for yourself. Here is the logo of the Mono platform: But the logo FastReport.Mono: In conclusion, I want to note that the transfer of FastReport.Net to the Mono platform was a strategically correct decision. Tags: .NET, MacOS, Mono, FastReport, C# ### Information zum Release von FastCube VCL 2.10 URL: https://www.fast-report.com/de/news/fastcube-vcl-2.10 Summary: Information zum Release von FastCube VCL 2.10 Information zum Release von FastCube VCL 2.10 Information zum Release von FastCube VCL 2.10  Ausdrücke  In diesem Release wurden Ausdrücke in FastCube VCL hinzugefügt. Bisher wurde es nur möglich, berechnete Maßen oder Summen mit Hilfe des Skipts zu addieren. Das war ziemlich unpraktisch für Leute, die täglich mit Berichten umgehen. Deshalb haben wir uns entschlossen, Ausdrücke hinzuzufügen, die Sie vielleicht von anderen Produkten von FastReports kennen. Bitte, wenden Sie sich zu den erneuten Unterlagen von FastCube VCL und schauen Sie sich neue Beispiele an, um besser zu verstehen, was Ausdrücke sind und wie sie funktionieren. IgnoreCase-Option für Bereichsausdrücke Wir verwenden Bereichsausdrücke für benutzerdefinierte Dimensionsfilter und für Maß-Hervorhebungsregeln.  Seit dieser Version können Sie den Fall für Textvergleiche in Bereichsausdrücken ignorieren oder berücksichtigen. Sie können dies entweder im Code mit der Eigenschaft `Range.IgnoreCase` oder im Bereichseditor tun. Andere Änderungen * Die Methoden `TfcxCustomNodePopup.ExpandAll`,`TfcxCustomNodePopup.CollapseAll` wurden hinzugefügt. Die Eigenschaft `TfcxCustomGrid.AutoExpandPopups` (standardmäßig true) wurde hinzugefügt, die definiert, ob alle PopupWindows bei der Anzeige automatisch expandiert/komprimiert werden sollen. * Dem Indikator-Editor wurden Lösch-Schaltflächen hinzugefügt. * Datumsaufteilung auf halbes Jahr wurde hinzugefügt. Fixes * Fehler bei der Ladekarte für Lazarus wurde behoben. * Korrigierte Kompilierung für Lazarus/FPC. ### Inside of TrueType font URL: https://www.fast-report.com/de/blogs/font-truetype-from-inside Inside of TrueType font  Most used today font type is the TrueType fonts. TrueType technology was invented by Apple in late 1980. Now TrueType standard dominates over all other font types.  Are there any reasons to know what is font?  I know at least a single reason – embedding fonts into documents. Some document’s formats have ability to include TrueType fonts into documents for keeping look and consistency on all platforms. For example, PDF document may have an embedded font. Moreover, XPS document always includes one or more fonts.  The embedding fonts does not require knowledge of internal font’s structure, until time when you want reduce document size. Embedding single font may dramatically increase document size. Moreover, documents which include many fonts and huge Unicode fonts may overblow its size. This is a point to the need of the knowledge of an internal font structure.  What is TrueType file? This is a set of binary tables with vector’s graphics and font’s properties. Due to vector’s nature of the fonts, they can be easy scalable on various graphic devices.  Let see into Arial font of Windows 7. There are following tables inside it: As you can see, "glyf" table is a biggest table of font. This table consists of outlines and hinting definitions of all characters, number, signs, and eastern glyphs that defined in the font. The outlines of the characters are made of straight line segments and quadratic Bezier curves. Each glyph outlines followed by the hinting data. The hinting data is used for improving a visual appearance on devices with low DPI. The idea of fonts packing based upon removing unused glyphs from the “glyf” table.  The problem is that each glyph's record has its own size. In order to access a glyph's data an application must look in additional table - "loca". The "loca" table format is fairly simple – count of records match count of glyphs defined in the font. Each record is a glyph’s position of glyph's data within the "glyf" table. Let’s look on it: This table has additional feature – it is used to find of glyph data size. Subtraction position of next element from the position of current element gives the size of the glyph's data. For example, glyph on position 0 is 42 bytes length. If some glyph does not have outlines, then its ssize is zero. For example, glyphs at positions 1, 2, and 3 in table above do not have outlines information.  Different nations use different languages and alphabets. TrueType font can consist of different combinations of national alphabets. Procedure of getting font's outline from character code, uses an additional table - "cmap". All characters divided into segments, where each segment matches to one of alphabets that defined in font.  Let’s see on particular procedure for converting character’s code to outlines. First, we check "cmap" table and look for segment that matches the character code . Based on the segment’s data and the character code, simple formula give us index that points to record in the “loca” table. The “loca” record give us position and size of glyph data within the “glyf” table.  To reduce font size you should build dictionary of used characters and rebuild “glyf” and “loca” tables with help of that dictionary.  The glyph data may have no an outlines information, but may consist of several pointers to other glyphs. These glyphs called “the composed glyphs”. You should take this fact into consideration if you rebuild "loca" and "glyf" tables.  Therefore, three most important tables in TrueType fonts are “cmap”, “loca”, and “glyf”. What about other tables? All TrueType tables can be considered as necessary or an optional. We cannot remove the necessary tables, but can easily remove some optional tables. For example some fonts can have embedded bitmap data developed by artist for drawing on devices with low DPI. These tables can be safely removed from font with one side-effect – lost looking quality on low-resolution devices, like CRT or LCD monitors. However, you will never see differences of the packed fonts on modern printing devices (laser and inkjet printers).  One of important tables in the font is a “name” table. It stores various an user readable font properties. Here is example of some information of Arial’s name table. The indexToLocFormat and glyphDataFormat fields of the “head” tables defines the format of “loca” and “glyf” tables.  CreatedDateTime and ModifiedDateTime fields defines number seconds since January 1 of 1904.  xMin, xMax, yMin, and yMax fields define bounds for any glyph in font.  unisPerEm is an important field that defines how many dots is a width of the Latin M character. This value used by the font rendering engine for scaling font outlines to a device bitmap.  Only single field is important for the font packing purposes – indexToLocFormat. This field defines a record size of “loca” table. Zero value defines record type of “loca” table as a 16-bits unsigned integer. Value 1 defines record type of “loca” table as a 32-bits unsigned integer. Tags: MacOS, MacOS, Font embedding, Font embedding ### Installation FastQueryBuilder Trial URL: https://www.fast-report.com/de/blogs/installation-fastquerybuilder-trial FastQueryBuilder dient zur Erleichterung von der Erstellung der SQL-Anfragen. Mit dem graphicalen  Designer kann ohne irgendwelche Erfahrungen in SQL die Anfragen erstellen. Betrachten wir Schritt für Schritt die Installation von diesem Produkt: 1) Starten wir die Installationsdatei. Auf dem ersten Schritt brauchen wir die Sprache zur Lokalisierung zu wählen. Das wird  die Sprache für alle Zeichnen im Menü und Verknüpfungen im Programm. Klicken Sie weiter „Next“. 2) The second step is a warning about copyright. After reading press the "Next" button. Beim nächsten Schritt sehen Sie auf dem Bildschirm die Warnung über den Autorenrecht. Nach dem Lesen klicken Sie weiter „Next“. 3) Dann erscheint auf dem Bildschirm die Information über das Produkt. Klicken Sie weiter „Next“. 4) Auf dem vierten Schritt wählen Sie den Typ der Installation: „Full“ oder „Custom“. Standardmäßig wird der erste Typ gewählt. In diesem Fall werden alle Komponenten installiert. Bei der Variante „Custom“ können Sie mit der Hand wählen, was Sie genau brauchen. Weiter wird „Custom“ gewählt. Klicken Sie „Next“.   5) Auf dem fünften Schritt soll man wählen, welche Komponenten weiter installiert werden. Wenn Sie keine irgendwelchen Komponenten brauchen, dann deaktivieren Sie entsprechende Checkboxen. Klicken Sie „Next“. 6) Auf dem sechsten Schritt wählen Sie einen Ordner, in dem das Programm installiert wird. Standardmäßig wird das Programm in den Ordner „Program Files“ (in Windows x86) oder „Program Files (x86)“ (in Windows x64). Bestimmen Sie den Ordner und klicken Sie „Next“.  7) Auf dem siebenten Schritt wählen Sie die Gruppe, in der die Verknüpfung im Menü „Programs“ sein wird. Dieser Schritt kann verhindert sein. Klicken Sie „Next“.   8) Auf dem achten Schritt  wird das Installationsprozess gestartet. Klicken Sie „Next“ Betrachten Sie, wie Installationsprozess geht.   9) Auf dem neunten Schritt wird die Installation beendet. Klicken Sie „Finish“. Tags: FastQueryBuilder, FastQueryBuilder, Install, Install ### Installation FastReport Online Designer URL: https://www.fast-report.com/de/blogs/installation-fastreport-online-designer Summary: Dieser Artikel beschreibt, wie Sie FastReport Online Designer installieren, ein Werkzeug zum Erstellen und Bearbeiten von Berichten. Dieser Artikel beschreibt, wie Sie FastReport Online Designer installieren, ein Werkzeug zum Erstellen und Bearbeiten von Berichten. Dieser Artikel beschreibt, wie Sie FastReport Online Designer installieren, ein Werkzeug zum Erstellen und Bearbeiten von Berichten. Die Schritt-für-Schritt-Anleitung hilft Ihnen, schnell mit diesem System zu arbeiten. Für die Installation von FastReport Online Designer brauchen Sie zuerst mit der Hilfe von einem speziellen Tool erstes Compile vom Online Designer zu machen. Der Konstruktor ist auf der Entwicklers Seite verfügbar. Bei dieser Art der Installation können Sie solche Einstellungen im Designer machen, die Sie genau brauchen. 1) Starten Sie den Designer im Kundenpanel. Beim ersten Tab wählen Sie die graphische Gestalt vom Designer.  none – es gibt keinen „top toolbar” (ein oben ständiges Paneel); classic – ein vollständiger Report Designer; mini – der oben ständige Toolbar enthält einen minimalen Satz von den Instrumenten und Features. 2) Gehen Sie zum Tab „Configuration“, hier gibt es ein Paar Beschränkungen für den Reports Designer.  3) Im Tab „Components“ können Sie die Tasten, die Sie nicht brauchen, unsichtbar sein. Dazu brauchen Sie die entsprechenden Checkboxen auszuschalten. 4) On the "Bands" tab, you can turn off unnecessary items. Use the check boxes in front of them. Im Tab “Bands” können Sie unnötige Menüpunkten verhindern. Dazu verwenden Sie die Checkboxen gegenüber jedem Menüpunkt.  5) In the "Interactive Control" you can disable the unnecessary controls using checkboxes. Im Tab „Interactive Control“ können Sie unnötige Controls bei der Führung von entsprechenden Checkboxen ausschalten. 6) Im Tab „Settings“ können Sie einige Features vom FastReport Online Designer deaktivieren. Zum Beispiel, Sie können den Mechanismus der Arbeit mit den Daten vom Datenlager deaktivieren oder den Eventsbearbeiter ausschalten. 7) Wir beenden die Einsetzung der Einstellungen vom Tab „Plugins“. Hier kann man den Pakett „erleichtern“, wenn man das unnötige Funktionalität ausschaltet. 8) When you move to the last tab "Plugins" the button "Build" will appear in the lower right corner of the designer. Click on the button.  The message appears instead of the button: Wenn Sie auf dem „Plugins“ klicken, dann erscheint auf dem Bildschirm die Taste „Build“ in dem rechten Ecke. Klicken Sie auf diese Taste. Und jetzt sehen Sie eine Nachricht auf dem Screen.  Click on the link. Now the package is available for download. Klicken Sie auf den Link und das Pakett ist zum Download bereit.  Herunterladen Sie das Archiv. Extrahieren Sie es auf Ihre Web-Seite. Online Designer kann mit den Web Reports von FastReport .NET arbeiten.  Tags: FastReport, Online Designer, Install ### Installation FastReport VCL 6 Trial URL: https://www.fast-report.com/de/blogs/installing-fastreport-vcl-trial First of all you need to download the program from the developer’s site Run the installer. First we will see the welcome window. Click Next to continue the installation.  In the second step, we are invited to read the license terms. If you agree to these terms, tick the ‘I accept the terms of the license agreement’ box and click the Next button.  In the third step, you can familiarize yourself with important information about the FastReport VCL 6 product. Next, we can choose the type of installation: Complete and Custom. The first type allows you to install all program components by default, and the second one - select the necessary ones: Select the folder on the local disk where you want the program to be installed: Then, you can specify the name of the directory in which the launch shortcuts will be located. You also need to choose for which users the program is supposed to be installed. Either for one, current user, or for all. The next step is the last opportunity to think about whether you set all the installation settings correctly. If you are sure of the previous settings, click Next. Otherwise - Back to return to the previous step. After clicking the Next button, the program will be installed:  The last window informs you of the successful installation. Immediately after the installation is completed, a utility will be launched, which will allow compiling the FastReport libraries to the required Delphi version:  You can refuse to compile by clicking the Exit button, or accept using the Continue button: The compilation wizard allows you to set a lot of parameters: compiler, FastReport version, TeeChart charts component, change actions. By default, the FastReport libraries are already compiled, and this utility simply prompts you to compile them with your own settings. Tags: VCL, FastReport, Install ### Installation von FastReport .NET und ihren Komponenten unter Windows URL: https://www.fast-report.com/de/blogs/install-net-windows Summary: Schritt für Schritt Anleitung zur Online- und manuellen Installation über den Registrierungscode FastReport .NET und seine Komponenten in Windows. Schritt für Schritt Anleitung zur Online- und manuellen Installation über den Registrierungscode FastReport .NET und seine Komponenten in Windows. Schritt für Schritt Anleitung zur Online- und manuellen Installation über den Registrierungscode FastReport .NET und seine Komponenten in Windows. Um die FastReport.NET Software und ihre Komponenten zu installieren, laden Sie das Installationspaket aus cpanel herunter und starten Sie dieses. Wenn Sie ein Betriebssystem mit der Benutzerkontensteuerung (User Account Control) verwenden, wird Ihre Zustimmung benötigt, um die Software zu starten. Nach dem Start des Installationsprogramms wird ein Begrüßungsfenster mit der Schaltfläche „Autorisieren“ angezeigt. Klicken Sie auf die Schaltfläche „Autorisieren“. Im System wird die Standard-Webbrowser-Anwendung geöffnet. Geben Sie Ihren Benutzernamen und Ihr Passwort ein, um gekaufte Produkte zu autorisieren und darauf zuzugreifen. Nach der Autorisierung wird eine Meldung über eine erfolgreiche Autorisierung angezeigt. Sie können die Webbrowser-Anwendung schließen und zum FastReport .NET-Installationsprogramm wechseln. Wenn Sie sich nicht anmelden können, wenden Sie sich bitte an den technischen Support. Im nächsten Schritt lesen Sie die FastReport .NET Software-Lizenzvereinbarung sorgfältig durch. Die aktuelle Version der Lizenzvereinbarung finden Sie unter diesem Link. Wenn Sie mit den Bedingungen der Lizenzvereinbarung einverstanden sind, aktivieren Sie den Optionsschalter „Ich akzeptiere die Bedingungen der Lizenzvereinbarung“. Klicken Sie dann auf „Weiter“. Wenn Sie mit den Bedingungen der Lizenzvereinbarung nicht einverstanden sind, schließen Sie das FastReport.NET-Installationsprogramm und löschen Sie die heruntergeladenen Dateien. Im nächsten Schritt der Installation werden Sie eingeladen, am Programm zur Service- und Benachrichtigungsverbesserung der FastReports GmbH teilzunehmen. Dies wird uns helfen, die Produktqualität, die allgemeine Zuverlässigkeit und die Leistung aller Tools und Bibliotheken zu verbessern. Dieser Schritt ist optional, Sie müssen nicht unserem Programm beitreten. Wählen Sie je nach Ihrer Entscheidung „Ja“ oder „Nein“ und fahren Sie anschließend mit der Installation des Softwareprodukts fort. Wenn Sie dem Programm zur Service- und Benachrichtigungsverbesserung beitreten, übermittelt Ihr Computer oder Gerät automatisch Informationen über die Verwendung von Softwareentwicklungsprodukten und -technologien an die FastReports GmbH. Weitere Informationen zur Richtlinie zur Verarbeitung personenbezogener Daten finden Sie unter diesem Link. Wählen Sie das gewünschte Produkt im Fenster des Installationsprogramms aus. Die Meldungen „Nicht verfügbar“, „Eine alte Produktversion gefunden“ bedeuten, dass eine alte Version des Produkts von einem alten Installationsprogramm installiert wurde. Wenn Sie die alte Version aktualisieren möchten, schließen Sie das Installationsprogramm, deinstallieren Sie die alte Version mit den Standardwerkzeugen „Programme installieren und deinstallieren“ und starten Sie dann die Installation der neuen Version erneut. Wenn Sie diese Meldung erhalten, nachdem Sie alle alten Versionen deinstalliert haben, wenden Sie sich bitte an den technischen Support. Außerdem können Sie in diesem Schritt folgendes auswählen: Produktversion; Sources – Installation von Quellcodes; Examples – Berichtsvorlagen; Framework – Installation von lokalen .dll-Dateien. Anschließend können Sie den Pfad auswählen, in dem die FastReport .NET Software installiert werden soll. Klicken Sie nun auf „Weiter“, um den Installationsvorgang zu starten. Dies kann je nach den ausgewählten Komponenten und der Geschwindigkeit Ihrer Internetverbindung einige Zeit dauern. Hier können Sie den Ablauf der Installation überwachen. Nach der Installation aller ausgewählten Komponenten wird der Dialog zum Abschluss der Installation angezeigt. Um das Installationsprogramm zu schließen, klicken Sie auf die Schaltfläche „Beenden“. Offline Installation In seltenen Fällen muss die „FastReport.NET“ Software auf Computern ohne direkten Internetzugang offline installiert werden. Unser Installationsprogramm ermöglicht eine solche Installation mit der Fernaktivierung-Funktion. Zu Beginn benötigen Sie Datenpakete. Es wird daher empfohlen, eine Vorinstallation auf einem Computer mit Internetzugang durchzuführen. Wechseln Sie nach der Installation in das Installationsverzeichnis und kopieren Sie alle .dat-Dateien und die Datei setup.exe auf einen temporären Datenträger. Schließen Sie den temporären Datenträger an einen Computer ohne Internetzugang an und starten Sie die Installation. Wenn Sie sich nicht über das Internet anmelden können, wird das folgende Dialogfeld angezeigt. Aktivieren Sie die Option " Manuelle Anmeldung verwenden". Kopieren Sie anschließend den Schlüssel aus dem Feld "Anmeldungsdaten" und senden Sie ihn zusammen mit einer Aktivierungsanfrage an den technischen Support. Fügen Sie die Antwort des technischen Supports in das Feld „Anmeldungscode“ ein und klicken Sie auf „Weiter“. Der anschließende Installationsvorgang ähnelt der üblichen Installation der Software "Installation der FastReport.NET-Komponenten". Nach dem Abschluss der Installation von FastReport .NET und seinen Komponenten unter Windows können Sie dieses leistungsstarke Tool zur Erstellung von hochwertigen Berichten in den .NET-Anwendungen einsetzen. Vergessen Sie bitte nicht, dass FastReport .NET umfangreiche Anpassungs- und Berichterstellungsmöglichkeiten bietet, die es für Entwickler unentbehrlich machen. Nutzen Sie die Vorteile aller Funktionen, experimentieren Sie und erstellen Sie Berichte, die Ihre Bedürfnisse und Anforderungen widerspiegeln.  Wir wünschen Ihnen viel Spaß beim Arbeiten mit FastReport .NET! Tags: .NET, FastReport, Install, NuGet, Windows ### Installation von FastReport Desktop unter Windows und Linux URL: https://www.fast-report.com/de/blogs/install-desktop-windows-linux Summary: In diesem Artikel werden wir die detaillierten Schritte zur Installation, Einrichtung und Ausführung des FastReport Desktop-Installers anhand von Beispielen für jede Plattform erläutern. In diesem Artikel werden wir die detaillierten Schritte zur Installation, Einrichtung und Ausführung des FastReport Desktop-Installers anhand von Beispielen für jede Plattform erläutern. FastReport Desktop ermöglicht es Benutzern, in einer komfortablen Oberfläche lokal auf ihrem Windows- oder Linux-Computer mit Berichten und Daten zu arbeiten. Die Installation der Anwendung wird auf aktuellen Versionen beider Betriebssysteme unterstützt. In diesem Artikel werden wir die detaillierten Schritte zur Installation, Einrichtung und Ausführung des FastReport Desktop-Installers anhand von Beispielen für jede Plattform erläutern. FastReport Desktop ermöglicht es Benutzern, in einer komfortablen Oberfläche lokal auf ihrem Windows- oder Linux-Computer mit Berichten und Daten zu arbeiten. Die Installation der Anwendung wird auf aktuellen Versionen beider Betriebssysteme unterstützt. In diesem Artikel werden wir die detaillierten Schritte zur Installation, Einrichtung und Ausführung des FastReport Desktop -Installers anhand von Beispielen für jede Plattform erläutern. Online-Installation von FastReport Desktop unter Windows Um die FastReport Desktop-Software zu installieren, müssen Sie das Installationspaket in Ihrem  persönlichen Konto herunterladen und ausführen. Bei Verwendung eines Betriebssystems mit UAC (User Account Control) müssen Sie der Ausführung der Software zustimmen. In Ihrem System öffnet sich die Standard-Webbrowser-Anwendung. Verwenden Sie die Anmeldedaten Ihres Kontos, um sich zu autorisieren und Zugriff auf Ihre erworbenen Produkte zu erhalten. Nach erfolgreicher Autorisierung wird eine entsprechende Meldung angezeigt. Sie können nun die Webbrowser-Anwendung schließen und zurück zum FastReport Desktop-Installer wechseln. Wenn die Autorisierung fehlschlägt, wenden Sie sich bitte an den  technischen Support . Im nächsten Schritt lesen Sie bitte die Lizenzvereinbarung für die Nutzung der FastReport Desktop-Software. Die aktuelle Version der Lizenzvereinbarung finden Sie unter diesem Link https://www.fast-report.com/de/license/license-desktop Wenn Sie den Bedingungen der Lizenzvereinbarung zustimmen, aktivieren Sie bitte das Kontrollkästchen „Ich akzeptiere die Bedingungen der Lizenzvereinbarung“. Klicken Sie anschließend auf die aktive Schaltfläche „Weiter“. Wenn Sie mit den Bedingungen der Lizenzvereinbarung nicht einverstanden sind, schließen Sie den FastReport Desktop-Installer und löschen Sie die heruntergeladenen Dateien. Im nächsten Schritt der Installation werden Sie eingeladen, am Programm zur Service- und Benachrichtigungsverbesserung der Fast Reports Inc. teilzunehmen. Dies wird uns helfen, die Produktqualität, die allgemeine Zuverlässigkeit und die Leistung aller Tools und Bibliotheken zu verbessern. Dieser Schritt ist optional, Sie müssen nicht unserem Programm beitreten. Wählen Sie je nach Ihrer Entscheidung „Ja“ oder „Nein“ und fahren Sie anschließend mit der Installation des Softwareprodukts fort. Wenn Sie dem Programm zur Service- und Benachrichtigungsverbesserung beitreten, übermittelt Ihr Computer oder Gerät automatisch Informationen über die Verwendung von Softwareentwicklungsprodukten und -technologien an die Fast Reports Inc.. Weitere Informationen zur Richtlinie zur Verarbeitung personenbezogener Daten finden Sie  unter diesem Link . Wählen Sie das gewünschte Produkt im Fenster des Installationsprogramms aus. Die Meldungen „Nicht verfügbar“, „Eine alte Produktversion gefunden“ bedeuten, dass eine alte Version des Produkts von einem alten Installationsprogramm installiert wurde. Wenn Sie die alte Version aktualisieren möchten, schließen Sie das Installationsprogramm, deinstallieren Sie die alte Version mit den Standardwerkzeugen „Programme installieren und deinstallieren“ und starten Sie dann die Installation der neuen Version erneut. Wenn Sie diese Meldung erhalten, nachdem Sie alle alten Versionen deinstalliert haben, wenden Sie sich bitte an den technischen Support technischen Support . Zusätzlich können Sie in dieser Phase die Produktversion auswählen. Anschließend können Sie den Installationspfad für die FastReport Desktop-Software festlegen. Nun ist alles bereit für die Installation. Klicken Sie auf „Weiter“, um den Installationsprozess zu starten. Dies kann je nach gewählten Komponenten und Ihrer Internetverbindungsgeschwindigkeit einige Zeit in Anspruch nehmen. In dieser Phase können Sie den Fortschritt verfolgen. Nach der Installation aller ausgewählten Komponenten wird der Abschlussdialog angezeigt. Um den Installer zu schließen, klicken Sie auf die Schaltfläche „Beenden“. Offline-Installation von FastReport Desktop unter Windows In seltenen Fällen, beispielsweise für die Installation der FastReport Desktop-Software auf Computern ohne direkten Internetzugang, ist eine Offline-Installation mit späterer Aktivierung erforderlich. Unser Installer ermöglicht eine solche Installation. Zunächst benötigen Sie die Datenpakete. Daher wird empfohlen, eine Vorabinstallation auf einem Computer mit Internetzugang durchzuführen. Navigieren Sie nach der Installation zum Installationsverzeichnis und kopieren Sie alle .dat-Dateien sowie die Datei setup.exe auf ein Wechselmedium. Schließen Sie den temporären Datenträger an einen Computer ohne Internetzugang an und starten Sie die Installation. Wenn Sie sich nicht über das Internet anmelden können, wird das folgende Dialogfeld angezeigt.  Aktivieren Sie die Option „Manuelle Anmeldung verwenden“. Kopieren Sie anschließend den Schlüssel aus dem Feld „Anmeldungsdaten“ und senden Sie ihn zusammen mit einer Aktivierungsanfrage an den technischen Support .  Fügen Sie die Antwort des technischen Supports in das Feld „Anmeldungscode“ ein und klicken Sie auf „Weiter“. Der anschließende Installationsvorgang ähnelt der üblichen Installation der Software „Installation der FastReport Desktop-Komponenten“. Deinstallation von FastReport Desktop  Die Deinstallation erfolgt über die Standard-Windows-Funktionen („Einstellungen > Apps “. Wählen Sie die entsprechende App aus und klicken Sie auf „Deinstallieren“). Installation von FastReport Desktop unter Linux Um die FastReport Desktop-Software zu installieren, müssen Sie das Installationspaket in Ihrem persönlichen Konto herunterladen. Es stehen folgende Paketvarianten zur Verfügung: deb und rpm, jeweils für die Architekturen x64 und arm64. Laden Sie die für Ihre Linux-Distribution unterstützte Paketvariante herunter: deb (Ubuntu, Mint). rpm (RedHat, CentOS, SUSE, Fedora). Starten Sie die Paketinstallation (beachten Sie, dass dafür das Administratorkennwort benötigt wird): durch Doppelklick auf die heruntergeladene Datei (falls vom Fenstermanager unterstützt);  oder über die Konsole, indem Sie den entsprechenden Installationsbefehl ausführen (abhängig vom Paketmanager Ihrer Distribution). Nachfolgend finden Sie Installationsbefehle für verschiedene Distributionen: Ubuntu, Mint: sudo apt install ./fastreport-desktop-professional_ru-2026.1.0-x64.deb Fedora: sudo dnf install ./fastreport-desktop-professional_ru-2026.1.0-x64.rpm Nach der Paketinstallation wird die Anwendung „FastReport Desktop Installation/Deinstallation“ zum Anwendungsmenü hinzugefügt. Der genaue Ort hängt vom verwendeten Fenstermanager Ihrer Distribution ab: Ubuntu, Fedora: In der allgemeinen Anwendungsliste; RedHat: Im Anwendungsmenü in der Kategorie „Andere“; Starten Sie diese Anwendung, um die Installation abzuschließen. Wählen Sie im ersten Schritt die Aktion „Komponenten installieren“ und klicken Sie auf „Weiter“. Im zweiten Schritt markieren Sie die erforderlichen Komponenten und klicken auf „Fertig“. Deinstallation von FastReport Desktop unter Linux Verwenden Sie zum Entfernen der installierten Anwendung das Programm „FastReport Desktop Installation/Deinstallation“. Wählen Sie im ersten Schritt die Aktion „Komponenten/Programm deinstallieren“ und klicken Sie auf „Weiter“. Im zweiten Schritt wählen Sie die notwendigen Komponenten, aktivieren das Kontrollkästchen „Programm deinstallieren“ und klicken Sie auf „Fertig“. Das System fordert das Administratorkennwort an und deinstalliert das installierte Paket. Manuelle Deinstallation von FastReport Desktop unter Linux Der Paketname für FastReport Desktop lautet `fastreport-desktop` . Verwenden Sie zum Entfernen des Pakets den für Ihre Linux-Distribution spezifischen Paketmanager. Nachfolgend finden Sie Deinstallationsbefehle für verschiedene Distributionen: Ubuntu, Mint: sudo apt remove fastreport-desktop Fedora: sudo dnf remove fastreport-desktop Bereinigung benutzerspezifischer Dateien unter Linux FastReport Desktop speichert benutzerspezifische Dateien an folgenden Orten. Sie können diese bei Bedarf löschen.  Konfiguratisdateien: ~/.local/share/FastReport Berichte, Aufgaben, Zeitpläne, Protokolle: ~/FastReport Fazit Nachdem die Installation von FastReport Desktop abgeschlossen ist, können Sie mit der Nutzung dieses leistungsstarken Tools zur Erstellung hochwertiger Berichte beginnen. Denken Sie daran, dass FastReport Desktop umfangreiche Anpassungs- und Generierungsmöglichkeiten bietet, die es für Benutzer unverzichtbar machen. Nutzen Sie alle seine Funktionen, experimentieren Sie und erstellen Sie Berichte, die genau Ihren Anforderungen entsprechen. Tags: FastReport, Linux, Install, Desktop, Windows ### Installation von FastReport Mono aus DEB- und RPM-Paketen auf dem Linux Betriebssystem URL: https://www.fast-report.com/de/blogs/mono-install-deb-rpm-linux Summary: 2 schritt-für-Schritt-Anleitung zur Installation von FastReport Mono in gängigen Linux-Distributionen über die Konsole und den Paketinstallations-Manager. 2 schritt-für-Schritt-Anleitung zur Installation von FastReport Mono in gängigen Linux-Distributionen über die Konsole und den Paketinstallations-Manager. 2 schritt-für-Schritt-Anleitung zur Installation von FastReport Mono in gängigen Linux-Distributionen über die Konsole und den Paketinstallations-Manager. Die Softwareinstallation ist einer der wichtigsten Schritte bei der Arbeit mit dem Linux Betriebssystem. Es gibt derzeit zwei gängigste Methoden, Software zu installieren. DEB ist ein Paket, das in Betriebssystemen wie Debian, sowie in darauf basierenden Unterarten, nämlich Ubuntu, Kali, Mint, etc. verwendet wird. Das RPM-Paket wurde von dem Unternehmen Red Hat entwickelt und wird in allen von Red Hat abgeleiteten Betriebssystemen (CentOS, Rosa) verwendet. Aus der Sicht des Benutzers gibt es keinen großen Unterschied zwischen diesen beiden Paketen. Beides sind nur Archive, und die größten Unterschiede liegen in den Metadaten des Paketverwaltungssystems. Was FastReport Mono betrifft, unterstützt er die Installation über alle in diesem Artikel vorgestellten Pakettypen. Nachfolgend beleuchten wir die Vorgehensweise, wie sie installiert werden. Gehen Sie zunächst auf die Downloadseite von  FastReport Mono . Als nächstes laden Sie je nach der Distribution das RPM- bzw. DEB-Paket herunter. In den folgenden Beispielen wird beschrieben, wie diese Pakete installiert werden. Fangen wir mit dem DEB am Beispiel des Ubuntu 20.04 an. Nach dem Herunterladen finden Sie das heruntergeladene Paket im Verzeichnis home/downloads . Es gibt mehrere Methoden, ein DEB-Paket zu installieren. Die erste und einfachste Methode ist, das Programm über den Installationsmanager auszuführen. Nach dem Öffnen erscheint der Standardbildschirm des Paketmanagers. Hier können Sie die Version von FastReport Mono und die Größe des Archivs herausfinden. Die Beschreibung enthält auch Informationen über den Speicherort, an dem das installierte Paket liegt. Drücken Sie die Schaltfläche Installieren und wechseln Sie dann in das Verzeichnis /usr/share/fastreport-mono-demo/Demo Es gibt auch eine andere Methode, das Paket über die Konsole zu installieren. Wechseln Sie in das Verzeichnis mit dem heruntergeladenen Paket und geben Sie den folgenden Befehl ein:  ``` sudo apt install ./fastreport-mono-demo_all.deb ``` Schauen wir uns nun die Installation des RPM-Pakets an. Nehmen wir CentOS 8 als Beispiel. Nach dem Herunterladen des RPM-Pakets verfügen wir ebenso über mehrere Methoden, es zu installieren. Betrachten wir zunächst die Methode zur Installation über den Paketmanager. In diesem Fenster werden auch Details zum RPM-Paket angezeigt. Nach der Installation des Pakets befindet sich die Anwendung in dem Verzeichnis  /usr/share/fastreport-mono-demo/Demo Wie im Falle des DEB-Pakets gibt es auch hier eine Methode, es über die Konsole zu installieren. Starten Sie einfach das Terminal und wechseln Sie in das Verzeichnis, in dem das RPM-Paket installiert wurde. Geben Sie dann den folgenden Befehl in der Konsole ein: ``` sudo yum install fastreport-mono-demo_X86_64.rpm ``` Fassen wir zusammen, die Handhabung von RPM- und DEB-Paketen ist sehr ähnlich, abgesehen von den kleinen Installationsbefehlen von Paketen. Das liegt vor allem daran, dass diese Betriebssysteme über unterschiedliche Paketmanager verfügen. Wenn Sie weitere Fragen haben, wenden Sie sich bitte an unser Support-Team . Tags: Mono, FastReport, Linux, Install, ROSA Linux, Ubuntu ### Installation von FastReport- und FastCube-Komponenten in Lazarus URL: https://www.fast-report.com/de/blogs/installing-fastreport-lazarus Summary: Anleitung zur Installation von FastReport in Lazarus für verschiedene Betriebssysteme mit einem Vergleich der Trial, Professional-Editionen. Anleitung zur Installation von FastReport in Lazarus für verschiedene Betriebssysteme mit einem Vergleich der Trial, Professional-Editionen. Anleitung zur Installation von FastReport in Lazarus für verschiedene Betriebssysteme mit einem Vergleich der Trial, Professional-Editionen. In der neuen Version 2023.3 für Delphi wurden Änderungen an der internen Infrastruktur der Produkte vorgenommen. In diesem Artikel wird die Installation der FastReport-Komponenten in Lazarus beschrieben. Inhalt des Artikels: 1. Was gibt's Neues? 2. Vergleich von Editionen und Produkten; 3. Installation der Produkte in Lazarus; 3.1 Lazarus Installation unter Windows; 3.2 Lazarus Installation unter Linux; 3.3 Installation der Pakete unter Windows; 3.4 Installation der Pakete unter Linux. Was gibt's Neues? Das FastReport Produkt für die Berichterstellung besteht aus mehreren Komponenten, insbesondere einer Skript-Engine, einem Berichtsgenerierungskern und Lokalisierungspaketen. Diese Komponenten werden sowohl in Rad Studio als auch in Lazarus eingesetzt. Lazarus verfügt nun über neue Pakete. Früher erforderte ein Sprachenwechsel eine umfangreiche Neukompilierung, aber jetzt haben wir das frLocalizationLibrary.lpk Paket, das den Sprachwechsel steuert. Jede Sprache stellt ein separates Paket dar, zum Beispiel frLanguageGermanPkg.lpk, frLanguageJapanesePkg.lpk, … Englisch ist nach wie vor standardmäßig ausgewählt, daher gibt es kein separates Sprachpaket für Englisch. Um die Sprache zu ändern, müssen Sie nicht mehr die Anwendung neu zu starten. Die Sprache kann direkt im laufenden Betrieb geändert werden. Um die Sprache zu ändern, müssen Sie: 1. die TfrLocalizationController Komponente dem Formular hinzufügen (aus dem frLocalizationLibrary.lpk Paket); 2. in ihrer Language Eigenschaft die gewünschte Sprache auswählen (zum Beispiel, Italian), die Liste der Sprachen hängt von den in der IDE installierten Paketen ab; 3. ein Sprachpaket dem Projektinspektor hinzufügen (zum Beispiel, frLanguageItalianPkg); 4. im Code der Haupteinheit im Abschnitt „uses“ den Paketnamen ohne die Pkg- Endung hinzufügen (zum Beispiel, frLanguageItalian). Außerdem wurden die frCoreLibrary.lpk und frGraphicsLibrary.lpk Pakete zugewiesen, die keine neuen Komponenten hinzufügen, sondern einen gemeinsamen Code für verschiedene Produkte speichern. Der Einfachheit halber werden alle Pakete mit der .lpk-Erweiterung in einem Verzeichnis gesammelt. Jetzt müssen die Benutzer Ordner nicht mehr manuell nach bestimmten Paketen durchsuchen. Die restlichen Dateien werden wie bisher in Verzeichnisse verteilt, da dies für Lazarus selbst notwendig ist. Darüber hinaus wurde das FastCube-Produkt für die Lazarus-Plattform angepasst. Weitere Informationen zum FastCube-Produkt finden Sie unter diesem  Link . Versuchen Sie, FastCube mithilfe von Testkomponenten in Ihr Projekt zu integrieren. Vergleich von Editionen und Produkten  Betrachten wir die Produkte mit den darin enthaltenen Paketen, um den Vergleich zu erleichtern. Paket Paketbeschreibung FastScript FastReport FastCube fs_lazarus.lpk Skriptbibliothek + + + frCoreLibrary.lpk Hilfspaket mit der Ausführung gemeinsamer Grundfunktionen + + + frLocalizationLibrary.lpk Paket zur Sprachverwaltung  + + + frLanguage*Pkg.lpk 40 Sprachpakete + + + frGraphicsLibrary.lpk Hilfspaket mit der Ausführung allgemeiner grafischer Funktionen - + - fr_lazarus.lpk Paket mit allen wichtigen Produktkomponenten - + - frxchartlazarus.lpk Chart-Paket (Diagramme) - + - frxe_lazarus.lpk Paket mit Exporten - + - frxlazdbf.lpk Paket für die Arbeit mit Datenbanken im BDF-Format - + - frxlazsqlite.lpk Paket für die Arbeit mit SqLite- Datenbankverwaltungssystemen - + - frxPDFlazarus.lpk Paket zur Anzeige von PDF-Dokumenten (nur Windows) - + - frxrichlazarus.lpk Paket zur Anzeige von Rich -Dokumenten (aufgrund der  Einschränkungen des Basispakets  ur für Windows empfohlen) - + - frCS_lazarus.lpk Paket mit Client-Server-Komponenten, mit denen Sie sich  hier  vertraut machen können  - +* - fcxLazarus.lpk Paket mit allen Hauptproduktkomponenten - - + fcxprint.lpk Paket zur FastReport-Integration - - + fcxprintTee.lpk Paket zur FastReport Chart-Integration - - + fcxScript.lpk Paket zur FastScript-Integration - - + fcxexport.lpk Paket mit FastCube-Exporten - - + fcxCharting.lpk Paket für Charts in FastCube - - + *Client-Server-Komponenten sind in FastReport nur in der Enterprise-Lizenz enthalten. Nachstehend betrachten wir zusätzlich die Trial- und Academ-Lizenzen der jeweiligen Produkte. Um ein Produkt vor dem Kauf zu testen, ist eine Trial-Lizenz erforderlich, die Academ-Lizenz wird für Bildungszwecke und nicht für kommerzielle Projekte verwendet. Beide Lizenzen enthalten vorkompilierte Versionen von reduzierten Paketen. Die FastScript Trial-Lizenz hat eine Einschränkung: Das Ausführen von Skripten ist nicht möglich. Die Einschränkungen der FastReport Trial-Lizenz sind: - Nur Englisch; - Das Drucken und Exportieren ist auf 5 Seiten beschränkt, mit einem Hinweis in der Ecke, dass es sich um eine Testversion handelt; - kein Rich View. Die Einschränkungen der FastReport Academ-Lizenz sind: - Druckausgabe und Export sind mit dem Wasserzeichen der Redaktion versehen; - Rich View, 2D-Barcodes, die meisten Exporte fehlen. FastCube Trial hat eine Einschränkung: Der Text „TrialString“ wird in zufälligen Zellen anstelle von Daten angezeigt. FastReport Installation in Lazarus Beginnen Sie mit der Installation von Lazarus selbst. Ganz am Anfang müssen Sie die Software für Ihr Betriebssystem installieren. Lazarus Installation unter Windows  Laden Sie zunächst das Lazarus-Installationspaket von der offiziellen Website ( https://www.lazarus-ide.org/ ) herunter und wählen Sie die Bit-Anzahl Ihres Systems. Für Windows passt der Lazarus-Installer in nur eine .exe-Datei und es sollte damit keine Probleme geben. Als Nächstes laden Sie die erforderliche Version des Archivs von der offiziellen Website ( https://www.sqlite.org/download.html ) herunter. Kopieren Sie den Inhalt des heruntergeladenen Archivs nach C:Windows\System32 und C:\Lazarus, dann starten Sie Windows neu. Anschließend starten Sie Lazarus und konfigurieren Sie es. Klicken Sie einfach auf "ok" und akzeptieren Sie die Standardeinstellungen. Lazarus Installation unter Linux Es gibt zwei Möglichkeiten, Lazarus unter Linux zu installieren. Die erste Möglichkeit ist die Installation mit dem Paketmanager . Geben Sie dazu einen der folgenden Befehle in das Terminal ein: ``` // DEB Users - sudo apt-get install lazarus // RPM Users - sudo yum install lazarus // or sudo dnf install lazarus ``` Dies ist sehr schnell und einfach, aber dieser Befehl wird eine "stabile" Version von Lazarus installieren (d.h. die letzte getestete Version ihrer Distribution, und dies wird von Distribution zu Distribution variieren). Die stabile Version kann hinter der aktuellen (neuesten) Version zurückbleiben. Im Gegensatz zu Delphi und Rad Studio unterstützen unsere Komponenten keine älteren Versionen von Lazarus. Daher ist es möglich, dass unsere Produkte unter einer stabilen Version nicht funktionieren. Und was Lazarus betrifft, werden unsere Komponenten nur auf der aktuellen Version von Lazarus entwickelt. Dies gilt insbesondere für größere (Release) Updates von Lazarus. Wenn sich die stabile Version geringfügig von der aktuellen unterscheidet, besteht eine hohe Wahrscheinlichkeit, dass unsere Komponenten korrekt funktionieren. Unser Unternehmen übernimmt keine Verantwortung für die korrekte Funktion dieser Version. Sie als Benutzer tun dies "auf eigene Gefahr". Im schlimmsten Fall verlieren Sie ein bisshen Zeit, um Lazarus auf die aktuelle Version zu aktualisieren. Dies ist jedoch noch wichtiger in Bezug auf vorkompilierte Komponenten (Trial- und Academ-Editionen). Das wichtigste Merkmal vorkompilierter Pakete in Lazarus ist, dass sie nur auf der Version von Lazarus laufen, auf der sie kompiliert wurden (also der aktuellen Version). Daher empfehlen wir Ihnen die zweite Möglichkeit, nämlich die manuelle Installation der Pakete. Wie unter Windows laden Sie zunächst das Lazarus-Installationspaket von der offiziellen Website ( https://www.lazarus-ide.org/ ) herunter. Jedes Element in dieser Liste besteht aus 4 Dateien (3 Installationspakete und eine Textdatei). - Lazarus(project) Installationspaket; - fpc-src Installationspaket; - fpc(laz) Installationspaket; - README.txt-datei. Es ist wichtig, sie in der richtigen Reihenfolge zu installieren . Zuerst fpc(laz), dann fpc-src und zuletzt Lazarus(project). Betrachten wir den Installationsprozess selbst ein wenig genauer. Es geht darum, dass das letzte Lazarus(project) Paket in den meisten Distributionen etwa 100 fehlende Abhängigkeiten aufweisen wird. Es ist daher am einfachsten, Pakete über eine grafische Hilfsanwendung (wie QApt oder GDebi) zu installieren, die die erforderlichen Hilfspakete selbstständig herunterlädt. Wenn Sie jedoch einfachere Dienstprogramme verwenden, die Abhängigkeiten nicht automatisch herunterladen (wie dpkg), müssen Sie diese nach der Installation selbst installieren. Dies geschieht oft sehr einfach. In unserem Beispiel müssen Sie nach der Installation eines Pakets mit einer Fehlermeldung über nicht aufgelöste Abhängigkeiten nur den folgenden Befehl eingeben: ``` sudo apt-get -f install ``` Damit ist die Installation von Lazarus unter Linux abgeschlossen. Im Vorfeld müssen wir das Problem mit den Schriftarten beheben. Alle Betriebssysteme verfügen über Schriftarten, die standardmäßig installiert sind. So ist beispielsweise die Schriftart Arial sowohl unter Windows als auch unter Ubuntu die Standardschrift. Aber tatsächlich ist die unter Ubuntu installierte Standard-Arial nicht die gleiche Arial, die unter Windows installiert ist, so dass Textberichte, die in Windows Lazarus erstellt werden, in Linux Lazarus schlecht aussehen (und umgekehrt). Um dies zu vermeiden, installieren Sie unter Linux die gleichen Schriftarten wie unter Windows. Unter Ubuntu kann dies mit dem Befehl erfolgen: ``` sudo apt-get install msttcorefonts ``` Bei anderen Linux-Distributionen kann der Befehl jedoch anders lauten. Für die korrekte Funktion von SqLite müssen Sie außerdem die folgenden Pakete installieren: sqlite3, libsqlite3-dev. Mehr können Sie hier lesen. ( https://wiki.freepascal.org/SQLite ). Unter Ubuntu kann dies mit dem Befehl erfolgen: ``` sudo apt-get install sqlite3 libsqlite3-dev ``` Starten Sie Lazarus und konfigurieren Sie es. Klicken Sie auf "ok" und akzeptieren Sie die Standardeinstellungen. Installation der Pakete unter Windows Unser neues Windows-Installationsprogramm wird alle Pakete für Sie installieren. Führen Sie ihn einfach aus und folgen Sie den Anweisungen. Es ist erwähnenswert, dass Sie nicht überall auf ihrem Computer nach Lazarus Verzeichnissen suchen müssen, sondern einfach die Konfigurationsdateien benutzen, die bei der Installation von Lazarus erzeugt werden. Also wird unser Installationsprogramm nicht in der Lage sein, ihre 2 oder 3 Lazarus zu finden, die sie von Hand kopiert haben. Wenn Sie mehrere Lazarus auf ihrem Gerät haben möchten und jedes über Fastreport oder ein anderes unserer Produkte verfügen sollte, führen Sie zum Installieren einer zweiten Kopie von Lazarus das Lazarus-Installationsprogramm aus und aktivieren Sie das Kontrollkästchen „Mehrfachinstallation“. Installation der Pakete unter Linux Für Linux müssen Sie das entsprechende .deb- oder .rpm-Paket von der offiziellen Website herunterladen und installieren. Im Moment werden sie einfach in den entsprechenden Ordner im Verzeichnis „/usr/share/...“ entpackt. Das Verzeichnis ist in der Beschreibung des Pakets selbst angegeben. Unter Linux ist die automatische Installation der Pakete analog wie unter Windows noch nicht geplant. Wenn Sie Linux-Neulinge sind, empfehlen wir Ihnen, das entpackte Produkt in Ihr Home-Verzeichnis (“/home/username/”) zu kopieren, um sich nicht mit Zugriffsrechten herumschlagen zu müssen. Wie bereits oben erwähnt, werden alle .lpk-Dateien im Ordner "Lpks" gesammelt. Um Pakete zu installieren, klicken Sie auf Paket (Package) -> Paketdatei *.lpk öffnen (Open Package File .lpk), wählen Sie das Paket im Dateimanager aus und es erscheint das folgende Fenster: Klicken Sie darin für Professional und höher auf Kompilieren (Compile), warten Sie, bis die Kompilierung abgeschlossen ist, und klicken Sie auf Verwenden(Use). Für Academic und Trial klicken Sie sofort auf Verwenden(Use). Lazarus wird nach der Installation jedes Pakets neu starten. Zuvor haben wir eine strenge Reihenfolge für die Installation von Paketen festgelegt. Aus verschiedenen Gründen (zunehmende Anzahl von Paketen, komplexere Beziehungen zwischen den Paketen und die Tatsache, dass sie sich alle im selben Ordner befinden) ist dieser Ansatz jedoch irrelevant geworden. Sie können das Paket, das in den Abhängigkeiten des Pakets angezeigt wird, das Sie installieren möchten, leicht finden. Sie können jedoch alle Pakete auf einmal installieren, und Lazarus wird die Kompilierreihenfolge selbst verwalten. Dazu müssen Sie: 1. in Lazarus “Paket” -> “ Paketdatei (.lpk) öffnen” auswählen; 2. alle gewünschten Pakete markieren und auf “Öffnen” klicken; 3. “Paket” -> “Pakete installieren/löschen” auswählen; 4. In der Spalte "Zur Installation verfügbar“(rechts) die gewünschten Pakete auswählen; 5. Auf “ Speichern und IDE neu starten” klicken. Vor Version 2.0.0 traten sehr häufig Kompilierungs- und (oder) Installationsfehler auf. Zum Zeitpunkt der Erstellung dieses Dokuments ist die neueste Version 2.2.6 erschienen und wir haben diese Fehler in Lazarus noch nicht vollständig behoben, aber ihre Wahrscheinlichkeit stark reduziert. Wenn eines Ihrer Pakete nicht kompiliert oder installiert werden kann, müssen Sie nach unten gehen und die Abhängigkeiten des Pakets neu kompilieren oder neu installieren. Doppelklicken Sie dazu auf das gewünschte Paket, kompilieren Sie es neu und installieren Sie es anschließend erneut. Klicken Sie nach der erfolgreichen Installation aller Pakete auf Projekt (Project) -> Projekt öffnen (Open Project) und öffnen Sie das fast-report\LDemo\FRDemo.lpi-Projekt und versuchen Sie es auszuführen, dann klicken Sie auf Design. Wenn unter Linux ein negativeк Höhenfehler wie unten dargestellt auftritt, machen Sie sich keine Sorgen: In einigen seltenen GTK-Schnittstellen kann dieser Bug auftreten. Führen Sie die Anwendung einfach ohne Debugging aus oder aktivieren Sie das Kontrollkästchen „Diesen Ausnahmentyp ignorieren“. *Oder wechseln Sie die grafische Shell. In der GTK-Shell von KDE Plasma tritt dieser Fehler zum Beispiel nicht auf. Eine letzte Kleinigkeit, die Sie bei der Erstellung Ihrer Projekte wissen sollten, ist, dass unser Designer Multithreading verwendet, welches standardmäßig in Linux Lazarus deaktiviert ist. Um es zu aktivieren, öffnen Sie die Datei mit der .lpr-Erweiterung im Projektinspektor (Projekt -> Projektinspektor) und fügen sie die cthreads Einheit zum ersten Punkt in uses hinzu. Tags: VCL, FastCube, Lazarus, FastReport, Linux, Install, Delphi, Academic, Windows ### Installation von FastReport.Mono unter CentOS7 URL: https://www.fast-report.com/de/blogs/installation-mono-centos7 Es ist bekannt, dass die Installation der Programme unter Linux OS beim Verwenden der Сommand Line aus Repository durchgeführt ist. Aber heutzutage viele Linux Systeme haben visuelle  Repositories, zum Beispiel, Ubuntu Software Center. Für diesen Artikel wählen wir die erste Variante. Für die Arbeit mit Report Generator FastReport.Mono brauchen Sie eine Entwicklungsüberfläche. Und es gibt nicht so viele Variante - monoDevelop. In diesen IDE kompilieren Sie FastReport.Mono Projecte oder erstellen Ihre eigene Projekte beim Verwenden der Componente. Wir installieren monoDevelop. Dazu brauchen wir einen Root User zu aktivieren, weil nur dieser User einen Recht zur Installation der Programme hat. Dies kann beim werden der su Kommande durchgeführt werden. Weiter soll das Kennwort eingegeben werden. Als erte Schritte fügen wir die Repository hinzu, aus der monoDevelop installert wird: rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF" Wir starten die Kommande: su -c 'curl https://download.mono-project.com/repo/centos7-vs.repo | tee /etc/yum.repos.d/mono-centos7-vs.repo' Und betrachten, wie die notwendige zum Download Links registriert wurden. Wir sollen monoDevelop installieren und starten die Kommande yum install monodevelop. Nach dem Aufruf der Kommande wird der Installation-Progress angesehen: Weiter sollen wir der Installation zustimmen, die Tasten y und Enter tippen. Die Installation ist beendet. Jetzt installieren wir FastReport.Mono von der Seite des Herstellers. When Sie nur Testen brauchen, können Sie kostenfrei Demo Version verwenden. Das Demo hat alle Features aber die Zahl der Report Seiten ist beschränkt. Wir klicken auf Demo Version und sehen eine kurze Beschreibung mit dem Download Link und dem Link zur Lizenz Vereinbarung. Nach dem Klick auf Demo Version wird die Archive Datei mit den Bibliotheken und Projekten von FastReport.Mono heruntergeladen. Wir extrahieren den Enthalt der Archive Datei in einen passenden Ordner. Wir öffen weiter den Terminal mit diesem Order und starten die Application Demo.exe und tippen folgende Kommande: Wir starten das Demo von FastReport.Mono, das zum Demo von FastReport.Net ählich ist: Tags: Mono, Mono, FastReport, FastReport ### Installieren des FastReport .NET-Berichtsdesigners mit vorinstallierten Plugins URL: https://www.fast-report.com/de/blogs/designer-net-with-plugins Summary: Lesen Sie den Artikel ab Version 2025.2.5 für FastReport .NET WinForms und FastReport .NET WEB ermöglicht es Ihnen, einen Berichtsdesigner mit allen Plugins zu installieren, ohne DLL-Dateien zu erstellen. Lesen Sie den Artikel ab Version 2025.2.5 für FastReport .NET WinForms und FastReport .NET WEB ermöglicht es Ihnen, einen Berichtsdesigner mit allen Plugins zu installieren, ohne DLL-Dateien zu erstellen. Der FastReport .NET Designer ist ein hervorragendes Tool zum Erstellen von Berichtsvorlagen. Als Datenquellen können verschiedene Datenbanken und Dateitypen verwendet werden. Standardmäßig unterstützt der Standarddesigner XML-, CSV-, JSON-, MS Access-, OLE DB-, ODBC- und MS SQL-Datenquellen. Über separate Plugins unterstützt der Berichtsdesigner außerdem Postgres-, MySQL-, Firebird-, MongoDB-, Oracle-, SQLite-, Couchbase-, RavenDB-, Excel- und ClickHouse-Datenquellen. Der FastReport .NET  Designer ist ein hervorragendes Tool zum Erstellen von Berichtsvorlagen. Als Datenquellen können verschiedene Datenbanken und Dateitypen verwendet werden. Standardmäßig unterstützt der Standarddesigner XML-, CSV-, JSON-, MS Access-, OLE DB-, ODBC- und MS SQL-Datenquellen. Über separate Plugins unterstützt der Berichtsdesigner außerdem Postgres-, MySQL-, Firebird-, MongoDB-, Oracle-, SQLite-, Couchbase-, RavenDB-, Excel- und ClickHouse-Datenquellen. Die Installation dieser Plugins kann jedoch eine Herausforderung sein. Für jeden Verbindungstyp müssen Sie ein Projekt herunterladen, erstellen und im Designer oder in Ihrem Projekt konfigurieren. Für Programmierer ist dies eine einfache Aufgabe, sie müssen einfach das NuGet-Paket einbinden. Aber auch hier können Probleme auftreten. Für normale Benutzer ohne Programmiererfahrung ist es komplizierter. Zunächst müssen Sie Visual Studio installieren, falls es noch nicht installiert ist. Laden Sie anschließend das Plugin-Projekt herunter, öffnen Sie es in Visual Studio, korrigieren Sie die Links und installieren Sie gegebenenfalls zusätzliche Bibliotheken. Nach der Erstellung des Plugins erhalten Sie eine DLL-Datei. Starten Sie anschließend den FastReport .NET Designer, gehen Sie zu den Einstellungen, fügen Sie die DLL-Datei zur Registerkarte „Plugins“ hinzu und starten Sie den Designer neu. Trotz der ausführlichen Anleitung können jederzeit Fehler auftreten, deren Behebung Zeit und Aufwand erfordert. Installation sofort mit Plugins Wir haben das Leben der Benutzer einfacher gemacht. Jetzt müssen sie nicht die Plugins selbst installieren. Ab Version 2025.2.5 können die WinForms- und Web-Versionen von FastReport .NET mit allen Plugins oder nur mit den Standardverbindungen wie bisher installiert werden. Sie können beide Versionen installieren, wenn Sie dies bevorzugen, aber das ist wenig sinnvoll. Bei der Installation von  FastReport .NET WinForms  können Sie im Schritt „Installieren von .NET-Komponenten“ die Optionen „WinForms“ und „WinForms with Plugins“ auswählen.  Ebenso können Sie bei der Installation von  FastReport .NET WEB  die Optionen „Web“ und „Web with Plugins“ auswählen. Wenn Sie die Optionen „WinForms with Plugins” und „Web with Plugins” installieren, erhalten Sie alle notwendigen Dateien für deren Betrieb, einschließlich vorinstallierter Plugins für die Verbindung mit Datenbanken. Im Startmenü werden folgende Verknüpfungen angezeigt:  FastReport Demo New with Plugins,  FastReport Demo with Plugins,  FastReport Designer with Plugins,  FastReport Localizer with Plugins, FastReport Viewer with Plugins. Wenn Sie die Versionen „WinForms“ und „Web“ auswählen, werden nur die Kerndateien ohne zusätzliche Plugins installiert. Im Startmenü werden Verknüpfungen angezeigt: FastReport Demo New, FastReport Demo, FastReport Designer, FastReport Localizer und FastReport Viewer. Diese Option wurde zuvor standardmäßig installiert. Fazit FastReport .NET ist ein leistungsstarkes Tool zum Erstellen von Berichtsvorlagen, das mehrere Datenquellen unterstützt. Die Installation zusätzlicher Plugins zur Verbindung mit verschiedenen Datenbanken und Dateitypen kann jedoch für Benutzer ohne Programmiererfahrung eine Herausforderung darstellen. Mit der Veröffentlichung der Version 2025.2.5 ist die Verwendung des Vorlagendesigners deutlich einfacher geworden. Sie können sich auf die Erstellung von Berichten konzentrieren, ohne Zeit mit der technischen Einrichtung und dem separaten Verbinden von Plugins zu verschwenden. Sollten Sie bei der Nutzung von FastReport .NET auf Probleme stoßen, wenden Sie sich bitte an unser Support-Team . Wir helfen Ihnen gerne weiter und bieten Ihnen die notwendigen Lösungen. Tags: .NET, FastReport, Install, Data Source, Designer, Plugin ### Installieren und Verwenden von FastReport FMX 2.8 für FmxLinux URL: https://www.fast-report.com/de/blogs/install-fmx-linux Summary: So installieren und verwenden Sie FastReport FMX 2.8 für FmxLinux. Kurzanleitung. So installieren und verwenden Sie FastReport FMX 2.8 für FmxLinux. Kurzanleitung. So installieren und verwenden Sie FastReport FMX 2.8 für FmxLinux. Kurzanleitung. Kürzlich wurde  FastReport FMX 2.8  veröffentlicht, das das  FMXLinux-Framework  unterstützt. In diesem Artikel möchte ich den Installationsprozess und die Anforderungen mit Beispiel der Installation der Testversion von  FastReport FMX 2.8 ,  Embarcadero RAD Studio 10.4.1 ,  FmxLinux 1.52  von  GetIT  und  Ubuntu 20.04.1  beschreiben. Wir werden nicht weiter auf die Installations- und Kompilierungseinstellungen für Linux eingehen. Sie können dies auf der Embarcadero-Website lesen:  Linux Application Development  und  FireMonkey for Linux . Hier ist eine kurze Liste der Schritte, die Sie ausführen sollen, bevor Sie FastReport FMX 2.8 installieren (Wenn Sie die Kompilierung bereits für Linux konfiguriert haben und die FmxLinux-Anwendung bereits erfolgreich kompiliert wurde, können Sie diese Schritte überspringen): Installieren Sie Linux oder verwenden Sie ein fertiges Linux (Der Artikel basiert auf  Ubuntu 20.04.1 ); Installieren Sie die Entwicklungspakete gcc und curl packages. Embarcadero empfiehlt dies über: ``` sudo apt install joe wget p7zip-full curl openssh-server build-essential zlib1g-dev libcurl4-gnutls-dev libncurses5 ``` In diesem Fall installieren Sie das Entwicklungspaket 7zip mit aller Abhängigkeiten einschließlich gcc (Binärdateien der Testversion von FastReport FMX 2.8 werden mit gcc 9 kompiliert!). Installieren Sie dev Pakete zlib, für Ubuntu sieht es so aus: ``` sudo apt-get install zlib1g-dev ``` Installieren Sie abhängige Pakete x11, gtk3 durch: ``` sudo apt install libgl1-mesa-glx libglu1-mesa libgtk-3-common libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 ``` Ich installierte diese Pakte auf leeren virtuellen Rechner und in meinem Fall es reicht folgende Code Zeile zu verwenden: ``` sudo apt install joe wget p7zip-full curl openssh-server build-essential zlib1g-dev libcurl4-gnutls-dev libncurses5 zlib1g-dev libgl1-mesa-glx libglu1-mesa libgtk-3-common libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 ```  Installieren Sie PAServer(sehe  Linux Application Development );  Installieren Sie FmxLinux durch GetIt ( Tools > GetIt Package Manager ); Erstellen Sie eine Verbindung mit Linux und downloaden Sie SDK. Die Installation von FastReport FMX 2.8 für FmxLinux  unterscheidet sich nicht von der üblichen Installation von FastReport FMX 2. Sie müssen das Installationsprogramm herunterladen, um ein Beispiel für eine Demo Version zu erhalten, und die Entwicklungsumgebung schließen. Das Installationsprogramm fügt alle Pfade für die Kompilierung selbst hinzu. FastReport FMX 2.8 ist einsatzbereit!  Sie können überprüfen, wie FastReport FMX unter Linux funktioniert. Starten wir die Entwicklungsumgebung (in meinem Fall Embarcadero RAD Studio 10.4.1) und öffnen eine Standarddemo mit den Reporten. Diese finden Sie im Installationsordner von FastReport FMX 2, standardmäßig  C:\Program Files (x86)\FastReport FMX 2 Trial\Demos\Main . Öffnen wir das Projekt und wählen die Plattform aus. Jetzt sollen Sie sicherstellen, dass alle Dateien auf den Server übertragen werden ( Project>Deployment ). In meinem Fall gab es neben der Standard-MIDAS-Bibliothek kein Kontrollkästchen für den Datenzugriff. Das Problem wird gelöst, indem eine Bibliothek für die entsprechende Plattform ausgewählt wird. Sie können das Projekt kompilieren und ausführen. Jetzt können Sie einen Report auswählen und den Designer zur Bearbeitung öffnen. Erstellen Sie einen Report und zeigen Sie ihn im Vorschaufenster an. Und natürlich in ein zugängliches Format exportieren. Wie bei anderen Plattformen ist es möglich, das Dienstprogramm zum erneuten Kompilieren zu verwenden, um die Sprache zu ändern und Binärdateien neu zu kompilieren. Weiter wählen Sie den Pfad zu den FmxLinux-Bibliotheken (standardmäßig  C:\Users\Public\Documents\Embarcadero\Studio\21.0\CatalogRepository\FmxLinux-1.52\lib\Release  für Embarcadero RAD Studio 10.4.1), Compilerversion, gcc-Version und FastReport-Version aus. Hierbei ist zu beachten, dass bei der Neukompilierung SDK-Pfade aus der Registrierung der Entwicklungsumgebung verwendet werden. Daher muss das Standard-Linux-SDK bereits vor der Verwendung in der Embarcadero RAD Studio-Umgebung konfiguriert werden. Versuchen wir, die Sprache zu ändern. Lassen Sie uns das Beispiel kompilieren und erneut ausführen. Sprache geändert. Wie Sie sehen, ist die Installation und die Verwendung von FastReport FMX 2.8 für FmxLinux recht einfach. Tags: FMX, FastReport, Linux, Install, Delphi, Ubuntu ### Installieren von FastReport Business Graphics in FastReport .NET URL: https://www.fast-report.com/de/blogs/install-business-graphics-net Summary: Schritt-für-Schritt-Anleitung zur Installation von FastReport Business Graphics in FastReport.NET wenn Sie als Teil des Designers oder Ihres Projekts verwendet werden. Schritt-für-Schritt-Anleitung zur Installation von FastReport Business Graphics in FastReport.NET wenn Sie als Teil des Designers oder Ihres Projekts verwendet werden. Schritt-für-Schritt-Anleitung zur Installation von FastReport Business Graphics in FastReport.NET wenn Sie als Teil des Designers oder Ihres Projekts verwendet werden. FastReport Business Graphics ist eine Bibliothek mit mehreren fortschrittlichen Methoden zur Datenvisualisierung. Heute enthält sie Treemap-, Sunburst-, Icicle- und  Gantt chart . Heute werden wir uns ansehen, wie man FastReport Business Graphics .NET zu FastReport .NET verbindet. Damit können Sie Diagramme aus FastReport Business Graphics in Ihren Berichten verwenden. Als erstes müssen Sie  FastReport Business Graphics  und FastReport .NET auf Ihrem Computer installieren. Die Installation dieser Produkte ist in unseren anderen Artikeln beschrieben. Im FastReport .NET Installationsordner finden Sie den Ordner Extras\Objects\FastReportBGObjects. Öffnen Sie in diesem Ordner das FastReportBGObjects.csproj-Projekt. Dies ist das Projekt für den .dll-Aufbau, das wir benötigen. Öffnen Sie die Projektlinkliste. So wird es aussehen: Entfernen Sie FastReport, FastReport.BG und FastReport.Compat aus dieser Liste. Da unser Ziel darin besteht, FastReport Business Graphics zu FastReport .NET hinzuzufügen, sollten Sie genau die .dll-Dateien hinzufügen, die Sie während des Projekts verwenden werden. Ersetzen Sie die gelöschten Dateien durch FastReport.dll und FastReport.Compat.dll aus dem FastReport .NET-Installationsordner sowie durch FastReport.BG.dll aus dem Stamm-Installationsordner FastReport Business Graphics. Sobald Sie die Links durch aktuelle Links ersetzt haben, baue Sie das Projekt auf. Wenn der Aufbau erfolgreich war, können Sie mit dem nächsten Schritt der Anleitung fortfahren: Plugin-Verbindung zu FastReport .NET. Die gebaute Plugin-DLL-Datei heißt FastReportBGObjects.dll und befindet sich im Unterordner des Projekts:  Extras\Objects\FastReportBGObjects\bin\Debug Sie können die Datei in einen anderen Ordner verschieben, müssen dies aber jedes Mal tun, wenn Sie die Datei erneut aufbauen. Für die Demonstration verschiebe ich sie in den Ordner C:\DLL. Betrachten wir zwei verschiedene Fälle. 1) Sie verwenden FastReport Designer. In diesem Fall müssen Sie die dll-Bibliothek im Designer selbst verbinden und neu starten, oder ihren Speicherort in der Konfigurationsdatei angeben. Sie können das Plugin im Menü Einstellungen - Plugins verbinden: Um einen Link zum Plugin hinzuzufügen, öffnen Sie die Konfigurationsdatei mit einem beliebigen Texteditor und ändern Sie sie wie folgt: ``` ... ``` Der fettgedruckte Bereich ist der Pfad zum Plugin. 2) Sie verwenden FastReport im Rahmen eines Projekts. Fügen Sie in diesem Fall FastReportBGObjects.dll zur Linkliste Ihres Projekts hinzu und fügen Sie den folgenden Code in den Projektcode ein: ``` RegisteredObjects.Add(typeof(SunburstObject), "ReportPage", 125); ``` Dieser Code muss einmal ausgeführt werden. Achtung! Die Bibliotheken FastReportBGObjects.dll und FastReportBG.dll müssen sich zusätzlich neben der Anwendung befinden, die sie verwendet. Wenn Sie FastReport Designer verwenden, kopieren Sie diese Bibliotheken in den Stammordner der Anwendung, und wenn Sie FastReport Buriness Graphics in Ihrem Projekt verwenden, legen Sie sie in denselben Ordner wie die ausführbare Datei. Nach all diesen Schritten können Sie also die erweiterten Diagramme von FastReport Business Graphics in den mit FastReport .NET erstellten Berichten zu verwenden. Wenn Sie Fragen zur Erstellung des FastReportBGObjects Plugins oder zur Verbindung mit FastReport .NET haben, wenden Sie sich bitte an unser  Support-Team .  Tags: .NET, FastReport, Install, Designer, Business Graphics ### Installing FastReport 4 for Lazarus URL: https://www.fast-report.com/de/blogs/installing-fastreport4-lazarus Not so long ago we have added support of Lazarus IDE for FastReport 4 VCL (starts from Pro version, because Lazarus updates recently and require source codes for recompilation). As it's still in the beta stage there is no any detailed instruction about its installation, yet. This basic article will explain how to install Fast Report 4 under lazarus and issues you may have. First of all you need a FastReport 4 VCL (Pro version or above. Or you can try our trial version compiled under Lazarus 1.0.8) installation (you can use source only installation) and Lazarus IDE (with FPC) installed. After we have FastReport 4 VCL installed we can compile its packages using Lazarus. Lets start from Win32 compilation: Run Lazarus IDE (under win32 FastReport works with standard widgets set you don't need to do any additional recompilation). In Lazarus IDE follow "Packages" -> "Open package (*.lpk)". Now you need to locate and install FastScript package (fs_lazarus.lpk) firts. If you use default paths when installed FastReport 4 VCL, then it will be located in "C:\Program Files\FastReports\FastReport 4\FastScript". Here I should notice that our installation works with admin privileges and after installation you should check "Fast Report 4" folder and allow write access for current user or you may not be able to compile it. Open fs_lazarus.lpk  package and select "Use" -> "Install". Lazarus should rebuild itself and add FastScript package. After installed Fast Script package you can locate and install FastReport 4 package (fr4_lazarus.lpk). If you use default paths when installed FastReport 4 VCL, then it will be located in "C:\Program Files\FastReports\FastReport 4\Source".   Open fr4_lazarus.lpk  package and select "Use" -> "Install". Lazarus should rebuild itself and add Fast Script package. Note: After recompilation on this stage lazarus may not load and ask for zlib1.dll. This happens because FastReport 4 uses Zlib library. To fix this issue you need to download Zlib1.dll and place it where Lazarus.exe located. Now you can use FastReport 4 under lazarus almost Identical to VCL version. Installing under linux:  Installing FastReport 4 for Lazarus under linux(make sure you have at least 4.14.3 version for proper compilation) almost the same as for windows. First you need to copy "Fast Report 4\Source" and  "Fast Report 4\Fast Script"  directories to your linux system. The next step willl be recompilation of the lazarus with Qt library (by default it uses gtk), because at this moment FastReport 4 works only under Qt. Run Lazarus IDE in menu "Tools" -> "Configure Lazarus build..." and select "LCL widget type" -> "Qt". Press build (you should install Qt system package first. It depends on OS you're using). After recompilation Lazarus ready to install FastReport packages.  In Lazarus IDE folow "Packages" -> "Open package (*.lpk)". Locate and install FastScript package (fs_lazarus.lpk)  and  FastReport 4 package (fr4_lazarus.lpk). Now you can use Fast Report 4 under linux ! This produc is still in beta stage, so some functional may not work. At this moment there are no any export filter, but we're planning to add them later. Also TfrxMemoView.Font.Charset should be always in DEFAULT_CHARSET, there are no charset implementation yet.  Tags: VCL, Lazarus, FastReport, Linux ### Installing FastReport in Lazarus URL: https://www.fast-report.com/de/blogs/installing-fastreport-in-lazarus Summary: Installation guide for FastReport library in Lazarus IDE for Windows and Linux. Installation guide for FastReport library in Lazarus IDE for Windows and Linux. Installation guide for FastReport library in Lazarus IDE for Windows and Linux. This article is outdated. Updated information is available at the following link. As part of the Academic's educational programme, we have decided to produce some support articles for students. If you are making business or government software that needs to be cross-platform or just run on Linux systems or native operating systems (which are also Linux), you will eventually need to create and output electronic documents, print receipts or some format (PDF, office, HTML, etc.). And we with our FastReport VCL product will be glad to help you with all this! Installing FastReport in Lazarus Let's start with the actual installation of Lazarus. First we need to install the software for our own operating system. Installing Lazarus for Windows The first thing to do is to download the Lazarus installation package  from the official website  and select the bit-type of your system. For Windows, the Lazarus installer is a single .exe file and should be no problem. Next we download the right version of the archive  from the official website  . From the downloaded archive copy the contents to C:Windows\System32 and C:Lazarus, then reboot Windows. After starting Lazarus, it prompts you to configure it immediately. You just have to press ok and agree with the default settings. Installing Lazarus for Linux Like in Windows, the first thing you should do is download the Lazarus installer package  from the official website  .  Each item in this list consists of 4 files (3 installer packages and a text file). - The Lazarus(project) installer package; - The fpc-src installer package; - fpc(laz) installation package; - README.txt file. It is important to install them in the right order. First fpc(laz), then fpc-src and lastly Lazarus(project). Let's fix the problem with fonts beforehand. All operating systems have fonts that are set by default. For example, Arial is the default font in both Windows and, say, Ubuntu. But the default Arial in Ubuntu is not actually the same Arial in Windows, which means that text reports made with Windows Lazarus will look awful in Linux Lazarus (and vice versa). To avoid this we will at least install in Linux the same fonts as in Windows. For Ubuntu you can do this with: ``` sudo apt-get install msttcorefonts ``` But for other Linux distributions the command may be different. Next, the following packages need to be installed for SqLite to work properly: sqlite3, libsqlite3-dev More details can be found here.  For Ubuntu you can do this with: ``` sudo apt-get install sqlite3 libsqlite3-dev ``` Launch Lazarus, where it prompts you to configure it. Click 'OK' to accept the default settings. Installing FastReport packages in Lazarus for Linux / Windows We have already installed Lazarus, so now we can install the FastReport VCL package in Lazarus. In order to do that we need to download and unzip the package from the official website. In contrast to Embarcadero Delphi, RAD Studio and C++ Builder where it is sufficient to "just install the compiled component packages", in Lazarus you have to compile them.  To install packages click Package -> Open Package File .lpk, select the package in the file manager and the following screen will appear: In it, click Compile, wait for the compilation to finish and then click Use. Lazarus will reboot after each package is installed. Moving on to the order in which FR packages are installed: 1. fast-script\Source\fs_lazarus.lpk – library for executing scripts; 2. fast-report-N\Source\frN_lazarus.lpk (where n is the current version of FastReport) – package with all necessary components; 3. In any order: - fast-report-N\Source\ExportPack\frxeN_lazarus.lpk – package with exports; - fast-report-N\Source\lazchart\frxchartlazarus.lpk – packge for charts; - fast-report-N\Source\lazdbf\frxlazdbf.lpk – package for working with BDF databases; - fast-report-N\Source\sqlite\frxlazsqlite.lpk – package for working with SqLite batabases. Before version 2.0.0 a compile and/or install bug was very common, at the time of this writing the latest version is 2.0.6 and this bug in Lazarus has still not been completely removed, but it is much less likely to happen. If you have 1 of the packages that won't compile/install you will have to go down and recompile/reinstall the package dependencies. To do this, double click on it and recompile and then reinstall. Once all packages have been successfully installed click Project -> Open Project and open fast-report-N\LDemo\FRDemo.lpi project and try to run it, then click Design. If you get this negative height error in Linux: Then don't worry. The point is that we support both GTK and QT interfaces (but keep in mind that development is mostly done in GTK). So, in some (rather rare) GTK interfaces this bug can be found. Simply run the application without debugging or check the "Ignore this type of exceptions" box. *Or change your graphical shell. For example, many of our team works under GTK shell KDE Plasma, which has no such error. One last thing you should know, when creating your projects, is that our designer uses multi-threading, which is disabled by default in Linux Lazarus. In order to turn it on, open a file with extension ".lpr" in Project Inspector (Project -> Project Inspector) and write in the first item in uses unit cthreads. Tags: VCL, Lazarus, FastReport, Linux, Delphi, Academic ### Installing FastReport on .NET 8.0 and Creating a Simple Report URL: https://www.fast-report.com/de/blogs/simple-report-net Summary: The purpose of this article is to explain step by step how to install FastReport on .NET 8.0 and how to create a simple report. Taking the reporting process from the beginning, it will show how to connect, design and view reports. The purpose of this article is to explain step by step how to install FastReport on .NET 8.0 and how to create a simple report. Taking the reporting process from the beginning, it will show how to connect, design and view reports. The purpose of this article is to explain step by step how to install FastReport on .NET 8.0 and how to create a simple report. Introduction What is FastReport .NET? FastReport is a flexible and powerful reporting tool. It allows users to access data sources in various formats and present them visually. Reports created with FastReport can be easily designed using drag-and-drop logic in the user interface and converted to different formats (PDF, Excel, Word, etc.). FastReport's Role in Reporting Solutions Reporting is a critical need in data-driven applications. FastReport allows users to visualize and analyze their data. Suitable for both desktop and web applications, this tool provides fast results with minimal coding. Advantages of Integration with .NET FastReport works perfectly with .NET applications. When integrated with the powerful development ecosystem offered by .NET, report creation processes can be automated, dynamic reports can be generated, and large data sets can be processed quickly. Additionally, using the flexibility offered by .NET, it is easy to integrate reports with the rest of your application. Purpose of the Blog This article aims to explain step by step how to install FastReport on .NET 8.0 and how to create a simple report. Taking the reporting process from the beginning, it will show how to connect, design, and view reports. 1. FastReport Installation 1.1. Requirements Before you begin, you need to make sure the following requirements are met: .NET 8.0 Requirements: Make sure your project is running on .NET 8.0 platform. To install .NET SDK, download the latest version from Microsoft's official site. IDE: You may be using Visual Studio, JetBrains Rider, or another IDE. Check that .NET 8.0 support is enabled in Visual Studio. 1.2. Adding the FastReport NuGet Package The easiest way to add FastReport to a project is to use the NuGet package manager. NuGet Package Manager with Visual Studio: Right-click on your project and select Manage NuGet Packages . Type FastReport in the search box and select the FastReport.OpenSource package from the results. Click the Install button and wait until the package installation is completed. Command Line Installation: If you prefer the command line, you can add FastReport to the project with the following command: Install-Package FastReport.OpenSource This will include the latest version of FastReport in your project. 1.3. Licensing and Activation  To start using FastReport, it is important to follow the licensing steps correctly: Free Version: Although the free version of FastReport offers some basic reporting features, the full version is required for more advanced features.  Licensing: If you want to use the full version, you can purchase a license from FastReport. After you receive the license key, you can activate the program by entering your license key from the FastReport activation window.  Note: The free version has some limitations, for example, the full list of export formats may not be available. Replacing part of the report content with the text "Demo version" randomly. The label "Demo version" on the report pages when printing and exporting. Since I will explain the reporting tool using the trial version in this article, I downloaded the program from the FastReport installation link. You can proceed directly as the welcome screen provides convenience for automatic installation. Once the user agreement is approved, you can continue the process. Here we mark which type of source we will use. For this article, I will only use .NET Trial.  After the installation is completed, the application is ready to use. 1.4 FastReport.OpenSource FastReport is renowned for its powerful, professional-grade reporting tools and offers two main options based on users' needs: a commercial version and FastReport.OpenSource . FastReport.OpenSource is an ideal choice for developers seeking a fast, cost-free, and customizable reporting solution in small to medium-scale projects. Its open-source nature grants users complete control over the code, enabling them to make in-depth customizations tailored to specific project requirements. FastReport.OpenSource includes many core functions of reporting tools: it allows you to design reports, create data connections, visualize data, and generate report outputs efficiently and quickly. For small-scale projects or budget-constrained initiatives, its open-source format offers access to powerful reporting capabilities without licensing fees. Additionally, its community-driven structure provides developers with a continuously growing pool of resources and up-to-date knowledge. 1.5 Customization and Development Capabilities With FastReport.OpenSource’s open-source structure, developers can create tailored customizations suited to their projects. This flexibility allows you to build custom report formats or make specific adjustments to existing features. The ability to customize gives developers the advantage of aligning reports with the functional and visual requirements of their projects. 1.6 Community Support and Resources One of the key advantages of FastReport.OpenSource is its strong community support. Along with the source code accessible on GitHub, users share their experiences and developments, creating a constant flow of insights. Community support is highly beneficial for troubleshooting and generating new ideas. FastReport’s development team also provides regular updates, ensuring the platform continues to evolve. 1.7 Use Cases FastReport.OpenSource is an excellent solution for educational projects, personal applications, or startup projects. It is particularly suitable for projects that require essential reporting capabilities, such as financial statements, customer reports, inventory lists, and analysis reports. Its open-source nature makes it fully customizable and adaptable to meet the needs of your specific project. 2. Creating a Simple Report 2.1. Using FastReport Designer FastReport Designer is a visual tool that simplifies report design. Introduction to FastReport Designer Interface: FastReport Designer provides a drag-and-drop user interface to design your report. You can easily add components such as data tables, charts, text boxes, etc. to your report. Adding Data Sources: As a first step, you need to add the data sources that you will connect to your report. These sources can be in various formats, such as SQL databases, JSON files, XML format, etc. In FastReport Designer, you can easily define these data sources and include them in your report. After opening a blank report design, you can connect your database here by selecting New Data Source from the Actions box. FastReport does not require us to use only MS SQL. If you wish, you can define your data in formats such as JSON and XML and create your reports. You can flexibly use all the options in your database during import. In addition to tables, procedures and views can also be imported into FastReport and used in reports. 2.2. Report Layout Design Creating a Simple Table Report: When you start designing a report, you can use the table component to show your data. In this sample application, I will create a simple report using information such as age, name, etc. in a table containing company personnel. Adding Headers, Data Fields, and Footers: Make your report more readable by adding header rows to the table. Connect data fields with data from the data source. You can add additional information such as totals and page numbers to the footer rows. Style and Formatting Options: You can use style and formatting options to make your report look more visually professional. For example, you can make headings bold and change the color of data cells. In a simple design, after adding the data source, the entire report can be created by adding only text. In the modal where the texts to be added are opened, there are System Variables and Data Source variables for convenience. By selecting these, the entire report can be created with the drag-and-drop feature. 2.3. Preview the Report Running the Report and Viewing it in Preview Mode:  After you design your report, you can run it in preview mode to see if the design looks right. In this mode, you can view your report in different formats and fix any errors. You can see a preview of the report you are working on via File-Preview or Report-Preview. Exporting the Report in Different Formats: FastReport allows you to export reports in different formats such as PDF, Excel, and Word. You can use the “Save” button in preview mode to convert your report to the desired format. 3. .NET Code Integration and Calling the Report from the Application 3.1. Calling a Report with a DB Connection After saving the report we just created as .frx, we can transfer it to our .net project as a file and call the report from this file. In reports prepared with a mssql db connection, you must install the "FastReport.Data.Mssql" package. We are ready to call the report we just prepared from the project. We save our frx file via FastReport and add it to our “BasicFastReportDotnet8” project, which we opened as a .net8 console app. The packages we will use in this operation are: FastReport FastReport.Data FastReport.Export.Image Let's open our .frx extension file and take a look; In fact, we can almost update the report from here. The elements we use in the file are presented in XML format and our data source connections are nicely defined. Great! Now, since we used mssql connection in this report, we need to go and specify it: In this way, we indicate that the report has ready data and there is no need for a preparation process. The rest is child's play! First, create a new report instance and create our report object. Then load the frx file prepared into the relevant report. Give the command to prepare the report. And finally, decide in which format we will save it. Yep, that's all! Let's see how our report turned out: 3.2. Calling Simple Report Template by Feeding Data from Application These operations can also be performed using an empty template. We can repeat the same operation with the desired objects by giving the "report.RegisterData" command to the report object just before the prepared operation. Conclusion Fast and Efficient Reporting with FastReport FastReport offers a fast and effective reporting solution for both small projects and large-scale applications. Thanks to its user-friendly interface and .NET integration, report design and management can be easily performed. In addition, being able to pull records from the DB at any time increases the speed of report analysis by separating server-side and DB operations. Advantages of FastReport Seamless integration with .NET applications, multiple data source support, and flexible design options make FastReport an attractive choice. Advice on Exploring Advanced Features To explore FastReport’s advanced features, you can browse its official documentation and work with templates, charts, and more complex reporting techniques. Using a Private NuGet Server If you’re using the commercial version of FastReport, you can set up a private NuGet server to access FastReport packages specifically for internal or private projects. This method is especially useful for corporate users who need to maintain control over access management and updates. The flexibility FastReport offers allows you to access NuGet packages in a more secure and manageable way. For more details, refer to the Private NuGet Server Setup article. The article is written by Liubou Patskevich from Softacom. Tags: .NET, Visual Studio, FastReport, Install, Designer, Open Source, Report, NuGet ### Integration mit der Cloud in FastReport Mono 2023.1 URL: https://www.fast-report.com/de/news/fastreport-mono-2023.1 Summary: In der Version von FastReport Mono 2023.1 wurde die Integration mit FastReport Cloud hinzugefügt, der Konverter von JasperReports, MSChartObject, wurde verbessert. In der Version von FastReport Mono 2023.1 wurde die Integration mit FastReport Cloud hinzugefügt, der Konverter von JasperReports, MSChartObject, wurde verbessert. In der Neujahrsversion von FastReport Mono 2023.1 haben wir hinzugefügt: teilweise Integration mit My Reports Cloud, Vorlagenkonverter von JasperReports, Verbindung zu gespeicherten Prozeduren in MsSQL, Verbesserung des MSChartObject-Objekts und vieles mehr. FastReport Cloud Integration FastReport .NET, FastReport Core, FastReport Mono unterstützen jetzt teilweise die FastReport Cloud Interaktion.  Herunterladen und Hochladen von Berichten  Sie können nun Ihren Bericht aus dem Cloud-Speicher herunterladen und ihn im Designer bearbeiten oder umgekehrt Ihre Dateien in die Cloud hochladen. Web-Vorschau Zusätzlich zur Standardvorschau ist jetzt auch eine Web-Vorschau möglich. Der Bericht kann in der Web-Vorschau nur dann angezeigt werden, wenn er aus der Cloud geöffnet ist. Verbindung mit FastReport Cloud Datenquellen  Die FastReport Cloud kann Verbindungen mit Datenquellen speichern. Ab jetzt haben Sie die Möglichkeit, diese Datenquellen zu Ihrem eigenen Bericht hinzuzufügen.  Es ist jetzt auch möglich, eine Verbindung in die Cloud hochzuladen. Wenn Sie mehr über die neuen Funktionen erfahren möchten, lesen Sie bitte diesen Artikel. Verbesserungen im Berichtsvalidator Erhöhte Leistungsgeschwindigkeit Die Berichtsvalidierung läuft jetzt in einem separaten Stream. Auch die Geschwindigkeit wurde deutlich optimiert. Sie können die Änderungen bei der Verarbeitung von Berichten mit einer großen Anzahl von Fehlern feststellen. Während der Validator den Bericht überprüft, wird im Validierungsfenster eine entsprechende Meldung angezeigt. Dabei können Sie den Bericht bearbeiten. Wenn der Validator fertig ist, wird eine Fehlertabelle angezeigt. Einrichten der Validierungstabelle  Zur Benutzerfreundlichkeit wurde eine neue Spalte mit Fehlernummern hinzugefügt. Sie kann über das Kontextmenü der Tabelle aktiviert oder deaktiviert werden. Auf die gleiche Weise können Sie die Anzeige der Spalte für die Fehlerart anpassen. JasperReports-Vorlagen-Konverter  Es wurde die Möglichkeit hinzugefügt, Berichtsvorlagen aus JasperReports in FastReport .NET-Vorlagen zu konvertieren. JasperReports-Berichte können Objekte enthalten, die vom FastReport-Designer nicht unterstützt werden. Diese Objekte werden nicht konvertiert oder durch andere ersetzt, damit der erstellte Bericht dem in JasperReports erstellten Bericht so ähnlich wie möglich aussieht. Mehr dazu lesen Sie im Artikel. Verbesserungen und Korrekturen am MSChartObject Das MSChartObject hat eine große Anzahl von Eigenschaften und Einstellungen. Die am häufigsten verwendeten sind im Objekteditor gesammelt. Eigenschaften, die im Editor nicht verfügbar sind, können mit dem Objektinspektor geändert werden. Es gab jedoch ein Problem mit diesen Eigenschaften - wenn sie geändert wurden, wurde der Bericht nicht als geändert betrachtet. Infolgedessen war es unmöglich, diesen zu speichern. Um den Bericht zu speichern, musste eine andere Eigenschaft oder ein anderes Objekt geändert werden. Darüber hinaus wurden bei der Erstellung eines Berichts und nach dem Schließen des Vorschaufensters die Werte dieser Eigenschaften auf ihre Standardwerte zurückgesetzt. Dieser Fehler ist in der neuen Version behoben worden. Verbindung zu in MsSQL gespeicherten Prozeduren  Es wurde die Möglichkeit hinzugefügt, eine Verbindung zu in MsSQL gespeicherten Prozeduren herzustellen. Dies war bisher über eine Datenbankabfrage verfügbar. Jetzt können Sie viel bequemer eine Verbindung zu den Prozeduren herstellen, indem Sie die Datenbanktabellen- Verbindungsschnittstelle verwenden. Diese Datenbanktabellen werden im Auswahlfenster zusammen mit den Tabellen angezeigt. Wenn Sie eine Prozedur auswählen, erscheint ein Fenster mit den Parametereinstellungen, falls vorhanden.  Mehr dazu lesen Sie im Artikel. Exportverbesserungen  Option "Zum Drucken" beim RTF-Exportieren Es wurde eine neue Eigenschaft PrintOptimized und eine entsprechende Option im Exportfenster hinzugefügt. Wenn Sie diese Einstellung aktivieren, wird die Qualität des Bildes beim Exportieren erheblich verbessert. Allerdings erhöht sich auch die Größe der resultierenden Datei. UseFileStream-Eigenschaft im Export nach Excel 2007 Es wurde eine neue Option UseFileStream für den Excel 2007-Export hinzugefügt. Diese Option kann nur beim Exportieren von Code in eine Datei verwendet werden. Sie ist nützlich, wenn Sie Berichte mit einer großen Anzahl von Seiten (mehrere Zehntausend) in mehreren Streams exportieren. Dadurch werden Fehler aufgrund von Speicherknappheit vermieden. In anderen Fällen ist die Verwendung nicht besonders sinnvoll und wird nicht empfohlen. Beispiel: ``` Report report = new Report(); Excel2007Export export = new Excel2007Export(); export.UseFileStream = true; report.Export(export, "report.xlsx"); ``` Finanzformat beim Exportieren nach Excel 2007 Das Währungsformat kann nun als Finanzformat exportiert werden. Dazu wurden im Exportfenster eine entsprechende Option und die CurrencyToAccounting-Eigenschaft hinzugefügt. Vollständige Änderungsliste 2023.1 [Engine] + Die Report.IsPrepared-Eigenschaft wurde hinzugefügt; + Die Art der TextRenderType.Inline-Textanzeige wurde hinzugefügt; + Der JasperReports Vorlagen-Konverter wurde implementiert; + Eine Verbindung mit gespeicherten Prozeduren in Ms SQL wurde implementiert; * Die Mindestversion von .NET Framework wurde von 4.0 auf 4.6.2 erhöht; * Die JSON-Abfrage in der Datenquelle wurde in die Schnittstelle verlagert; - Es wurde ein Fehler behoben, der eine System.ArgumentException verursachte, wenn die TextObject.FontWidthRatio-Eigenschaft null war; - Die Text-Hervorhebung im RTF-Parser wurde korrigiert; - Es wurde ein Fehler bei mehreren Bildanfragen bei Verwendung einer URL in ImageLocation behoben; - Ein Fehler in der IsNull-Funktion wurde korrigiert; - Ein Fehler beim RichObject-Rendering mit ausgerichteten Bildern wurde behoben; - Es wurde ein Fehler behoben, durch den die Berechnung vertikaler Abstände beim Konvertieren eines RichObjects in Text falsch war; [Designer] + Es wurde die Möglichkeit hinzugefügt, eine berechnete Spalte für IEnumerable-Datenquellen zu erstellen; + Ein Nachrichtenfeld wurde hinzugefügt, das Sie darüber informiert, dass der Bericht geladen wird, wenn die Datei geöffnet wird; + Eine Spalte mit Fehlernummern in der Berichtsvalidierungstabelle wurde hinzugefügt; + Es wurde die Möglichkeit hinzugefügt, Spalten mit der Fehlernummer und dem Fehlertyp in der Berichtsvalidierungstabelle ein- und auszublenden; + Es wurde ein Fenster hinzugefügt, das Sie benachrichtigt, wenn Sie versuchen, einen bereits geänderten Bericht zu speichern; + Es wurde die Möglichkeit hinzugefügt, eine Web-Vorschau eines in der FastReport Cloud geöffneten Berichts anzuzeigen; * Die Leistungsgeschwindigkeit des Berichtsvalidators wurde erhöht; * Die Schaltfläche "Band löschen" ist nun dann deaktiviert, wenn ein Band nicht gelöscht werden darf; * Der Name des Stammordners im FastReport Cloud Formular wurde geändert und hängt nun von der gewählten Lokalisierung ab; - Die Datenbaumansicht mit der IEnumerable-Datenquelle wurde korrigiert, deren Spalte nicht hinzugefügt wurde, wenn sie aus einem signifikanten Typ bestand; - Es wurde ein Fehler bei der Lokalisierung der Schaltfläche "Löschen" in den Berichtseigenschaften auf der Registerkarte "Skript" behoben; - Es wurde ein Fehler bei der Auswahl eines Objekts nach dem Klicken auf eine Zeile im Berichtsvalidierungsfenster behoben; - Es wurde ein Fehler behoben, durch den sich das ausgewählte Objekt nicht änderte, wenn die Höhe des Bandes mit der Maus verändert wurde; - Die fehlerhafte System.OverflowException wurde beim Bearbeiten eines Textobjekts ohne Editor behoben; - Es wurde ein Fehler behoben, der die System.StackOverflowException beim Kopieren der Formatierung verursachte; - Die Hervorhebung des Objektes, das sich auf einer inaktiven Seite befindet, wurde korrigiert, wenn man auf eine Zeile im Prüfungsfenster klickt; - Der Fortschritt bei der Aktualisierung der Fehlerliste im Validierungsfenster beim Ändern des Berichts wurde korrigiert; - Der Fehler „Ungültiger Wert“ beim Ändern der Linienfarbe im MSChartObject-Editor wurde behoben; - Die Reihenfolge, in der die "Tab"-Taste in Verbindungsformularen umgeschaltet wird, wurde korrigiert; - Es wurde ein Fehler behoben, bei dem die Eigenschaften der Achsenbegrenzungen nicht gespeichert wurden, wenn diese im Editor geändert wurden; - Falsche Werte beim Ändern des Intervalls in Balken auf den Achsen in MSChartObject wurde korrigiert; - Es wurde ein Fehler behoben, der beim Löschen eines Bandes über den Bandkonfigurator auftrat, wenn der klassische Modus der Bandanzeige gewählt wurde; - Es wurde ein Fehler behoben, der auftrat, wenn die Schaltfläche "Löschen" im Bandeinstellungsformular gedrückt wurde, wenn keine Bands im Bericht vorhanden waren; - Es wurde ein Fehler behoben, der auftrat, wenn Bands aus dem Arbeitsbereich gelöscht wurden, während die linke Maustaste gedrückt war; - Die Wiederherstellung des GridControl-Status wurde beim Schließen des Spalteneditor-Formulars korrigiert; - Es wurde ein Fehler behoben, der beim Klicken auf die Schaltfläche "Abbrechen" im Spalteneditor eines Grid-Objekts auftrat; - Die Anzeige des Änderungsflags eines Berichts wurde beim Ändern von MSChartObject korrigiert; - Das Verschieben von Spalten der Rastersteuerung im Spalteneditor-Formular wurde korrigiert; [Preview] + Eine QuickInfo wurde für das Feld "Kopie" im Formular "Per E-Mail senden" hinzugefügt; - Die Anzeige des Druckformulars wurde bei der Bildschirm-Vergrößerung korrigiert; - Es wurde ein Fehler behoben, bei dem neue Exporte nicht im Menü angezeigt wurden; - Die Reihenfolge der Umschaltung der Tab-Taste in Exportformularen wurde korrigiert; [Exports] + Die Option "Zum Drucken" beim RTF-Export wurde hinzugefügt; + Es wurde die Möglichkeit hinzugefügt, die Währungsformat-Daten als Finanzformat-Daten nach Excel 2007 zu exportieren; + Die UseFileStream-Option wurde für den Excel 2007-Export hinzugefügt; * Exportformulare wurden erweitert, um Beschriftungen für verschiedene Lokalisierungen korrekt anzuzeigen; - Ein Fehler wurde beim Exportieren von Linien, die von rechts nach links oder von unten nach oben gezeichnet wurden, wenn sie in geschichtete HTML exportiert wurden, behoben; - Ein Fehler wurde beim Exportieren der kursiven Schriftart Tahoma in PDF behoben; - Ein Fehler wurde behoben, der eine System.ArgumentException beim Exportieren in einen Stream mit aktivierter ImageExport.SeparateFiles-Eigenschaft verursachte; - Es wurde ein Fehler beim SVG-Export behoben, bei dem einige Formen doppelt gezeichnet wurden; - Es wurde ein Fehler beim Export des Buchhaltungsformats nach Excel 2007 behoben, bei dem die Anzahl der Dezimalstellen nicht berücksichtigt wurde; - Speicherlecks beim Exportieren von Tabellen wurden behoben; - Fehlerhaftes Löschen einer temporären Datei wurde während eines Notstopps des Programms beim PDF-Export behoben; - Fehlerhafter PDF-Export von kursiven und fetten Schriftarten wurde behoben; - Es wurde ein Fehler behoben, durch den der Hintergrund von Objekten mit einer Solid-Füllung nicht aus dem Browser gedruckt wurde; - Es wurde ein Fehler in der set-Methode der HtmlTemplates.IndexTemplate-Eigenschaft behoben; - Fehlerhafter PDF-Export von 4-Byte-Zeichen wurde behoben; - Der Multiplikator der Zeilenhöhe beim RTF-Export wurde korrigiert; - Der Multiplikator der Zeilenhöhe beim Exportieren von Tabellen nach Word 2007 wurde korrigiert; - Die Position des ersten Objekts auf einer Seite mit einem Wert ungleich Null beim Exportieren nach Word 2007 wurde korrigiert; - Es wurde ein Fehler beim Zugriff auf eine temporäre Datei beim Exportieren nach Excel 2007 unter Verwendung der UseFileStream- und SplitPages-Eigenschaften behoben; - Es wurde ein Fehler bei der Lokalisierung der CurrencyToAccounting-Eigenschaft beim Exportieren nach Excel 2007 behoben; - Die Bedienung der Navigationsschaltflächen und die Anzeige der Seitennummern beim HTML-Export wurden korrigiert; [WebReport] * Die WebReport.ReportPrepared-Eigenschaft wurde umgearbeitet und ist nun mit der entsprechenden Berichtseigenschaft verknüpft; * Das WebReport-Design wurde für FastReport.Core.Web und FastReport.Web.Blazor aktualisiert; - Es wurden seltene Abstürze beim Versuch, eine leere Datenquelle zu WebReport hinzuzufügen, behoben; - Es wurde ein Fehler behoben, der dazu führte, dass die Outline in WebReport.LoadPrepared() nicht funktionierte; - Die Aktualisierungsschaltfläche beim Laden eines vorbereiteten Berichts (.fpx) wurde entfernt; - Es wurde ein Fehler behoben, der dazu führte, dass die Breite der RichObject-Tabs in WebReport falsch berechnet wurde; - Die Möglichkeit, Seiten in den Exportparametern für einseitige Berichte auszuwählen, wurde entfernt; [Demos] - Es wurde eine Fehler bei der Skalierung von untergeordneten Fenstern in der neuen Demoanwendung behoben; [Extras] + Das FastReportBGObjects-Plugin wurde aktualisiert und die Unterstützung der Blasendiagramme wurde hinzugefügt; * Die ElasticSearch-Verbindung wurde in ein separates Plugin verschoben. ### Intelligent Mail barcode URL: https://www.fast-report.com/de/blogs/intelligent-mail-barcode  Vor einiger Zeit verwendete man in den USA zwei Formate von Barcodes in der Post: POSTNET und PLANET. Diese Normen lassen Postleitzahlen und dienen für Sortierung und Sendungsverfolgung der Briefe.     POSTNET codiert 5-Stellige PLZ, 4-Stellige Plus-Code und 2-Stellige Code des Lieferung-Adresse. Barcodes POSTNET (Postal Numeric Encoding Technique) und PLANET (Postal Alphanumeric Encoding Technique) verwendet Post Dienst der USA. Barcodes POSTNET haben eine Breite (Streifen-Zahl), die in Intervalle zwischen 32 und 62 verändert werden kann, und PLANET – zwischen 62 und 72. Horizontale Streifen haben verschiedene Höhe und können entweder kurz oder lang sein. Jede Zahl der codierten Daten ist durch eine Gruppe von 5 Streifen dargestellt. Solche Idee der Streifen - Darstellung hat neuer Standard Intelligent Mail auch, der Symbole verwendet, die verschiedene Größe haben. IMb (Intelligent Mail barcode) (USPS OneCode) ist auch von der Streifen-Höhe abhängiger Barcode, der bis zu 31 Zahlen der Postsendung kodieren kann. Dieser Code verwendet 65 vertikalen Streifen, die 4 mögliche Darstellungsvarianten zur Verfügung stellen. Diese 4 helfen mehrere Informationen zu kodieren. Die Technologie IMb sammelt Haupt-Features von PLANET und POSTNET in einem Barcode. Dieser Code ist universell kann gleichzeitig in mehreren Sendungen als Verfolgungscode verwendet werden. Dieser Code hilft auch die Zeit und Route der Lieferung zu optimieren und die Lieferungskosten zu sinken. Der IMb Code (wie POSTNET) hat eine Prüfungssumme, die die Ganzheit des Codes kontrolliert und kann helfen, geschädigte Informationen wiederherzustellen. Im Vergleich zu POSTNET hat IMb mehrere Symbole zu codieren (31 Symbole gegen 11).  Imb Code hat auch 4 Zusatz-Felder: Barcodes Kennzeichen, STID (Leistungskennzeichen), MID (Post Software Kennzeichen) und Serial Nummer. Das alles hilft deutlich die Postabteilung zu identifizieren und die Sendungsverfolgung zu kontrollieren. Aber dieser Code hat auch Nachteile, dazu gehören große Lange des Codes und die Möglichkeit nur die Zahlen zu codieren. Intelligent Mail kodiert folgende Informationen: 1)      Barcodes Kennzeichnen (2 Symbole) – definiert der Postdient der USA; 2)      Leistungstyp (3 Symbole) – Sendung-Klasse oder anderes Service; 3)      Absenders Kennzeichnen (6 oder 9 Symbole) – von der USA-Post generierte Kennung des genauen Unternehmens; 4)      Serial Nummer (6 oder 9 Symbole) – Absender bekommt eine Nummer für die Identifikation; 5)      PLZ der Lieferung-Adresse (11 Symbole) – kein Pflicht-Feld. Распределение кодируемой информации следующее: Barcode Kennung (2 Symbole) Leistung Typ (3 Symbole) Absenders Kennung (6 Symbole) Serial Nummer (9 Symbole) PLZ der Lieferung Adresse (0, 5, 9 oder 11 Symbole) Oder: Barcode Kennung (2 Symbole) Leistung Typ (3 Symbole) Absenders Kennung (9 Symbole) Serial Nummer (6 Symbole) PLZ der Lieferung Adresse (0, 5, 9 oder 11 Symbole) FastReport.Net hat eine Unterstützung des Intelligent Mail Barcodes von der Version 2017.03.01. Dieser Code sieht so aus: Streifen haben verschiedene Höhe, Richtung (nach oben oder nach unten) und Breite. In FastReport gibt es eine minimale Codes-Länge, die 20 Symbole gleich ist. Vom Symbol Nummer 21 gibt es eine PLZ, die kein Pflicht-Feld ist. Die Veränderung nur einer Zahl im Barcode transformiert seine Abbildung: Solchen Code druckt man nicht nur auf dem Umschlag, sondern auch auf der Unterlage. Weiter scannt man diesen Code durch spezielles transparentes Fenster im Umschlag. Tags: .NET, .NET, FastReport, FastReport, Barcode, Barcode ### Interactive forms in PDF export Fast Report .Net 2018 URL: https://www.fast-report.com/de/blogs/interactive-forms-pdf-export-net Summary: This article describes how to use interactive forms in your FastReport .NET reports. These forms allow you to edit values directly when viewing the report. This article describes how to use interactive forms in your FastReport .NET reports. These forms allow you to edit values directly when viewing the report. This article describes how to use interactive forms in your FastReport .NET reports. These forms allow you to edit values directly when viewing the report. It's no secret that the PDF standard allows you to create fillable forms. That is, the finished document can be edited directly from the viewer. Most often this is used for questionnaires and various forms. The user fills in the fields and sends the document by email or prints it. In the new version of FastReport.Net, you can export reports to PDF format with the support of interactive forms. In the export settings, the corresponding option was added: Enabling the option Interactive Forms imposes a number of restrictions - PDF can not contain embedded fonts, it can not have the standard PDF/A and PDF/X. To implement export with interactive forms, a new feature was added - editable text and checkbox fields in the report preview mode. Actually, now the report, in the preview mode, is an interactive fill form. Text and CheckBox objects have a new property - Editable. If it has the value “true”, the objects can be edited. Let's see how it looks like: We click on a text object with the Editable property turned on and get a text editing window. For the ChechekBox object, we can check the box or uncheck it: Interactive Forms are in the demonstrative reports FastReport. Let's export it to PDF. Make sure that the Interactive Forms option is enabled in the export settings. The prepared document has fields that can be edited. Fill them in: Now you can save the file with changes. Thus, the function of editing a report in the preview mode can be used for forms and questionnaires. You can save the report in the .fpx format and distribute it. Users will fill in the report like PDF forms. Or you immediately export the report to PDF format and also distribute the file. Tags: .NET, Export, FastReport, PDF ### Interactive matrix in a web report URL: https://www.fast-report.com/de/blogs/interactive-matrix-web-report Let us remember how to create an interactive matrix. We use the xml data base of FastReport.Net delivery. Choose the tables: Add the object Matrix on the data band: Now open the Order Details table in the data window. You will see a table connected: Products and Orders. Open Orders. It has another connected table Employees. We open it and drag the FirstName field at the column header: Double-click on the added field. Let's add field LastName to the FirstName, to display employee name. Thus, the field will be formed as follows: [Order Details.Orders.Employees.FirstName]+" "+[Order Details.Orders.Employees.LastName] This greatly expands the column header. Let's disable feature "AutoWidth". To do this, right click on the Matrix object. And select Auto Size from the context menu: Now you can adjust the size of rows and columns. Drag the Photo field at the column header. Adjust the cell size to fit both the added field. Now find connected Products table in the Order Detail table. Open it. It has also a connected Table Categories. Drag the CategoryName field at the row header from the Categories table. Put the field Picture into the same cell. Now drag the Unit Price field from the Order Details table to the data cell. Edit the added field. We need to find the product of three fields: UnitPrice, Quantity, and 1-Discount. Thus we find the real total of of sales: [Order Details.UnitPrice] * [Order Details.Quantity] * (decimal)(1 - [Order Details.Discount]) Matrix is almost ready. It remains to choose the style. Right-click on the template and select Style. For example, Orange. It’s already pretty: Create a detailed report on a separate page. Add a second page in the report. Add Field Order Details.OrderDate on the data band. Place the field Order Detail.Products.ProductName beside him. Also, we drag the field: Order Detail.UnitPrice, Order Detail.Quantity, Order Detail.Discount. To display the data for the desired employee's need to filter the table. We will transfer the data to compare from the first page to the second. To do this, create a parameter in the second page. For this option, we create two sub-parameters, both of type string Now let's add a filter to the band “data”. Double click on it and choose the Filter tab: [Order Details.Orders.Employees.FirstName] + " " + [Order Details.Orders.Employees.LastName] == [Parameters.Employee] && [Order Details.Products.Categories.CategoryName] == [Parameters.Category] Here we compare the first name + last name of employee with the parameter, and the category name with the parameter. Add a header for a detailed report: [Parameters.Employee] order's. The result - the template: Let's go back to the first page. Select data field of the matrix. In the Property inspector, find Hyperlink and open the hyperlink editor. Tab Report page: Select the second page and the parameter Parameters. The values of sub-parameters will be inserted automatically. The report is ready. Save it. Now create a Web application. I'm using ASP.Net MVC project. Add a reference to libraries FastReport.dll FastReport.Web.dll. HomeController.cs find the file in the Controllers folder. This controller of start page. Here we will work with the report object. Add the missing libraries: ``` using FastReport.Web; using System.Web.UI.WebControls; ```  And the code for the method Index, which is responsible for the start page: ``` public ActionResult Index() { WebReport webReport = new WebReport(); //create the instance of the WebReport. webReport.Width = Unit.Percentage(100); //set the webReport object width 100% webReport.Height = Unit.Percentage(100); //set the webReport object heigh 100% string report_path = "J:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; //reports folder System.Data.DataSet dataSet = new System.Data.DataSet(); //create a dataset dataSet.ReadXml(report_path + "nwind.xml"); //load the xml db webReport.Report.RegisterData(dataSet, "NorthWind"); //register db in thr report webReport.TabPosition = TabPosition.Hidden; //hide the detail reports tabs webReport.ShowBackButton = true;// show back button ViewBag.WebReport = webReport; //pass the web report to View return View(); } ```  There are two options of interest: TabPosition and ShowBackButton. The first is responsible for the display of the tabs in the toolbar reports. We hid the tabs. The second option sets a button «Back». It allows you to go back to the previous report. Now display the report in the view. Open the file for editing index.cshtml (Views- folder> Home). We set the page title and displays Web reports: ``` @{ ViewBag.Title = "Home Page"; } @ViewBag.WebReport.GetHtml() ```  In _Layout.cshtml file add scripts and styles in the section : ``` @WebReportGlobals.Scripts() @WebReportGlobals.Styles() ```  Add the namespace in the Web.config file that is in the Views folder: ``` ``` Add the handler Web.config file that lies at the root of the project: ``` ``` Run the application. Our matrix looks like this: Click on the category total of any data cell. And we see a detailed report for the relevant personnel and categories: In a detailed report shows all orders placed this employee by goods from the selected category. Now we know how to create an interactive template for the Web. One more type of report to the our piggy bank. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC, WebReport, WebReport, Interactivity, Interactivity ### Interactive web report with drill down lists URL: https://www.fast-report.com/de/blogs/interactive-reports-with-drill-down-lists Summary: In order to make our work with lists more comfortable we will create interactive reports with drill-down groups. This way you can review only the data that you need by opening a group. In order to make our work with lists more comfortable we will create interactive reports with drill-down groups. This way you can review only the data that you need by opening a group. In order to make our work with lists more comfortable we will create interactive reports with drill-down groups. This way you can review only the data that you need by opening a group. In this article we look at how to create interactive reports with drop-down groups. We will group the records and display the groups in a collapsed form. If necessary, the user opens and views the contents of a group. This functionality can significantly improve the user experience with the lists. Because groups occupy minimal space in the report, without overloading it with data. You are currently viewing the data for opened group only. Let's create a report with groups. I used a database nwind.xml from FastReport.Net delivery. For work, we need only one table - Products. The report template consists of five bands: • Report title; • Group header; • Data; • Group footer; • Page footer. In the data band, place the fields: Products.ProductName, Products.UnitPrice. In the group header, we will display the first letter of the product name: [[Products.ProductName].Substring(0,1)] Double-click on the band GroupHeader. In the band’s editor, enter the expression to group products by the first letter. Sort disabled. Now double-click on the data. In the band’s editor, select the tab Sort: Sort by product name. Add a new Total in the data window: As a function, use Count: Drill-down lists usually have a "plus sign", which means that the group is collapsed. In the expanded list, the icon changes to a minus. To realize this we use the CheckBox component. Place it near the group header: Change CheckedSymbol in the properties of the added object. Select Plus. And for UncheckedSymbol select Minus. Now we define hypperlink property for the CheckBox object and a text field on the right: On the custom tab, set expression: [Products.ProductName].Substring(0,1) It's time to program a little bit. Choose band GroupHeader. In the Property inspector, select the Events tab. We find the event BeforePrint and then double-click on it. Add the following code for the handler: ``` string groupName = ((String)Report.GetColumnValue("Products.ProductName")).Substring(0, 1); //Gets group name bool groupVisible = expandedGroups.Contains(groupName); //Check the group visibility Data1.Visible = groupVisible;// Sets a data visibility according with group visibility GroupFooter1.Visible = groupVisible;// Sets the group footer visibility according with group visibility CheckBox1.Checked = !groupVisible;//Sets the checkbox condition according with group visibility ```  Now create a list of visible groups. It is useful to us later: private List expandedGroups = new List(); Let's go back to the page of the report. Choose object CheckBox. In the Property inspector, we switch to the Events and create a handler for the Click by double-clicking. ``` string groupName = (sender as CheckBoxObject).Hyperlink.Value; // Gets group name from hyperlink if (expandedGroups.Contains(groupName)) //If the list of visible groups contains selected group expandedGroups.Remove(groupName); // Then delete selected group from the list of visible groups else expandedGroups.Add(groupName); //Else add group to list of visible groups Report.Refresh(); //Refresh the report ``` The report is ready. Proceed to the creation of web applications. I'm using ASP.Net MVC project. Adding FastReport.dll library, FastReport.Web.dll supplied FastReport.Net into Reference. In HomeController, add the following code: Add the libraries: ``` using FastReport.Web; using System.Web.UI.WebControls;     public ActionResult Index() { WebReport webReport = new WebReport(); webReport.Height = Unit.Percentage(100); webReport.Width = Unit.Percentage(100); string report_path = "J:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; System.Data.DataSet dataSet = new System.Data.DataSet(); dataSet.ReadXml(report_path + "nwind.xml"); webReport.Report.RegisterData(dataSet, "NorthWind"); webReport.Report.Load(report_path + "InteractiveDrillDown.frx"); ViewBag.WebReport = webReport; return View(); } ```  Let us line by line: 1. Create an instance of the report object; 2. Set the height of web report to 100%; 3. Set the width of the web report to 100%; 4. Set the reports directory; 5. Create a data source; 6. Load the database into the data source; 7. Register the data source in the report; 8. Load the report; 9. Pass the report to View. Now edit the view Index.cshtml: ``` @{ ViewBag.Title = "Home Page"; } @ViewBag.WebReport.GetHtml() ```  In _Layout.cshtml file add scripts and styles: ``` @WebReportGlobals.Scripts() @WebReportGlobals.Styles() ```  In the Web.config file from the View folder, add namespaces: ``` ```  In the Web.config file from the root of the project, add a handler: ``` … ```  Now run the Web application: As you can see, when you click on the cross or group header it expands. In this case the plus sign changes to a minus. If you again click on the group header or minus, the group collapses. This is how we can create interactive drill-down lists in web reports. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC, WebReport, WebReport, Interactivity, Interactivity ### Interactive web report with outline and bookmark URL: https://www.fast-report.com/de/blogs/interactive-web-report-outline Interactive reports allow users to interact with them. For example, a report can contain hyperlinks, bookmarks and an outline. By clicking on the section title in the content you move to a bookmark in the desired location of your report. These reports are often used in catalogs. Let us create an interactive report for the Web. For this, we need a report template and a web application. We can begin with the report. Its template will consist of two pages - a content and a data page. For example, I used a database of "nwind.xml FastReport.Net" delivery. So, we use a table "Categories and Products". I have created a simple template with a field "Categories.CategoryName". By clicking on a category a user will move to the appropriate section. We will overview this feature later. Now let us create the second page of the report . Here the band "Data" contains a detailed band. To add it, use the right click on the band "Data" and choose from the list of “Add Detail Data Band”. For a detailed data band you need to add the header band. To do this, press the button “Configure bands ...”. In the appeared window select a detailed band "Data" and click "Add» (Add). Choose the band “Header”: Drag fields to the main band “Data”: Categories.CategoryName, Categories.Description, Categories.Picture. I would also like to add a link to the first page of the report. The template looks like this: For label "Back to first" add a hyperlink. Do a right click on this label and choose "Hyperlink". In the editor, choose Hyperlink tab “Page Number” and set the value 1: Now we get a detailed band "Data". Drag the fields from the "Product" table to it: ProductName, UnitPrice, UnitsInStock, Discontinued. The template page looks like this: To navigate through the tabs and the formation of the content, we need to set some properties of the first data band. So, select the band. In the Property inspector find "OutlineExpression". Enter the value - [Categories.CategoryName]. Just above the property there is a Bookmark. Set the same value for it. For a detailed band "Data" we set Outline property - [Products.ProductName]. Now back to the first page. For the field "Categories.CategoryName" we define "Hyperlink" property. In the "Hyperlink" editor, choose tab “Bookmarks” and set the expression [Categories.CategoryName]: Now, I would like to display the page numbers next to each category name. Add a text box next to the category name and set the following text: [Engine.GetBookmarkPage([Categories.CategoryName])] This function will show a page number for the bookmark. Let us add a hyperlink for this text box: To display the number of pages with bookmarks, you ought to ,firstly, build a report. Speaking about our example, we have page numbers located on the first page of the report and the engine of the report "does not know" page numbers of the bookmarks. It is necessary to enable Dublepass property for the report. It will allow to pass the report twice. The first time - to get the page numbers of bookmarks, the second - to display these numbers on the first page of the report. To find this property, select a report object (Report) in the drop-down list in the Property inspector: Now our report is ready. Create an ASP.Net MVC project. Please, add FastReports library Reference: FastReport.dll, FastReport.Web.dll. I will demonstrate the object of the report on the first page of the site, therefore we use the controller "HomeController": ``` using FastReport.Web; using System.Web.UI.WebControls;   public ActionResult Index() { WebReport webReport = new WebReport(); //Create instance of web report object string report_path = "J:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; //Set reports path System.Data.DataSet dataSet = new System.Data.DataSet(); //Create data set dataSet.ReadXml(report_path + "nwind.xml"); //Load xml db to data set webReport.Report.RegisterData(dataSet, "NorthWind"); //Register data set in report webReport.Height = Unit.Percentage(100); //Set report height webReport.Width = Unit.Percentage(100); //Set report width webReport.Report.Load(report_path + "InteractiveComplexReport.frx"); //Load report ViewBag.WebReport = webReport; //Pass report to view return View(); } ``` Now, edit the view "Home-> Index.cshtml". Keep only the title and the displaying of the report: ``` @{ ViewBag.Title = "Home Page"; } @ViewBag.WebReport.GetHtml() ```  Add scripts and styles to file Shared->_ Layout.cshtml: ``` @WebReportGlobals.Scripts() @WebReportGlobals.Styles() ```  Add namespaces to the file "Views->Web.config": ``` ```  Add a handler to the file "Web.config" located in the root of the project: ``` … ```  That is all with the report. Now run the application. Here is the first page of the report: Select any category and move to it: To return to the contents click "Back to first". Do export of the report in Adobe Acrobat format with the icon  on the web report toolbar. Here we have used the Outline property. There is a detailed report outline on the left of the page. The example given here concludes that one can make a web report more attractive and easy to use. As it was said at the beginning, this type of interactive reports is perfect to display a product catalog. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC, Interactivity, Interactivity ### Interactive web report – detail page URL: https://www.fast-report.com/de/blogs/interactive-web-report-detail-page Interactive reports allow the user to interact with the report through hyperlinks. Through hyperlinks, you can run other reports, or to move to other pages of the report or go to your bookmarks. In the article "Interactive Web reports in MVC project," we looked at how to create an interactive report with a detail report. In essence, we have created two reports. One refers to another one. But everything can be done easier. You do not have to create a separate report for detail. You can make a detailed report on a separate page in the main report. Let's look at how to do it. Create a report. As a data source I have used xml database of FastReport.Net delivery. Table Categories and Products. Create the relation between the tables: You can see the new relation in the data window: Let’s place fields on the data band: As you can see, we have placed two fields: Category Name and Picture. Property Columns-> Count is set to 2 in the data band. Add a new page of the report. We will create a detailed report in it - a list of products. The report template is quite simple: Now you need to organize a filtering of a list products. We will be filter by category name. We will pass the category name from the first page to the second. To do this, create a report parameter on the second page: Now, open the band "Data" editor by double-clicking on it. Tab "Filter": We used the CategoryName field from the Categories table connected to the filter expression. Go to the first page of the report. Click on Categories.CategoryName field on the band "data." In the Property inspector find Hyperlink. And open the hyperlink editor: Select the tab "details page of the report." Here we choose: the second page of the report parameter Category. The value of the parameter is given by: [Categories.CategoryName] At the bottom of the form enables the option "Modify the object’s appearance so it will look like a clickable link." The report is ready. Save it and go to the second stage. The second stage of work I have identified the creation of a demo web application. Create an MVC project. Add a link to the library and FastReport.dll FastReport.Web.dll. The report will be placed on the home page of the site - Home. Therefore, the logic the report is placed in the controller HomeController. Add the libraries: ``` using FastReport.Web; using System.Web.UI.WebControls; ```  And following code: ``` public ActionResult Index() { WebReport webReport = new WebReport(); //create the inctance of WebReport object. string report_path = "J:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; //Reports location System.Data.DataSet dataSet = new System.Data.DataSet(); //Create DataSet dataSet.ReadXml(report_path + "nwind.xml"); //Load xml db into dataset webReport.Report.RegisterData(dataSet, "NorthWind"); //register the dataset in report webReport.Report.Load(report_path + "Simple Interactive.frx"); //load a report into WebReport ViewBag.WebReport = webReport; //pass the report to View return View(); } ```  Now we need to show our report in view Index.cshtml (Views-> Home folder). Web page code looks like this: ``` @{ ViewBag.Title = "Home Page"; } @ViewBag.WebReport.GetHtml() ```  In the last line, the controller transmits a report submitted to display. It is necessary to connect scripts in _Layout.cshtml file: ``` @WebReportGlobals.Scripts() @WebReportGlobals.Styles() ```  Add the namespace in web.config file, which is located in the Views folder.   ``` ```  Add a handler in the Web.config file located in the root of the project: ``` ```  We launch our application. And see our report: Click on the category Confections. So we created an interactive report, without resorting to the creation of a separate file for detailed information. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC, WebReport, WebReport, Interactivity, Interactivity ### Interaktiver Bericht im MVC Projekt URL: https://www.fast-report.com/de/blogs/interactive-web-report-mvc In diesem Artikel geht es um die Erstellung von interaktiven Web Berichten. Solche Berichte unterstützen einen Übergang zu den detaillierten Berichten oder auf andere Web Seiten. Solche Unterstützung macht die Berichtserstellung mehr besser, weil es bequemer wird, detaillierte Informationen in Verbindung mit dem Kontext zu suchen und keinen Recherchen mit der Hand zu machen.  Am Anfang brauchen wir einen Bericht zu erstellen. Wir zeigen die Kategorie Liste von Produkten. Beim Druck auf irgendwelche Kategorie erstellt man einen detaillierteren Bericht mit der Liste von Waren für gewählte Kategorie. Also, der Hauptbericht ist die Liste von Kategorien. Erstellen wir jetzt die Schablone des Berichts.  Ich verwandte einen xml Datenlager aus der FastReport.Net Lieferung. Die Tabelle „Categories“:  Erstellen wir jetzt eine neue Schablone: Ich saß für den Band „Daten“ die Eigenschaft Columns, Count wie 2 ein. Jetzt werden Daten in diesem Band in zwei Spalten angezeigt. Dargestellt werden Name der Kategorie und das Bild. Unsere Aufgabe wird, eine detaillierte Liste von Produkten für gewählte Kategorie darzustellen. Zu diesem Zweck erstellen wir einen detaillierten Bericht für Darstellung der Liste von Waren. Erstellen wir einen neunen Bericht. Aus dem Lager wählen wir die Tabelle Produkts und Kategories. Verbinden wir zwei Tabellen Products und Categories durch das Feld CategoryID:   Und erstellen wir die Schablone des Berichts: Jetzt brauchen wir einen Filter für die gewünschte Kategorie. Dazu verwenden wir das Feld CategoryID. Man braucht auch eine Übertragung vom Parameter (Identifikation der Kategorie) aus dem ersten Bericht in zweiten. Dazu erstellen wir einen neunen Berichtsparameter - Category. Typ der Daten - String.  Und erstellen wir auch den Filter für den Band „Daten“. Machen wir einen Double-Click auf den Band und wählen den Tab „Filter“: In der Filters Formel prüft man, ob das Feld CategoryID gleich dem Wert vom Parameter Category ist. Speichern wir jetzt den Bericht. Jetzt kehren wir zum ersten Bericht mit den Kategorien zurück.    Für den Übergang zum detaillierten Bericht erstellt man einen Hyper-Link fürs Feld CategoryName. Wählen wir weiter das Feld Categories.CategoryName auf den Band „Daten“. In den Eigenschaften finden wir den Link und öffnen den Editor von Eigenschaften. Dabei wird „der Editor vom Hyper-Link” angezeigt. Wählen wir jetzt einen detaillierten Bericht: Hier wählen wir einen detaillirten Bericht, der früher erstellt wurde. Weiter wählen wir den Bercihts Parameter Category, den wir den Wert aus dem Hauptbericht übergeben. Und, endlich, setzen wir eine Formel ein, aus der der Wert für den Parameter Category berechnet wird. Diese Formel ist das Feld CategoryID aus der Tabelle Categories. Im unteren Teil der Form akrivieren wir den Checkbox „Modify the objekt´s appearence so it will look like a clickable link“. Schluss damit, speichern wir den Bericht. Jetzt haben wir einen Hauptbericht mit den Kategorien und einen detailllierten Bericht mit den Produkten. Erstellen wir ein MVC ASP.Net Projekt. Verbinden wir die Bibliotheken zum Projekt: FastReport.dll, FastReport.Web.dll. Stellen wir den Bericht auf der Seite Home. Wir arbeiten mit der Komponente WebReport in der Klasse HomeController (aus dem Ordner Controllers.) Fügen wir die Bibliotheken hinzu: ``` using FastReport.Web; using System.Web.UI.WebControls; ```  Add the following code to the Index () method: ``` public ActionResult Index() { WebReport webReport = new WebReport(); //create instance of WebReport object. string report_path = "J:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; //reports directory System.Data.DataSet dataSet = new System.Data.DataSet(); //create data set dataSet.ReadXml(report_path + "nwind.xml"); //load xml data base webReport.Report.RegisterData(dataSet, "NorthWind"); //registry data source in the web report webReport.Report.Load(report_path + "Simple Interactive.frx"); //load the report to WebReport ViewBag.WebReport = webReport; //send the report to View return View(); } ``` Jetzt zur Darstellung Index.cshtml: Ich löschte allen standardisierten Code und fügte meinen hinzu. Dargestellt werden nur der Titel der Seite und Web Report: ``` @{ ViewBag.Title = "Home Page"; } @ViewBag.WebReport.GetHtml() ``` Die Methode Index aus dem Controller HomeController gibt den Bericht in die Darstellung über. In der Datei _Layout.cshtml soll man Scripts aktivieren:     ``` @WebReportGlobals.Scripts() @WebReportGlobals.Styles() ``` Jetzt fügt man in zwei Web Configs hinzu. Die Dateien haben gleichen Namen, aber befinden sich in verschiedenen Ordnern. Erste –im Ordner Views. Fügt man in diese Datei die folgenden Codezeilen hinzu: ``` … ``` Zweite Datei liegt im Kern vom Projekt. Fügt man in diese Datei den Bearbeiter:  ``` … ``` Und jetzt starten wir die Anwendung. Unser Hauptbericht mit den Kategorien. Wählen wir eine von denen.  Der detaillierte Bericht wurde angezeigt. Merken Sie sich, dass das Instrumenten Panel einen neunen Tab jetzt hat. Sie können mit Hilfe vom Band „Simple Interactive“ zum Hauptbericht übergehen. Auf diese Weise können wir populäre Web Berichte nicht nur in Desktop Anwendungen, sondern auch in Web verwenden.     Tags: FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC, Interactivity, Interactivity ### Interaktiver Bericht mit vorläufiger Dateneingabe in eine Tabelle URL: https://www.fast-report.com/de/blogs/interactive-report-preliminary-data Summary: Wir sprechen über die Möglichkeit, Daten in einer Tabelle manuell zu ändern, bevor Sie einen Bericht mit einem Skript aus FastReport .NET erstellen. Wir sprechen über die Möglichkeit, Daten in einer Tabelle manuell zu ändern, bevor Sie einen Bericht mit einem Skript aus FastReport .NET erstellen. Wir sprechen über die Möglichkeit, Daten in einer Tabelle manuell zu ändern, bevor Sie einen Bericht mit einem Skript aus FastReport .NET erstellen. Wie Sie bereits wissen, können FastReport.NET Berichte Dialogformularen enthalten, die angezeigt werden, bevor der Bericht erstellt wird. Mit diesen können einige Text-, boolesche oder numerische Variablen angegeben werden. Dies können Textfelder, Tabellen, Listen, Dropdown-Listen, Daten, Kontrollkästchen und sogar Listen mit Kontrollkästchen sein. Dialogformulare werden in der Regel verwendet, um Daten in einem Bericht zu filtern oder um Kriterien für das Berichtsverhalten auszuwählen. Aber heute wollen wir eine andere mögliche Anwendung des Dialogformulars erläutern. Betrachten wir den Fall, dass die Daten in einen Bericht eingegeben werden müssen, bevor er angezeigt wird. Dies ist ein ziemlich einfacher Fall, wenn es sich um einzelne Textfelder, Kontrollkästchen oder Listen handelt. Was aber, wenn Sie eine Tabelle mit Daten haben und diese Daten manuell anpassen möchten, bevor Sie den Bericht erstellen? Hier kommt die Grid-Komponente   zu Hilfe. Dies ist eine Datentabelle, die wir auf dem Dialogformular anzeigen können, bevor wir den Bericht erstellen. Fügen wir dem Bericht ein Dialogformular hinzu und platzieren wir ein Grid-Kontrollelement darauf. Klicken wir mit der rechten Maustaste, um das entsprechende Kontextmenü aufzurufen: Wählen wir “Edit Collumns…”, um der Tabelle Spalten hinzuzufügen. Fügen wir im Bearbeitungsfenster drei Spalten hinzu - Name, Address, Phone. Bitte beachten Sie die Customers.Name Eigenschaft. Hier verweisen wir auf eine Customers-Datenquelle, die noch nicht im Bericht enthalten ist. Wir werden sie aber später mit Hilfe eines Skripts hinzufügen. Für andere Spalten müssen wir die entsprechenden Eigenschaften festlegen. Die Vorlage für die Berichtsseite ist sehr einfach – das ist nur ein Table-Objekt mit drei Spalten. Wir befüllen sie im Berichtsskript. Fügen wir nun einen StartReport-Ereignishandler für den Bericht hinzu: Berichtsskript: ``` public class ReportScript { //Datenstruktur der Tabelle public class Customer { public string Name {get; set; } public string Address {get; set; } public string Phone {get; set; }   public Customer(string name, string address, string phone) { Name = name; Address = address; Phone = phone; } }   private void _StartReport(object sender, EventArgs e) { //Benutzerliste List customers = new List(); //Ausfüllen der Benutzerliste mit Standarddaten customers.Add(new Customer("Kevin Smith", "221 52nd st, Brooklyn, NY, United States", "+12127599755")); customers.Add(new Customer("Justin Ford", "1556 Broadway, suite 416, NY, United States", "+12145678900")); customers.Add(new Customer("Amanda Stephenson", "455 Larkspur Dr., CA, United States", "+14105175379")); //Registrieren der Datenquelle im Bericht Report.RegisterData(customers, "Customers"); //Festlegung der Datenquelle in der Tabelle Grid1.DataSource = Report.GetDataSource("Customers"); //Festlegung der Felder in den Zellen Cell6.Text = "[Customers.Name]"; Cell7.Text = "[Customers.Address]"; Cell8.Text = "[Customers.Phone]"; } } ``` In diesem Fall definieren wir die Customer-Datenstruktur, die für die Ausgabe von Tabellenzeilen im Dialogfenster und im Bericht verwendet wird. Als Nächstes erstellen wir eine Datenquelle namens Customers und füllen wir sie mit Customer-Instanzen aus. Dann registrieren wir die resultierende Datenquelle im Bericht. Erinnern Sie sich, wie wir ein Datenfeld für Spalten im Grid-Objekt festgelegt haben? Dies ist die Datenquelle, auf die wir verwiesen haben. Hier weisen wir Felder aus der Quelle den Tabellenzellen (Tabellenobjekt) in der Seitenvorlage zu. Erstellen wir nun für das Tabellenobjekt auf der Berichtsseite einen ManualBuild-Ereignishandler. Dieses Ereignis wird nach der Erstellung des Objekts auf der Seite aufgerufen und ermöglicht es, die Tabelle zu ändern, die dann zur Anzeige bereit ist. So können wir den Text in der Tabelle mit dem Skript ändern. ``` private void Table1_ManualBuild(object sender, EventArgs e) { //Festlegung der Datenquelle DataSourceBase rowData = Report.GetDataSource("Customers"); //Initialisierung der Daten rowData.Init(); //Anzeige der ersten Datenzeile Table1.PrintRow(0); //Anzeige der Spalte Table1.PrintColumns(); //Durchlaufen aller Datenzeilen in der Quelle while (rowData.HasMoreRows) { //Ausgabe der nächsten Datenzeile Table1.PrintRow(1); //Ausgabe der Spalte Table1.PrintColumns(); //Verwenden des folgenden Eintrags aus der Quelle rowData.Next(); } } ``` Hier füllen wir die Tabelle aus, indem wir einfach alle Datenzeilen durchlaufen. Führen wir den Bericht aus. Das erste, was wir sehen, ist ein Dialogfenster mit einer Tabelle: Doppelklicken wir auf die erste Zelle, um ihren Text zu bearbeiten: Klicken wir auf OK und sehen wir uns das Ergebnis an: Wie Sie sehen können, unsere Standarddaten wurden durch die ersetzt, die wir manuell eingegeben haben. Auf diese Weise können Sie den Benutzern die Möglichkeit anbieten, die Daten vor der Berichtserstellung manuell zu ändern. In diesem Beispiel wird die Tabelle mit Daten aus einem Skript gefüllt, aber es gibt keinen Grund, warum die Tabelle mit Daten aus einer Quelle nicht gefüllt wird. Tags: .NET, .NET, FastReport, FastReport, Interactivity, Interactivity, Designer, Designer, Script, Script, Report, Report ### International Pascal Conference URL: https://www.fast-report.com/de/news/international-pascal-conference Summary: International Pascal Conference International Pascal Conference We would like to invite you to international Pascal Conference to be held in the Netherlands on 7th September 2013. Every seminar and conference presentation will be given in English. Please check online for the latest details at People are flying in from as far away as Mexico and Brazil! However, there are still places available, and you can book for the all-inclusive price of 35 euros, which covers not only admission to all events, but also your lunch and refreshments throughout the day. ### ITDevCon 2014 URL: https://www.fast-report.com/de/news/itdevcon-2014 Summary: ITDevCon 2014 ITDevCon 2014 Fast Reports on  ITDevCon 2014. Den Zubov  will  e xpla in  how  migrate to FastReport from other reporting tools.  ITDevCon is coming back on 23rd and 24th October 2014. The innovative feature of this edition is the location. This year, the European Conference for Delphi developers will be held in Milano. We will discuss about the main improvements of the RAD Studio suite and how is now possible work in a fluid development environment that makes your workflow more efficient.  We will also talk about new technologies and development, also for mobile, on different platforms: Windows, MacOSX, iOS and Android.  itdevcon.it ### Jasper can now be converted to FastReport .NET URL: https://www.fast-report.com/de/news/jasper-converter-fastreport Summary: A new converter for importing documents and reports from JasperReports to FastReport .NET, FastReport Mono and FastReport CoreWin. A new converter for importing documents and reports from JasperReports to FastReport .NET, FastReport Mono and FastReport CoreWin. With the FastReport .NET 2022.3.12 update, document and report conversion from JasperReports to FastReport .NET is now available. Users can now quickly import a template from JasperReports with maximum accuracy into .frx format for FastReport .NET, FastReport Mono and FastReport CoreWin. The resulted report may have some differences, also most likely this report will need to be refined - changing the properties of objects and adding connections. You can see the advantages of FastReport products in comparison with JasperReports in the table. Read more about how to import your data from JasperReports in our article . ### Join testing FastReport Studio! URL: https://www.fast-report.com/de/news/testing-fastreport-studio Summary: Join testing FastReport Studio! Join testing FastReport Studio! Access to the following objects of the report generator - TfrxReport, TfrxUserDataSet, TfrxADODatabase, TfrxADOTable and TfrxADOQuery is given for programmer.  The following components included into a demo package: 1. Library frxCOM.dll, including COM a server and TypeLibrary. 2. Demo database in format Microsoft Access 3. Demo reports in format FastReport 3 4. Demo examples of use FastReport COM server for the following languages and environments: 4.1 Visual C++ Demo 4.2 Visual C#. NET Demo 4.3 Visual Basic.NET Demo 4.4 Visual FoxPRO Demo 4.5 Microsoft Access Demo 4.6 Microsoft Excel Demo 5. Report designer. All demo programs delivered with sources. Changes in FastReport Studio Beta 2 + FastReport Studio based on FastReport 3.12 + Demo programs for Visual FoxPro, MicrosoftAccess and Microsoft Excel added + Report designer + COM objects for technology ADO added + Resources for multilanguage support added - Interface IStrings excluded from TypeLibrary. + The opportunity of access to internal objects FastReport for which are determined COM interfaces has appeared. + New opportunities in Visaul C ++ Demo - ScriptText browser, ReportStructure browser are added. + Correct display of the reports based on UserData in demo programs on Visual C # is made. NET and Visual Basic.NET + The algorithm of registration of events in demo programs on Visual C # is changed. NET and Visual Basic.NET + The interface for TfrxComponent is added. + Methods for dynamic attachment of the objects based on class TfrxDataSet to object TfrxReport are added. - Set of fine bugfixes. ### Komponenten von FastCube .NET. Teil 2. Diagramm, Datenquelle URL: https://www.fast-report.com/de/blogs/components-fastcude-net Summary: Werfen wir einen genaueren Blick auf die FastCube.NET-Komponenten und ihre Verwendung. Teil 2. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Werfen wir einen genaueren Blick auf die FastCube.NET-Komponenten und ihre Verwendung. Teil 2. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Werfen wir einen genaueren Blick auf die FastCube.NET-Komponenten und ihre Verwendung. Teil 2. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. In the first part of the article, we looked at the components for data analysis - a cube and a slice. In the second section, the components from the database or DataTable will be presented, as well as the slice diagram. 1. The Chart component is a graph based on the data from the slice. It is built automatically, just set the property of Slice. Properties: Property Description SeriesType Chart type (columnar, circular, etc.) SkipNullPoints Ignore empty points in the diagram BaseAxisDataType Base axis data type MeasureFieldIndex Field index of the measure SeriesFieldCount Number of fields in a series CategoriesFieldCount Number of category fields SeriesAxis Axis of the series. Contains columns and lines. CategoriesAxis Axis of categories. Contains columns and lines. DataType The way data is presented in the diagram. Slice Link to slice object Legends Legends - names of data series (graphs) ChartAreas Areas of the graph Frozen Freezing allows you to fix the state of the chart, so that subsequent changes in the cut will not be reflected on it Methods: Method Description BeginUpdate() Enable editing mode EndUpdate() End editing Load(XmlItem item) Load chart settings from the cube file Save(XmlItem subItem) Save the graph settings to a cube file Setting the Chart component is to select the available slice in the Slice property. To create and customize the Chart object in the application code, use the following code: ``` Chart chart = new Chart(); chart.Dock = DockStyle.Fill; chart.Parent = tabPage3; chart.Slice = slice1; ```  In this case, we need to create an object, configure its display, bind to the parent object, and specify the slice.  2. The ChartToolbar component contains tools for customizing the chart display. Composition: 1)      Chart style: Bar; Line; Point; Area; Pie; Horiz Bar. 2)      Frozen chart – freeze the current state of the chart; 3)      Chart properties – chart properties in a separate window; 4)      Marks; 5)      Legend; 6)      Copy - copy the diagram as a picture. Properties: Property Description Chart The Chart object for which this toolbar is active When setting up the visual component, you need to set the Chart property, which is the chart to which the toolbar will be attached. Customization from application code:. ``` ChartToolbar chartToolbar = new ChartToolbar(); chartToolbar.Dock = DockStyle.Top; chartToolbar.Parent = tabPage3; chartToolbar.Chart = chart; ```   3. The DataSource component is the data source for the cube. Properties: Property Description DataSet Data Set - DBDataSet or DTDataSet Fields List of data source fields Methods: Method Description AddFields() Load cube fields from the data source Check(StringBuilder msg, bool skipFieldsWithErrors) Check fields for duplication Close() Resets the data source to zero DeleteFields() Clears the list of fields for the cube InitFields(bool loaded = false) Initializing Fields Open() Open Data Source  In the settings of this component, you need to define a data set. This can be a DBDataSet or a DTDataSet. Below, for the listed components, the configuration from the application code of the entire data acquisition chain will be shown. 4. DBDataSet - a data set for the DataSource, obtained from the database. Properties: Property Description DbCommand The command for the database that contains the SQL query Configuring the connection of the cube to the database: 1) Using visual components: To configure a data connection via DBSataSet, you need to generate DBCommand using the oleDBCommand component. In turn, for the oleDBCommand component, you must specify a connection to the database using the oleDBConnection component. To configure the connection to the database, the following components are required: Setting up oleDbConnection: Create a new connection: Setting up oleDBCommand: You should specify the command - sql query. And also, you need to select a data connection. • Setting up the cube: 2)      From the application code: ``` OleDbCommand command = new OleDbCommand(); command.CommandText = "Select * from Sales"; dbDataSet1.DbCommand = command; dataSource1.DataSet = dbDataSet1; cube1.DataSource = dataSource1; cube1.Open(); ``` 5. DTDataSet is the data set for the DataSource that is received from the DataTable. In turn, DataTable can be filled with data from the database, text file, application code. Properties: Property Description DataTable Reference to the table The procedure for setting up a connection to the DataTable using visual components is very simple. Configuring a Cube to a DataTable: 1) Setting up visual components is similar to setting up a database connection, the only difference is that in the DataSet configuration for the DataSource component, you need to select dtDataSet1. Accordingly, oleDBConnection and oleDBCommand are not required. 2) From the application code: ``` DataTable dataTable = new DataTable(); // Create a table and fill it with data … cube1.Close(); // Close the cube to unload the data from it (if previously loaded) dtDataSet1.DataTable = dataTable; // For the data set, we assign the created table to the DataTable property dataSource1.DeleteFields(); // Clear the fields in the data source (if previously loaded) dataSource1.DataSet = dtDataSet1; cube1.Open(); // Open the cube to load the data into it ``` Tags: .NET, FastCube ### Konfigurieren einer API für das Build von FastReport Online Designer URL: https://www.fast-report.com/de/blogs/api-builder-online-designer Summary: Wir sprechen über die Automatisierung des Erstellungsprozesses von FastReport Online Designer Builder über die API, wenn die Produktversion geändert wird. Wir sprechen über die Automatisierung des Erstellungsprozesses von FastReport Online Designer Builder über die API, wenn die Produktversion geändert wird. Wir sprechen über die Automatisierung des Erstellungsprozesses von FastReport Online Designer Builder über die API, wenn die Produktversion geändert wird. Mit dem FastReport Online Designer Builder können Sie jetzt einen Designer über die API erstellen. Zuvor mussten die Benutzer den Designer manuell im FastReport Online Designer Builder erstellen. Das Ergebnis des Builds kann in der App heruntergeladen oder per E-Mail empfangen werden. Jetzt können Sie diesen Prozess automatisieren, um FastReport Online Designer zu aktualisieren, wenn sich die Produktversion ändert. Dazu müssen Sie eine Funktion erstellen, die mit der API funktioniert und das Designer Build auf Ihren Servern bereitstellt. Ein Beispiel für die Verwendung der API: Sie können die Produktversion einmal am Tag abfragen und wenn sie sich geändert hat, automatisch вфы Build anfordern. Und dann den aktualisierten Designer hosten. API-Schlüssel Die Benutzerautorisierung erfolgt über einen API-Schlüssel, den Sie im FastReport Online Designer Builder erstellen können. Um einen Schlüssel zu erstellen, müssen Sie: 1) Melden Sie sich unter Ihrem Konto beim Build-Service an. 2) Gehen Sie zum Abschnitt "API Keys" (befindet sich, wenn Sie auf drei Punkte klicken). 3) Klicken Sie auf die Schaltfläche "+ Erstellen" Danach wird ein neuer API-Schlüssel generiert. Sie können auf den Schlüssel klicken, um ihn zu kopieren und ihn zur Autorisierung der API zu verwenden. Build-Anfrage Um ein Build anzufordern, senden Sie eine POST-Anfrage an: ``` https://dsg2014.fast-report.com:3000/builderAPI/build ``` Der Request-Body muss mindestens Ihren API-Schlüssel enthalten. Wenn der Parameter nicht angegeben wird, wird sein Standardwert verwendet! Beispiel für eine minimale Anfrage: ``` { "APIkey": "Ihr API-Schlüssel" } ``` Im Folgenden werden die Parameter beschrieben, die von der API für das Build akzeptiert werden. Parameter Wert Beschreibung  themes  Thema, mit dem das Build durchgeführt wird.  Datentyp: Zeile  Die Werte sind in der Themen Tabelle angegeben.  components  In das Build aufzunehmende Komponenten.  Datentyp: Array  Die Werte sind in der Komponenten Tabelle angegeben.  bands  In das Build aufzunehmende Bands.  Datentyp: Array  Die Werte sind in der Bands Tabelle angegeben.  controls  In das Build aufzunehmende Dialogfeld-Controls.  Datentyp: Array  Die Werte sind in der Controls Tabelle angegeben.  plugins  In das Build aufzunehmende Plugins.  Datentyp: Array  Die Werte sind in der Plugins Tabelle angegeben.  customization  In das Build aufzunehmende Panels.  Datentyp: Array  Die Werte sind in der Panel Tabelle angegeben.  config  Build-Konfiguration.  Datentyp: Objekt  Die Struktur des Objekts ist in der Einstellungen Tabelle angegeben. Themen  Wert  Beschreibung  none  Verwenden Sie das Thema nicht.  classic  Verwenden Sie ein klassisches Thema.  mini  Verwenden Sie ein minimales Thema. Komponenten  Wert  Beschreibung  TextObject  Textkomponente  PictureObject  Komponente Bild  ShapeObject  Komponente Figur  PolygonObject  Komponente Polygon  PolyLineObject  Komponente Polylinie  LineObject  Komponente Linie  SubreportObject  Komponente Unterbericht  TableObject  Komponente Tabelle  MatrixObject  Komponente Matrix  AdvMatrixObject  Komponente Erweiterte Matrix  BarcodeObject  Komponente Barcode  RichObject  Komponente Rich Text  CheckBoxObject  Komponente Kontrollkästchen  CellularTextObject  Komponente Text in Zellen  LinearGauge  Komponente Lineargeber  SimpleGauge  Komponente Einfacher Geber  RadialGauge  Komponente Rotatorischer Geber  SimpleProgressGauge  Komponente Einfacher Fortschrittsanzeiger  HtmlObject  Komponente HTML  SVGObject  Komponente SVG  ContainerObject  Komponente Container  DigitalSignatureObject  Komponente Digitale Signatur  MapObject  Komponente Karte Bands  Wert  Beschreibung  ReportTitleBand  Bericht-Kopfzeile  ReportSummaryBand  Bericht-Zusammenfassung  PageHeaderBand  Seitenkopf  PageFooterBand  Fußzeile  ColumnHeaderBand  Spaltenüberschrift  ColumnFooterBand  Spaltenfuß   DataHeaderBand  Daten-Kopfzeile  DataBand  Daten  DataFooterBand  Datenfußzeile  GroupHeaderBand  Gruppenkopfzeile  GroupFooterBand  Gruppenfußzeile  ChildBand  Child-Band  OverlayBand  Overlay-Band Controls  Wert  Beschreibung  ButtonControl  Schaltfläche  CheckBoxControl  Kontrollkästchen  CheckedListBoxControl  Auswahlliste  ComboBoxControl  Textfeld mit einer Dropdownliste  DateTimePickerControl  Datumseingabefeld  LabelControl  Aufschrift  ListBoxControl  Liste  MonthCalendarControl  Kalender  RadioButtonControl  Schalter  TextBoxControl  Textfeld Plugins  Wert  Beschreibung  CODE  Codierte Seite  GUIDES  Leitlinien  POSITION_BLOCK  Komponentenposition beim Bewegen  RULER  Lineal  BAND_HORZ_RESIZER  Ändern der horizontalen Bandbreite  HOTKEY  Hot-Tasten  CONTEXT_MENU  Kontextmenü  DBLCLICK  Doppelklick Panel  Wert  Beschreibung  Properties  Eigenschaften  Events  Ereignisse  ReportTree  Berichtsbaum  Data  Datenquellen  Preview  Seitenvorschau Einstellungen  Wert  Beschreibung  features  Datentyp: Array  Die Werte sind in der Funktionen Tabelle angegeben.  entryName  Datentyp: Objekt {     "name": "index",     "ext": "html" }  publicPath  Datentyp: Zeile  Öffentlicher Pfad zur Anwendung auf dem Server.  saveSuccessRedirect  Datentyp: Objekt {       "url": null ,       "blank": false ,       "useParent": false ,       "removeConfirmation": true }        customFonts  Link zu Schriftarten  API  Datentyp: Array  Die Werte sind in der API Tabelle angegeben. Funktionen {     "name": "SHOW_BAND_TITLE",     "enabled": true } Das Objekt enthält einen Funktionsschlüssel und ein Kennzeichen  Wert  Beschreibung  SHOW_BAND_TITLE  Band-Kopfzeile  ADD_BANDS  Hinzufügen von Bands  SORT_BANDS  Band-Sortierung  RESIZE_BANDS  Band-Größenänderung  CONFIRM_BEFORE_EXIT  Bestätigung vor dem Austritt  MOVABLE_POPUPS  Bewegliche Dialogfelder  REVISION_FILES  Hash in Dateinamen  MINIFY  Code-Minifizierung  ENABLE_PREVIEW_BUTTON  Schaltfläche "Vorschau“  READONLY_MODE  Lesemodus  AUTOSAVE  Automatische Speicherung API {     "name": "API_SAVE_REPORT",     "value": "../FastReport.Export.axd?putReport=#{id}" } Das Objekt enthält einen API-Schlüssel und einen Link   Wert  Beschreibung  API_SAVE_REPORT  Bericht speichern  API_MAKE_PREVIEW  Berichtvorschau  API_GET_REPORT  Bericht erhalten  API_GET_FUNCTIONS  Funktionen erhalten  API_GET_CUSTOM_CONFIG  Anwendungskonfiguration  API_GET_CONNECTION_TYPES  Verbindungstypen  API_GET_CONNECTION_TABLES  Verbindungstabellen  API_GET_CONNECTION_STRING_PROPERTIES  Eigenschaften der Verbindungszeichenfolge  API_MAKE_CONNECTION_STRING  Verbindungszeichenfolge erstellen  API_GET_MSCHART_TEMPLATE  MSChart -Vorlage Nachdem Sie ein Build angefordert haben, erhalten Sie eine UUID, mit der Sie ihren Status überprüfen können. Rückmeldungsbeispiel: ``` { "message": "Successfully queued", "code": 0, "payload": { "UUID": "25d36576-c5e2-49f4-8ab0-73838c457336" } } ``` Build-Status überprüfen  Um den Build-Status zu überprüfen, stellen Sie eine GET-Anfrage an: ``` https://dsg2014.fast-report.com:3000/builderAPI/checkBuild/{apiKey}/{buildUUID} ``` In dem Link müssen Sie Ihren für das Build verwendeten API-Schlüssel und die UUID angeben, die Sie bei der Anfrage erhalten haben. In der Rückmeldung können mehrere Status angezeigt werden, je nachdem, in welcher Phase sich das Build befindet. 1 (QUEUED) – Das Build ist geplant und nun in der Warteschlange. 2 (PROCESSING) – Das Build ist gestartet, aber noch in Bearbeitung. 3 (BUILT) – Das Build ist abgeschlossen und kann heruntergeladen werden. Rückmeldungsbeispiel: ``` { "code": 0, "payload": { "statusCode": 2, "statusText": "PROCESSING" } } ``` Wenn das Build abgeschlossen ist, erhalten Sie in der Rückmeldung einen Link zum Herunterladen. Herunterladen des neuesten Builds  Um die zusammengesetzte Anwendung herunterzuladen, stellen Sie eine GET-Anfrage an: ``` https://dsg2014.fast-report.com:3000/builderAPI/download/{apiKey}  ``` In dem Link müssen Sie Ihren API-Schlüssel angeben. Als Rückmeldung auf die Anfrage erhalten Sie eine Archivdatei mit der zusammengesetzten Anwendung. Aktuelle Version von FastReport Online Designer erhalten Um die aktuelle Version der Anwendung zu erhalten, stellen Sie eine GET-Anfrage an:  ``` https://dsg2014.fast-report.com:3000/builderAPI/designer-version/{apiKey} ``` In dem Link müssen Sie Ihren API-Schlüssel angeben. Als Rückmeldung erhalten Sie die aktuelle Version von FastReport Online Designer. Rückmeldungsbeispiel: ``` { "payload": { "version": "2023.1.3" }, "code": 0 } ``` Unser Team wird weiterhin an der Verbesserung der Kundenerfahrung mit FastReport Produkten arbeiten. Wenn Sie Fragen haben, wenden Sie sich bitte an unser Support-Team unter support@fast-report.com . Tags: FastReport, Online Designer ### Konfliktlösung beim Installieren in FastReport.Net URL: https://www.fast-report.com/de/blogs/resolving-conflicts-net-assemblies Bei der Benutzung verschiedener Versionen von einem Programm entstehen häufig Konflikte. Es gibt viele Gründe dazu. Beim Löschen von vorgängiger Version bleiben alte Bibliotheken im Gedächtnis. Oder neue Version vom Produkt wurde ohne Löschen vom Vorgänger installiert.  Zum Beispiel gilt dazu ein oft getroffenes Auszeichnen – Erscheinung der Wassermerkmale von Demo in der lizenzierten Version beim Drück der Berichte. Häufig ist es genug, Links (Referencen) auf neue Bibliotheken zu berichtigen. Aber, viellecht, können die Bibliotheken aus GAC verwendet werden. Ein der möglichen Lösungswege – FastReport. Net total zu löschen und erneut zu installieren. Besprechen wir jetzt das ganze Deinstallierungsprozess von FastReport.Net.  Machen Sie Visual Studio zu. Verwenden Sie das Löschen des Programms FastReport .Net aus dem  Führungspaneel; Seien Sie darauf sicher, dass der Ordner "C:\Program Files (x86)\FastReports\FastReport.Net Trial" entfernt ist oder machen Sie das mit der Hand; Im Windows Explorer öffnen Sie den Ordner „C:\Windows\assembly“, finden Sie in der Liste und entfernen Sie folgende Bibliotheken: FastReport, FastReport.Bars, FastReport.Editor, FastReport.VSDesign, FastReport.Web; Im Windows Explorer öffnen Sie den Ordner „C:\Windows\Microsoft.NET\assembly\GAC_MSIL“ und finden Sie Ordner mit den Namen  FastReport, FastReport.Bars, FastReport.Editor,FastReport.VSDesign, FastReport.Web und löschen Sie sie; Entfernen Sie den Ordner mit den Configurationsdateien C:\Users\USER_NAME\AppData\Local\FastReport. Solchen Entfernen kann nützlich für den Restore der Anfangslagerung den Führungsobjekten im FastReport Designer sein. Installieren Sie noch einmal FastReport.Net. Besprechen wir noch einige Gründe für die Konfliktenerscheinung. Falsches Löschen. Wenn Sie einfach den Ordner mit dem Programm löschen, dann bekommen Sie zweifellos einen Konflikt. FastReport .Net muss man nur mit Hilfe von der Utility uninstall aus dem Ordner mit dem Programm. Schaden von den Dienstdateien von msi Installierer. Auch können diese Dateien von den Utitlitys  der Dateienreinigung oder vom Anwender gelöscht werden. Wir haben über typische Konfliktsituationen besprochen, die bei der Verwendung von FastReport.Net passieren können. Jetzt wissen Sie, wie Sie diese Situationen vermeiden können. Tags: .NET, .NET, FastReport, FastReport ### Konverter von Rave zu FastReport VCL URL: https://www.fast-report.com/de/news/convertor-rave-reports-blog Summary: Wie Sie wissen, kommt Embarcadero RAD Studio XE2, einschließlich der speziellen RAD-Version von FR VCL. Wie Sie wissen, kommt Embarcadero RAD Studio XE2, einschließlich der speziellen RAD-Version von FR VCL. Wie Sie wissen, kommt Embarcadero RAD Studio XE2, einschließlich der speziellen RAD-Version von FR VCL. Viele Leute haben uns gefragt: "Ist es möglich, begeisterte Berichte zu konvertieren (.rav-Dateien) zu FastReports (.fr3-Dateien)?" Es ist möglich, weil wir für diesen Zweck einen Konverter aus Rave-Berichten entwickelt haben. Erfahre mehr über Rave Converter ### Konvertieren einer Microsoft Word-Datei (.docx) in eine FastReport .NET-Datei (.frx) URL: https://www.fast-report.com/de/blogs/converter-word-docx-net Summary: Ein Konverter von Microsoft Word (.docx) Format zu einem file FastReport .NET (.frx): Beschreibung und Anweisungen zur Verwendung des Tools. Ein Konverter von Microsoft Word (.docx) Format zu einem file FastReport .NET (.frx): Beschreibung und Anweisungen zur Verwendung des Tools. Moderne Datenverarbeitungs- und Workflow-Automatisierungstechnologien erfordern die Integration verschiedener Dateiformate, um das Zusammenspiel von Softwareprodukten zu gewährleisten. Dank seiner vielfältigen Funktionen hat sich der Microsoft Word-Texteditor zu einem der beliebtesten Editoren unterschiedlicher Komplexität entwickelt.  Erwägen Sie die Konvertierung von Microsoft Word-Dateien in FastReport format.NET , wird zum Erstellen von Berichtsvorlagen verwendet. Moderne Technologien der Datenverarbeitung und Automatisierung des Dokumentenmanagements erfordern die Integration verschiedener Dateiformate, die das Zusammenspiel von Softwareprodukten gewährleisten. Aufgrund seines breiten Spektrums von Funktionen ist der Microsoft Word Texteditor zu einem der beliebtesten Editoren mit unterschiedlicher Komplexität geworden.  In manchen Situationen ist es erforderlich, solche Dokumente in native Formate anderer Anwendungen zu konvertieren. Es gibt Fälle, in denen es notwendig ist, Microsoft Word-Dateien in das  FastReport .NET -Format zu konvertieren, das zum Erstellen von FastReport-Berichtsvorlagen verwendet wird. Kompilieren eines Projekts  Öffnen Sie zunächst die .sln-Datei namens „FastReport.OOXMLImportPlugin.sln”. Beachten Sie, dass es zwei solcher Dateien für VisualStudio 2017 und höhere Versionen gibt. Löschen Sie dann die Links auf die Projekte FastReport und FastReport.Bars wie im Screenshot unten. Danach müssen Sie einen Link auf die FastReport.dll hinzufügen. Diese DLL befindet sich im selben Ordner wie der Designer. Klicken Sie mit der rechten Maustaste auf den Arbeitsbereich und anschließend auf die Schaltfläche „Assemblieren“. Gehen Sie dann zum Pfad FastReport.OOXMLImportPlugin\bin\Debug\net472 und finden Sie in dem Ordner die assemblierte Datei „OOXMLImportPlugin.dll“. Registrierung einer DLL in FastReport  Die Registrierung kann auf unterschiedliche Art und Weise erfolgen.  Methode 1. Registrierung mit der FastReport-Entwicklungsumgebung Öffnen Sie den Berichtsdesigner und wählen Sie das Menü „Datei|Einstellungen...“ in der Ribbon-Oberfläche aus (das Menü „Ansicht|Einstellungen...“ in der Standard-Oberfläche). Fügen Sie anschließend auf der Registerkarte „Plugins“ die FastReport.OOXMLImportPlugin.dll hinzu. Starten Sie anschließend den FastReport .NET Berichtsdesigner neu. Wenn Sie in der Visual Studio IDE arbeiten, starten Sie diese ebenfalls neu. Sobald der Designer neu gestartet ist, klicken Sie auf „Datei|Öffnen“ und wählen Sie „Microsoft Word Dokument (*.docx)“ in der Liste der verfügbaren Dateien, wie im folgenden Screenshot dargestellt. Wählen Sie die *.docx-Datei aus, die Sie in FastReport .NET importieren möchten. Daraufhin wird die importierte Datei im Designer angezeigt.  Methode 2. Manuelles Bearbeiten der FastReport.config-Datei Standardmäßig befindet sich diese Datei im Ordner C:\DocumentsandSettings\user_name\Local Settings\Application Data\FastReport . Stellen Sie sicher, dass alle laufenden Instanzen von FastReport .NET geschlossen sind. Und erst danach öffnen Sie die Konfigurationsdatei in einem beliebigen Texteditor und ändern Sie sie wie folgt: ``` ... Daten. Klicken Sie auf die gewünschten Elemente und klicken Sie auf "OK"! Wir verbinden diese Datenquelle mit dem Band. Wir wählen eine DataSet (Tabelle) in seinen Eigenschaften. Ziehen Sie nun die Tabellen- / Abfragefelder auf die entsprechenden Bänder. Nach einem einzigen Zug haben sie eine Besonderheit, sich automatisch mit den Bandfeldern der Basis zu verbinden. Wenn Sie den generierten Report anzeigen sollen, können Sie die Vorschau verwenden! Vergessen Sie nicht, dass Sie fast alles hinzufügen können, sei es   QR-Сode, Karten  und andere Add-Ons, die in FastReport VCL ausreichen. Die Vorschau: Im oberen linken Menü klicken Sie auf "Datei". Eine Liste der Einstellungen wurde sofort angezeigt. Darin wählen wir "Vorschau". Und das ist alles! Nach dieser Aktion werden wir sehen, wie der fertige Report aussehen wird. Wenn alles zu Ihnen passt, können Sie den Report drucken, in verschiedene Formate exportieren und auf den Cloud-Speicher oder auf den PC-Speicher speichern. Wir wählen "Speichern" und das gewünschte Format. Der ausgewählte Report wird zum Speichern / Exportieren an den angegebenen Speicherort gesendet! Gehen Sie folgendermaßen vor, um einen Report aus Code zu erstellen: - Löschen Sie den Report. - Fügen Sie die Datenquelle hinzu. - Fügen Sie die Seite "Daten" hinzu. - Fügen Sie eine Reports Seite hinzu. - Fügen Sie der Seiten Bänder hinzu. - Band Eigenschaften konfigurieren und mit Daten verbinden - Fügen Sie jedem Band Objekte hinzu. - Weiter richten sie die Eigenschaften von Objekten ein und machen Sie eine Verbindung mit den Daten. Speichern Sie die Vorlage und klicken Sie auf "Vorschau"! Der Report ist fertig! Wir können ihn auch zur weiteren Analyse in XML, PDF oder sogar in CSV oder in DBF speichern! Ich verstehe, dass eine solche Fülle von Screenshots zu Depressionen führen kann. Beim Schreiben dieses Artikels war es jedoch die längste und mühsamste Aufgabe, all diese Screenshots zu machen. Die Erstellung des Reports selbst dauerte ungefähr 5 Minuten. Und wenn er schneller und ohne Screenshots ist? Wir machen den Report für unsere Datenbank im Code von Delphi / Lazarus! Wir erstellen einen einfachen Report vom Typ "Liste". Es wird davon ausgegangen, dass wir die Komponenten frxReport1: TfrxReport und frxDBDataSet1: TfrxDBDataSet haben (letzte Variante war mit den Daten aus DBDEMOS verbunden, Tabelle Customer.db). Unser Report enthält eine Seite mit dem Reports Titel und den Stammdatenbändern. Auf dem Reporttitelband befindet sich ein Objekt mit dem Text "Hello FastReport!" Und auf den Stammdaten platziert sich ein Objekt mit einem Link zum Feld "CustNo". Wir transformieren Daten aus den Datenbanken ins Dokument in Delphi / Lazarus / C++ Builder ``` var DataPage: TfrxDataPage; Page: TfrxReportPage; Band: TfrxBand; DataBand: TfrxMasterData; Memo: TfrxMemoView;   { Report leeren } frxReport1.Clear;   {Eine Datenquelle in der Liste der für den Report verfügbaren Datenquellen hinzufügen } frxReport1.DataSets.Add(frxDBDataSet1);   {Die Seite „Daten“ hinzufügen } DataPage := TfrxDataPage.Create(frxReport1);   {Die Seite hinzufügen } Page := TfrxReportPage.Create(frxReport1); { Einen einzigen Namen erstellen } Page.CreateUniqueName; { Die Große der Felder, Papier und Orientation by Default bestimmen } Page.SetDefaults; { Die Papier Orientation ändern } Page.Orientation := poLandscape;   { Report Titel hinzufügen } Band := TfrxReportTitle.Create(Page); Band.CreateUniqueName; { Es ist reicht fürs Band die Koordinate Top und die Höhe zu bestimmen } { Beide Koordinaten – in Pixel } Band.Top := 0; Band.Height := 20;   { Das Objekt auf Report Titel hinzufügen } Memo := TfrxMemoView.Create(Band); Memo.CreateUniqueName; Memo.Text := 'Hello FastReport!'; Memo.Height := 20; {Dieses Objekt hat eine adaptierte Breite, die zur Banden Breite gleich ist } Memo.Align := baWidth;   { MasterData hinzufügen } DataBand := TfrxMasterData.Create(Page); DataBand.CreateUniqueName; DataBand.DataSet := frxDBDataSet1; { Die Top Koordinate soll nicht das früher erstellte Band überqueren! } DataBand.Top := 100; DataBand.Height := 20;   { Ein Objekt auf MasterData hinzufügen } Memo := TfrxMemoView.Create(DataBand); Memo.CreateUniqueName; { Mit den Daten verbinden } Memo.DataSet := frxDBDataSet1; Memo.DataField := 'CustNo'; Memo.SetBounds(0, 0, 100, 20); { Den Text für den rechten Rand des Objekts anordnen } Memo.HAlign := haRight;   { Den Report anzeigen } frxReport1.ShowReport; ``` Also, wir sammeln jetzt unsichtbare Daten und zeigen sie in den Reporten. Jetzt ist es möglich diese Reporte zu veröffentlichen und den Analytikern zu senden! Tags: VCL, Lazarus, FastReport, Data Source, SQL, Firebird, Delphi ### Kopieren von Berichtsbänder in einen anderen mit allen Inhalten URL: https://www.fast-report.com/de/blogs/copying-bands-with-all-content Summary: Betrachten Sie eine Möglichkeit, Daten von einem Bericht in einen anderen zu übertragen, wenn die Vererbung nicht geeignet ist. Betrachten Sie eine Möglichkeit, Daten von einem Bericht in einen anderen zu übertragen, wenn die Vererbung nicht geeignet ist. Betrachten Sie eine Möglichkeit, Daten von einem Bericht in einen anderen zu übertragen, wenn die Vererbung nicht geeignet ist. Manchmal ist es notwendig, Teile eines Berichts in einem anderen zu verwenden. In einfachen Fällen können Sie dazu die Berichtsvererbung verwenden. Zum Beispiel eine Situation, in der alle Berichte gemeinsame Elemente (Firmenlogo, Signatur usw.) enthalten. Diese Objekte können dann in den übergeordneten Bericht aufgenommen werden, und wenn Sie untergeordnete Berichte erstellen, werden sie automatisch kopiert. Dadurch entfällt die Notwendigkeit, jedes Mal manuell zu kopieren, was die Erstellung neuer Berichte erheblich vereinfacht und beschleunigt. Wenn Sie im übergeordneten Bericht etwas ändern, werden diese Änderungen auch in allen untergeordneten Berichten angezeigt. Doch die Berichtsvererbung hat eine Reihe von Einschränkungen . Es gibt Situationen, in denen ein Bericht ein "Elternteil" hatte und es notwendig war, einen völlig anderen Bericht als Elternteil zu erstellen. Es scheint, dass es ausreicht, die Eigenschaft BaseReport zu ändern, aber leider wird es nicht funktionieren. Diese Aufgabe kann jedoch auf ungewöhnliche Weise gelöst werden, indem die Bänder eines Berichts aus dem Code durch die Bänder eines anderen ersetzt werden. Angenommen es gibt einen Basisbericht (base.frx), seine Bänder müssen in den untergeordneten Bericht (child.frx) kopieren werden. Ersetzen Sie die Bänder PageHeader, PageFooter und DataBand mit dem Namen "Data1". Im Folgenden Codebeispiel wird davon ausgegangen, dass sich beide Berichte im Stammordner von Laufwerk C befinden. Zuerst müssen Sie beide Berichte herunterladen: ``` Report base = new Report(); base.Load(@"C:\base.frx"); Report child = new Report(); child.Load(@"C:\child.frx"); ``` Der nächste Schritt besteht darin, die Seiten aus beiden Berichten abzurufen. Es ist wichtig, die Seitennamen zu kennen.  Im folgenden Beispiel wird davon ausgegangen, dass der Seitenname in beiden Berichten "Page1" ist: ``` ReportPage basePage = base.FindObject("Page1") as ReportPage; ReportPage childPage = child.FindObject("Page1") as ReportPage; ``` Wenn die Seitennamen nicht bekannt sind, können Sie sie nach Index abrufen. Als nächstes erhalten Sie beispielsweise Zugriff auf die ersten Seiten beider Berichte: ``` ReportPage basePage = baseReport.Pages[0] as ReportPage; ReportPage childPage = childReport.Pages[0] as ReportPage; ``` Beide Optionen sind angemessen und führen zu demselben Ergebnis. Jetzt können Sie PageHeader und PageFooter ersetzen. Hier ist alles einfach: ``` childPage.PageHeader = basePage.PageHeader; childPage.PageFooter = basePage.PageFooter; ``` Mit diesen Zeilen werden zwei Bänder mit allen Eigenschaften und Einstellungen kopiert. Außerdem werden alle darauf befindlichen Objekte dupliziert, und die Eigenschaften werden nicht verloren. Als nächstes ersetzen wir DataBand mit dem Namen "Data1": ``` DataBand baseBand = basePage.FindObject("Data1") as DataBand; DataBand childBand = childPage.FindObject("Data1") as DataBand; // sie müssen den Data1-Index im untergeordneten Bericht abrufen int childBandIndex = childPage.Bands.IndexOf(childBand); // es kann jetzt gelöscht werden childPage.Bands.Remove(childBand); // und ein Band aus dem Basisbericht an seine Stelle einfügen childPage.Bands.Insert(bandIndex, baseBand); ``` Am Ende wurde das Band mit allen Eigenschaften und untergeordneten Objekten kopiert. Außerdem wurde die Bindung an die Datenquelle verschoben, für die die Eigenschaft DataSource verantwortlich ist. Ohne diese Bindung funktioniert das Band nicht richtig und gibt die Daten aus der Datenbank aus. Es bleibt nur, die Datenquellen zu kopieren. Dies geschieht durch das folgende Code-Snippet: ``` for (int i = 0; i < baseReport.Dictionary.DataSources.Count; i++) { childReport.Dictionary.DataSources.Add(baseReport.Dictionary.DataSources[i]); } ``` Auf diese Weise wurden alle Datenquellen kopiert. Wenn das nicht notwendig ist, können Sie nur die benötigten Datenquellen klonen. Das ist alles. Ein paar Dutzend Codezeilen ermöglichten es, Bänder und Objekte von einem Bericht in einen anderen zu kopieren. Wenn es viele Objekte auf den Bändern gibt, ist es ziemlich lang und routine, sie mit Hilfe des Designers zu duplizieren, und es ist noch länger, sie neu zu erstellen. Wenn der Basisbericht nur die in diesem Beispiel kopierten Bänder enthält, kann diese Aufgabe natürlich noch einfacher durchgeführt werden - mit einem banalen Kopierer der Berichtsdatei. Im Ernstfall können Sie auf diese Weise eine oder mehrere Bänder aus einer Menge kopieren, wenn sie alle in einem neuen Bericht nicht benötigt werden. Oder Sie können den Seitentitel aus einem Bericht, ein Band mit Daten aus einem anderen Bericht und einen Seitenfußboden aus einem dritten Bericht nehmen. Tags: .NET, .NET, FastReport, FastReport, C#, C# ### Kylix FAQ on fast-report.com URL: https://www.fast-report.com/de/news/faq-kylix-fastreport-clx Summary: Kylix FAQ on fast-report.com Kylix FAQ on fast-report.com FastReport CLX turns out to be the only really working report generator for Kylix. That is why we are often asked questions about Kylix as well. We have composed a list of frequently asked questions concerning Kylix and answers on them. The reason is that we did not find full answers on these questions on the Internet.  We remind you that we perform technical support of only our products. Concerning questions about Kylix technical support address the company producing Kylix. See Kylix FAQ here... ### Laden der ListDataSet-Daten in den Pivot-Würfel URL: https://www.fast-report.com/de/blogs/list-data-set-for-pivot-grid Summary: Ein kurzes Beispiel für das Laden von Daten aus der Liste Ein kurzes Beispiel für das Laden von Daten aus der Liste Ein kurzes Beispiel für das Laden von Daten aus der Liste In der Version 2021.1 wurde die Komponente ListDataSet hinzugefügt, die das Laden von Daten in den Cube mit Hilfe von Windows Forms Data Binding ermöglicht  Es ist jetzt möglich, Daten in den Cube mit Hilfe von Windows Forms komplexer Datenbindung zu laden, die in Standard-Steuerelementen verwendet wird: DataGridView, ListView und Combobox. Complex Data Binding lädt Daten über die BindingSource-Komponente, die als Proxy agiert (weitere Informationen finden Sie im MSDN). Hier ist ein kleines Beispiel für das Laden von Daten aus List<>. 1. Deklarieren Sie eine ProductInfo-Klasse ``` public class ProductInfo { public String Name { get; set; } public String Group { get; set; } public int Count { get; set; } } ``` 2. Erstellen Sie eine Liste von ProductInfo-Datensätzen ``` List CreateProducts() { return new List { new ProductInfo {Group = "Bakery products", Name = "Ciabatta", Count = 3}, new ProductInfo {Group = "Bakery products", Name = "Bread", Count = 5}, new ProductInfo {Group = "Bakery products", Name = "Croissant", Count = 1},   new ProductInfo {Group = "Alcohol", Name = "Wine", Count = 6}, new ProductInfo {Group = "Alcohol", Name = "Whiskey", Count = 2}, new ProductInfo {Group = "Alcohol", Name = "Beer", Count = 5},   new ProductInfo {Group = "Dairy products", Name = "Yoghurt", Count = 5}, new ProductInfo {Group = "Dairy products", Name = "Milk", Count = 4} }; } ```  3. Cube und Slice konfigurieren ``` private void Form1_Load(object sender, EventArgs e) { // configure data source listDataSet1.DataSource = CreateProducts(); // load data to Cube cube1.Active = true; // configure Slice slice1.YAxisContainer.AddSliceField(slice1.SliceFields.GetFieldByName("Group")); slice1.YAxisContainer.AddSliceField(slice1.SliceFields.GetFieldByName("Name")); var measure = new FastReport.Olap.Slice.MeasureField(slice1, FastReport.Olap.Types.AggregateFunction.Sum, slice1.SliceFields.GetFieldByName("Count")); slice1.MeasuresContainer.AddMeasure(measure); slice1.XAxisContainer.AddMeasuresField(); } ``` Hier ist das Ergebnis: Das vollständige Beispiel befindet sich in Demos\C#\DataBindings. Tags: .NET, .NET, FastCube, FastCube, WinForms, WinForms ### Laden von Objekten in FastReport VCL mit http und https URL: https://www.fast-report.com/de/blogs/uploading-objects-vcl-http-and-https-protocols Summary: Ein neues Tool zum Abrufen von Daten über http und https zum Hochladen in Karten, Bilder, Text und PDF-Objekte. Ein neues Tool zum Abrufen von Daten über http und https zum Hochladen in Karten, Bilder, Text und PDF-Objekte. Ein neues Tool zum Abrufen von Daten über http und https zum Hochladen in Karten, Bilder, Text und PDF-Objekte. Eine der Schlüsselaufgaben des Berichtsgenerators besteht in der Datenermittlung. Am häufigsten werden die Datenbanken zum Speichern und Abrufen von Daten verwendet. Aber was ist, wenn Remote-Speicher in der Cloud verwendet werden, um bestimmte Daten zu speichern? Wie wird ein Firmenlogo über http in einen Bericht hochgeladen, damit es immer auf dem neuesten Stand ist? Um diese Aufgaben in FastReport VCL 2021.3 zu lösen, haben wir Unterstützung für Protokolle und die Möglichkeit, Daten über Protokolle in Objekte wie z.B.: Karten, Bilder, Text, PDF-Objekt, HTML-Objekt hinzugefügt. Eine Reihe von Objekten verfügt über eine neue DataLink -Eigenschaft, die zusätzliche Eigenschaften für die Handhabung von Links enthält. Solche Links beginnen immer mit dem Schemanamen gefolgt von einem Trennzeichen. Beispiel :[//Pfad] . Das Schema wird in den meisten Fällen durch Protokolle wie http und https dargestellt. Hinweis! Für die Nutzung des HTTPS-Protokolls werden die folgenden OpenSSL-Bibliotheken benötigt: libssl-3.dll und libcrypto-3.dll. Diese Dateien befinden sich im Verzeichnis der Haupt-Demo-Anwendung. Sie müssen die Bibliotheken entweder in den Anwendungsordner oder in das Systemverzeichnis kopieren. Hochladen von Daten über Links in der FastReport VCL Die FastReport VCL basiert auf einer modularen Architektur, die http- und https-Funktionalität bildet hier keine Ausnahme und ist zusammen mit den Internet Transporten in einem separaten Paket enthalten. Damit Links über http- und https- Protokolle funktionieren, muss das frxTransportHTTP-Modul an den uses-Abschnitt der Anwendung angeschlossen werden oder einer der Internet Transporte zum Anwendungsformular hinzugefügt werden. Wichtig! Damit das https-Protokoll funktioniert, sind die folgenden Open SSL- Bibliotheken erforderlich: ssleay32.dll und libeay32.dll. Sie sind im Verzeichnis mit der Haupt-Demoanwendung zu finden. Starten Sie den Berichtsdesigner und erstellen Sie einen neuen Bericht. Fügen Sie der Berichtsseite ein Band "Berichtskopf" und ein Objektbild hinzu. Der Bericht sollte folgendermaßen aussehen. Wählen Sie das Objekt «Bild» aus und wechseln Sie zum Objektinspektor. Suchen Sie im Objektinspektor die Eigenschaft DataLink. Für eine schnelle Suche können Sie den im Objektinspektor integrierten Filter verwenden, indem Sie den Namen der gesuchten Eigenschaft eingeben. Betrachten wir den Wert der untergeordneten DataLink-Eigenschaften: Link ist ein Link mit einem Schema (Protokoll), im Format :[//Pfad]. Die Daten werden vom angegebenen Link heruntergeladen. LoadingType ist ein Download-Typ, der gibt an, wann die Daten hochgeladen werden. Er kann die folgenden Werte annehmen: [] – Leer. Die Daten werden im Bearbeitungsmodus der Vorlage geladen, indem der Benutzer auf den Download-Editor klickt. Der Wert wird verwendet, wenn die Daten nur einmal abgerufen und in einer Vorlage gespeichert werden sollen. [dltOnGetData] – standardmässig. Die Daten werden beim Berichterstellen in das Objekt heruntergeladen. In diesem Fall werden keine Objektdaten in der Vorlage gespeichert. Das Objekt erhält bei jeder Erstellung neue Daten als Link. [dltOnPreview] – Die Daten werden zum Zeitpunkt der Vorschau, des Exports oder des Druckens eines Berichts geladen. In diesem Fall speichert der erstellte Bericht einen Link zu den Daten und lädt sie jedes Mal herunter, wenn der Benutzer den erstellten Bericht herunterlädt. Es kann verwendet werden, um aktuelle Daten in einem erstellten Bericht abzurufen, ohne ihn neu erstellen zu müssen. [dltOnGetData, dltOnPreview] – Hybridmodus. Bei der Erstellung ruft das Objekt die Daten per Link ab und speichert sie in dem erstellten Bericht. Auf die gleiche Weise wird auch der Link zu den Daten gespeichert. Wenn ein konstruierter Bericht mit einem solchen Objekt geladen wird, wird das Objekt versuchen, die Daten auf die gleiche Weise wie bei [dltOnPreview] zu laden, aber wenn die Daten nicht erfolgreich geladen werden, werden die beim Berichtserstellen erhaltenen Daten angezeigt. ProcessingType ist ein Wert, der bestimmt, wie der Link bei der Erstellung des Berichts verarbeitet wird: dpString – als normale Zeichenkette, dpExpression – als Ausdruck des Berichtsskripts. Legen Sie die DataLink.Link-Eigenschaft des «Bild»-Objektes mit einem Link zu einem Bild auf der Webseite, z.B. fest. Starten Sie Ausführung des Berichts. Andere Objekte wie Text, Bild, Karten, HTMLView, PDFView können auf die gleiche Weise geladen werden. Die Links können verwendet werden, um auf Web-APIs zuzugreifen und Daten abzurufen, z. B. OSM-Karten. Erstellen Sie einen neuen Bericht mit dem «Berichtskopf»-Band und mit einem Karten-Objekt mit einer leeren Ebene (Mehr Information über die Erstellung eines Karten-Objekts entnehmen Sie bitte unserer Dokumentation unter). Wählen Sie nun die MapFileLayer1-Kartenebene und gehen Sie im Objektinspektor auf die DataLink.Link-Eigenschaft. Die OpenStreetMap-API kann zum Herunterladen von OSM-Karten verwendet werden. Lassen Sie uns versuchen, den ausgewählten Bereich in FastReport VCL anzuzeigen. Der API-Link wird wie folgt aussehen:  https://www.openstreetmap.org/api/0.6/map?bbox=-6.7234%2C61.6283%2C-6.697%2C61.6379 , fügen Sie ihn in die Eigenschaft DataLink.Link ein. Starten Sie die Berichtserstellung. Die Daten vom Server wurden automatisch in das Kartenobjekt geladen. Mehr als nur Hyperlinks In FastReport VCL werden alle Schemata und Protokolle der DataLink-Eigenschaft über die Factory verarbeitet. Dies ermöglicht es Entwicklern, die Funktionalität der Anwendung zu erweitern, indem sie neue Schemata und Protokolle hinzufügen, ohne den Quellcode von FastReport VCL ändern zu müssen. Dazu registriert FastReport VCL automatisch Internet-Transporte in der Factory als neue Protokolle. So können Sie auf einen privaten Cloud-Speicher zugreifen und Daten daraus in den Bericht hochladen, ohne Autorisierungsdaten innerhalb des Berichts zu übertragen oder zu speichern. Das Schema des Zusammenwirkens der DataLink-Eigenschaft mit der Protokoll-Factory finden Sie unten. Wie sollen wir einen Internet Transport hinzufügen und Links zu einem privaten Google Drive verwenden? Das ist in wenigen Schritten möglich: Öffnen Sie die Komponentenpalette mit Internet-Transporten. Fügen Sie TfrxGoogleDriveIOTransport zum Anwendungsformular hinzu. Benennen Sie die Komponente. Der Name wird als Schema-Protokoll im Zugangslink verwendet. In unserem Beispiel haben wir sie “GDRIVE” genannt. Stellen Sie über das Menü “Edit connection” eine Verbindung zu Google Drive her ( Details finden Sie in unserem anderen Artikel ). Starten Sie den Berichtsdesigner und erstellen Sie einen Bericht, indem Sie die Schritte für die Erstellung eines Bildberichtes, die am Anfang dieses Artikels beschrieben sind, ausführen. In der DataLink.Link-Eigenschaft müssen Sie den Link zur Datei in Google Dive angeben, aber anstelle des Schemas (Protokolls) geben Sie den Namen des Transports an. In unserem Fall ist es “GDRIVE“. Der Link sieht dann so aus GDRIVE://LogoF.PNG. Sie können nun die Ausführung des Berichts starten. Wichtig! Wenn die Daten nicht hochgeladen werden, prüfen Sie, ob die Verbindung zum Cloud-Speicher korrekt hergestellt wurde und ob das Autorisierungs-Token bei der Verbindung gespeichert wurde. Ebenso können Sie eine Verbindung zu anderen Internet-Transporten herstellen. Dies ist eines der wenigen leistungsstarken Tools, die mit der Veröffentlichung von FastReport VCL 2021.3 erschienen sind und die Sie zur Verbesserung Ihrer Projekte verwenden können. Tags: VCL, Lazarus, FastReport, Delphi, HTTPS ### Leistungstest von neuer Version von FastReport .Net 2017.1.0 URL: https://www.fast-report.com/de/blogs/performance-evaluation-net Bei der Veröffentlichung neuer Version von FastReport.Net 2017.1.0 bekommen Sie eine wesentliche Beschleunigung bei der Erstellung und beim Export vom Bericht. Außerdem ist der Verbrauch vom Gedächtnis Ressourcen abgestiegen. In diesem Artikel geht es um den Vergleich von den „neuen“ und „alten“ Versionen gemäß diesen Parametern. Testen Methode. Beim Testen erstellen wir den Bericht und exportieren wir ihn in mehrere Formate: PDF, XLSX, HTML mit der schichtorientieren Methode (denn verwendet man diese Methode in Web Berichten.) При этом измеряется время экспорта и размер полученного файла. Сначала проведем тестирование для версии 2016.4.0, затем - для новой 2017.1.0. Auch speichert man die Zeit vom Export und die Größe von erhaltener Datei und weiter analysiert. Nehmen wir eine populäre Berichts Schablone Master-Detail und einen XML Datenlager. Dazu verwenden wir nicht so komplizierte Anwendung: Hier Multi Page ist ein standardisierter mehrseitiger Bericht und Unlimited Page ist der Bericht mit der aktivierten Eigenschaft UnlimitedHeight. Wir verwenden zwei fast gleiche Berichte, aber ein von denen diese „unendliche“ Seite hat. Hier merkt man, dass die Größe von Bericht mit den 100 Megabytes beschränkt wird. Wenn diese Beschränkung übergenommen wird, werden neue Seiten erstellt. Um einen unendlichen Bericht zu machen, eröffnen wir ihn im Designer. Im Inspektor der Eigenschaften wählen wir die Berichts Seite und stellen wir die Eigenschaft UnlimitedHeight =true ein oder UnlimitedWidth =true, wenn Sie unendliche Breite brauchen. Für die Abmessungen verwenden einen Profiler, der ins FastReport integriert wurde: Profiler.Start(); - für den Start. Profiler.Stop(); - stoppen und die Ergebnisse von den Abmessungen zeigen. Starten wir jetzt jeden Export und notieren die Ergebnisse der Arbeit vom Profiler. Die Ergebnisse zeigt der Profiler in messagebox: Ergebnisse den Abmessungen Für den standardisierten Bericht ist die Zeit allgemein abgestiegen. Aber ist dennoch die Zeit beim Export gestiegen. Wahrscheinlich sind keine alle Optimierung Handlungen beenden. Für den mehrseitigen Bericht ist der Verbrauch vom Gedächtnis abgestiegen. Und was ist mit dem „unendlichen“ Bericht? Hier ist die Situation widerholt. Die Zeit für die Erstellung von allen Berichten ist gesunken. Der Gedächtnis Verbrauch ist auch stark gesunken. Für alle, außer PDF. Aber der Unterschied ist minimal.   Und in der tabellarischen Form: Abmessungen für die Version 2016.4.0 Multi page Unlimited page Größe, Kb Zeit, ms Größe, Kb Zeit, ms Prepare 1336 875 4040 875 PDF 87396 7031 81986 7220 XLSX 23092 1547 18784 1734 HTML 7354 2897 50576 1954 Measurements version 2017.1.0 Multi page Unlimited page Größe, Kb Zeit, ms Größe, Kb Zeit, ms Prepare 1020 735 1088 703 PDF 85482 7167 82654 7149 XLSX 16512 1359 16228 1640 HTML 2445 2725 9180 1890 Wie wir sehen, ist die Situation in der neuen Version verbessert. Der Verbrauch vom Gedächtnis für den HTML Bericht mit unendlicher Seite mehr als in fünf Mal gesunken! Das sind meinst verwendete Bericht für Web. Was ist drin geändert? In den Versionen kleiner als 2016.4.4 verwendet man die Methode ExportPage. Er erhält die ganze Seite, macht einen Gang durch alle Objekte und speichert sie ins gewählte Format. Weiter löscht man diese Seite vom Gedächtnis und nimmt nächste. Wenn Sie einen nicht so großen Bericht haben, dann merken Sie keine Probleme. Aber mit der Veröffentlichung von „unendlichen“ Seiten, erscheinen die Schwierigkeiten mit dem Gedächtnis Verbrauch. Auf diesen Gründen traf man eine Entscheidung, den Band orientierten Export zu organisieren. Das hilft, den Gedächtnis Verbrauch zu minimieren. Der Kern des Berichts Engine wurde geändert. Das Problem mit den Matrizen ist schon nicht gelöst, weil man diese Objekte nur auf einer Band lagert und diese Objekte solche Große haben, die steigen kann. Beim Testen sehen wir, dass jetzt man viel mehr weniger Ressourcen braucht, um einen Bericht mit den „unendlichen“ Seiten zu erstellen. Aber die Zeit für die Erstellung ist nicht wesentlich gestiegen. Nicht so wesentlich. Aber für den HTML Export bekommt man gute Ergebnisse und für die Kunden, die Web Berichte verwenden, sind das wirklich gute Nachrichten.   Tags: .NET, .NET, FastReport, FastReport ### Letzte Chance, 2024 mit Rabatt zu kaufen URL: https://www.fast-report.com/de/news/happy-holidays-2025 Summary: Vom 18. bis 31. Dezember bieten wir Ihnen an, Berichtsbibliotheken für .NET und Delphi mit einem Rabatt von 25% zu erwerben. Vom 18. bis 31. Dezember bieten wir Ihnen an, Berichtsbibliotheken für .NET und Delphi mit einem Rabatt von 25% zu erwerben. Vom 18. bis 31. Dezember bieten wir Ihnen an, Berichtsbibliotheken für .NET und Delphi mit einem Rabatt von 25% zu erwerben. Dies ist eine großartige Gelegenheit, um sicherzustellen, dass Ihr Unternehmen im Jahr 2025 Ressourcen bei der Erstellung von Dokumenten und Berichten spart. Das Angebot gilt nicht für Verlängerungen und Upgrades. Nur Neuanschaffungen sind förderfähig. ### List of features of FastReport 4 URL: https://www.fast-report.com/de/news/features-fastreport-vcl4 Summary: List of features of FastReport 4 List of features of FastReport 4 Here is a list of features of new version of FastReport - FastReport 4 VCL. Report Designer: - new XP-style icons - the "Data" tab with all report datasets - code completion (Ctrl+Space) - breakpoints - watches - report templates Report Preview: - thumbnails Print: - splitting a big page to several small pages - printing several small pages on one big - duplex handling from print dialogue Report Core: - "endless page" mode - images handling, increased speed - the "Reset page numbers" mode for groups - reports crypting (Rijndael algorithm) - report inheritance - drill-down groups   We expect beta at the end of September, release - at the end of October. Keep out our news! ### Liste und Massive wie Datenquelle für den Bericht URL: https://www.fast-report.com/de/blogs/lists-and-arrays-as-datasource-for-report Die Mehrheit von modernen Berichtsgeneratoren arbeitet mit den ganz beliebigen Datenlagern. Aber es gibt nur eine Zahl den Generatoren, die mit Datenlisten und Massiven  im Sinne der Datenquellen arbeiten können. In diesem Beispiel zeige ich wie das in FastReport .Net funktioniert. Ein Paar wichtigen Momenten: - Felder von der Objektsliste sollen wie „public“ eingestellt werden, um im Bericht sichtbar zu seien; - außer den Listen kann man im Bericht die Daten aus den beliebigen iEnumerable Sammlungen übergeben; - für die Übergabe der ling-Anfragen braucht man die Liste mit Hilfe von „ToArray“ Methode zu bearbeiten. Erstellen wir jetzt eine WindowsForms Anwendung. Geben wir in den Bericht eine Liste der Kategorien über. Für jede Kategorie wird die Liste der Produkten hinzugefügt. Erstellen wir Variablen:        ``` private List FBusinessObject; private Report FReport; ``` Das sind die Liste der Kategorien und ein Berichtsobjekt. Weiter, fügen wir eine Klasse der Produkten hinzu: ``` public class Product { private string FName; private decimal FUnitPrice;   public string Name { get { return FName; } }   public decimal UnitPrice { get { return FUnitPrice; } }   public Product(string name, decimal unitPrice) { FName = name; FUnitPrice = unitPrice; } } ``` Wie wir sehen, sind die Objekten “public”.  Jetzt fügen wir eine Klasse der Kategorien hinzu: ``` public class Category { private string FName; private string FDescription; private List FProducts;   public string Name { get { return FName; } }   public string Description { get { return FDescription; } }   public List Products { get { return FProducts; } }   public Category(string name, string description) { FName = name; FDescription = description; FProducts = new List(); } } ``` Ein der Felder des Objekts „Category“ - die Liste der Produkten. Mit anderen Wörtern  ist die Liste der Kategorien ein Massiv der Massiven. Jetzt erstellen wir eine Datenquelle: ``` public void CreateDataSource() { FBusinessObject = new List(); //Create list of categories   Category category = new Category("Beverages", "Soft drinks, coffees, teas, beers"); //Create new instance of category category.Products.Add(new Product("Chai", 18m)); //Add new product to category category.Products.Add(new Product("Chang", 19m)); category.Products.Add(new Product("Ipoh coffee", 46m));   FBusinessObject.Add(category); //Add the category to the List   category = new Category("Confections", "Desserts, candies, and sweet breads"); category.Products.Add(new Product("Chocolade", 12.75m)); category.Products.Add(new Product("Scottish Longbreads", 12.5m)); category.Products.Add(new Product("Tarte au sucre", 49.3m));   FBusinessObject.Add(category);   category = new Category("Seafood", "Seaweed and fish"); category.Products.Add(new Product("Boston Crab Meat", 18.4m)); category.Products.Add(new Product("Red caviar", 15m));   FBusinessObject.Add(category); } ``` Aus den Kommentaren sieht man, wie man die Liste der „Category“ Objekten erstellt. Weiter wird eine neue „Category“ auch erstellt und in die eine gebrauchte Zahl der Produkten hinzugefügt wird. Weiter fügt man auch diese „Category“ in die Liste der „Categories“. Auf diese Weise fügen wir mehrere „Categories“ mit den Produkten hinzu. Wir haben eine Datenqueele erstellt. Die soll man im Bericht mit Hilfe von die Methode „RegisterData“ registrieren: ``` public void RegisterData() { FReport.RegisterData(FBusinessObject, "Categories"); } ``` Diese Methode macht unsere Liste im Bericht unter den Namen „Categories“ verfügbar. Fügen wir eine Methode des Berichtstarts im Designer hinzu: ``` public void DesignReport() { FReport = new Report(); CreateDataSource(); RegisterData(); FReport.Design(); } ``` Hier haben wir ein Examplar des Berichtsobjekts und eine Datenquelle erstellt, wir haben auch diese Datenquelle im Bericht registriert und im Designer geöffnet. Fügen wir eine Taste der Methode des Aufrufs vom Berichtsdesigner auf die Form hinzu.  ``` public void button1_Click(object sender, EventArgs e) { DesignReport(); } ``` Im Designer braucht man eine Datenquelle  im Menü „Data→Choose Report Data“ zu wählen... Erstellen wir einen einfachen Bericht „Master-Detail“: Und starten wir den Bericht in der Vorschau: Und jetzt Schlussfolgerungen. FastReport .Net beweist uns, dass es ein flexibles, modernes Produkt ist. Sie können gebrauchte Daten aus Ihrer Anwendung verwenden, ohne irgendwelche Sorgen dafür, um diese Daten in den Typ „DataTable“ zu bearbeiten. Tags: .NET, .NET, FastReport, FastReport ### Lizenzen vergleichen URL: https://www.fast-report.com/de/new-prices Summary: Preise für den neuen Lizenztyp Business Preise für den neuen Lizenztyp Business FastReport .NET Single Team Business Site Ultimate .NET 1.499 € 4.499 € 11.499 € 22.499 € WEB 799 € 2.399 € 6.299 € 11.999 € Avalonia 599 € 1.799 € 4.699 € 8.999 € WinForms 499 € 1.499 € 3.899 € 7.499 € WPF 499 € 1.499 € 3.899 € 7.499 € Mono 499 € 1.499 € 3.899 € 7.499 € FastReport VCL Single Team Business Site Ultimate VCL 1.299 € 3.899 € 9.999 € 19.499 € Optimum VCL 899 € 2.699 € 6.799 € 13.499 € Reporting VCL 499 € 1.499 € 3.799 € 7.499 € Reporting FMX 499 € 1.499 € 3.799 € 7.499 € Reporting Lazarus 499 € 1.499 € 3.799 € 7.499 € Analysis VCL 399 € 1.199 € 2.999 € 5.999 € Products Single Online Designer 299 € FastConverter .FP3 199 € Desktop Standard Professional FastReport Desktop 399 € 999 € Cloud Monthly Yearly FastReport Cloud Personal 50 € 480 € FastReport Cloud Team 100 € 960 € FastReport Cloud Business 300 € 2.880 € ### Lizenzfragen URL: https://www.fast-report.com/de/faqs/common Summary: Erhalten Sie mit FastReport Einblicke in Lizenzierungsprobleme und erfahren Sie, wie Sie häufige Lizenzierungsprobleme lösen. Erhalten Sie mit FastReport Einblicke in Lizenzierungsprobleme und erfahren Sie, wie Sie häufige Lizenzierungsprobleme lösen. Wie viele Arbeitsplätze sind in einer FastReport-Lizenz enthalten? Unsere Hauptprodukte haben drei Optionen, abhängig von der Anzahl der Entwickler, die mit FastReport arbeiten: **Single license** ist für 1 Entwickler; **Team license** ist für ein Team von bis zu 4 Entwicklern, Build-Server-Lizenz enthalten; **Business license** ist für bis zu 12 Entwickler innerhalb eines geografischen Standorts, Build-Server-Lizenz enthalten; **Site license** ohne Begrenzung der Anzahl der Arbeitsplätze ohne Einschränkung der geografischen Region, Build-Server-Lizenz enthalten. Entwickler: Eine Person, die Zugriff auf FastReport-Bibliotheken und -Skripte hat und diese für die Entwicklung verwendet. Ein Entwickler ist auch eine Person, die Berichte und / oder Formulare im eigenständigen (Desktop-) Designer oder Online-Designer erstellt, sich berät und technischen Support anfordert. Ein Entwickler kann eine Kopie des eigenständigen (Desktop-) Designers installieren. What types of licensing are available for FastReport? In accordance with the License Agreement, Users may be granted the following types of License: **Trial Version** - use of FastReport solely for evaluation purposes for a period not exceeding thirty (30) calendar days (trial period) from the date of initial download. **Basic License** grants Licensee the right to Operate the Software to create and use the Solution and allow Licensee’s customers to use the Solution as End Users under the terms of this Agreement. **Extended License** grants Licensee the right to Operate the Software to create and use the Solution and to allow Licensee’s employees and direct customers to Operate the Solution as End Users under the terms of this Agreement. **Project License** grants Licensee the right to Operate the Software to create the Solution and then assign this Agreement to one third party to allow the third party to further develop the Solution and to allow the third party’s customers to use the Solution as End Users. Read more about license types in the License Agreement. I have an idea that can improve your product. Can I share my thoughts? We are always happy to find out what our customers need. Our company is always open to new ideas and suggestions. We have a special to-do list. We include functionality in it that needs to be implemented as quickly as possible. It is likely that your idea will also be interesting and will be included in it. You can write your ideas to us at [support@fast-report.com](mailto:support@fast-report.com) We would like to order an upgrade, but our panel doesn't have that option. Most likely your subscription has expired, and you need to update your product. Please contact [our support team](/contact). I have purchased FastReport. I should receive my license key within 48 hours, but never received an email. Also in “My Downloads” I don't see any information about the new product. Please make sure that the email address you entered during registration is correct and check your spam folder in your email. If the product is still not available, please contact [our support team](/contact). I would like to upgrade from a Single license to a Team license. How much will it cost? You can upgrade from Single to Team licenses within an active subscription to the license with a **20%** discount. Contact [our support team](/contact). We will provide you with a quote. I have a valid license; how do I upgrade the product? You can update your product in the [customer panel](https://cpanel.fast-report.com/) or contact the reseller that you purchased the product from. How long is the license valid? Why do I need to renew my license? The license is valid for 12 months, during this period you get technical support and updates, after this period to continue receiving tech updates and support, you have the option to renew it for **50%** from the full price (the discount is valid for 1 month after the license expires). I use software that has a FastReport in it, I have an error, what should I do, can you help me? In this case, you need to reach out to this company that is developing this software. As we don't know what changes were made to the FastReport and not responsible for the modified code. Can one developer use the product on two computers? You can install a copy of the Product on your computer and freely move the Software from one computer to another, as long as you are the only individual using the product. If you are an entity, you must designate one individual within your organization ("Named User") to have the right to use the Product. What is build server license? Build Server License is a permission to use the library on an automated build server, to build installs, nightly builds, etc. I use FastReport VCL 4/5/6, FastReport VCL 2021, 2022 I have an error, what should I do? If the version of your FastReport VCL product is different from the current year, we recommend trying to reproduce your error in the new version. You can download the demo on [our website](/downloads). If the problem persists, please write to our support, [support@fast-report.com](mailto: support@fast-report.com) If the problem is resolved, then you need to upgrade to the new version of the product. Does the latest build of FastReport VCL work with the new version of Delphi? Yes, we synchronize versions of our product with current versions of Delphi. I purchased a product, before I used the demo version, there is an error, what should I do? We recommend you check if you have uninstalled the demo version. It is necessary to do it for the correct work of the product. I purchased the wrong product. What should I do? Unfortunately, we cannot replace the product or issue refunds because software is non-refundable, furthermore, the activated license cannot be returned. We recommend you check the demo version before purchasing as we distribute all our products as try-before-you-buy products. I’ve been charged twice. I paid for the subscription manually and then the auto renewal charged my card again. What should I do? Since the payment method is out of our control, we can’t turn the auto renewal off. You can do it through the customer panel at PayPro/MyCommerse. Please, note that the subscription in our system prolong automatically so that your subscription will be active for an additional year My computer died, can I move my old license to the new computer or do I have to purchase a new license? You can move your license, but keep in mind that we do not keep files of old products in the customer panel, but we can provide them on request. How do you ensure data security? FastReport products are components and do not store data, they work as a "black box", the level of security is determined on the user side. In our company the person responsible for the FastReport license has changed, how can the new employee get access to the customer panel? Please contact our support, we will change the email address for you. - If the change of email address within the same domain address, we will do it without a problem. - To change the corporate mail to the developer's personal mail, we need a scan of the official letter from the company confirming that the developer works in this company, and you need to change the mail from corporate to personal one. - To change the corporate mail to an email with another corporate domain address, we need a scan of the official letter from the company pointing out why it's necessary. This procedure is not a license ownership transfer. This is required for security purposes and to protect the rights of license users. Kann ich das Produkt testen, bevor ich es kaufe? Bieten Sie technische Unterstützung beim Testen an? Ja, wir empfehlen, unser Softwareprodukt vor dem Kauf zu testen, um sicherzustellen, dass es Ihren Anforderungen entspricht. Die Testversion enthält alle Funktionen der Vollversion, weist jedoch einige Einschränkungen auf. Unsere Spezialisten helfen Ihnen gerne weiter. Sie können uns technische Fragen senden an [support@fast-report.com](mailto:support@fast-report.com) ### Localization resources on github.com URL: https://www.fast-report.com/de/news/localization-fastreport-github Summary: Localization resources on github.com Localization resources on github.com You may know that the advanced reporting tool for Embarcadero RAD Studio / Delphi / C++Builder was localized for more than 30 languages  https://github.com/FastReports/FastReport.VCL.RES Now you can translate to other languages or add translation s to FastReport VCL – it has never been simpler!  Sign up for  https://github.com , offer your version of localization resources, after editing send Pull Request - a request for adding changes (manual with pictures  https://github.com/blog/844-forking-with-the-edit-button ). ### Lokalisation von den Online Designer und Web Bericht URL: https://www.fast-report.com/de/blogs/localization-online-designer-webreport Summary: In die Methode „Index“ übergebe ich den Wert aus der Dropdown-Liste – eine der zwei Sprachen, Russisch oder Englisch. In die Methode „Index“ übergebe ich den Wert aus der Dropdown-Liste – eine der zwei Sprachen, Russisch oder Englisch. In die Methode „Index“ übergebe ich den Wert aus der Dropdown-Liste – eine der zwei Sprachen, Russisch oder Englisch. ``` public ActionResult Index(string language) { WebReport webReport = new WebReport(); //ein Exemplar der Klasse WebReport erstellen. webReport.Width = Unit.Percentage(100); webReport.Height = Unit.Percentage(100); string report_path = "J:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; //Ordner für Berichte System.Data.DataSet dataSet = new System.Data.DataSet(); //Eine Daten-Sammlung erstellen dataSet.ReadXml(report_path + "nwind.xml"); //einen xml Datenlager erstellen webReport.Report.RegisterData(dataSet, "NorthWind"); //eine Datenquelle im Objekt „Bericht“ registrieren webReport.Report.Load(report_path + "Simple Interactive.frx"); //den Bericht in den Objekt WebReport herunterladen if (language == "ru") { webReport.DesignerLocale = "ru"; webReport.LocalizationFile = "~/Localization/Russian.frl"; } else { webReport.DesignerLocale = "en"; } webReport.DesignReport = true; ViewBag.WebReport = webReport; //Web Report in View übergeben return View(); }   ``` In die Methode „Index“ übergebe ich den Wert aus der Dropdown-Liste – eine der zwei Sprachen, Russisch oder Englisch. In erster Zeile erstellen wir ein Exemplar des Objekts WebReport. Weiter, setzen wir die Höhe und die Breite des Reports als 100% ein. In die Variable report_path speichern wir den Weg zum Ordner mit dem Bericht. Erstellen wir weiter eine Daten-Sammlung, laden wir dorthin einen xml Datenlager herunter und registrieren wir die Datenquelle im Objekt „Bericht“. Und jetzt laden wir den Bericht ins Objekt WebReport herunter. Prüfen wir weiter den Wert vom Parameter language. Wenn er gleich „ru“ ist, dann setzen wir die Lokalisation des Designers und des Berichts als russisch, ansonst wird die englische Lokalisation. Die Eigenschaft DesignReport aktiviert Online Designer. Mit anderen Wörtern, der Bericht, den wir heruntergeladen haben, wird im Designer geöffnet. Jetzt bleibt es nur, den Bericht in View zu übergeben. Sie haben wahrscheinlich sich bemerkt, dass die Lokalization im Ordner mit gleichem Namen sich befindet. Sie können diesen Ordner im Kern-Ordner von FastReport.Net finden. Fügen Sie diesen Ordner „Lokalisation“ in Ihr Projekt hinzu. Der Designer soll selbst ins Projekt hinzugefügt werden. Er soll mit Hilfe vom Kundepanel auf der Seite vom Hersteller www.fast-report.com kompiliert werden. Nach dem Build bekommen Sie ein Archiv mit dem Designer. In diesem Archiv finden Sie den Ordner WebReportDesigner und fügen Sie ihn in Ihr Projekt hinzu.  Und jetzt zum View. Bearbeiten wir die Datei Index.cshtml, der im Ordner Views->Home sich befindet: ``` @{ ViewBag.Title = "Home Page"; }   @using (Html.BeginForm("Index","Home")) { @Html.DropDownList("Language", new List() { new SelectListItem(){ Text= "Russian", Value = "ru"}, new SelectListItem(){ Text= "English", Value = "en"} }, "Select language")   } @ViewBag.WebReport.GetHtml() ``` Hier geben wir den Titel der Seite ein. Weiter, verwenden wir den Helper BeginForm für die Erstellung der Form. Im Helper bestimmen wir den Kontroller und Action-Methode. Auf der Form erstellen wir die Dropdown-Liste und erfüllen sie mit zwei Elementen. Merken Sie sich, dass der Name der Liste ist der gleiche wie der Name des Parameters in der Methode Index Hier gibt es auch eine Taste, mit der wir notwendiges Element wählen. Und stellen wir unseren Bericht mit Hilfe von @ViewBag dar. Im Ordner Views->Shared braucht man die Datei файл _Layout.cshtml zu bearbeiten. Fügen wir Scripts und Stilen in den Titel hinzu: ``` @WebReportGlobals.Scripts() @WebReportGlobals.Styles() ``` Im Ordner Sichten hat eine web.config-Datei. Fügen Sie den Namespace für ihn: ``` ``` Im Kern des Projekts gibt es noch eine Datei Web.config. In dieser Datei fügen wir den Editor hinzu, nach der Section modules: ``` … ``` Jetzt kann man die Anwendung starten: Wählen wir die Russische Sprache und klicken wir die Taste Select: Und bekommen wir eine russische Lokalisation. Wenn wir den Bericht im Vorschaufenster starten, wehen wir russisches Instrumente-Paneel vom Objekt WebReport: Auf dieser Weise haben wir den Bericht lokalisiert. Wenn Sie auch den Bericht lokalisieren wollen, sehen Sie den Artikel für FastReport .NET in meinem Blog : How to localize report in FastReport .NET Ich zeigte eine einfache Realisierung der Lokalisation mit der Sprach-Auswahl aus der Liste. Für die automatisierte Wahl der Lokalisation kann man die Sprache des User-Browsers mit Hilfe von der Eigenschaft Request.UserLanguages bestimmen. Tags: .NET, FastReport, MVC, Online Designer, WebReport ### Lokalisierung und Ändern von Sprachen in FastReport VCL URL: https://www.fast-report.com/de/blogs/localization-vcl Summary: FastReport VCL unterstützt 40 Sprachen für die Schnittstellenlokalisierung und ermöglicht es Ihnen, die Sprache im laufenden Betrieb über Menüs oder Code ohne Neukompilierung zu ändern. FastReport VCL unterstützt 40 Sprachen für die Schnittstellenlokalisierung und ermöglicht es Ihnen, die Sprache im laufenden Betrieb über Menüs oder Code ohne Neukompilierung zu ändern. In FastReport VCL wurde ab Version 2023.2 die Lokalisierung erheblich verbessert – jetzt ist keine Neukompilierung mehr erforderlich, um Sprachen in FastReport zu ändern. Das Lokalisierungspaket ist in allen Lieferumfängen von FastReport VCL enthalten. In der heutigen Welt ist es von großer Bedeutung, dass Sie Ihre Software an Kunden in der ganzen Welt liefern können. Aus diesem Grund unterstützt FastReport VCL etwa 40 der am häufigsten gesprochenen Sprachen der Welt für die Lokalisierung von Benutzeroberflächen. In FastReport VCL wurde ab Version 2023.2 die Lokalisierung erheblich verbessert – jetzt ist keine Neukompilierung mehr erforderlich, um Sprachen in FastReport zu ändern. Das Lokalisierungspaket ist in allen Lieferumfängen von FastReport VCL enthalten. Die Lokalisierung erfolgt on-the-fly durch die Auswahl der gewünschten Sprache im Berichtsdesigner im Menü „Ansicht - Sprache“. Darüber hinaus können Sie die Sprache der FastReport VCL- Benutzeroberfläche direkt vom Code aus steuern! Prüfen und Installieren von Lokalisierungspaketen  Für die korrekte Funktion der Lokalisierung müssen die Lokalisierungspakete (frxLanguageXXX) und das Lokalisierungs-Controller-Paket (frLocalization) in der IDE installiert sein. Unter Windows werden die Lokalisierungspakete automatisch für die Delphi und Lazarus IDEs installiert. Wenn das Lokalisierungsmenü nicht verfügbar ist, müssen Sie überprüfen, ob diese Pakete in der IDE installiert sind. In Delphi werden Sie das folgende Fenster sehen: In Lazarus sieht das Lokalisierungsmenü wie folgt aus: Wenn einige der Übersetzungspakete nicht benötigt werden, können sie aus der Entwicklungsumgebung entfernt werden. Umgang mit TfrLocalizationController und Spracheinstellungen Wie oben erwähnt, werden die Sprachen im FastReport-Berichtsdesigner sehr einfach eingestellt. Gehen Sie dazu im Menü auf „Ansicht–Sprachen“ und wählen Sie die gewünschte Sprache aus.  Um die FastReport-Lokalisierung mit der Software zu verbinden, müssen Sie die TfrLocalisationController Komponente verwenden. Es reicht aus, sie in das Hauptformular der Software einzufügen. Klicken Sie dann in Delphi mit der rechten Maustaste auf die Komponente und wählen Sie im Dropdown-Menü die Sprache aus, die von FastReport in Ihrer Software unterstützt werden soll:   Danach muss für die TfrLocalizationController-Komponente die Sprache ausgewählt werden, die standardmäßig geladen wird, wenn die Software gestartet wird. Sie können zu uses des Hauptformulars auch ein Modul hinzufügen, das die erforderliche Lokalisierung enthält.  Es sollte beachtet werden, dass FastReport VCL standardmäßig Englisch verwendet, so dass Sie nichts tun müssen, wenn Sie nur diese Sprache benötigen. Um die Lokalisierung in Lazarus zu aktivieren, müssen Sie dem Projekt ein Sprachpaket und dann ein Modul für diese Sprache hinzufügen. Ändern der Sprache vom Code aus  In manchen Situationen kann es notwendig sein, die Lokalisierung der FastReport VCL vom Programmcode aus zu steuern. Dies wird wie folgt gemacht:  frLocalizationController.Language := ‘German’; Dieser Code stellt die deutsche Sprache ein. Vergessen Sie nicht, dass Ihre Software mit dem Sprachpaket kompiliert sein muss, zu dem Sie wechseln wollen. Mit dem unten stehenden Code können Sie herausfinden, mit welchen Sprachpaketen Ihre Software kompiliert ist. Verbinden Sie dazu das Modul Types, fügen Sie die Komponenten TButton und TMemo in das Formular ein und schreiben Sie in dem Button.OnClick Handler folgendes:  procedure TForm1.Button1Click(Sender: TObject); var D:TStringDynArray;  I: Integer; begin   Memo1.Lines.Add('Default Lang: '+TfrAvailableLanguagesController.GetDefaultLanguageName);   Memo1.Lines.Add('Current Lng: '+frLocalizationController1.Language);   Memo1.Lines.Add('Suppotred languages:');   D:=TfrAvailableLanguagesController.GetLanguages;   for I:=Low(D) to High(D) do begin     Memo1.Lines.Add(D[I]);   End; end;  Bitte beachten Sie, dass Englisch nicht in der Liste der unterstützten Sprachen enthalten ist, aber standardmäßig immer verfügbar ist. Bearbeitung der Lokalisierung über Localizer Der Lokalisierungseditor kann wie folgt aufgerufen werden: im Delphi IDE Menü “Tools… - Localization Editor…” im Lazarus Menü “Service - Localization Editor…” Mit dem folgenden Code können Sie den Lokalisierungseditor aus Ihrer Software heraus aufrufen. Diese Methode ist jedoch nicht in allen Versionen verfügbar.   frLocalizationController1.ShowLocalizationEditor; Zuweisung von Steuerelementen im Lokalisierungseditor: eine *.xml-Datei mit Übersetzung öffnen die *.xml-Datei mit der Übersetzung speichern die Übersetzungsdatei unter dem angegebenen Namen speichern die letzte Aktion rückgängig machen die abgebrochene Aktion durchführen die Zielsprache einstellen Einträge nach Masken filtern den Filter reinigen nur übersetzte Einträge anzeigen nur unübersetzte Einträge anzeigen Mit dem „Lokalisierungseditor“ können Sie FastReport VCL-Ressourcen Zeile für Zeile in verschiedene Sprachen übersetzen. In der Mitte des Editors befindet sich ein Raster mit übersetzbaren Werten.  Die erste Spalte ist der Bezeichner des zu übersetzenden Elements. Es handelt sich immer um eine Zeichenkette, auch wenn Zahlen ebenfalls in separaten Zeichenketten stehen, da ihre Zeichenkettendarstellung verwendet wird.  Die zweite Spalte enthält die englische Originalbedeutung des Elements.  Die dritte Spalte enthält die übersetzte Bedeutung des Elements in der anderen Sprache. Kommen wir nun zur Funktionsweise des Lokalisierungseditors. Beim Laden prüft der Editor, welche Lokalisierungen für die Software, in die er eingebettet ist, verfügbar sind. Dann füllt der Editor die Liste der verfügbaren Sprachen aus (Kombinationsfeld zur Eingabe der Zielsprache). Die aktuell installierte Lokalisierung ist für die Bearbeitung aktiv. Sie können eine Übersetzung für jede der verfügbaren Sprachen auswählen, bearbeiten und als eine XML-Datei speichern. Wenn Sie bereits über eine XML-Datei mit Übersetzungen verfügen, können Sie diese zur Bearbeitung herunterladen. Im Lokalisierungseditor können Sie zwischen verschiedenen Anzeigemodi wechseln. Beispielsweise kann man nur die Elemente anzeigen, deren Übersetzung mit dem englischen Original übereinstimmt. Oder umgekehrt werden nur die Elemente angezeigt, deren Übersetzung von der englischen Version abweicht. Beachten Sie jedoch, dass nicht alle Elemente übersetzt werden müssen.  Sie können einen Filter auf Einträge im Raster anwenden. Das Rasterelement wird nur angezeigt, wenn der Filterwert in einer beliebigen Spalte enthalten ist. Sie können das Raster auch in alphabetischer Reihenfolge vorwärts und rückwärts sortieren, indem Sie auf eine beliebige Spaltenüberschrift klicken. Wenn Sie die Übersetzungsdatei geändert haben, können Sie diese anstelle der Standarddatei in die Software einbinden. Dazu müssen Sie das Modul frResources in der uses-Anweisung mit folgendem Code verbinden:   frStringResources.LoadFromFile('mylanguage.xml'); Wir empfehlen, Ihre Software nach der Bearbeitung der Dateien neu zu starten, um sicherzustellen, dass alle übersetzten Ressourcen korrekt angezeigt werden. Beachten Sie auch, dass die geladene Übersetzung sofort aktiv wird, aber nur bis zum ersten Sprachwechsel funktioniert. Wenn Sie dann wieder zu dieser Sprache wechseln, wird die Lokalisierung aus den mit der Software verbundenen Ressourcen übernommen.  Außerdem können Sie eine Ressource mit einer Übersetzungsdatei selbst kompilieren. Legen Sie diese in das Verzeichnis mit dem entsprechenden Sprachmodul und verwenden Sie sie in der Software. Damit diese Übersetzung in der IDE angezeigt wird, führen Sie das Installationsprogramm aus und wählen Sie den Modus Neu kompilieren (Recompile) oder kompilieren Sie einfach das Paket der benötigten Sprache neu. In Lazarus müssen Sie danach die IDE neu erstellen; in Delphi müssen Sie die Umgebung neu starten. Wenn Sie sicherstellen möchten, dass Ihre Übersetzung nicht nach jedem Update verloren geht, können Sie die Lokalisierungsdatei uns an support@fast-report.com zukommen lassen. Wir prüfen die empfangene Datei und fügen sie dem Installationsprogramm hinzu. Tags: VCL, Lazarus, FastReport, Designer, Delphi ### Low-Code-Berichterstellung jetzt auf Linux URL: https://www.fast-report.com/de/news/desktop-for-linux Summary: Ab dem 17. Februar ist FastReport Desktop Professional in einer aktualisierten Version mit Unterstützung für Windows und Linux verfügbar. Ab dem 17. Februar ist FastReport Desktop Professional in einer aktualisierten Version mit Unterstützung für Windows und Linux verfügbar. Ab dem 17. Februar ist  FastReport Desktop Professional in einer aktualisierten Version mit Unterstützung für Windows und Linux verfügbar. Sie können nun plattformübergreifende Komponenten verwenden, um die Berichtserstellung und -verteilung auf beiden Betriebssystemen zu automatisieren. Beim Kauf von FastReport Desktop Professional erhalten Sie jetzt Komponenten sowohl für Windows als auch für Linux: Visual Designer zum Erstellen und Bearbeiten von Berichten. Builder als Konsolenprogramm zum Erstellen und Verarbeiten von Berichten. Configurator zum Erstellen von Builder-Aufgaben. Bequemer Scheduler zur Ausführung von Aufgaben nach Zeitplan. Viewer zur Anzeige und zum Drucken fertiger Berichte. Der Preis für FastReport Desktop Professional bleibt unverändert. Alle bestehenden Kunden haben automatisch Zugriff auf die neuen Funktionen erhalten – eine Lizenzneuausstellung ist nicht erforderlich. Um FastReport Desktop zu installieren, laden Sie das Installationspaket aus Ihrem persönlichen Konto herunter. Verfügbare Paketoptionen: deb und rpm, für die Architekturen x64 und arm64. Detaillierte Installationsanweisungen finden Sie unter diesem Link. Die Lizenz FastReport Desktop Standard enthält nur Windows-Komponenten und bleibt unverändert. Bei Fragen kontaktieren Sie uns bitte unter  sales@fast-report.сom . Download Demo ### Make Drill-Down report in VCL (Delphi / Lazarus) URL: https://www.fast-report.com/de/blogs/drill-down-report-in-fastreport-vcl Summary: How to make Drill-Down report (Drop-down list) in Delphi / Lazarus / С++ Builder (with FastReport VCL). How to make Drill-Down report (Drop-down list) in Delphi / Lazarus / С++ Builder (with FastReport VCL). Creating drill-down reports for even more convenient data analysis. "Drill Down" or "deepening into data" is a concept with many sides, which can refer to actions in tables or in something else that encapsulates information. And plain and simple, it's a drop-down list! One of the most important operations is Drill-Down, for example, in OLAP with cubes, and, in principle, many places. After all, it greatly simplifies the analysis of information. A "careful dive" into the layers of data. Let's "take a closer look at the data"! This is normally done by clicking on the data we want to drill down into. You can do a drop-down list in FastReport VCL and this is the feature we will talk about in this article. About Drill-down properties in FastReport VCL and its connection: The group header itself has a DrillDown property ("DrillDown" item on the menu). When DrillDown is enabled, it will be possible to make the group interactive. In simple terms, the group will begin to respond to a mouse click in the preview window. Clicking on a header will allow you to expand (show all content) or collapse (hide content), leaving only the header and, if desired, the basement or childband. This can be configured with the ShowFooterIfDrillDown and ShowChildIfDrillDown properties. The screenshot below shows an example of a group with a single expanded header: You can specify whether all groups should be output collapsed or expanded when the report is run. By default the groups are collapsed and this is controlled by the ExpandDrillDown property. If groups are to be expanded, set this property to True. The preview also has the function to open and close group information from the context menu. It should be noted that when using the DrillDown mechanism, the report is rebuilt each time. If the report is based on the data of a 'heavy' query, such a query will be run each time DrillDown is triggered. In this case, it is desirable to save the results of query execution in a temporary table. Also, generated reports that are saved in fp3 format and subsequently loaded in the preview window or in the FR Viewer will not work. In the code, the TfrxGroupHeader properties for creating drill-down reports are set as follows: DrillDown ``` var gh: TfrxGroupHeader; gh := TfrxGroupHeader(frxReport1.FindObject(‘GroupHeader1’)); gh.DrillDown := True; gh.ExpandDrillDown := True; gh.ShowChildIfDrillDown := False; gh.ShowFooterIfDrillDown := True; ``` I find reports that use the DrillDown type and its properties useful and easy to use. And I'm not the only one! Any office worker will be grateful to you for this dilution of their hopeless life with such interaction! The only thing is, don't quit and try to "stomp" into a report with multi-levels! This is expected to weigh down both the document and the workload.  Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, Delphi, Delphi ### Making the same report pages with different headers URL: https://www.fast-report.com/de/blogs/same-reports-different-headers Summary: Different headers on the identical report pages in FastReport .NET. Different headers on the identical report pages in FastReport .NET. Different headers on the identical report pages in FastReport .NET. Sometimes your work needs one and the same report, but with a few changes. For example, different headers for different departments. So, for example, a user of the ActiveReports report generator wants to create such a report: For example, the user select copies for the customer and for administration department. The application creates the same report but each one has a label in the header that shows something like "Copy for the customer", "Copy for the administration department". After, the application has to show the two pages in a form viewer. Let's implement such a report in FastReport .NET. You can generate the same report and pass it different parameters for the header. But if you want to receive similar reports with different headlines in one report, you can do otherwise. We can duplicate the pages of the original report, and then modify the headers in these pages. The easiest way is to show on the report with one page. The report will have a parameter that lists the number of titles that you want to display in this report through a comma. In the report script, we duplicate the page based on the number of values in the setting, then replace the text in the headlines of the new pages to the desired. In this way, we can form pages with different titles depending on the numbers that are transferred. However, there is one difficulty. You'll have to manually calculate the number of the text object in which you want to replace the text. For example, there are 9 text objects in my report. The first is the headline. So the tenth will also be the headline, but on the new page. If you add another 9 to 10, we get the title number on the third page and so on. It will become more clear when you the script code: ``` private void _StartReport(object sender, EventArgs e) { //Parse parameter string parameter = (string)Report.GetParameterValue("Parameter"); string[] arr = parameter.Split(',');   //Number of text obj that is header int step = 10;   foreach (string item in arr) { ReportPage newPage = new ReportPage(); newPage.AssignAll(Page1); Report.Pages.Add(newPage); newPage.CreateUniqueName(); foreach (object obj in newPage.AllObjects) { if (obj is Base) { (obj as Base).CreateUniqueName(); } } TextObject txt = Report.FindObject("Text"+ step.ToString()) as TextObject; switch (item) { case "1": txt.Text = "Header 1"; break; case "2": txt.Text = "Header 2"; break; case "3": txt.Text = "Header 3"; break; } step = step + 9; } Report.Pages.Remove(Page1); } ```  Let's take a closer look at this script. We used the StartReport event at the Report object. In the event handler, we will manipulate the report pages. The report already has one page developed - in fact it is a ready-made "combat" report, on the basis of which we want to make several, but with different headlines. First of all, we parse a report parameter. As mentioned earlier, the parameter is passed in sequence identifier patterns that we want to display. Identificators are separated by commas. Next, iterate loop parameter IDs obtained from the report. For each of them creates a page based on an existing text object is calculated with a header. Depending on the text object header template identifier is set. Once we have established a "pack" the necessary pages, remove the first page of the sample. As a result, we get multiple reports within a single. A controlled number of these reports pages may be passing in the report parameter value - the desired combination of identifiers or headers. Tags: .NET, .NET, FastReport, FastReport, Report, Report ### Manage the size of the band in the designer with the mouse URL: https://www.fast-report.com/de/blogs/manage-size-band-designer Most of the time when developing a report, it takes away the placement of elements on the page. Very few people manage to pick up the sizes and proportions from the first time. You always have to do a couple of test runs of the report. The new function of controlling the height of the band is designed to speed up development. The feature of the function is that at the same time it is possible to remove all free space above and below the object on the band. The easiest way to show an example. In the blank report, add several fields from the data source to the “Data” band: As you can see, above and below the added fields there is free space. To fix this you need to highlight the two added fields and drag them up, and then reduce the size of the band by pulling at its bottom edge. This way we would have done before. There are quite a lot of actions. Now everything can be made easier. We click on the free space of the “Data” band, thereby selecting it. White squares which you can pull appear on the upper and lower border. If you pull the bottom - you can increase or decrease the size of the band. You can reduce the size only to the nearest object on the band. Let's try to pull the top square down. At the same time, the free space above the objects will decrease. But, as soon as the objects reach the upper boundary of the band, the space below the objects will begin to decrease as well. Continuing to pull down, we remove all the free space under the objects. Thus, we will achieve the desired result with just two actions. Much more convenient than before, isn’t it? You probably wonder what will happen if you pull up the top square. The free space above the object will increase. Tags: .NET, .NET, FastReport, FastReport ### MAPI e-mail export filter in FastReport VCL URL: https://www.fast-report.com/de/news/mapi-filter-fastreport-vcl Summary: MAPI e-mail export filter in FastReport VCL MAPI e-mail export filter in FastReport VCL A MAPI email export filter in FastReport VCL is available for users in the daily build of FastReport VCL 4.12.**. The upcoming release of v.4.13 includes many other in novations. Read about the MAPI export filter in our blog and give us your opinion. ### Matrix vs. AdvancedMatrix und ihre neuen Funktionen URL: https://www.fast-report.com/de/blogs/features-matrix-advancedmatrix Summary: Schritt-für-Schritt-Anleitung zur Verwendung einer neuen Matrix in Ihrem Projekt mit einer Änderung der Struktur und Funktionalität. Schritt-für-Schritt-Anleitung zur Verwendung einer neuen Matrix in Ihrem Projekt mit einer Änderung der Struktur und Funktionalität. Schritt-für-Schritt-Anleitung zur Verwendung einer neuen Matrix in Ihrem Projekt mit einer Änderung der Struktur und Funktionalität. Vor kurzem erschien das AdvancedMatrix-Objekt in FastReport.NET. In diesem Artikel erläutern wir Ihnen die Struktur der neuen Matrix, ihre neuen Funktionen sowie vergleichen die alte und die neue Matrix. Schauen wir uns zunächst die Struktur der Matrix an. Sie besteht aus folgenden Elementen: Die Strukturen der neuen und der alten Matrix sind zwar sehr ähnlich, haben aber einige kleine Unterschiede. Schauen wir uns die einzelnen Elemente genauer an. Ecke Die Zellen in den Ecken der Matrix können beliebige Informationen enthalten. Sie können sie auch nach eigener Wahl teilen oder verbinden. Überschrift Eine Matrixüberschrift kann zwei Arten von Elementen enthalten: “einfaches Element", um statische Informationen anzuzeigen, z. B. den Text "Gesamt". “Gruppe” zeigt eine Liste von Werten an, die nach einem bestimmten Kriterium gruppiert sind. Die Überschrift hat eine Baumstruktur, bei der das Wurzelelement unsichtbar ist, aber sichtbare Elemente der ersten Ebene enthält. Die Anordnung der Elemente kann beliebig sein, z.B. kann die Überschrift keine einzige Gruppe haben, oder sie kann mehrere Gruppen nebeneinander haben. Gesamtwerte können auch frei angeordnet werden. Im Entwurfsmodus zeigt die Matrix visuelle Hinweise im Überschriftenbereich an: Das letzte Element sind Zellen im Datenbereich, die normalerweise eine Aggregatfunktion enthalten. Also haben wir die Elemente der neuen Matrix detailliert beleuchtet. Sehen wir uns nun an, welche neuen Funktionen hinzugefügt wurden. Hier ist die Liste mit den Neuerungen. Zeilen- und Spaltenüberschriften können Gruppen und einfache Elemente in beliebiger Reihenfolge enthalten. Dadurch können asymmetrische Berichte erstellt werden. Mit den Ausblenden-Schaltflächen kann man die Sichtbarkeit einzelner Elemente interaktiv steuern. Mit den Sortierschaltflächen kann man die Matrix interaktiv nach ausgewählten Werten, einschließlich der Gesamtwerten sortieren. durch das Top N-Gruppieren können Sie N-Werte in der Überschrift anzeigen und die übrigen Werte in einem separaten Element mit der Erweiterungsmöglichkeit gruppieren. stufenweise Anzeige der Matrix-Überschriften. Überschriftensortierung nach den Gesamtwerten. Neuer Satz von Aggregatfunktionen. Unterstützung der benutzerdefinierten Aggregatfunktionen. ein breites Spektrum an Sonderfunktionen, mit denen Sie Gesamtwerte, Werte der benachbarten Zellen abrufen können, sowie Funktionen für Prozentrechnung. Unterstützung von Objekten "Sparkline" und "Fortschrittsanzeige" in den Datenzellen. Der folgende Screenshot veranschaulicht die Position von Schaltflächen. Wir können sehen, dass die AdvancedMatrix hauptsächlich um Funktionen erweitert wurde, die mehr Flexibilität und vor allem Komfort bieten. Durch interaktives Ein-bzw. Ausblenden können relevante Daten ein- bzw. ausgeblendet werden. Die Elemente wurden block- oder stufenweise angeordnet, um eine visuelle Verwirrung in der Matrix zu vermeiden und um deutlich zu machen, wo sich die Daten befinden. Die Sortierung erfolgt auch sehr praktisch. Beginnen wir nun mit dem Einrichten der Matrix. Um die gesamte Matrix einzurichten, müssen Sie: 1). Überschriften einrichten; 2). Datenzellen einrichten; 3). Gesamtwerte hinzufügen. Dieser Schritt wird am besten zuletzt ausgeführt, um Zeit beim Einrichten neuer Datenzellen zu sparen. Vergessen Sie nicht, dass die Matrix mit einer Datenquelle verbunden sein muss, dafür ist die DataSource Eigenschaft zuständig. Grundsätzlich sind die Einstellungen dieser drei Punkte gleich und ähneln einer normalen Matrix. Sie können Elemente durch Ziehen und Ablegen eines Feldes aus einem Datenfenster hinzufügen. Dabei wird angezeigt, zu welchem Teil der Überschrift das neue Element hinzugefügt wird. Um ein Element zu löschen, wählen Sie "Löschen" aus dem Kontextmenü. Sie können nur das ausgewählte Element oder einen Elementbaum (das ausgewählte Element und alle seine untergeordneten Elemente) löschen. Sie können ein Element auch löschen, indem Sie die Delete-Taste drücken. In diesem Fall wird nur das ausgewählte Element gelöscht. Jetzt können Sie das Element verschieben. Um das Element an einer neuen Stelle zu platzieren, markieren Sie es mit der linken Maustaste. Das Element wird mit einem dicken schwarzen Rand hervorgehoben (wie im Screenshot gezeigt). Greifen Sie das Element und bewegen Sie es in die neue Position.   Lassen Sie die gedrückte Maustaste los, und das Element fügt sich an der neuen Stelle ein: Zum Schluss: Bearbeiten. Um den Elementeditor aufzurufen, doppelklicken Sie mit der linken Maustaste darauf oder wählen Sie "Bearbeiten..." aus dem Kontextmenü. Der Editor kann auch mit der Eingabetaste aufgerufen werden. Um das Kontextmenü aufzurufen, markieren Sie ein beliebiges Element der Matrix und klicken Sie dann mit der rechten Maustaste auf den Bereich in der linken oberen Ecke der Matrix. Die folgenden Befehle sind im Menü verfügbar. Der Stil ist aus voreingestellten Optionen verfügbar. Spalten und Zeilen vertauschen ermöglicht es Ihnen, Spalten und Zeilen in einer Matrix schnell zu vertauschen. Überschriften auf neuen Seiten wiederholen - wenn sich eine Matrix über mehrere Seiten erstreckt, werden Spalten- und Zeilenüberschriften auf jeder Seite gedruckt. Fassen wir zusammen. Wir haben beleuchtet, wie man eine Tabelle einrichtet und wie sie aufgebaut ist. Im Allgemeinen wurde es so einfach und praktisch wie möglich gestaltet. Lassen Sie uns unsere eigene Matrix im Designer erstellen. Dazu müssen wir das Matrix-Objekt finden, darauf klicken und in der Dropdown-Liste Advanced Matrix auswählen. Verschieben Sie das Objekt in das Datenband, füllen Sie es mit Daten und fügen Sie Gesamtwerte hinzu. Stellen Sie nun die Stufenanzeige ein. Doppelklicken Sie dazu auf das Element, wechseln Sie auf die Registerkarte „Sonstige“ und markieren Sie das Kästchen neben der Stufenanzeige. Aktivieren Sie als Nächstes die Ausblenden-Schaltflächen. Klicken Sie mit der rechten Maustaste auf das gewünschte Element, und wählen Sie die Ausblenden-Schaltfläche. Im Designer sieht unsere Matrix nun wie folgt aus: Und so sieht es in der Vorschau aus: Nun haben wir Einsicht in den Aufbau der AdvancedMatrix, ihre neuen Funktionen, Einstellungen und die Art und Weise, wie sie vom Designer aus erstellt wird, bekommen. Werfen wir einen Blick auf eine der vorgefertigten AdvancedMatrix-Vorlagen, die in der FastReport.Net Demo zu finden ist. Mit dieser Vorlage können Sie sich mit der neuen Matrix vertraut machen und die darin enthaltenen neuen Funktionen selbst testen. Weitere Informationen finden Sie in unserer Dokumentation.  Aus dem Dargelegten folgt, dass die neue Matrix viel bequemer zu handhaben ist, da die Möglichkeit besteht, Elemente interaktiv zu sortieren, block- oder stufenweise zu platzieren, wodurch es unmöglich ist, sich in der Matrix zu verwirren. Bei Fragen wenden Sie sich bitte an  unseren Support . Gerne beantworten wir Ihre Fragen. Viel Erfolg beim Einsatz! Tags: .NET, FastReport, Matrix ### MaxiCode-Barcode-Erstellungsverlauf, Bearbeitung in FastReport .NET URL: https://www.fast-report.com/de/blogs/barcode-maxicode-net Summary: Schauen wir uns genauer an, was MaxiCode QR-Code in FastReport .NET ist. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, was MaxiCode QR-Code in FastReport .NET ist. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, was MaxiCode QR-Code in FastReport .NET ist. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. MaxiCode wurde erstmals 1992 als Code für die Hochgeschwindigkeitsfördersortierung patentiert. Der ursprüngliche Name war der dichte Code, der später in UPS geändert wurde. Der letzte etablierte Name war MaxiCode. Maxicode ist eine zwei dimensionale Symbol-System des Barcodes, das United Parcel Service an den Verpackungen und für die Sendung-Formularen verwendet. Dieses System dient für internationale Sendungen und Sortierungen der Pakete. Statt der Streifen-Verwendung benutzt man in der MaxiCode-Technologie Points, die in einem hexagonalen Netz sich befinden. Dieses Netz besteht aus 888 Knoten oder Zellen.  Diese Zellen platzieren ums Zentrum des Codes herum. Solche Platzierung hilft der Kamera das Symbol des Codes zu finden. Obwohl sind MaxiCode mit einem Quadratzoll beschränkt, können diese Coden eine zusammen verbundene Kette aufbauen, die aus 8 Teilnehmer besteht und eine lange Nachricht erstellen kann. Maxicode Barcodes haben eine fixierte Größe 1,11 x 1,054 Zollen und speichern bis zu den 93 Daten-Symbolen. Außerdem gibt es eine Möglichkeit beim Schaden den Barcode zu lesen. Integrierte Fehler-Berichtigung basiert sich auf den Reed-Solomon-Code. Weil man die Mehrheit der Coden auf den Verpackungen aufklebt, sollen diese Coden vor dem Schaden geschützt werden. Sogar wenn 1/8 Teil des Codes geschädigt ist, kann dieser Code lesbar sein. Jeder MaxiCode enthält zwei Nachrichten: primär und sekundär. Primäre Nachricht enthält PLZ, den Code des Staates und die Sendungsklasse. Sekundär-Nachricht hat die Daten der Adresse. Fürs Lesen des Maxicodes braucht man einen 2D-Scanner, vorzugsweise mit der Emulation der Tastatur und einem USB - Steckdose. Wichtige Verwendung des MaxiCodes ist eine Markierung der Pakete, Palette usw. Das hilft die wichtigen Informationen mit dem Paket zu übergeben. Eine der Hauptbesonderheiten des MaxiCodes – dass, er bei automatisierter Sortierung mit großer Geschwindigkeit lesbar sein kann. Das macht diesen Code sehr nützlich bei automatisierter Bearbeitung der Stoffe. FastReport.Net stellt einen Barcode MaxiCode zur Verfügung. So sieht er aus: Fürs Erkennen vom Scanner des Zentrums des Codes befindet sich dort eine Zielscheibe. Der Code kann den Text enthalten: Als ein großer Vorteil dieses Codes ist eine Möglichkeit ziemlich große Daten mit den Ziffern und Buchstaben zu kodieren und schnell beim Lesen zu erkennen. Mit solchen wesentlichen Vorteilen wird der Code weiter schnell verbreitet. Tags: .NET, FastReport, Barcode ### Mehr Flexibilität mit der neuen Lizenzoption „Business“ URL: https://www.fast-report.com/de/news/business-license Summary: Die „Business“-Lizenz ist für Entwicklerteams von 5 bis 12 Personen konzipiert und eignet sich perfekt, wenn die „Team“-Lizenz zu klein und die „Site“-Lizenz zu groß ist. Die „Business“-Lizenz ist für Entwicklerteams von 5 bis 12 Personen konzipiert und eignet sich perfekt, wenn die „Team“-Lizenz zu klein und die „Site“-Lizenz zu groß ist. Ab dem 1. April 2025 ist eine Lizenzoption für FastReport .NET und FastReport VCL verfügbar. Die „Business“-Lizenz ist für Entwicklerteams von 5 bis 12 Personen konzipiert und eignet sich perfekt, wenn die „Team“-Lizenz zu klein und die „Site“-Lizenz zu groß ist. Was bietet die neue Lizenzoption noch? Persönlicher Manager Prioritärer Support Build-Server Zugriff auf Wissensdatenbank und Produkt-Webinare Frühzeitiger Zugriff auf Sonderangebote Persönlicher Rabatt und Vorzugskonditionen bei der Abonnementverlängerung Zugriff für bis zu 12 Entwickler an einer geografischen Adresse Verfügbar in 32 Sprachen Dokumentation in zwei Sprachen: Englisch und Deutsch Wählen Sie die für Sie passende Option Voller Preis ### Mehrere Berichte auf einer Seite URL: https://www.fast-report.com/de/blogs/many-reports-one-page Web Form hat eine Möglichkeit, eine beliebige Zahl von den Berichten auf einer Seite zu erstellen. Alles ist nur mit der Größe der Seite beschränkt. Außerdem jeder Bericht kann seine eigene Datenquelle haben. Machen wir jetzt ein Beispiel. Fügen wir auf die Seite eine Komponente SqlDataSource hinzu: Im Drop-Down Fenster wählen wir Configure Data Source und erstellen wir eine Verbindung. Wählen wir ein Datenlager:  Weiter, die Tabelle:  Fügen wir eine Komponente SqlDataSource hinzu. Verbinden wir sie mit dem oben genannten Datenlager, aber wählen wir jetzt eine andere Tabelle:  Stellen wir jetzt auf der Seite zwei Objekten WebReport ein. Aus dem Drag-and-Drop Menü vom ersten Objekt WebReport wählen wir"Select Data Source".. Und zeichnen wir die erste hinzugefügte Datenquelle aus: Aus dem Drop-Down-Menü wählen wir den Punkt "Design Report". Und erstellen wir einen einfachen Bericht mit dem Typ „List“:  Schließen wir den Editor ohne das Berichts Speichern. Stellen wir noch eine Komponente WebReport in der Nähe von erste. Aus dem Drop-Down-Menü wählen wir den Punkt „Design Report“. Zeichnen wir zweite hinzugefügte Datenquelle aus. Wie früher, eröffnen wir den Berichtseditor für neues Objekt WebReport. Erstellen wir einen einfachen Bericht mit dem Typ „List“:  Wenn es notwendig wird, können wir auch ins Projekt einen Link auf die Bibliothek FastReport.Web.dll hinzufügen. Diese Bibliothek befindet sich im Ordner mit dem Programm FastRepot.Net. Wenn es auf der Seite genug Platz ist, wird die Darstellung mit den auf einer Linie nebeneinanderstehenden Berichten erstellt. Im Gegenfall wählt das System andere Darstellungsvariante mit den hintereinanderstehenden Formen von Berichten.   Ich verwendete eine standardisierte Seite aus dem Projekt ASP.Net WebForms. Starten wir die Anwendung:  Wie wir sehen, stellten wir zwei Berichte nebeneinander ein. So können wir bei solcher Gruppierung den Berichten entsprechend dem Thema oder anderen Faktoren viel Platz auf der Seite sparen. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### Mehrere Berichte in einen Bericht in FastReport .NET zusammenfassen URL: https://www.fast-report.com/de/blogs/merging-reports-net Summary: FastReport .NET ist ein leistungsfähiges Werkzeug zum Erstellen und Verwalten von Berichten. In diesem Artikel erfahren Sie, wie Sie mehrere Berichte in FastReport .NET zu einem kombinieren. FastReport .NET ist ein leistungsfähiges Werkzeug zum Erstellen und Verwalten von Berichten. In diesem Artikel erfahren Sie, wie Sie mehrere Berichte in FastReport .NET zu einem kombinieren. Eine der wichtigsten Funktionen von FastReport .NET ist die Möglichkeit, mehrere Berichte in einen Bericht zusammenzufassen. Dies kann dann nützlich sein, wenn Sie Daten aus verschiedenen Quellen kombinieren oder Informationen in einem benutzerfreundlicheren Format präsentieren müssen. In diesem Artikel betrachten wir, wie man mehrere Berichte in FastReport .NET in einen Bericht zusammenführt. FastReport .NET  ist ein leistungsstarkes Tool zum Erstellen und Verwalten von Berichten, das in verschiedenen Bereichen weit verbreitet ist. Es bietet Entwicklern die Möglichkeit, mithilfe einer Vielzahl von Funktionen und Optionen komplexe und professionelle Berichte zu erstellen. Eine der wichtigsten Funktionen von FastReport .NET ist die Möglichkeit, mehrere Berichte in einen Bericht zusammenzufassen. Dies kann dann nützlich sein, wenn Sie Daten aus verschiedenen Quellen kombinieren oder Informationen in einem benutzerfreundlicheren Format präsentieren müssen. In diesem Artikel betrachten wir, wie man mehrere Berichte in FastReport .NET in einen Bericht zusammenführt. Öffnen Sie den FastReport .NET Berichtsdesigner und laden Sie Ihren Bericht hoch. Nachdem Sie den Berichtsdesigner geöffnet haben, wählen Sie den Menüpunkt „Datei“ aus und klicken Sie anschließend auf „Seite öffnen“. Wählen Sie im Dateisystem den Bericht aus, den Sie mit dem ersten Bericht zusammenführen möchten, und laden Sie ihn hoch. Wählen Sie nun die gewünschte Seite aus und klicken Sie auf OK.  Ab FastReport .NET 2025.1 können Sie die Option „Als Link hinzufügen“ aktivieren, wodurch dem Bericht ein Link zur Seite hinzugefügt wird und nicht eine Kopie davon. Das bedeutet, dass, wenn Sie eine Seite im Originalbericht ändern, die Änderungen in allen Berichten, denen die Seite als Link hinzugefügt wurde, übernommen werden. Und umgekehrt, wird eine Seite in einem der Berichte, die einen Link dazu enthält, geändert, wird diese auch im Originalbericht geändert. Wenn alle vorhergehenden Schritte erfolgreich abgeschlossen wurden, haben Sie Zugriff auf die hinzugefügten Seiten der ausgewählten Vorlage am unteren Rand des Designers. Um diese zu einem Bericht zusammenzufassen, können Sie die aktuell geänderte Vorlage speichern oder in einer neuen Vorlage speichern, wählen Sie dazu den Menüpunkt „Datei“ und dann „Speichern unter…“. Speichern Sie den neuen Bericht unter einem neuen Namen. In diesem Artikel haben wir im Detail betrachtet, wie mehrere Berichte in FastReport .NET in einen Bericht zusammengefasst werden. Wir haben die wichtigsten Tools und Methoden kennengelernt, die FastReport .NET für das Zusammenfassen von Berichten bietet und wie man sie effektiv einsetzt. Tags: .NET, FastReport, Designer, Report, Plugin ### Merry Christmas and Happy New Year - 20% discounts for all the software! URL: https://www.fast-report.com/de/news/offer-mery-christmas-2009 Summary: Merry Christmas and Happy New Year - 20% discounts for all the software!Merry Christmas and Happy New Year - 20% discounts for all the software! Merry Christmas and Happy New Year - 20% discounts for all the software!Merry Christmas and Happy New Year - 20% discounts for all the software! Dear friends! We wish you a Merry Christmas and Happy New Year! We offer a gift for all the developers - 20 % discount on all of our products and licenses - and that is from the 15th of December upto the 10th of January. For FastReport.Net, FastReport VCL, FastCube, FastReport Studio, FastReport Server, FastScript and FastQuery Builder - good products for reporting and business analysis. We prepare good news for you for the next year! -- Best regards, Fast Reports team Reporting must be Fast! http://www.fast-report.com ### Migrating from QuickReport 6 to FastReport VCL is quick and fun URL: https://www.fast-report.com/de/blogs/migration-quickreport-vcl Summary: Showing how to convert a template from QuickReport 6 using FastReport VCL 6.3 Showing how to convert a template from QuickReport 6 using FastReport VCL 6.3 Showing how to convert a template from QuickReport 6 using FastReport VCL 6.3 Today we will look at migration from QuickReport 6 to FastReport VCL . Let's do it with the updated Converter included in FastReport VCL , it allows you to convert your template, even without QuickReport 6 installed on your computer. Converter ( ConverterQR2FR.pas ) has the following list of convertible components from QuickReport 6 to FastReport VCL , it is presented in the table below. QuickReport 6 FastReport VCL Done QuickReport 6 FastReport VCL Done TQuickRep TfrxReportPage + TQRLineGraph TfrxChartView + TQRPreviewController - - TQRGrImage TQRGrDBImage TfrxPictureView KeepAspectRatio:= true + + TQuickAbstractRep - - TQRPDFShape - - TQRSubDetail TQRBand TQRGroup TfrxBand + TQRFrameline TfrxLineView + TQRWildBand - - TQRAbsTable - - TQRChildBand TfrxChild + TQRDBJPGlmage TfrxPictureView + TQRLoopBand TfrxMasterData.RowCount + TQRPQuickrep TfrxReportPage + TQRStringsBand - - TQRPBand TfrxBand + TQRLabel TQRDBText TQRExpr TQRSysData TQRMemo TQRExprMemo TfrxMemoView + TQRPChildBand TfrxChild + TQRGraphicCanvas TfrxPictureView + TQRPLabel TfrxMemoView + TQRMetriclabel - - TQRPDBText TfrxMemoView + TQRHTMLLabel Memo allowHTMLTegs = true + TQRPDBlmage TfrxPictureView + TQRDMBarcode TQRDbDMBarcode TfrxBarcode2DView BarType := bcCodeDataMatrix + + TQRPExpr TfrxMemoView + TQRQRBarcode TfrxBarcode2DView + TQRPMemo TfrxMemoView + TQRQRDBBarcode TfrxBarcode2DView + TQRPRichtext TfrxRichView + TQRRichText TQRDBRichText TfrxRichView + TQRPGrid - - TQRShape TfrxShapeView + TQRPCheckBox - - TQRlmage TQRDBlmage TfrxPictureView + TQRPShape TfrxShapeView + TQRCompositeReport - - TQRPExprCheckbox - - TQRXMLSSFilter - - TQRStringgridReport - - TQRPreview - - TQRGridReport - - TQRColorBox - - TEnhancedlistbox - - TQRExpBarChart - - The conversion from QuickReport 6 to FastReport VCL. Select Delphi form of the *.dfm format, in which you can find TQuickRep object, in which the report we need is constructed. Or select report template of the QuickReport 6 designer in *.qr2 format. Will make a simple converter consisting of a form, a pair of components and one button. Perform the following list of actions:      1. Create a new application (File -> New -> VCL Forms Application).      2. Enter in Uses clause ConverterQR2FR.      3. Depending on the installed components, you may need to remove the following blocks from the Uses clause in ConverterQR2FR.pas :       VCLTee.TeeProcs, VCLTee.TeEngine, VCLTee.Chart, VCLTee.Series, VCLTee.TeCanvas       frxChart, frxBDEComponents, frxIBXComponents      4. Drop the following components to the form: frxReport OpenDialog SaveDialog Button frxDesigner      5. Place this code in the OnClick event of the button: Code: ``` procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then if frxReport1.LoadFromFile(OpenDialog1.FileName) then if SaveDialog1.Execute then frxReport1.SaveToFile(SaveDialog1.FileName); frxReport1.LoadFromFile(SaveDialog1.FileName); frxReport1.DesignReport(); end ```      6. Run the application. If you did everything correctly, the application will start, and you will need to click a button on the form. Then a dialog box for opening a file will appear, open the required Delphi form of the *.dfm format, containing the TQuickRep object, or a report template for the QuickReport 6 designer in the *.qr2 format. Then your template will be converted, if this was completed successfully, a dialog box for saving the template will appear in front of you, save it in *.fr3 format. This converted template will automatically be opened in the FastReport VCL designer, but make sure that the conversion was correct. If a DataSet was attached to your template, you will need to attach it to the FastReport VCL template to display the data correctly when building the report. Example of converting Delphi form (*.dfm) containing TQuickRep object, to template report FastReport VCL (*.fr3) Below, using the screenshots example, we will consider a specific conversion of the Delphi form of the *.dfm format, which contains the TQuickRep object into the FastReport VCL report template. For example, let's build a QR template on the form invform.dfm . We connect DataSet to it through ADOConnection1, DataSource1 and Table1 . Follow these steps:      1. Let's run our simple Converter.      2. Press the Test button.      3. When the open file dialog box appears, open the form Invform.dfm .      4. Then wait for the conversion of your template. If it is successful, you will see a dialog box to save the template, save it in the format *.fr3, for example invform.fr3 .      5. Then the converted template will automatically be opened in the FastReport VCL  designer and make sure the conversion is correct.      6. Drop the frxReport1 and frxDBDataset1 components to the form      7. In the frxDBDataset1 component, change property DataSource to DataSource1 and UserName to ADOTable1.      8. Now we need to load the saved template into FastReport VCL Designer . Double-click the FastReport VCL component and open the saved template "invform.fr3 " in the report designer.      9. Go to the FastReport VCL Designer Report → Data menu and select the ADOTable1 dataset.         10. We also need to bind this DataSet to the data band. Therefore, double-click the MasterDataBand and select the ADOTable1 dataset.      11. Build a report in FastReport VCL . Tags: VCL, VCL, FastReport, FastReport, Converter, Converter, QuickReport, QuickReport, Delphi, Delphi ### Migrating from ReportBuilder 19 to FastReport VCL is quick and fun URL: https://www.fast-report.com/de/blogs/migration-reportbuilder-vcl Summary: Today we will look at migration from ReportBuilder 19 to FastReport VCL. Let's do it with the updated Converter included in FastReport VCL 6.3, it allows you to convert your template, even without ReportBuilder 19 installed on your computer. Today we will look at migration from ReportBuilder 19 to FastReport VCL. Let's do it with the updated Converter included in FastReport VCL 6.3, it allows you to convert your template, even without ReportBuilder 19 installed on your computer. Today we will look at migration from ReportBuilder 19 to FastReport VCL. Let's do it with the updated Converter included in FastReport VCL 6.3, it allows you to convert your template, even without ReportBuilder 19 installed on your computer. Today we will look at migration from ReportBuilder 19 to FastReport VCL . Let's do it with the updated Converter included in FastReport VCL , it allows you to convert your template, even without ReportBuilder 19 installed on your computer. Converter ( ConverterQR2FR.pas ) has the following list of convertible components from ReportBuilder 19 to FastReport VCL , it is presented in the table below. ReportBuilder FastReport Done ReportBuilder FastReport Done Title TfrxReportTitle +  CheckBox TfrxCheckBoxView + Header TfrxPageHeader +  DBText TfrxMemoView + Detail TfrxMasterData +  DBMemo TfrxMemoView + Footer TfrxPageFooter +  DBRichText TfrxRichView + Summary - -  DBCalc TfrxMemoView + PageSummary - -  DBImage TfrxPictureView +  Memo TfrxMemoView +  DBBarCode TfrxBarCodeView +  RichText TfrxRichView +  2D DBBarCode TfrxBarcode2DView +  Label TfrxMemoView +  DBTeeChart TfrxChartView +  SystemVariable TfrxMemoView +  DBCheckBox TfrxCheckBoxView +  Variable TfrxMemoView +  Region - -  Image TfrxPictureView +  SubReport - -  Shape TfrxShapeView +  CrossTab TfrxDBCrossView +  Line TfrxLineView +  PageBreak - -  TeeChart TfrxChartView +  PaintBox TfrxPictureView +  BarCode TfrxBarCodeView +  TableGrid TfrxTableObject +  2D BarCode TfrxBarcode2DView +  Google Map TfrxMapView + The conversion from ReportBuilder 19 to FastReport VCL. Select report template of the ReportBuilder 19 designer in *.rtm format. We will make a simple converter consisting of a form, a pair of components and one button. Perform the following list of actions:      1. Create a new application (File -> New -> VCL Forms Application).      2. Enter in Uses clause ConverterRB2FR.      3. Depending on the installed components, you may need to remove the following blocks from the Uses clause in ConverterRB2FR.pas :      VCLTee.TeeProcs, VCLTee.TeEngine, VCLTee.Chart, VCLTee.Series, VCLTee.TeCanvas      frxChart, frxBDEComponents, frxIBXComponents      4. Drop the following components to the form: frxReport OpenDialog SaveDialog Button frxDesigner      5. Place this code in the OnClick event of the button: Code: ``` procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then if frxReport1.LoadFromFile(OpenDialog1.FileName) then if SaveDialog1.Execute then frxReport1.SaveToFile(SaveDialog1.FileName); frxReport1.LoadFromFile(SaveDialog1.FileName); frxReport1.DesignReport(); end. ```      6. Run the application. If you did everything correctly, the application will start, and you will need to click a button on the form. Then a dialog box for opening a file will appear, open the required report template of the ReportBuilder 19 designer in the format *.rtm . After this your template will be converted, if this happened successfully, a dialog box for saving the template will appear in front of you, save it in *.fr3 format. This converted template will automatically be opened in the FastReport VCL designer, but make sure that the conversion is correct. If a DataSet was attached to your template, you will need to attach it to the FastReport VCL template to display the data correctly when building the report. Example of converting report template of ReportBuilder 19 ( *.rtm ), to template report FastReport VCL ( *.fr3 ) For example, let's build the ReportBuilder template raTutor0001.rtm . Connect ppDBPipeline1 to it through ADOConnection1, DataSource1 and ADOTable1 . Follow these steps:      1. Let's run our simple Converter.      2. Press the Test button.      3. When the open file dialog box appears, open the template ReportBuilder raTutor0001.rtm .      4. Then wait for the conversion of your template to be completed, if this was successful, you will see a dialog box to save the template, save it in the format *.fr3, for example raTutor0001.fr3 .        5. Then the converted template will automatically be opened in the FastReport VCL  designer and make sure the conversion is correct.      6. Drop the frxReport1 and frxDBDataset1 components to the form      7. In the frxDBDataset1 component, change property DataSource to DataSource1 and UserName to ppDBPipeline1      8. Now we need to load the saved template into FastReport VCL Designer . Double-click the FastReport VCL component and open the saved template “ raTutor0001.fr3 " in the report designer.      9. Go to the FastReport VCL Designer Report → Data menu and select the ppDBPipeline1 dataset.      10. We also need to bind this DataSet to the data band. Therefore, double-click the MasterDataBand and select the ppDBPipeline1 dataset.      11. Build a report in FastReport VCL . Tags: VCL, VCL, FastReport, FastReport, Converter, Converter, ReportBuilder, ReportBuilder, Delphi, Delphi ### Migration zu FastReport effektiver gestalten URL: https://www.fast-report.com/de/news/migrate-to-fastreport Summary: Angebot. Erfahren Sie, warum Entwickler sich für FastReport entscheiden und wie Sie Zeit und Geld sparen, wenn Sie von Ihrem aktuellen Berichtsgenerator migrieren. Angebot. Erfahren Sie, warum Entwickler sich für FastReport entscheiden und wie Sie Zeit und Geld sparen, wenn Sie von Ihrem aktuellen Berichtsgenerator migrieren. Es gibt viele Gründe, warum ein Softwareentwickler nach einer neuen Berichtslösung für ein Projekt sucht. Es ist nicht einfach, eine neue Lösung zu finden, insbesondere dann nicht, wenn diese in Ihr System integriert werden soll, das wahrscheinlich schon seit Jahren funktioniert. Ein Umstieg auf FastReport kann Ihnen jedoch Stunden von Arbeit ersparen: wir haben mehrere Converter von anderen Lösungen! Außerdem können Sie bis zum 30. November 10% des Lizenzpreises sparen. Hier erfahren Sie mehr darüber, warum sich viele Entwickler für FastReport entscheiden und wie der Umstieg auf FastReport einfacher sein kann, als es scheint. Wenn Sie Fragen haben, schreiben Sie uns eine E-Mail an  sales@fast-report.com  oder nutzen Sie die Chat-Box. ### Mono URL: https://www.fast-report.com/de/products/mono Summary: A cross-platform set of components for creating reports and templates from your data based on the Mono Framework A cross-platform set of components for creating reports and templates from your data based on the Mono Framework Eine plattformübergreifende Bibliothek zum Erstellen von Berichten und Dokumenten aus Ihren Daten mit Druckfunktionen basierend auf dem Mono Framework FastReport .NET Mono Ein plattformübergreifendes Komponentenset zum Erstellen von Berichten und Vorlagen aus Ihren Daten basierend auf dem Mono-Framework Kaufen Kostenlos testen Dokumentation Practically any: invoices, financial reports, product catalogs with color profile support, restaurant menus, sales details, questionnaires with electronic forms, airline tickets, utility bills, and much more. If you have data that needs to be made visually understandable, FastReport is the perfect solution for you. Embeddability in projects Install the required package from the NuGet repository, or download the package from our website to your computer and add the necessary libraries to the project. No additional modules or special extensions are required. Reliability Our components are regularly tested, improved, and refined, continuing to delight you with stable performance for more than 10 years. System.Drawing (GDI) The already familiar System.Drawing with GDI+ graphic functions is used to create graphic elements, draw text, and manage graphic images. Lots of components A variety of elements are available for building reports in the designer: from text and images to mathematical formulas and 3D diagrams. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Compatibility and integration Mono is part of the FastReport ecosystem in C#. Reports created in other products will work in Mono and vice versa. Ultimate .NET Learn more about Ultimate So konfigurieren Sie einen KI-Agenten für FastReport .NET: Architektur, Einschränkungen und Berichtsmigration Arbeiten mit berichten oft verwandelt sich in eine routine: die Bearbeitung XML-Vorlagen (.frx), die Konfiguration der Daten-Bindungen und die Anpassung von legacy-Formate. Die Automatisierung dieser Arbeit, eine spezielle AI-agent erstellt wurde. Dieser agent versteht die FastReport .NET - Architektur und folgt strikt die Entwicklung von Unternehmen standards. KI-Funktionen für FastReport .NET: automatisierte Migration von Berichten aus Crystal Reports und StimulSoft, Refactoring für .NET 8/9, Vorlagengenerierung und Schutz vor Datenlecks. So exportieren Sie einen Bericht aus FastReport .NET in das DXF-Format DXF (Drawing Exchange Format) ist ein offenes Format zum Austausch grafischer Daten, das von Autodesk zum Speichern und Übertragen zweidimensionaler und dreidimensionaler Zeichnungen entwickelt wurde. Dank der umfassenden Unterstützung durch verschiedene CAD-Systeme ist DXF zu einem der am weitesten verbreiteten Formate für den Austausch von technischen und ingenieurwissenschaftlichen Dokumentationen zwischen Anwendungen geworden. In diesem Artikel betrachten wir die Möglichkeiten zum Export eines Berichts in das DXF-Format und sehen uns außerdem an, wie das erhaltene Ergebnis nach dem Öffnen der Datei in einer CAD-Anwendung aussieht. In diesem Artikel betrachten wir die Möglichkeiten zum Export eines Berichts in das DXF-Format und sehen uns außerdem an, wie das erhaltene Ergebnis nach dem Öffnen der Datei in einer CAD-Anwendung aussieht. So exportieren Sie einen Bericht aus FastReport .NET nach PostScript FastReport .NET unterstützt den Export von Berichten in zahlreiche gängige Formate wie PDF, Excel, Word und weitere. Für den professionellen Druck, Plotter oder spezielle Drucksysteme wird jedoch häufig das PostScript-Format (.ps) benötigt. In diesem Artikel zeigen wir anhand eines Beispiels, wie ein FastReport .NET-Bericht in das PostScript-Format exportiert wird, und erläutern dabei die Konfiguration der Parameter sowie die programmgesteuerte Implementierung. In diesem Artikel zeigen wir anhand eines Beispiels, wie ein FastReport .NET-Bericht in das PostScript-Format exportiert wird, und erläutern dabei die Konfiguration der Parameter sowie die programmgesteuerte Implementierung. Haben Sie noch Fragen? Kontaktieren Sie uns ### MS Word versus Open Document Text. Was ist besser? URL: https://www.fast-report.com/de/blogs/word-format-vs-open-document-format Summary: Vergleichen Sie die Erstellung von Berichten in zwei gängigen Datenformaten docx und odt. Vergleichen Sie die Erstellung von Berichten in zwei gängigen Datenformaten docx und odt. Vergleichen Sie die Erstellung von Berichten in zwei gängigen Datenformaten docx und odt. Wenn wir von Texteditoren sprechen, stellen wir uns die Leuchte sofort als Microsoft Word vor, das viele Jahre lang ein Podest unter den Büroanwendungen einnahm. Und obwohl seine erste Version bereits 1986 für die IBM-Plattform erschien, gewann sie bereits in den neunziger Jahren bei Windows-Benutzern an Popularität. Wie alle Microsoft-Produkte damals hatte Word ein eigenes DOC-Dokumentformat. Das Monopol auf das Doc-Format widerstand jedoch nicht vielen, und im Zuge der Entwicklung der Open-Source-Bewegung in den 2000er Jahren erschien ein alternatives Textverarbeitungsprogramm mit dem Open-Format odt. Im Jahr 2006 erhielt es die internationale Norm ISO / IEC 26300. Und trotz viel Negativität in seiner Richtung hat er unter Open-Source-Software-Enthusiasten an Popularität gewonnen. Dieses Format konnte jedoch immer noch nicht in den Firmenkundenmarkt eintreten. Zu lange war Microsoft das dominierende Produkt im Bereich Office-Software. Eine große Anzahl von Dokumenten wurde im Dokumentformat erstellt und eine große Anzahl von Benutzern wurde für die Arbeit mit Word geschult. Microsoft musste jedoch auf die Entstehung eines neuen offenen Formats reagieren, und das neue offene Format DOCX wird in der 2007-Version von MS Office angezeigt. Sein Zweck unterscheidet sich nicht von DOC, aber im Wesentlichen handelt es sich um ein völlig anderes Format, das die Prinzipien von ODT verwendet. Gleichzeitig entfernte Microsoft den Schleier des Geheimnisses aus seinem bereits veralteten DOC-Format. Darüber hinaus unterstützte MS Word in nachfolgenden Versionen bereits ODT. Aber auch die Besitzprodukte standen nicht zur Seite. Jetzt unterstützt jedes Textverarbeitungsprogramm mit "Selbstachtung" alle drei Formate. Schauen wir uns nun jedes dieser Formate genauer an. DOC format Sein Name ist keine Abkürzung, sondern eine Abkürzung für document. Dieses Format erschien in den frühen 90er Jahren und ist noch immer in Betrieb. Obwohl es 2007 aufgrund der Einführung eines neuen, zielgerichteten docx-Formats an Relevanz verlor. Nach der Veröffentlichung der Spezifikationen dieses Formats im Jahr 2007 begannen jedoch alle modernen Textverarbeitungsprogramme, dies zu unterstützen, da sich zu diesem Zeitpunkt eine große Anzahl von Dokumentendokumenten angesammelt hatte. Die interne Struktur ist recht komplex und repräsentiert ein ganzes Dateisystem. Es ist eine Binärdatei und kann nur mit einem dedizierten Textverarbeitungsprogramm wie MS Word oder OpenOffice Text geöffnet werden. Das Dokumentformat ermöglicht das Speichern von Bildern, Multimedia- und anderen Dateien in einem Dokument. Der Hauptvorteil besteht jedoch in der Unterstützung von Kaskadenstilen. Dieses Format erweitert die Funktionen von RTF und ermöglicht das Kaskadieren von Stilen, Tabellen, Blattlayouts, Makros, Dokumentformatierungen, Bilder, Diagramme, verschiedene Metadaten. Somit deckt es den größten Teil des Benutzerbedarfs für elektronische Dokumente ab. ODF format Wie oben erwähnt, wurde dieses Format durch eine Alternative zu doc erstellt. Viele Organisationen in der OASIS-Community haben daran gearbeitet, den Standard zu erstellen. Und im Jahr 2006 wurde die Norm ISO / IEC 26300 übernommen. Das Dokument basiert auf der XML-Auszeichnungssprache in einem ZIP-Archiv. Zusätzlich zum Dokument selbst enthält das Archiv Dateien, auf die durch das Dokument verwiesen wird (Bilder), Metadaten usw. Dank der Verwendung der Archivierung ist die odf-Datei im Vergleich zum Dokument jedoch sehr leicht. Da es sich um ein Textverarbeitungsprogramm handelt, ist odt korrekt und nicht odf. Immerhin schreibt ODF eine ganze Familie von Formaten aus: für ein Textverarbeitungsprogramm - odt, für ein Tabellenkalkulationsprogramm ods, für elektronische Präsentationen - odp. OpenOffice gilt als native (speziell für ihn entwickelte) Bürolösung, die für das ODF-Format erstellt wurde. Ebenso wie Microsoft Office enthält es eine ganze Reihe von Office-Programmen für die Arbeit mit: Text, Tabellen, Präsentationen, Vektorgrafiken, Datenbanken und Formeln. Wir haben bereits festgestellt, dass das ODT-Format von vielen Textverarbeitungsprogrammen unterstützt wird, sowohl von MS Word als auch von den Open Source-Lösungen LibreOffice, OpenOffice und dem kostenlosen Google-Dokument. Natürlich hatte die erste Generation des ODF 1.0-Formats ihre Nachteile, zum Beispiel: Es gibt keine Beschreibung der Spezifikation von Makros. Es gibt keine Beschreibung der Verwendung digitaler Signaturen, obwohl die Office-Suite deren Verwendung zulässt. Es ist nicht zulässig, Tabellen in die Präsentation einzufügen, obwohl MS PowerPoint dies zulässt. Es gibt keinen Formelsprachenstandard. Einige von ihnen wurden in Version 1.2 behoben. Der Hauptnachteil nach Ansicht der Benutzer ist jedoch die Unfähigkeit, zuvor in MS Office erstellte Dokumentdokumente korrekt zu reproduzieren. Das heißt, sie öffnen sich natürlich, aber sie sehen nicht so aus wie im nativen Programm. Zum Zeitpunkt der Veröffentlichung von OpenOffice waren die meisten elektronischen Dokumente jedoch im Dokumentformat. Aber mit dem docx-Format sieht es viel besser aus. Auf die eine oder andere Weise, aber Microsoft Office hat seine Position auf dem Markt praktisch nicht aufgegeben und dank des Erscheinungsbilds des Open DocX-Formats das Vertrauen von Open Source-Unterstützern gewonnen. DOCX format DOCX-Format, das auch als Office Open XML oder als Microsoft Open XML oder als Office Open XML bekannt ist. Es wurde 2007 als Reaktion auf die Entstehung von Open ODF erstellt und verwendet dasselbe Prinzip zum Erstellen einer Datei - ein Zip-Archiv, in dem die XML-Datei des Dokuments selbst und die Dateien, auf die sich das Dokument (Bilder) bezieht sowie Dateien mit Metadaten gespeichert werden. Ein Vorteil gegenüber ODF ist ein leistungsstarkes Backend in Form von MS Office. Millionen von Benutzern möchten nicht auf ein praktisches Tool verzichten, um zu einem freien Format zu wechseln. Das geschlossene Dokumentformat zwang Unternehmenskunden jedoch dazu, viel Geld an das amerikanische Unternehmen zu zahlen. Daher hat Microsoft seine Kunden weiterhin auf ODF ausgerichtet. DOCX ist standardisiert: Es verwendet die strengen Spezifikationen ECMA-376, ISO / IEC 295000 Transitional und ISO / IEC 29500 Strict. Vergleich Und wenn sich das Dokumentformat strukturell von docx unterscheidet, sind docx und odt im Wesentlichen Brüder. Sie sind beide Zip-Container mit XML-Dokumenten. Jeder von ihnen hat seine eigenen Vor- und Nachteile. Beide sind jedoch dem Dokumentformat zumindest in Bezug auf die Dateigröße überlegen. Dank der Archivierung des Dokumentinhalts ist die Dateigröße viel kleiner - 2-3 mal, abhängig von der Menge an Multimedia- und Grafikinhalten. Welches der beiden Formate sollten Sie bevorzugen, docx oder odt? Obwohl Textverarbeitungsprogramme konkurrierende Formate unterstützen, unterscheidet sich ihre Anzeige nicht wesentlich vom Original. Daher kann nicht gesagt werden, dass es für alle Formate eine universelle Lösung gibt. Sie müssen das Format aus dem Bereich auswählen. Wenn es sich um große Unternehmen handelt, die zuvor MS Office verwendet haben, verfügen sie offensichtlich über ein großes Archiv von Dokumenten im Dokumentformat, und der Austausch von Dokumenten mit anderen Unternehmen erfolgt höchstwahrscheinlich im docx-Format. Zumindest gibt es niemanden, der besser als MS Word kann, Dokumente in ihren eigenen Formaten anzeigen. In diesem Fall ist es vorzuziehen, weiterhin MS Word im docx-Format zu verwenden. Wenn Sie sich von kostenpflichtiger Office-Software verabschieden möchten und sich keine Sorgen über die Formatkompatibilität machen, können Sie odt statt doc und docx verwenden. Viele großen Unternehmen haben bereits auf OpenOffice umgestellt, was bedeutet, dass diese Aufgabe durchaus machbar ist. DOCX und ODT im Reportsgenerator Wenn man von Bürodokumenten spricht, kann man nicht anders, als sich an die Reporterstattung zu erinnern. Moderne Reportsgeneratoren müssen den Export von Reporten in die gängigsten Dokumentformate unterstützen. Beispielsweise unterstützt der FastReport.Net-Reporsgenerator den Export in die Formate docx und odt. Darüber hinaus wird der Export für eine korrekte Anzeige zunächst im nativen Textverarbeitungsprogramm "geschärft". So sieht der ursprüngliche Report aus, den wir in beide Formate exportieren werden: Exportieren wir den Report in das Microsoft Word (docx) -Format: So sieht es in MS Word aus: Und dies ist der Export ins Odt-Format, wenn es in MS Word angezeigt wird: Der Export nach DOCX enthält aus irgendeinem Grund kleine Schriftarten in Tabellen, aber der Rahmen stimmt mit dem ursprünglichen Report überein. Es stellte sich heraus, dass ODT in Bezug auf die Schriftgröße näher am Original liegt, aber die Rahmen sind nicht gut. Beachten Sie, dass Word odt mit einer etwas schlechteren Formatierung als OO Writer geöffnet hat. So wie die Anzeige von Dokumenten desselben Formats in verschiedenen Programmen nicht gleich ist, konvertiert der Reportsgenerator den Report auf unterschiedliche Weise in verschiedene Formate. Aus alledem können wir feststellen, dass selbst bei Verwendung desselben Formats aufgrund unterschiedlicher Implementierung nicht dasselbe Dokument in unterschiedlichen Textverarbeitungsprogrammen angezeigt wird. Daher ist es besser, einen Texteditor mit einem nativen Format zu verwenden und sich nicht mit der Vielseitigkeit zu befassen. Tags: .NET, .NET, Export, Export, FastReport, FastReport, Word, Word ### Neue Bildexportfunktionen nach Microsoft Word in FastReport .NET URL: https://www.fast-report.com/de/blogs/export-image-word-net Summary: In der neuesten Version von FastReport .NET haben wir neue Funktionen zum Exportieren von Bildern hinzugefügt. Jetzt können Sie die Balance zwischen Qualität und Größe des Ergebnisdokuments selbst anpassen. In der neuesten Version von FastReport .NET haben wir neue Funktionen zum Exportieren von Bildern hinzugefügt. Jetzt können Sie die Balance zwischen Qualität und Größe des Ergebnisdokuments selbst anpassen. Bei der Entwicklung von Berichtssystemen ist es wichtig, nicht nur Daten zu erfassen und Grafiken zu erstellen, sondern die Ergebnisse auch in verschiedenen Formaten korrekt darzustellen. Viele Benutzer erstellen Dokumente in Microsoft Word (OOXML) und verwenden dabei häufig Bilder: Logos, Diagramme und Illustrationen. Bei der Entwicklung von Berichtssystemen ist es wichtig, nicht nur Daten zu erfassen und Grafiken zu erstellen, sondern die Ergebnisse auch in verschiedenen Formaten korrekt darzustellen. Viele Benutzer erstellen Dokumente in Microsoft Word (OOXML) und verwenden dabei häufig Bilder: Logos, Diagramme und Illustrationen. Bisher wurden nach Word exortierte Bilder in einer festen Qualität gespeichert, was nicht immer praktisch war. In der neuesten Version von  FastReport .NET haben wir neue Funktionen für den Bildexport hinzugefügt. Jetzt können Sie das Gleichgewicht zwischen Qualität und Dateigröße im endgültigen Dokument anpassen. Detaillierte Übersicht der neuen Funktionen 1.  Originalbild In diesem Modus werden Bilder in ihrer ursprünglichen Form gespeichert, ihre Auflösung oder Qualität werden dabei nicht geändert. Der Modus ist notwendig, wenn bei jedem Eingriff die Daten falsch dargestellt werden können. Selbst minimale Qualitätsverluste können die Informationen verschlechtern. Vorteile: Maximale Genauigkeit der Informationsübertragung. Ideal für den Druck großer Bilder ohne Verlust ihrer Qualität. Volle Kontrolle, um sicherzustellen, dass das Bild genau wie im Bericht aussieht. Es ist wichtig zu beachten, dass bei der Auswahl von "Originalbild" keine anderen Optionen verfügbar sind. Ohne Funktionen Mit der Funktion 2. JPEG- Komprimierung In diesem Modus werden Bilder in das JPEG-Format konvertiert, wodurch die Dateigröße erheblich reduziert wird. Dies ist besonders wichtig, wenn Sie mit Berichten arbeiten, die viele Fotos enthalten, die ohne Komprimierung das Dokument zu groß machen. In diesem Modus können Sie die JPEG-Qualität anpassen. Dadurch wird bestimmt, wie stark das Bild komprimiert wird: Hohe Qualität behält die Klarheit bei, erhöht jedoch die Dateigröße. Mittlere Qualität findet ein Gleichgewicht zwischen Größe und Detail. Die geringe Qualität macht das Dokument kompakt, was für den Versand oder die Aufbewahrung von Dokumenten praktisch ist. Die folgenden Screenshots zeigen den Unterschied beim Exportieren mit unterschiedlichen JPEG-Qualitätseinstellungen (die Originalbilder sind in der Standardqualität ).  Jpeg-Qualität: 25 Jpeg-Qualität: 100 3. Bildqualität  Word bietet jetzt Exportmodi, mit denen Sie die Qualität gespeicherter Bilder anpassen können. Dieses Tool ist sehr benutzerfreundlich, da Sie damit schnell und ohne unnötige Einstellungen das Gleichgewicht zwischen Bildqualität und Größe des endgültigen Dokuments herstellen können. Es stehen vier Optionen zur Verfügung: Niedrige Qualität — minimale Dateigröße. Die Bilder werden einfacher und verlieren einige Details. Bild in niedriger Qualität  Die Standardqualität ist der grundlegende Modus für die Ausgabe von Bildern in FastReport. Er verwendet den Standard-Bildspeichermechanismus von FastReport ohne zusätzliche Verarbeitung. Die mittlere Qualität ist ein Gleichgewicht zwischen Kompaktheit und Klarheit, wird verwendet in Situationen, in denen die Lesbarkeit wichtig ist, aber keine maximale Detailgenauigkeit erforderlich ist. Bild in mittlerer Qualität  Hohe Qualität — maximale Klarheit und Detailgenauigkeit. Wenn das Aussehen entscheidend ist. Bild in hoher Qualität  Diese Optionen können mit anderen Bildexportoptionen (wie JPEG-Komprimierung oder Zum Drucken) kombiniert werden, um das optimale Ergebnis für Ihre Anforderungen zu erzielen. Eine Ausnahme bildet der Modus „Originalbild“, der das Bild immer unverändert lässt und unabhängig von den anderen Einstellungen funktioniert. Zusammenfassung Die hinzugefügten Funktionen zum Exportieren von Bildern nach Word machen FastReport .NET zu einem benutzerfreundlicheren Tool zum Erstellen von Berichten und Dokumenten. Jeder Benutzer kann die optimale Option auswählen: Bilder in höchster Qualität speichern, die Dateigröße durch Komprimieren reduzieren oder das Gleichgewicht anpassen. So können Sie dasselbe Dokument in verschiedenen Ausführungen erstellen. Tags: .NET, Export, FastReport, Customization, Word ### Neue FastReport VCL-Funktionen URL: https://www.fast-report.com/de/news/features-transports-vcl Summary: Mit dem Update 2022.2.8 wurden neue Outlook- und Gmail-Transporte, ein verbesserter Skriptcode-Editor und Änderungen an Objekten für Lazarus eingeführt. Mit dem Update 2022.2.8 wurden neue Outlook- und Gmail-Transporte, ein verbesserter Skriptcode-Editor und Änderungen an Objekten für Lazarus eingeführt. Mit der FastReport VCL-Version 2022.2.8 stehen Ihnen neue MS Outlook- und Gmail-Transporte, ein verbesserter Skript-Code-Editor und mehrere Änderungen an Objekten für Lazarus zur Verfügung. Neue Objekte in interaktiven Formularen Interaktive PDF-Formulare können jetzt mit neuen Combobox- und Listbox-Objekten erweitert werden. Dies erleichtert Ihnen das Arbeiten mit interaktiven PDF-Dokumenten zur Erstellung von Fragebögen und Checklisten. Neue Transporte Die Transporte sind erschienen, um auf MS Outlook- und Gmail-Postfächer über Webmail-API zuzugreifen. Transporte können Berichte senden und empfangen sowie das Ergebnis in Form von exportierten Dokumenten erhalten. Erfahren Sie mehr darüber, wie Sie MS Outlook und Gmail  von FastReport VCL aus einsetzen können. Verbesserter Scriptcode-Editor  Mit den Hotkeys "Strg + /" können Sie Codeblöcke schnell kommentieren. Schnelles Hinzufügen von durchsuchbaren Variablen (Kontextmenü und Hotkeys). Neue QuickInfos und Schritt-für-Schritt Debugging-Modi “Step over” und “Run until return”. Änderungen an den Objekten  Das TfrxHtmlView Objekt kann nun auch in Lazarus verwendet werden. Zusätzlich wurde die Unterstützung für die Ausgabe von links nach rechts mit der Parameterverarbeitung dir="rtl" hinzugefügt. Mit der neuen ClearEmptyLines-Eigenschaft des Text-Objekts können Sie leere Zeilen im Objekt löschen. In Kombination mit den Eigenschaften CanShrink und ShiftAlways ermöglicht dies, Objekte mit leeren Werten zusammenzuklappen und den gesamten Baum mit unten liegenden Objekten nach oben zu verschieben. Das Update mit neuen Transporten steht ab sofort allen Benutzern mit einem aktuellen Abonnement zur Verfügung.  Eine Anleitung zum Umstieg von der alten auf die neue Version für FastReport VCL finden Sie  unter folgendem Link. ### Neue FastReport Viewer URL: https://www.fast-report.com/de/news/release-fastreport-viewer Summary: FastReport Viewer ist ein kostenloses Dienstprogramm zur Anzeige und zum Drucken von fertigen Berichten. FastReport Viewer ist ein kostenloses Dienstprogramm zur Anzeige und zum Drucken von fertigen Berichten. FastReport Viewer ist ein kostenloses Dienstprogramm zur Anzeige und zum Drucken von fertigen Berichten. Jetzt FastReport unterstützt alle modernen Formate FastReport: .fp3 und .fpx. Funktioniert auf folgende Plattformen wie Windows, macOS und Linux. Kostenloser Download ### Neue Funktionen des FastReport VCL Berichtseditors URL: https://www.fast-report.com/de/blogs/report-designer-vcl Summary: Wir betrachten die neuen Funktionen des Berichtseditors: Hilfslinien, Hervorhebung von sich schneidenden Objekten, aktualisierte Berichts- und Datenbäume. Wir betrachten die neuen Funktionen des Berichtseditors: Hilfslinien, Hervorhebung von sich schneidenden Objekten, aktualisierte Berichts- und Datenbäume. Wir betrachten die neuen Funktionen des Berichtseditors: Hilfslinien, Hervorhebung von sich schneidenden Objekten, aktualisierte Berichts- und Datenbäume. Unsere Produkte werden ständig weiterentwickelt, neue Funktionen werden kontinuierlich hinzugefügt und die Qualität des Softwarecodes wird verbessert. In diesem Artikel werden wir uns mit neuen Funktionen des Berichtseditors befassen, die im  Benutzerhandbuch nicht behandelt werden. Objektinspektor  Es wurde die Möglichkeit hinzugefügt, einzelne Eigenschaften in „Favoriten“ zu speichern. Setzen Sie dazu den Cursor auf den Objektinspektor und drücken Sie die STRG-Taste. Neben den Eigenschaftsnamen werden Kontrollkästchen angezeigt. Wählen Sie die gewünschten Eigenschaften aus und fügen Sie sie der Favoritenliste hinzu. Auf der Registerkarte „Favoriten“ können Sie Eigenschaften auf die gleiche Weise löschen. Ereignisse können nicht zu Favoriten hinzugefügt werden. Für die schnelle Suche nach Eigenschaften gibt es jetzt neben den Objektinspektor-Registerkarten ein Eingabefenster. Das Suchfenster ist möglicherweise nicht sichtbar, wenn der Objektinspektor eine geringe Breite hat. Wenn Sie Daten in dieses Fenster eingeben, zeigt der Inspektor nur die Eigenschaften an, die die eingegebene Zeichenfolge enthalten. Der Inspektor hebt Eigenschaftswerte fett hervor, wenn sie von den Standardwerten abweichen. So können Sie schnell Objekteigenschaften finden, die während der Bearbeitung geändert wurden.  Hinweis: Nicht alle Eigenschaften haben Standardwerte, daher werden möglicherweise nicht alle Eigenschaften hervorgehoben.  Berichtsbaum  Die Suche nach Komponenten nach Namen wurde ebenfalls in den Berichtsbaum aufgenommen. Um die Suchleiste anzuzeigen, müssen Sie im Baum auf das Symbol >> unten rechts klicken. Darüber hinaus können Sie mit der STRG-Taste mehrere Elemente im Berichtsbaum auswählen.  Außerdem können Sie das Bearbeitungsmenü mit der rechten Maustaste aufrufen - es ähnelt dem Menü, das aufgerufen wird, wenn Sie auf eine Komponente klicken. Wenn Sie mehrere Komponenten auswählen, können Sie sie alle gleichzeitig bearbeiten. Beispielsweise können Sie sie alle mit der Visible-Eigenschaft ausblenden oder alle löschen. Datenbaum Eine interessante Funktion des Datenbaums ist das Ziehen und Ablegen von Feldern aus der Registerkarte „DB-Felder“ in den Arbeitsbereich des Designers. Wenn Sie die Schaltflächen „Feld einfügen“ oder „Titel einfügen“ aktiviert haben (Schaltflächen F und C in der Abbildung oben), wird auf dem Arbeitsbereich des Designers eine frxMemoView erstellt, entweder mit dem Titeltext aus dem Datenfeld oder mit der Verknüpfung mit den Daten. Wenn beide Schaltflächen gedrückt werden, werden zwei TfrxMemoViews generiert - eine mit dem Feldtitel und eine mit der Verknüpfung mit den Daten. Wenn Daten aus TfrxDataSet stammen, können Sie im Editor dieser Komponente (in der Delphi-IDE selbst) den Typ der Komponente konfigurieren, die beim Ziehen und Ablegen erstellt wird. Feldgruppen können auch per Drag & Drop verschoben werden. Wenn Sie einen Datensatz zusammen mit den Feldern auswählen, wird ein Band mit diesen Feldern erstellt. Wenn Sie ein Datenfeld ziehen und ablegen, setzt sich der Name der Komponente aus dem Namen des Datensatzes und dem Namen des Datenfeldes zusammen. Sie können ein Datenfeld auch auf eine bestehende Komponente ziehen. Diese Komponente wird dann an das gezogene Datenfeld gebunden (der vorherige Wert geht dabei verloren). Das Datenfeld kann auch in eine beliebige String-Eigenschaft des Objektinspektors gezogen werden. Es gibt im Datenbaum zwei weitere Registerkarten: „Funktionen“ und „Klassen“, die alle verfügbaren Klassen und Funktionen im Bericht anzeigen. Sie können auch per Drag&Drop in den Berichtsdesigner verschoben werden.  Arbeitsbereich des Designers  Der Arbeitsbereich des Designers verfügt über eine Reihe interessanter Funktionen, die dem Entwickler das Leben erleichtern. Bei den meisten Steuerelementen erscheint, wenn sie über einen Ereignishandler verfügen, ein kleines rotes Dreieck in der oberen linken Ecke. Wenn sich auf einem datensatzgebundenen Band eine TfrxMemoView befindet, erscheint beim Überfahren mit der Maus ein Dreieck (wie beim Kombinationsfeld) auf der rechten Seite. Wenn Sie darauf klicken, können Sie ein Feld aus dem Banddatensatz an TfrxMemoView binden. Wenn der Inhalt einer Textkomponente nicht vollständig auf dem Bildschirm sichtbar ist (abgeschnitten), erscheint beim Überfahren mit der Maus eine Quickinfo mit dem vollständigen Inhalt dieser Komponente. Diese Quickinfos können in den Einstellungen des Designers entfernt werden. Gehen Sie dazu in das Menü „Ansicht“ -> „Einstellungen“ und entfernen Sie den Haken bei «Enable workspace hints». Maßhilfslinien  Maßhilfslinien sind eine Reihe von vertikalen und horizontalen Linien zur Positionierung von Berichtskomponenten entlang dieser Linien. Die Steuerung der Sichtbarkeit von Maßhilfslinien erfolgt über Unterelemente des Menüs „Ansicht“.  „Maßhilfslinien“ – dieser Menüpunkt ermöglicht die Verwendung von Maßhilfslinien. Um eine Maßhilfslinie zu erstellen, doppelklicken Sie auf das Lineal oben oder an der Seite des Designers. Maßhilfslinien werden blau angezeigt. „Automatische Maßhilfslinien“ – Maßhilfslinien werden entlang jeder Komponentengrenze angezeigt. Wenn eine Maßhilfslinie vom Benutzer erstellt wird und nicht mit der Komponentengrenze verbunden ist, verschwindet sie, und wenn sie verbunden ist, wird sie braun gefärbt. In diesem Modus ist es nicht möglich, benutzerdefinierte Maßhilfslinien zu erstellen.  „Verwendung horizontaler und vertikaler Maßhilfslinien“ – diese beiden Menüpunkte sind für die Sichtbarkeit horizontaler und vertikaler Maßhilfslinien zuständig. Sie können die Sichtbarkeit der Maßhilfslinien auch über die Schaltfläche am Schnittpunkt des vertikalen und des horizontalen Lineals in der oberen linken Ecke des Bearbeitungsfelds des Berichtsdesigners steuern (siehe Screenshot unten). Diese Schaltfläche schaltet die Modi von Maßhilfslinien in der folgenden Reihenfolge um: -    ohne automatische Maßhilfslinien; -    alle automatischen Maßhilfslinien; -    horizontale automatische Maßhilfslinien; -    vertikale automatische Maßhilfslinien. Um eine benutzerdefinierte Maßhilfslinie zu löschen, bewegen Sie sie einfach aus dem Designerbereich heraus oder klicken Sie mit der rechten Maustaste auf den Zeiger der Maßhilfslinie. Im automatischen Maßhilfslinien-Modus können Sie diese Linien in benutzerdefinierte Linien umwandeln und sie dann wieder auf automatisch umstellen. Doppelklicken Sie dazu auf den Zeiger der Maßhilfslinie auf dem Lineal. Maßhilfslinien werden verwendet, um die Berichtselemente in der gewünschten Reihenfolge anzuordnen. Ihre Haupteigenschaft besteht darin, dass die Komponentengrenzen bei jeder Größenänderung der Komponenten an den Maßhilfslinien „kleben“.  Außerdem werden beim Ziehen einer Maßhilfslinie alle „geklebten“ Komponentengrenzen mitbewegt. Wenn die gegenüberliegende Grenze einer Komponente an einer anderen Maßhilfslinie „klebt“, ändert sich die Größe der Komponente. Wenn die gegenüberliegende Grenze der Komponente frei ist, bewegt sich die Komponente hinter der Maßhilfslinie, ihre Größe ändert sich nicht (jede der Einstellungen kann in den Optionen des Designers deaktiviert werden, z. B. „An Maßhilfslinien kleben“ und „Maßhilfslinien als Anker verwenden“).  Außerdem haben Maßhilfslinien die Fähigkeit, aneinander zu „kleben“– wenn eine Maßhilfslinie auf eine andere verschoben wird, verschmelzen sie. Auf diese Weise können Sie die Berichtskomponenten in einem benutzerdefinierten Raster mit Hilfe von Maßhilfslinien schnell anordnen. Diese Funktion ist sehr wichtig, wenn Sie einen Bericht in bestimmte Formate exportieren (z. B. in eine Excel-Tabelle), tabellarische Berichte ohne Verwendung von Rasterkomponenten erstellen usw. Zusätzliche Schaltflächen in der Symbolleiste des Designers  Der Symbolleiste „Standard“ wurden zwei neue Schaltflächen „Schnittpunkt von Objekten hervorheben“ und „Suchen“ hinzugefügt.  Die erste Schaltfläche wird neu zugewiesen, um sich überschneidende Objekte anzuzeigen, die in der obigen Abbildung automatisch rot hervorgehoben werden. Die Farbe selbst kann in den Editoreinstellungen geändert werden.  Die zweite Schaltfläche öffnet das Fenster zum Textsuchen oder -Ersetzen. In diesem Fenster können Sie die Suchbereiche festlegen: Suche in Komponentennamen, in String-Eigenschaftswerten, in Inhalten, in Skripttexten. Unter dem Inhalt versteht man z. B. den Wert der Memo-Eigenschaft der TfrxMemoView-Komponente. Kommen wir nun zu den Sucheinstellungen. Wenn das Kontrollkästchen „Groß- und Kleinschreibung unterscheiden“ aktiviert ist, wird zwischen Klein- und Großbuchstaben unterschieden.  Wenn das Kontrollkästchen „Alle suchen“ aktiviert ist, wird die Liste der gefundenen Elemente im unteren Bereich angezeigt, mit Erläuterungen, zu welchem Element des Berichts der gefundene Text gehört. Durch Klicken auf ein beliebiges Element gelangen Sie zum gefundenen Element.  Wenn das Kontrollkästchen „Alle suchen“ nicht aktiviert ist, gelangen Sie durch Drücken der Schaltfläche „Weitersuchen“ (oder der Taste F3 auf der Tastatur) zum nächsten gefundenen Element. Die Übergänge zwischen den Elementen erfolgen über die Registerkarten «Data», «Page», oder «Code» je nachdem, welche Registerkarte aktiv ist. Wenn das Kontrollkästchen „Ersetzen durch“ aktiviert ist, wird das Fenster aktiv, in dem Sie einen neuen Text eingeben müssen, um den aktuellen zu ersetzen. In diesem Fall ändert sich die Beschriftung der Schaltfläche „Text suchen“ in „Ersetzen“. Wenn Sie nun auf die Schaltfläche „Ersetzen“ klicken, erscheint das folgende Dialogfenster: In diesem Dialogfeld können Sie die Textersetzung bestätigen oder abbrechen. Sie benötigen diese Funktion zum Beispiel, wenn Sie eine Schriftart aller Komponenten in eine andere ändern müssen. Oder wenn Sie zum Beispiel einen Datensatz umbenannt haben, der aktiv in Skripten verwendet wird.  Tags: VCL, FastReport, Designer ### Neue Funktionen in FastReport for DBA 2022.3 URL: https://www.fast-report.com/de/news/fastreport-dba-2022.3 Summary: Neue Funktionen in FastReport for DBA 2022.3: einen Validator, um die Reportvorlage zu prüfen und eine Fehlerliste erhalten zu können, einen FRX-Format-Editor. Neue Funktionen in FastReport for DBA 2022.3: einen Validator, um die Reportvorlage zu prüfen und eine Fehlerliste erhalten zu können, einen FRX-Format-Editor. Neue Funktionen in FastReport for DBA 2022.3: einen Validator, um die Reportvorlage zu prüfen und eine Fehlerliste erhalten zu können, einen FRX-Format-Editor, einen Reportkonverter aus StimulSoft, Kopierdialogseiten und vieles mehr. Berichtsvalidierung: Dem Berichtsdesigner wurde eine Registerkarte "Validierung" hinzugefügt (rechts neben den Registerkarten "Daten" und "Berichtsbaum"). Hier können Sie die Berichtsvorlage überprüfen und eine Liste der Fehler und Warnungen abrufen. All dies wird in Form einer Tabelle angezeigt, die den Objektnamen (falls vorhanden) und die Fehlerbeschreibung enthält. Wenn Sie eine Zeile in der Tabelle auswählen, wird das jeweilige Objekt im Designer hervorgehoben. Folgende Fehler- und Warnungstypen können auftreten: unbenannte Objekte, Objekte mit demselben Namen, sich überschneidende Objekte, Objekte mit einer Höhe oder Breite von Null sowie Objekte, die teilweise oder vollständig außerhalb des übergeordneten Objekts liegen. Unbenannte Objekte und Objekte mit demselben Namen gehören zu den kritischen Fehlern. Sie können bei der Erstellung eines Berichts verschiedene Fehlern verursachen und sogar die Anwendung zum Absturz bringen. Darüber hinaus sind diese Fehler ohne einen Validator sehr schwer zu finden. Sich überschneidende Objekte gehören zu keinen schwerwiegenden Fehlern. In einigen Fällen können sie nützlich sein und zielgerichtet eingesetzt werden (z. B. Linien oder Rechtecke). Sich überschneidende Textobjekte können in den meisten Fällen zu fehlerhaften Exporten führen, vor allem bei tabellarischen Exporten, z. B. in Excel. Nach dem Exportieren werden viele zusätzliche Zellen usw. vorhanden sein. Mit solchen Objekten muss man vorsichtig sein. Objekte, die teilweise außerhalb des übergeordneten Objekts liegen (z.B. außerhalb des Bands bzw. der Seite), können in seltenen Fällen ebenso nützlich sein. In meisten Fällen aber führen zu Fehlern, wenn ein Bericht erstellt oder exportiert wird. Objekte, die vollständig außerhalb des übergeordneten Objekts liegen, gehören zu schweren Fehlern. Auch das Auffinden solcher Objekte ist ohne einen Validator sehr schwierig. Sich überschneidende Objekte und Objekte, die außerhalb des übergeordneten Objekts liegen, können farblich hervorgehoben werden (die sind jetzt wählbar), wenn die entsprechende Einstellung im Menü "Datei -> Einstellungen" aktiviert ist. Eine Berichtsvalidierung ist überhaupt nicht erforderlich. Es kann jedoch nützlich sein, wenn Ihr Bericht nicht so funktioniert oder aussieht, wie es gewünscht wird. Weitere Informationen über die Berichtsvalidierung finden Sie unter folgendem Link. FRX Editor Manchmal ist es notwendig, den Inhalt einer FRX-Datei mit Texteditoren von Drittanbietern zu bearbeiten. Sie können dies nun direkt im Berichtsdesigner tun. Zu diesem Zweck wurde ein FRX-Editor hinzugefügt. Er ist standardmäßig deaktiviert. Um den Editor zu aktivieren, gehen Sie zum Menü "Datei -> Einstellungen". Im Berichtsdesigner wird die Registerkarte FRX links neben der Registerkarte Code angezeigt. Die hier vorgenommenen Änderungen werden sofort auf den Bericht angewendet und auf dessen Seiten angezeigt. Weitere Informationen über den FRX-Editor finden Sie im folgenden Artikel.  StimulSoft-Berichtskonvertierung Es wurde die Funktion hinzugefügt, StimulSoft-Berichtsvorlagen in FastReport .NET Vorlagen zu konvertieren. StimulSoft-Berichte können Implementierungsobjekte enthalten, die vom FastReport-Designer nicht unterstützt werden. Diese Objekte werden nicht exportiert oder werden durch andere ersetzt, so dass der erstellte Bericht dem in StimulSoft erstellten Bericht so ähnlich wie möglich ist. Es ist wichtig zu beachten, dass der Import von Cross-Bands dadurch realisiert wird, dass ihr Inhalt in das übergeordnete Band übernommen wird. Weitere Informationen über die Berichtskonvertierung finden Sie im folgenden Artikel unter folgendem Link. Kopieren von Dialogseiten  Es wurde die Funktion hinzugefügt, Dialogseiten sowohl über das Kontextmenü der Dialogseite als auch über die Schaltfläche "Bericht -> Berichtsseite kopieren" zu kopieren. Beim Kopieren wird eine Kopie der Dialogseite mit einem einmaligen Namen erstellt. Alle untergeordneten Objekte haben ebenfalls einmalige Namen. Die Ereignishandler der Objekte sind jedoch die gleichen wie die der Originalseite. Gegebenfalls sollten neue Ereignishandler erstellt werden. Dialogseiten können jetzt nicht nur über die Schaltfläche "Bericht -> Seite löschen", sondern auch über das Kontextmenü im Formulareditor und Berichtsbaum gelöscht werden. Deaktivieren der letzten Formatierungseinstellungen  Wenn ein Objekt im Designer erstellt wird, werden seine Einstellungen auf das nächste erstellte Objekt desselben Typs übertragen. Wenn Sie z. B. ein Textobjekt erstellen und dessen Schriftgröße, Rahmen und Füllfarbe festlegen, wird das nächste Textobjekt mit denselben Einstellungen erstellt. Dies ist praktisch, wenn Sie mehrere Objekte mit denselben oder ähnlichen Einstellungen erstellen müssen. In Situationen, wenn dieses Verhalten des Designers nicht erforderlich ist, kann es im Menü Datei -> Einstellungen deaktiviert werden. In diesem Fall werden Objekte mit Standardeinstellungen erstellt. Exportieren aller Registerkarten  Wenn Sie interaktive Berichte anzeigen, können Sie detaillierte Berichte in neuen Registerkarten öffnen. Hier sehen Sie drei geöffnete Registerkarten. Zuvor wurde nur die aktive Registerkarte exportiert. Jetzt können Sie alle Registerkarten in eine Datei exportieren, indem Sie die neue Option "Alle Registerkarten exportieren" verwenden. Detaillierte Beschreibung der zugehörigen Assemblies und installierten Plugins  Wenn Sie nun mit der Maus über eine dll in der Liste der Plugins (Datei -> Einstellungen -> Plugins) und in der Liste der Assembly-Links (Bericht -> Eigenschaften -> Skript) fahren, werden detaillierte Informationen mit Beschreibung, Version, Größe, Erstellungsdatum usw. angezeigt. Sprachauswahl beim Exportieren in Word, PowerPoint, Rich Text, OpenOffice Write und OpenOffice Calc  Bei diesen Exporten können Sie nun die Sprache des Dokuments auswählen. Die Standardeinstellung ist die im Designer ausgewählte Sprache. Es wurde Option "Gitternetzlinien anzeigen" beim Excel 2007-Export hinzugefügt. Vollständige Liste der Änderungen  [Engine] + Der StimulSoft-Berichtskonverter wurde hinzugefügt; + Die Änderung des JSON-Datenquellennamens wurde in Ausdrücken beim Umbenennen hinzugefügt; + Die Konvertierung der PaperSize-Eigenschaft wurde bei der Konvertierung von StimulSoft- Berichten hinzugefügt; + Bei der Konvertierung von StimulSoft-Berichten wurde die Überprüfung auf Vorhandensein von zugehörigen Assemblies hinzugefügt; + Die PrintOnParent-Eigenschaft wurde zu den Table- und Matrix-Objekten hinzugefügt; + Das Laden von Berichtsparametern wurde bei der Konvertierung von RDL-Berichten hinzugefügt; + Das Laden von verschachtelten Berichten wurde bei der Konvertierung von RDL-Berichten hinzugefügt; + Die Leistung der Berichte mit einer großen Anzahl von Objekten wurde verbessert; + Die Funktion zum Speichern von JSON-Verbindungsdaten unter Verwendung der StoreData-Eigenschaft wurde hinzugefügt; * Der Ausnahmetext beim Berechnen und Formatieren eines Ausdrucks wurde geändert, wenn e.InnerException null ist; * Beim Laden von RDL-Berichten entspricht die Seitenbreite nur dann der Abschnittsbreite, wenn es keine Seitenbreite gibt; - Die Berechnung der DataMatrix C40- und Text-Kodierungslänge wurde korrigiert; - System.ComponentModel.Win32Exception wurde beim Drucken mit deaktiviertem "Print Manager" behandelt - Das Ausblenden des Bildrandes beim Drucken mit automatischer Größe wurde behoben; - Der Stapelüberlauffehler wurde behoben, der auftrat, wenn ein Bericht mit einem untergeordneten Band des Seitenfußes erstellt wurde und die Option, eine neue Seite zu beginnen, aktiviert war; - Der Bug wurde behoben, bei dem der Pfad zum Basisbericht nicht an den aktuellen Bericht unter Unix OS übergeben wurde; - Es wurde ein Fehler bei der Erstellung eines Unterberichts und einer Seite mit demselben Namen bei der Konvertierung von StimulSoft-Berichten behoben; - Es wurde ein Fehler mit falschen Namen bei der Konvertierung von StimulSoft-Berichten behoben; - Der Fehler mit TotalPages in Page.VisibleExpression wurde behoben, der ein Exception verursachte, wenn Double-Passing deaktiviert war; - Der Fehler wurde behoben, bei dem ein Band über die Seite hinausgehen konnte; - Der Fehler wurde behoben, bei dem Objekte über einen Band oder ContainerObjekt hinausgehen konnten; - Der Einrückungsfehler wurde bei der Übersetzung von RTF in Berichtsobjekte behoben; - Der Zeilenabstand für aus RichObject übersetzten Text wurde korrigiert; - Fehler mit der ConnectionString-Eigenschaft in der JsonDataSourceConnectionStringBuilder-Klasse, wenn der Wert ohne Anfrage-Header war, wurde behoben; [Designer] + Der Berichtsvalidator wurde hinzugefügt, um fehlerhafte Objekte (wiederholte Namen, negative Abmessungen usw.) zu finden; + Der Editor für RichObject.Text-Eigenschaft wurde hinzugefügt; + Der FRX-Editor wurde zum Berichtsdesigner hinzugefügt; + Detaillierte Beschreibungen von zugehörigen Assemblies und installierten Plugins wurden hinzugefügt; + Die Möglichkeit wurde hinzugefügt, um Dialogseiten zu kopieren; + Die Möglichkeit wurde hinzugefügt, um Dialogseiten über das Kontextmenü zu löschen; + Die Möglichkeit wurde hinzugefügt, um die Verwendung der letzten Formatierungseinstellungen beim Erstellen von Objekten zu deaktivieren; + Die Integration mit FastReport.Id wurde hinzugefügt; + Die Möglichkeit wurde hinzugefügt, um die Online-Dokumentation im Berichtsdesigner aufzurufen; + Der Assistenten zur Visualisierung der ID-Prüfzeichen wurde hinzugefügt; + QuickInfos über rechte und untere Einzügen für Hilfslinien und Objekte wurden im Designer hinzugefügt; + Die Möglichkeit wurde hinzugefügt, um die Farbe der Beleuchtung von sich überschneidenden Objekten im Designer auszuwählen; * Das Erscheinungsbild des ElasticSearch-Verbindungseditorformulars wurde geändert; * Die Textfelder im CISWizardForm mit Einheiten in Textfelder wurden geändert, die nur Zahlen unterstützen; - Der Fehler wurde behoben, der ein System.NullRefereceException beim Erstellen einer berechneten Spalte für eine verschachtelte JSON-Tabelle verursachte; - Der Fehler wurde behoben, der ein System.FormatException beim Rendern von Kartenbeschriftungen verursachte; - Der Fehler wurde behoben, der ein System.NullReferenceException verursachte, wenn die Schaltfläche "Einfügen" im Kontextmenü der Dialogseiten gedrückt wurde; - Die fehlerhafte Skalierung der Designer-Zoom-Steuerelemente wurde im HiDPI-Modus korrigiert, wenn diese aus einer älteren Demo-Anwendung heraus ausgeführt wurden; - Das Öffnen des Speicherformulars, nachdem der gesamte Bericht gespeichert wurde, wurde korrigiert; - Nicht skalierbare Elemente im Begrüßungsfenster wurden korrigiert; - Die Hervorhebung von sich überschneidenden Graphen wurde korrigiert; - Das Exception beim Umbenennen einer JSON-Tabelle wurde korrigiert; - UpdateStatusBar im DialogWorkspace wurde korrigiert; - Fehler bei der Lokalisierung der Schaltfläche "Konto..." im Menü "Datei" wurde behoben; - Behebung eines Fehlers beim Abbrechen der Auswahl eines Objekts, wenn dessen Eigenschaften geändert wurden; - Behebung eines Fehlers, bei dem der Wechsel zur Seite "Code" nach dem Hinzufügen eines Event-Handlers nicht erfolgte; [Preview] + Das Exportieren aller offenen Registerkarten wurde implementiert; - Der Fehler wurde behoben, der ein System.NullReferenceException beim Erstellen eines Berichts mit einem RichObject auf einem System ohne Drucker verursachte; - Der Fehler wurde im MSChart-Objekt im HiDPI-Modus behoben; [Exports] + Die Sprachausgabe wurde beim Exportieren in Word, PowerPoint, Rich Text, OpenOffice Write und OpenOffice Calc hinzugefügt; + Die Verschlüsselung des Passworts des digitalen Signaturzertifikats wurde beim PDF-Export hinzugefügt, wenn es gespeichert wird; + Die Option "Gitterlinien anzeigen" wurde beim Excel 2007 Export hinzugefügt; + Der Export von Datentypen nach DBF wurde hinzugefügt; + Es wurde eine neue Eigenschaft PrefixStyle zum SVG-Export hinzugefügt, mit der Sie ein Präfix für alle Stile innerhalb des SVG-Exports festlegen können; * UTF-8 ist als Standardkodierung für den DBF-Export festgelegt; - Die fehlerhafte Skalierung von Bildern wurde beim HTML-Export nach Ebenen korrigiert, wenn eine hohe svg-Qualität aktiviert ist und die Vergrößerung größer als 1 ist. - Der Fehler wurde behoben, der ein System.IndexOutOfRangeException verursachte, wenn eine Schrift ohne Kerning in PDF exportiert wurde; - Der Fehler wurde bei der Skalierung von Bildern beim HTML-Export nach Ebenen behoben; - Der Fehler wurde behoben, der ein System.NullReferenceException beim Exportieren eines Berichts mit einer leeren Seite in Word 2007 verursachte; - Das Speicherleck wurde beim PDF-Export mit einigen CJK-Schriften behoben; - Das Re-Rendering von Tabellenzellen wurde beim SVG-Export behoben; - Falscher Seitenstil wurde beim Drucken aus dem Browser für tabellarischen HTML-Export behoben; - Die Option "Systemdatenformatierung verwenden" wurde beim Excel 2007-Export hinzugefügt; - Das Exception wurde behoben, das beim HTML-Export eines Objekts mit negativen Abmessungen auftrat; - Der Fehler wurde beim PDF-Export behoben, wenn Compressed = false ist; - Die falsch eingetragene border-collapse Eigenschaft im tabellarischen HTML-Export wurde korrigiert; - Der Fehler wurde beim Excel-Export behoben, bei dem die Füllung in der Ausgabedatei beim ersten Mal nicht geändert wurde; - Der Fehler wurde beim Exportieren von Wasserzeichen nach PostScript behoben; - Der Fehler wurde bei der Schriftskalierung beim PDF-Export behoben; - Der Fehler wurde behoben, bei dem ein Textobjekt mit HtmlTags, das nach RTF exportiert wurde, nicht durch die Tags
, , geändert wurde. ### Neue Funktionen in FastReport for DBA 2023.1 URL: https://www.fast-report.com/de/news/fastreport-dba-2023.1 Summary: Die neue Version von FastReport DBA 2023.1 mit dem JasperReports Template Converter steht jetzt zum Download bereit! Die neue Version von FastReport DBA 2023.1 mit dem JasperReports Template Converter steht jetzt zum Download bereit! Die neue Version von FastReport for DBA 2023.1 mit dem JasperReports Template Converter steht jetzt zum Download bereit! Außerdem haben wir eine Integration in die FastReport Cloud erstellt, den Berichtsprüfungs- und Exportprüfungs-Tool verbessert und vieles mehr.  FastReport Cloud Integration FastReport Desktop und FastReport for DBA unterstützen jetzt teilweise die FastReport Cloud Interaktion.  Herunterladen und Hochladen von Berichten  Sie können nun Ihren Bericht aus dem Cloud-Speicher herunterladen und ihn im Designer bearbeiten oder umgekehrt Ihre Dateien in die Cloud hochladen. Web-Vorschau Zusätzlich zur Standardvorschau ist jetzt auch eine Web-Vorschau möglich. Der Bericht kann in der Web-Vorschau nur dann angezeigt werden, wenn er aus der Cloud geöffnet ist. Verbindung mit FastReport Cloud Datenquellen  Die FastReport Cloud kann Verbindungen mit Datenquellen speichern. Ab jetzt haben Sie die Möglichkeit, diese Datenquellen zu Ihrem eigenen Bericht hinzuzufügen.  Es ist jetzt auch möglich, eine Verbindung in die Cloud hochzuladen. Wenn Sie mehr über die neuen Funktionen erfahren möchten, lesen Sie bitte diesen Artikel. Verbesserungen im Berichtsvalidator Erhöhte Leistungsgeschwindigkeit Die Berichtsvalidierung läuft jetzt in einem separaten Stream. Auch die Geschwindigkeit wurde deutlich optimiert. Sie können die Änderungen bei der Verarbeitung von Berichten mit einer großen Anzahl von Fehlern feststellen. Während der Validator den Bericht überprüft, wird im Validierungsfenster eine entsprechende Meldung angezeigt. Dabei können Sie den Bericht bearbeiten. Wenn der Validator fertig ist, wird eine Fehlertabelle angezeigt. Einrichten der Validierungstabelle  Zur Benutzerfreundlichkeit wurde eine neue Spalte mit Fehlernummern hinzugefügt. Sie kann über das Kontextmenü der Tabelle aktiviert oder deaktiviert werden. Auf die gleiche Weise können Sie die Anzeige der Spalte für die Fehlerart anpassen. JasperReports-Vorlagen-Konverter  Es wurde die Möglichkeit hinzugefügt, Berichtsvorlagen aus JasperReports in FastReport .NET-Vorlagen zu konvertieren. JasperReports-Berichte können Objekte enthalten, die vom FastReport-Designer nicht unterstützt werden. Diese Objekte werden nicht konvertiert oder durch andere ersetzt, damit der erstellte Bericht dem in JasperReports erstellten Bericht so ähnlich wie möglich aussieht. Mehr dazu lesen Sie im Artikel. Verbesserungen und Korrekturen am MSChartObject Das MSChartObject hat eine große Anzahl von Eigenschaften und Einstellungen. Die am häufigsten verwendeten sind im Objekteditor gesammelt. Eigenschaften, die im Editor nicht verfügbar sind, können mit dem Objektinspektor geändert werden. Es gab jedoch ein Problem mit diesen Eigenschaften - wenn sie geändert wurden, wurde der Bericht nicht als geändert betrachtet. Infolgedessen war es unmöglich, diesen zu speichern. Um den Bericht zu speichern, musste eine andere Eigenschaft oder ein anderes Objekt geändert werden. Darüber hinaus wurden bei der Erstellung eines Berichts und nach dem Schließen des Vorschaufensters die Werte dieser Eigenschaften auf ihre Standardwerte zurückgesetzt. Dieser Fehler ist in der neuen Version behoben worden. Verbindung zu in MsSQL gespeicherten Prozeduren  Es wurde die Möglichkeit hinzugefügt, eine Verbindung zu in MsSQL gespeicherten Prozeduren herzustellen. Dies war bisher über eine Datenbankabfrage verfügbar. Jetzt können Sie viel bequemer eine Verbindung zu den Prozeduren herstellen, indem Sie die Datenbanktabellen- Verbindungsschnittstelle verwenden. Diese Datenbanktabellen werden im Auswahlfenster zusammen mit den Tabellen angezeigt. Wenn Sie eine Prozedur auswählen, erscheint ein Fenster mit den Parametereinstellungen, falls vorhanden.  Mehr dazu lesen Sie im Artikel. Exportverbesserungen  Option "Zum Drucken" beim RTF-Exportieren Es wurde eine neue Eigenschaft PrintOptimized und eine entsprechende Option im Exportfenster hinzugefügt. Wenn Sie diese Einstellung aktivieren, wird die Qualität des Bildes beim Exportieren erheblich verbessert. Allerdings erhöht sich auch die Größe der resultierenden Datei. Finanzformat beim Exportieren nach Excel 2007 Das Währungsformat kann nun als Finanzformat exportiert werden. Dazu wurden im Exportfenster eine entsprechende Option und die CurrencyToAccounting-Eigenschaft hinzugefügt. Die vollständige Liste der Änderungen ist unter folgendem Link verfügbar. ### Neue Funktionen in FastReport VCL 2022.2 URL: https://www.fast-report.com/de/news/fastreport-vcl-2022.2 Summary: In FastReport VCL 2022.2 wurden neue Funktionen hinzugefügt, um die Arbeitskosten für die Entwicklung und Verbesserung ihrer Berichte zu senken. In FastReport VCL 2022.2 wurden neue Funktionen hinzugefügt, um die Arbeitskosten für die Entwicklung und Verbesserung ihrer Berichte zu senken. In FastReport VCL 2022.2 haben wir uns darauf konzentriert, neue Funktionen hinzuzufügen, damit Sie den Aufwand für die Entwicklung und Verbesserung Ihrer Berichte reduzieren können. Berichtsdesigner Der Berichtsdesigner hat die Bearbeitungs- und Fehlerabfragemöglichkeiten der Berichte erweitert. Der neue Modus zum Hervorheben von Objektüberschneidungen ermöglicht es Ihnen, problematische Bereiche in der Berichtsvorlage zu lokalisieren und den Bericht für die korrekte Ausgabe in Exporten mit Tabellendarstellung (RTF, XLS und andere) vorzubereiten. Aktivieren Sie einfach den neuen Modus, um alle sich überschneidenden Objekte zu sehen. Der neue Modus "Autoführungslinien" ermöglicht es Ihnen, erkannte Probleme in Ihrem Bericht schnell zu beheben, indem Sie automatisch Führungslinien für alle Objekte erstellen (funktioniert in drei Modi: alle Linien, nur vertikale, nur horizontale). Sie können Maßhilfslinien aus dem Modus "Autoführungslinien" auf normale Seitenführungslinien übertragen. Erweiterung des interaktiven Funktionals In der Berichtsvorschau wurde ein neuer interaktiver Editor für das CellularText-Objekt hinzugefügt. Erstellen Sie interaktive Dokumente mit Ausfülloptionen direkt in der Vorschau. So können Sie neue Formulare für Ihre Berichte erstellen. Und es wurden neue Objekte "Liste" (TfrxListBoxView) und "Dropdown-Liste" (TfrxComboBoxView) zur Berichtsseite hinzugefügt. Mit diesen Objekten können Sie interaktive Formulare direkt auf der Berichtsseite* erstellen. *Die Unterstützung von interaktiven PDF-Formularen ist zu einem späteren Zeitpunkt geplant. Berichtsmodul und Objekte Das Objekt zur Anzeige von HTML im Bericht (TfrxHTMLView) wurde mit der Fähigkeit ausgestattet, Bilder, die über externe Links (Datei- oder Webprotokoll) abgerufen werden, zwischenzuspeichern und zu speichern. Sie werden über die Eigenschaft EmbeddedObjects direkt an den erstellten Bericht gesendet. Dies erhöht die Unabhängigkeit und beschleunigt die Ladegeschwindigkeit solcher Berichte. Mit der neuen Einstellungsklasse für den QR-Code können Sie schnell und einfach einen EPC (European Payments Council) Standard-Barcode erstellen und mit den Daten verbinden. Darüber hinaus wurden zahlreiche Änderungen vorgenommen, um die Gesamtqualität des Produkts zu verbessern. Vollständige Liste der Änderungen ---------------------------- + Es wurde ein neuer Modus zur Beleuchtung von Objektüberschneidungen im Berichtsdesigner hinzugefügt; + Es wurde Unterstützung für EPC-Standardeinstellungen für QR-Codes hinzugefügt; + Es wurde Interaktiver CellularText-Objekteditor zur Bearbeitung eines Objekts in der Vorschau hinzugefügt; + Es wurde ein neuer Modus „Autoführungslinien“ für die Führungslinien im Berichtsdesigner hinzugefügt; + Es wurde ein neues Berichtsobjekt “Dropdown-Liste TfrxComboBoxVIew“ hinzugefügt; + Es wurde ein neues Berichtsobjekt Liste „TfrxListBoxVIew“ hinzugefügt; + Es wurde die Möglichkeit externe Bilder des HTMLView-Objekts in den erstellten Bericht als internen oder externen Cache einzubetten (Eigenschaft EmbeddedObjects [edExternal, edInternal]) hinzugefügt; - Es wurde Fehler beim Scrollen in der Vorschau unter Linux behoben; - Es wurde Fehler beim Aufruf des MouseLeave-Ereignisses vor der Neuerstellung des Berichts behoben; - Es wurde Fehler bei der Bearbeitung von Schnelltasten im Berichtsdesigner bei Combobox- und Edit-Elementen behoben; - Es wurde Fehler behoben, wenn die Eigenschaft HeaderMaxSize in der Serverkonfiguration nicht definiert ist; - Es wurde Fehler beim Kopieren von Tabelleninhalten in der Vorschau behoben; - Es wurde Fehler in Lazarus bei der Größenänderung des Datenbaums behoben; - Es wurde PDF-Export in Lazarus mit der letzten Zeile im Text korrigiert; - Es wurde das Auffüllen des user-agent-Feldes in der http-Kopfzeile (Bearbeitung externer Links) korrigiert; - Es wurde PDF-Exportgröße bei der Konvertierung aus EMF optimiert; - Es wurde Fehler beim Seitenwechsel in der Vorschau behoben; - Es wurde Fehler beim Scrollen im Berichtsdesigner unter Linux behoben; - Es wurde Fehler mit dem Chart-Objekt in Lazarus 2.2.0 behoben; - Es wurde Fehler beim TfrxHTML5DivExport-Export mit aktivierter MultiPage-Eigenschaft in Linux behoben; - Es wurde Fehler beim Drucken eines Tabellenobjekts im Druckzoom-Modus behoben; - Es wurde Fehler bei der Anzeige von Barcodes mit einem anderen Drehwinkel als 0 behoben; - Es wurde Fehler mit CC- und BCC-Feldern beim Senden von E-Mails über Outlook behoben; - Es wurde Fehler bei der hpp-Generierung für C++Builder 2012 behoben; - Es wurde Fehler beim PDF-Export bei langen Textzeilen und Zeilenstilen behoben; - Es wurde Neukompilierung von Ressourcen mit japanischer Lokalisierung behoben; - Es wurde Fehler beim Duplexdruck standardmäßig im Сollation-Modus behoben; - Es wurden FireDAC-Adapterpakete (AnyDAC) aktualisiert; - Es wurde Fehler in der Anzeige von Vorschau-Symbolleiste in RAD Studio 11 behoben; - Es wurde die Benennung von Berichtsobjekten beim Drag und Drop von Feldern mit Unicode-Namen aus dem Datenbaum korrigiert; - Es wurde Fehler bei Aggregatfunktionen innerhalb einer statischen Tabelle behoben; - Es wurde Fehler mit Deskriptor-Verlust im HTMLView-Objekt behoben. ### Neue Möglichkeiten für die Datenarbeit in FastReport VCL Ultimate URL: https://www.fast-report.com/de/news/release-fast-grid-vcl Summary: Mit dem Release 2026.1 ist das Ultimate-VCL noch wertvoller geworden. Alle Lizenzinhaber erhalten jetzt die neue FastGrid-Bibliothek sowie die Möglichkeit, Berichte mit dem FastReport Online Designer zu erstellen. Mit dem Release 2026.1 ist das Ultimate-VCL noch wertvoller geworden. Alle Lizenzinhaber erhalten jetzt die neue FastGrid-Bibliothek sowie die Möglichkeit, Berichte mit dem FastReport Online Designer zu erstellen. Mit dem Release 2026.1 ist das  Ultimate VCL noch wertvoller geworden. Alle Lizenzinhaber erhalten jetzt die neue FastGrid-Bibliothek sowie die Möglichkeit, Berichte mit dem FastReport Online Designer zu erstellen. FastGrid ist ein universelles Tool zur Visualisierung, Bearbeitung und Strukturierung von Daten in VCL und Lazarus. Es ermöglicht Entwicklern, effizient mit lokalen und Serverdaten zu arbeiten und beschleunigt die Entwicklung von Business-Anwendungen. FastGrid bietet eine breite Palette von Funktionen: integrierte Werkzeuge zum Filtern, Sortieren und Strukturieren von Daten, Unterstützung für die Anbindung an verschiedene Datenquellen (FireDAC, ADO, BDE, DBX, IBX, FIBPlus, Oracle usw.) über die Standardkomponente TDataSource, WYSIWYG-Oberflächenkonfiguration sowie integrierte Editoren für verschiedene Datentypen (Text, Zahlen, Grafiken usw.). Diese Bibliothek ist als CTP (Community Technical Preview) verfügbar und wird mit jedem kommenden Release weiter verbessert. FastReport Online Designer ist ein visueller Vorlagen- und Berichtdesigner, der direkt im Browser läuft. Sie müssen lediglich Ihre Daten anbinden, sie auf der Seitenvorlage platzieren, das Layout konfigurieren und das fertige Dokument speichern. Der Designer kann unter Android, iOS oder Windows in jedem modernen Browser verwendet werden — auf Desktop, Tablet usw. Weitere Informationen zur Unterstützung von VCL-Komponenten im FastReport Online Designer finden Sie in diesem Artikel. Mehr erfahren ### Neue Möglichkeiten zur Arbeit mit Bands im FastReport .NET-Designer URL: https://www.fast-report.com/de/blogs/bands-designer-net Summary: In der Version 2026.2 von FastReport .NET bietet nun die Möglichkeit, die Band-Reihenfolge direkt im Designer per Drag & Drop mit der Maus zu ändern. In der Version 2026.2 von FastReport .NET bietet nun die Möglichkeit, die Band-Reihenfolge direkt im Designer per Drag & Drop mit der Maus zu ändern. Bei der Erstellung von Berichten spielt nicht nur die Datenbefüllung eine wichtige Rolle, sondern auch die intuitive Handhabung der Berichtsstruktur. Bands bilden das Grundgerüst eines Berichts – ihre Anordnung bestimmt maßgeblich die Logik der Datenanzeige. Bisher konnte die Reihenfolge der Bands nur über das Fenster „Configure Bands“ geändert werden, was nicht immer praktisch war und zusätzliche Schritte erforderte. Die neueste Version von FastReport .NET bietet nun die Möglichkeit, die Band-Reihenfolge direkt im Designer per Drag & Drop mit der Maus zu ändern. Bei der Erstellung von Berichten spielt nicht nur die Datenbefüllung eine wichtige Rolle, sondern auch die intuitive Handhabung der Berichtsstruktur. Bands bilden das Grundgerüst eines Berichts – ihre Anordnung bestimmt maßgeblich die Logik der Datenanzeige. Bisher konnte die Reihenfolge der Bands nur über das Fenster „Configure Bands“ geändert werden, was nicht immer praktisch war und zusätzliche Schritte erforderte. Die neueste Version von FastReport .NET bietet nun die Möglichkeit, die Band-Reihenfolge direkt im Designer per Drag & Drop mit der Maus zu ändern. Das macht die Arbeit mit Berichten schneller, übersichtlicher und intuitiver. 1. Verschieben von Bands per Drag & Drop Bands können jetzt direkt auf der Berichtsseite verschoben werden, ohne ein zusätzliches Fenster öffnen zu müssen. Bewegen Sie den Mauszeiger einfach auf das gewünschte Band, halten Sie die Maustaste gedrückt und ziehen Sie es nach oben oder unten. Beim Ziehen ändert sich der Mauszeiger automatisch und zeigt an, ob das Verschieben möglich ist. Ist das Band verschiebbar, nimmt der Cursor während des Ziehens die entsprechende Form an. Ist das Verschieben nicht erlaubt (z. B. beim ReportTitle), wechselt der Cursor zu einem Verbotszeichen – das Signal, dass die Aktion nicht verfügbar ist. 2. Verschieben von DataBands Bands vom Typ DataBand lassen sich beliebig untereinander vertauschen. Dies ist besonders bei komplexen Berichten mit mehreren Datenquellen hilfreich. Durch Ziehen mit der Maus kann die Reihenfolge der Datenausgabe schnell geändert werden – ohne dass die Berichtsstruktur neu aufgebaut werden muss. 3. Verschieben von Unter-Bands Auch das Vertauschen von Unter-Bands (Child Bands) innerhalb desselben übergeordneten Bands wird unterstützt. Dies entspricht vollständig der Logik des bisherigen Fensters „Configure Bands“, steht nun aber direkt im Designer zur Verfügung. Zusammenfassung Die neue Funktion zum Verschieben von Bands direkt im Designer macht FastReport .NET zu einem noch komfortableren Werkzeug für die Berichtsentwicklung. Sie können die Berichtsstruktur nun ohne Umwege schnell ändern und direkt mit der visuellen Darstellung arbeiten. Das steigert Ihre Entwicklungsgeschwindigkeit und macht die Arbeit mit Berichten übersichtlicher und angenehmer. Tags: .NET, FastReport, Designer, Customization ### Neue Objekte im FastReport Online Designer 2023.1 URL: https://www.fast-report.com/de/news/fastreport-online-designer-2023.1 Summary: Die neue Version von FastReport Online Designer 2023.1 enthält: Map-Objekt, Konfiguration speichern, Bericht automatisch speichern usw. Die neue Version von FastReport Online Designer 2023.1 enthält: Map-Objekt, Konfiguration speichern, Bericht automatisch speichern usw. Neues Karten-Objekt Die Komponente "Karte" (MapObject) dient zur Darstellung von zweidimensionalen grafischen Karten im Shapefile-Format von ESRI. Mehr über das Format können Sie  hier  lesen. Für die Arbeit sind .shp (Geometrie) und .dbf (Beschreibung) erforderlich. Das Karten-Objekt besteht aus den folgenden Elementen: Das Karten-Objekt kann eine oder mehrere Ebenen enthalten. Die Liste der Ebenen wird in der oberen linken Ecke des Editors angezeigt: Um eine neue Ebene hinzuzufügen, klicken Sie auf die Schaltfläche "Hinzufügen...". Das folgende Fenster wird angezeigt: Laden Sie die .dbf- und .shp-Dateien hoch, um dem Objekt eine neue Ebene hinzuzufügen. Große Karten (über 30Mb) oder solche mit einer großen Anzahl von Polygonen (über 20.000) verlangsamen den Bericht erheblich. Sie können den Hintergrund, die Farbe und die Position der Farbenskala auf der Karte selbst ändern. Sie können die Ebenen mit der Datenquelle verbunden, die Daten farblich hervorheben, die Farbskala anpassen, die angezeigten Werte einstellen und die Darstellung ändern. Neue Möglichkeiten Neue Schaltfläche "Alles auswählen" im Datenquellen-Assistenten Es wurde eine ☑ Schaltfläche hinzugefügt, um bei der Auswahl von Tabellen alle in der Datenquelle zu markieren oder die Markierung aufzuheben. Hervorheben mehrerer Objekte im Berichtsbaum und in den Tabellenzellen  Es wurde die Möglichkeit hinzugefügt, mehrere Elemente im Berichtsbaum auszuwählen, indem man die Umschalt- oder Strg-Taste gedrückt hält. Dies funktioniert auch mit Tabellenzellen. Eigenschaftswerte für mehrere ausgewählte Objekte können geändert werden Sie können jetzt Eigenschaftswerte für mehrere Objekte ändern: FastReport Online Designer Builder Einstellungen Zuvor wurden die ausgewählten Optionen im FastReport Online Designer Builder nicht gespeichert, so dass Sie bei jeder neuen Konfiguration alle Optionen erneut einstellen mussten. Jetzt werden die Werte gespeichert. Automatische Speicherung  Im FastReport Online Designer können Sie jetzt die automatische Speicherung aktivieren. Dies ist auf zwei Arten möglich: Aktivieren Sie die automatische Speicherung im bereits erstellten FastReport Online Designer; Stellen Sie die jeweilige Option im FastReport Online Designer Builder ein. Schauen wir uns diese beiden Methoden genauer an. Automatische Speicherung im bereits erstellten FastReport Online Designer Um die automatische Speicherung zu aktivieren, setzen Sie autosave in der build.json-Datei, die sich im Verzeichnis des erstellten Designers befindet, auf true. Option „Automatische Speicherung“ im FastReport Online Designer Builder Sie können die automatische Speicherung auch im Designer Builder aktivieren. Diese Option ist auf der Registerkarte Konfiguration zu finden. Verbesserungen Upgrade auf Webpack 5 Nach dem Upgrade ist der Designer Builder schneller geworden. Außerdem wurde die Größe des erstellten Produkts reduziert. Verbesserte Option "Bestätigung beim Ausloggen" Wenn diese Option aktiviert ist, wird die Bestätigung selbst nur nach der Änderung der Berichtsvorlage angefordert. Löschen von Zellen im Objekt "Erweiterte Matrix" Mit der Tastenkombination Strg + Z können nun Zellen gelöscht, sowie Änderungen rückgängig gemacht werden. Neue Barcodes  Neue Barcodetypen wurden hinzugefügt: GS1 DataBar OD Stacked; GS1 DataBar Stacked; GS1 DataBar Limited; GS1 DataBar Omnidirectional; Japan Post 4 State Code; ITF-14; Deutsche Leitcode; Deutsche Identdcode. Vollständige Änderungsliste  ------------------- + Die Schaltfläche "Alles auswählen" wurde im Datenquellen-Assistenten hinzugefügt; + Das Karten-Objekt wurde hinzugefügt; + Die Hervorhebung von mehreren Objekten im Berichtsbaum und in Tabellenzellen wurde hinzugefügt; + Es wurde die Möglichkeit hinzugefügt, Eigenschaftswerte für mehrere ausgewählte Objekte zu ändern; + Die FastReport Online Designer Builder Einstellungen werden jetzt gespeichert und Sie müssen die Werte nicht mehr neu einstellen, wenn Sie eine neue Konfiguration erstellen; + Die automatische Speicherfunktion wurde hinzugefügt; + Es wurden neue Barcodes hinzugefügt: GS1 DataBar OD Stacked, GS1 DataBar Stacked, GS1 DataBar Limited, GS1 DataBar Omnidirectional, Japan Post 4 State Code, ITF-14, Deutsche Leitcode, Deutsche Identdcode; - Das Postleitzahl-Objekt wurde korrigiert; * Aktualisierte Symbole in der Designeroberfläche; * Upgrade auf Webpack 5; * Verbesserte Option „Bestätigung beim Ausloggen"; * Das Löschen von Zellen im Objekt „Erweiterte Matrix“ wurde implementiert; * Verschiedene Optimierungen, die sich auf die Leistung des Designers auswirkten, wurden vorgenommen. ### Neue Premium-Unterstützungsoption! URL: https://www.fast-report.com/de/news/humorous-premium-support Summary: Neue Premium-Unterstützungsoption! Neue Premium-Unterstützungsoption! Wir werden oft um bezahlten technischen Unterstützung gebeten, um nicht standardmäßige Probleme zu lösen. Und wir freuen uns, Ihnen mitzuteilen, dass wir von heute an vier neue korporative Premium-Tarifpläne einführen: “Report-”alles ist weg”-brauche Hilfe” Psychologische Hilfe in Fällen von "Bei mir funktioniert nichts!", "Das stürzt ab!". "Alles ist weg!"; “Report-Nacht des Wunsches etwas Seltsames” Der Benutzer kann ein seltsames Eigenschaft anfordern (z. B. ein Video im Bericht), und wir machen es über Nacht; “Report-technische Aufgabe ohne Sorgen” Wir werden für Sie eine technische Aufgabe für die Berichte schreiben, ja, was ist da drin?.. wir werden das ganze Programm mit allen Funktionen und Berichten schreiben; “Report-Kasperle” Mit der russischen Post senden wir den Entwickler, der die Berichte erstellt. Es ist nicht notwendig, ihn zu füttern. Und er wird in der Kiste leben, in der er ankommen wird. ### Neue QR-Code-Zeichnungsmodi in FastReport .NET konfigurieren URL: https://www.fast-report.com/de/blogs/rendering-modes-qr-code-net Summary: Betrachten Sie in diesem Artikel, wie Sie die Standard-QR-Code-Module in FastReport .NET durch dekorative Formen ersetzen können: Kreise, Sterne, Sechsecke und andere. Betrachten Sie in diesem Artikel, wie Sie die Standard-QR-Code-Module in FastReport .NET durch dekorative Formen ersetzen können: Kreise, Sterne, Sechsecke und andere. Standardmäßig besteht ein QR-Code aus quadratischen Modulen (Punkten). In der neuen Version von FastReport .NET wurde die Möglichkeit hinzugefügt, diese anzupassen. Wir zeigen Ihnen, wie Sie die Standardmodule durch dekorative Formen wie Kreise, Sterne, Sechsecke und andere ersetzen können. Dazu werden die für die Anpassung erforderlichen Eigenschaften erläutert – nur wenige Optionen für ein einzigartiges Ergebnis. Standardmäßig besteht ein QR-Code aus quadratischen Modulen (Punkten). In der neuen Version von FastReport .NET wurde die Möglichkeit hinzugefügt, diese anzupassen. Wir zeigen Ihnen, wie Sie die Standardmodule durch dekorative Formen wie Kreise, Sterne, Sechsecke und andere ersetzen können. Dazu werden die für die Anpassung erforderlichen Eigenschaften erläutert – nur wenige Optionen für ein einzigartiges Ergebnis. Für die Änderung des Aussehens der QR-Code-Module stehen drei Eigenschaften zur Verfügung: Shape, Angle und UseThinModules. Jede davon wird im Folgenden beschrieben. Shape-Eigenschaft des QR-Codes Die erste und wichtigste Eigenschaft ist Shape. Sie bestimmt die Form der Module. Derzeit stehen 10 Formvarianten zur Verfügung: 1.    Quadrat (Rectangle). Standardansicht des QR-Codes. 2. Kreis (Circle) 3. Raute (Diamond) 4. Abgerundetes Quadrat (RoundedSquare) 5. Horizontale Kapsel (PillHorizontal) 6. Vertikale Kapsel (PillVertical) 7. Plus (Plus) 8. Sechseck (Hexagon) 9. Stern (Star) 10. Schneeflocke (Snowflake) Beispiele für QR-Codes mit allen unterstützten dekorativen Formen finden Sie auf der zweiten Seite des Demoberichts Qr-Codes.frx. Angle-Eigenschaft des QR-Codes Diese Eigenschaft legt den Drehwinkel (in Grad) für jedes Modul des QR-Codes fest. Sie funktioniert nur für die Formen Hexagon (Sechseck), Star (Stern) und Snowflake (Schneeflocke). Bei den anderen Formen wird diese Eigenschaft ignoriert. UseThinModules-Eigenschaft des QR-Codes Die Eigenschaft UseThinModules steuert die visuelle Dichte der Module (Punkte) im QR-Code. Bei UseThinModules = false (Standardeinstellung) nehmen die Module den gesamten verfügbaren Platz in ihrer Zelle ein. Die Punkte berühren sich ohne Zwischenräume, der QR-Code wirkt kompakt und dicht. Bei UseThinModules = true wird die Größe der Module verringert, sodass sichtbare Zwischenräume entstehen. Der QR-Code wirkt aufgelockerter und erzeugt einen Effekt wie ein „Gitter“ oder „Punktmuster“. Was die Lesbarkeit von QR-Codes beeinflusst Suchmuster (Finder Patterns). Die großen Quadrate in den Ecken des QR-Codes, die dem Scanner helfen, Position, Größe und Ausrichtung des Codes zu bestimmen, werden von der Eigenschaft UseThinModules NICHT verändert. Sie bleiben stets in voller Größe, damit der Scanner den Code zuverlässig erkennen kann. Dekorative Module verbessern das Aussehen des QR-Codes, können aber die Lesbarkeit beeinträchtigen. Nicht alle Scanner erkennen geformte Module gleich gut. Während standardmäßige quadratische Module von allen Scannern ohne Ausnahme unterstützt werden, können dekorative Formen (insbesondere komplexe wie Snowflake und Star) von älteren Scannermodellen und einigen mobilen Anwendungen schlecht gelesen werden. Testen Sie die Lesbarkeit des Codes unbedingt auf verschiedenen Geräten. Für ein zuverlässiges Scannen ist ein klarer Kontrast zwischen Modulen und Hintergrund erforderlich. Gut funktionieren schwarze Module auf weißem Hintergrund oder dunkelblaue auf hellgrauem. Schlecht lesbar sind hellgraue Module auf weißem Hintergrund sowie farbige Module auf farbigem Hintergrund mit geringem Kontrast. Merken Sie sich die Regel: Die Module müssen deutlich dunkler sein als der Hintergrund. Die Formen Snowflake und Star haben eine komplexe Geometrie mit feinen Details. Bei kleiner Größe verschwimmen diese Details, und der Scanner kann die Module nicht mehr korrekt erkennen. Verwenden Sie Snowflake und Star daher nur für große QR-Codes. Für kleine Codes wählen Sie Square, Circle oder RoundedSquare. Setzen Sie die Eigenschaft UseThinModules mit Bedacht ein, denn Zwischenräume zwischen den Modulen können die Lesbarkeit bei kleinen Größen beeinträchtigen. Die Eigenschaft ErrorCorrection beeinflusst ebenfalls die Zuverlässigkeit. Für dekorative Module empfehlen wir die Stufe Q oder H. Beachten Sie, dass eine hohe Fehlerkorrekturstufe die Größe des Codes erhöht, aber die Lesbarkeit verbessert. Fazit. Dekorative Module sind ein Balanceakt zwischen Ästhetik und Funktionalität. Je komplexer die Form, desto höher sind die Anforderungen an Größe, Kontrast und Druckqualität. Testen Sie den fertigen Code vor dem Einsatz in größerem Rahmen immer gründlich. Tags: .NET, FastReport, Barcode, Designer, Customization, QR Code ### Neue Version FastCube FMX - 1.2 URL: https://www.fast-report.com/de/news/fastcube-fmx-1.2 Summary: Neue Version FastCube FMX - 1.2 Neue Version FastCube FMX - 1.2 + Added support of Embarcadero Rad Studio 10 Seattle (Delphi/C++Builder) + Added support of ShortInt fields + Added restoring selected cell after loading schema + Added export to CSV * Reimplemented XML-A export * If cell value is both minimum and maximum of the column/row then treat it as maximum for highlight rules - Fixed error groups expanding - Fixed error in recompile.exe - Fixed errors in language resources - Fixed error in HTML and Excel exports (error with property RepeatValues) ### Neue Version FastReport .NET URL: https://www.fast-report.com/de/news/fastreport-net-2017.1 Summary: Neue Version FastReport .NET Neue Version FastReport .NET FastReport.Net 2017.1 Was gibt es Neues? ✔  Wir optimierten den Code, der für Berichtserstellung und für den Export in verschiedene Formate verantwortlich ist. Jetzt ist FastReport.NET viel schneller und spart Gedächtnis Ressourcen. ✔  Neues FastReport.NET hat einen direkten Zugang zu den CSV Dateien. Downloader von CSV Dateien hat ein natives Interface, das lässt Ihnen beliebige Daten im CSV Format aus den Excel oder anderen Programmen verwenden. ✔ Die Liste der Verbindungen zu den Datenlagern hat jetzt eine neue Connection zu MongoDB. ✔  PDF Export unterstützt jetzt ein polygrafischer Standard PDF/X-4. Außerdem ist auch Hinzufügen von farblichen Profilen in die PDF Datei unterstützt.  ✔  Dateien mit den Berichten können jetzt mit Hilfe vom Protokoll XMPP/Jabber in den Chat-Client geliefert werden. ✔ Die Entwickler, die mit Windows Presentation Foundation tätig sind, können das Beispiel über die Arbeit von FastReport in diesem Framework interessant finden. ✔  In den Web Berichten gibt es eine Möglichkeit, die Taste zu aktivieren, die für die Rückkehr zum vorherigen Bericht aus dem detaillierten Tab verantwortlich ist. Und nicht nur das!   [Core] + added possibility to set picture location (URL) in PictureObject from database + added support of alphanumeric values in GS1-128 barcode * optimized memory consumption - fixed bug with RichObject page break   [Designer] + added possibility to select all tables in DataWizardForm + added CSV database connection - fixed bug with updating the script when loading another report  - fixed bug with updating TextObject.Format - fixed bug with updating TextObject.Border - fixed bug with non-existing connection plugin   [Preview] + added "Exports" and "Clouds" properties in PreviewControl to hide/show exports in the "Save" button drop-down menu   [Exports] + added ability to export text as curves in PostScript and PPML exports + added property FastCloudStorageClient.ReportUrl containing the link to a report after uploading to FastReport Cloud + added possibility to send a report using XMPP/Jabber and FastReport Cloud + added support of PDF/X-4 standard + added CMYK color profile in the PDF export + added property HTMLExport.EnableMargins to use page margins in the output file (default: false) * added possibility of getting images from a stream by GetImage(..) method in XAMLExport, property name ToMultipleFiles changed to HasMultipleFiles - fixed export of GroupHeader and GroupFooter bands in FR3 export - fixed bug with exporting images in Metafile image export - fixed bugs with formatting in OpenOffice Writer (Open Document Text) export - fixed bugs with formatting in Word 2007 (docx) export - fixed bug with font "Meiryo UI" in PDF export   [WebReport] + added property WebReport.ShowBackButton to display the "Back" button (return to previous report in the tabbed report) + added property WebReport.LogFile to log the errors in WebReport, may be combined with WebReport.Debug  + added property WebReport.EnableMargins to use page margins in the output (default: false) + added support of Page.Fill in WebReport + added support of WebReport background color - WebReport.BackColor (default value: White) * changed progress picture - fixed bug with printing from browser any reports with links to detailed report - fixed bug with displaying the scroll bars on 100% width and height - fixed bug with visualization of reports with unlimited page width/height - fixed bug with "Fit Width/Fit Page" zooming in the toolbar - fixed bug with multi-threading - fixed bug with TextObject.ParagraphOffset   [Demos] + added new example \Demos\C#\WPFViewer    [Extras] + added MongoDB connector \Extras\Connections\FastReport.MongoDB   - fixed bug with displaying a list of tables in FastReport.MySQL  [Online Designer] + added support of TextOutline + added slider for rotate an object with Angle property + added property in configuration file (section save_success_redirect) with URL for redirection after successful saving + added two properties in configuration file, section save_success_redirect "useParent" (for using in iframe) and "removeConfirmation" (eliminate showing confirmation leaving dialog with redirection) ### Neue Version FastReport .NET URL: https://www.fast-report.com/de/news/fastreport-net-2016.3 Summary: Neue Version FastReport .NET Neue Version FastReport .NET ✓ In der Version FastReport .NET 2016.3 werden zusätliche Berichtsobjekten PolyLineObject (gebrochene Linie) und PolygonObject (abgeschlossener, mit Farbe erfüllter Polygon) hinzugefügt. Der Anwender hat auch eine Möglichkeit, schon erstellte Objekten PolyLineObject/PolygonObject durch die Verschiebung, Hinzufügen oder Löschen der Knotenpunkten zu bearbeiten. ✓ Die Berichtsseite hat jetzt zwei neue Eigenschaften: Page.UnlimitedPaperHeight und Page.UnlimitedPaperWidth, die verantwortlich für die neue Regime der „unendlichen“ Seite sind. Solche Seite hat flexible Breite, Höhe und andere Eigenschaften, die automatisch an die Positionen der Objekte anpassen. Diese Seiten Eigenschaft kann sehr nützlich sein, wenn die Berichts Tabellen oder Matrizen keine fixierte Höhe oder keinen Seitenumbruch haben. Oder beim Export in Excel werden alle Daten auf eine Seite ohne Umbrüche von Titeln und Kellern gelagert. Außerdem, wird es sehr bequem bei der Erstellung der Berichten im Web, wenn der Ausgangsbericht unabhängig von der Papiergröße ist. ✓  Neues Feature für den Export in PDF hinzugefügt – ShowPrintDialog. Seine Aktivierung führt zur Eröffnung der Druckdialoge im Vorschaufenster der PDF Dateien bei der Erstellung des PDF Dokuments (zum Beispiel in Adobe Acrobat). ✓ PDF Dateien können jetzt ohne Links auf die Kundenschriften und seine Eigenschaften erstellt werden – die Erstellung des ganzen Texts durch die Kurven. Solche Möglichkeit steht zur Verfügung bei der Aktivierung von der Eigenschaft PDFExport.TextInCurves. Darstellung des Texts durch die Kurven erhöht das Gewicht der Datei, aber das kann nützlich sein, wenn es erforderlich ist, ein schreibgeschütztes Dokument ohne Kopie des Textes und unabhängig von den Fonts vom Benutzer zu machen. Das kann auch wertvoll sein, wenn das Dokument weiter einen Druck in der Druckerei braucht. ✓ Nach Wunsche unserer Anwender wurde der Mechanismus der Erstellung von der strichpunktierte Linie in der PDF Datei bearbeitet. Es war notwendig, weil ein Druckfehler im Chrome Browser erscheint, wenn die Linien sichtbar sind aber beim Druck nicht verfügbar waren. ✓ Export ins JSON Format für den Austausch der Daten vom schon erstellten Bericht ist auch hinzugefügt. Solche Eigenschaft kann beim Export für „unendliche“ Seite sehr nützlich sein. [Core] + added new objects PolyLineObject, PolygonObject + added properties Page.UnlimitedPaperHeight, Page.UnlimitedPaperWidth * updated rotation drawing for angle of images [Designer] + added welcome window displayed on the designer startup + added splash screen showing during loading designer + added new toolbar for editing of PolyLineObject, PolygonObject + added unsaved report indication in window title + added unlimited page width and height options to PageSetup window [Exports] + added Bold, Italic simulation for "MS UI Gothic" font and similar in PDF export + added export in JSON + added property PDFExport.ShowPrintDialog for showing the print dialog after opening the PDF document + added export PolyLineObject, PolygonObject in PDF + added property PDFExport.TextInCurves for creating the PDF document without fonts + added possibility to send multiple reports as attachments in Email export + added ToMultipleFiles property in XAML export * improved export in Excel 2007 with enabled property Seamless * improved drawing of dash-dot lines in PDF export for correct printing from the Chrome - Fixed bug with
style(numbers format) in Html Layers export - fixed bug with pictures with size over the page in PDF export - fixed bug with paths in exports: XAML, SVG, PostScript, PPML - fixed bug with shadows in HTML export - fixed bug with TextObject.Underlines in HTML export - fixed bug with images hash counting in PDF export - fixed bug with hyperlinks in Trial version in PDF export - fixed bug(Header added) in PostScript export - fixed bug with fonts in PostScript export [WebReport] + added properties Left, Top, Width, Height in CustomDrawEventArgs (can be used in WebReport.CustomDraw) + added showing Print Dialog in print in PDF + added properties WebReport.DocxRowHeightIs, WebReport.PdfShowPrintDialog + added function WebReport.PrintInPdf(bool ShowPrintDialog) for setup showing the Print Dialog in PDF * usage examples of WebReport are updated and relocated to the \Demos\C#\Web folder * updated internal jQuery to v1.12.3 - fixed bug with CustomDraw event inside TableObject and Matrix - fixed bug with incorrect MIME type in inline PDF printing - fixed bug with switching Localization in ASP.NET (not MVC) [Extras] + added JsonConnectionEditor.cs in FastReport.Json connector (\Extras\Connections\FastReport.Json) [Online Report Designer] + added viewing of existing Highlights expressions in the report + added resize of component in any dimension ### Neue Version FastReport .NET - 2016.2 URL: https://www.fast-report.com/de/news/fastreport-net-2016.2 Summary: Neue Version FastReport .NET - 2016.2 Neue Version FastReport .NET - 2016.2 Jetzt ist es möglich, die Karten vom OSM Format im Bericht zu verwenden. (http://www.openstreetmap.org). Dank schichtweiser Darstellung sehen die Berichten im WEB viel mehr besser aus. Im Designer für Windows Forms kann man jetzt mehrere Felder im Datenbaum wählen und auf die Berichtszeite herausziehen. Das Interface des Online Designers ist verbessert, die Benutzers Funktionen können jetzt im Datenbaum dargestellt werden. [Programms Kern] Hinzugefügt: +die Eigenschaft Config.ReportSettings.ImageLocationRoot für die Installierung des lokalen Kern-Weges für PictureObject.ImageLocation +die Möglichkeit, Maps aus den Dateien OpenStreetMap (*.osm) herunterzuladen. Berichtigt: - Der Fehler mit der Erscheinung der Codenausnahme System.NullReferenceException nach dem Aufruf der Methode ShowPrepared   [Designer] Hinzugefügt: + die Möglichkeit den Auszeichnen und Herausziehen mehrerer Elementen aus dem Datenfenster. Berichtigt: - der Fehler mit dem Ziehen den Parameteren im Datenfenster.   [Exports] Hinzugefügt: + die Unterstützung von TextObject.TextOutline beim PDF Export. + die Unterstützung von LineHeight, ParagraphOffset beim HTML Export. + die Filtration von html тегов beim CSV Export. + die Unterstützung von der Schneiden-Funktion (TextObject.Clip) beim PDF Export. Berichtigt: - der Lückenfehler der Space-Taste vor der Zeile mit html-Tags. - der Darstellungsfehler den Zeichen in Acrobat Reader - der Packungsfehler von open type fonts beim PDF Export. - der Rahmenfehler beim PDF Export [WebReport] Hinzugefügt: + die Unterstützung vom schichtweisen HTML in WebReport (WebReport.Layers) mit bestem WYSIWYG-Parameter. + das Übergabe-Interface der Liste von den Berichtsfunktionen im Online Designer + Event der Darstellung von den Benutzers Objekten im Web oder der Darstellungsüberschreibung von den standardisierten Objekten (WebReport.CustomDraw), funktioniert nur mit dem eingeschalten WebReport.Layer. Berichtigt: - der Felder-Fehler im Container WebReport - der Fehler mit den verschiedenen Lokalisationen (WebReport.LocalizationFile) - der Fehler mit popup im Toolbar. - der Fehler mit den cookies der Anwendung in Online Designer handlers - der Fehler mit WebReport.XlsxWysiwyg   [Service]    Hinzugefügt: + neue Methoden ins Service FastReport.Service.dll (GetReportsListByPathXml,   GetReportsListXml, GetGearListXml, GetPreparedReportByID, GetReportXml, PutReport) [Online Designer] + added support of custom functions + added support of LineHeight + added support of multi-line text in TextObject + added support if Style + added painting of middle color for gradient fills + added grouping (added tab Layout) + added enable/disable of guides in toolbar + added context menu for long tap on mobile devices and tablets + added editing of Format in dialog for TextObject + added settings for panels customization in scripts/config-data.js, key customization + added absolute static path in builder + added disabling of exit dialog (property confirmBeforeExit http://dsg2014.fast-report.com:3000/#/builder/config) + added settings for entry name different of index.html + added ability of dragging the popup + added customization panel with small previews of pages and dialogs + added setting in builder for embedding in iframe and div + added resizing of customization panels + added “Code” caption for code page * changed of API settings (getReport, saveReport, makePreview) in scripts/config-data.js * changed font size band title * removed dot lines in title of band - fixed bug with drawing of popup menu out of screen - fixed bug with default value of Height in band - fixed bug with redo action on object dragging - fixed bug with zero values in properties - fixed bug with coordinates of popup on object dragging - fixed bug with report preview - fixed bug with opening of some reports - fixed bug with drawing of Font size on init ### Neue Version FastReport .NET - 2017.2 URL: https://www.fast-report.com/de/news/fastreport-net-2017.2 Summary: Neue Version FastReport .NET - 2017.2 Neue Version FastReport .NET - 2017.2 ✔ In neuer Version FastReport.Net integrierten wir einen Barcode für Pharmaindustrie – Pharmacode, der mit beliebiger Farbe erstellt werden kann ✔ Sie können jetzt auch einen Zugang zum populären Open Source NoSQL Datenlagern RavenDB direkt aus dem Bericht erstellen ✔ Nach Ihrem Wunsch fügten wir den Export ins binäre Excel Format hinzu, das als BIFF8 genannt ist ✔ FastReport.Net unterstützt jetzt von rechts nach links orientiertes Modell sowohl im Users Interface, wie auch bei der Berichtserstellung ✔ Auch sind weitere Code Optimierung und Fehlerberichtigung durchgeführt [Core] + added new barcode: Pharmacode + added new option for images: Grayscale display mode + added ability to change the color of barcodes + added caching of compiled report script - fixed bug with losing precision in totals - fixed bug with enabled ReportPage.UnlimitedHeight and ReportPage.PrintOnPreviousPage - fixed bug with null initialization in text objects - fixed bug with deserialization on saving from On-line Designer [Designer] + added support of Right-to-Left Interface (RTL) + added a new property to MSChartObject, that allows to use several series with automatic creation - fixed bug when instead of creating a new data source, editing of selected data source was opening [Preview] + added support of Right-to-Left Interface (RTL) + added mouse-relative zoom [Exports] + added export in Excel 97-2003 (BIFF8) + added ability to insert images in original resolution when exporting to PDF + in the PDF export window added ability to select a color space * improved quality of images in Excel 2007 export * changed work of export to Dropbox for using API 2.0 instead API 1.0 * added converting to Date format for Excel2007 export * improved SVG export: added embedding images in file, HasMultipleFiles option was added, improved text rendering, text with angle, underlines added - fixed bug with blank pages in Excel 2007 export - fixed bug in PDF and HTML exports with vertical position of text which height is bigger than object height - fixed bug with metafile images in RTFExport - fixed bug with Vertical Alignment = bottom in PDF export - fixed transparent images appearance in XPS export - fixed export empty images in XPS - fixed bug in preview of CSV export with small amount of rows [Extras] + added RavenDB connector \Extras\Connections\FastReport.RavenDB + added SQL Anywhere connector \Extras\Connections\FastReport.SqlAnywhere + added new report demos: Pharmacode, Box [WebReport] + added ToolbarBackgroundStyle.None (you can use WebReport.ToolbarColor instead bitmap from style) + added properties WebReport.UnlimitedWidth, WebReport.UnlimitedHeight for enable Unlimited size for all report pages (default: false - use report settings) + added property WebReport.Dialogs for enable or disable all report dialogs (default: true - enabled) - fixed bug with handling of onClick event in WebReport [Online Designer] + added HTML object + added Pharmacode barcode + added page's properties UnlimitedHeight and UnlimitedWidth + added barcode's property Color + added grayscale property support for PictureObject * resize gui elements are always shown on resize component - fixed the issue with showing context menu on touch devices on long tap - fixed dblclick bug on PictureObject - fixed bug, related to building the designer with disabled code editor - fixed DataBand dblclick bug - fixed bug, related to showing default components of Dialog in report tree on create new Dialog ### Neue Version FastReport FMX URL: https://www.fast-report.com/de/news/fastreport-fmx-2.5 Summary: Neue Version FastReport FMX Neue Version FastReport FMX Neues Release von FastReport FMX mit vielen Verbesserungen (speziell für Mac OS) ist schon fertig! Die Funktionalität von allen Mechanismen von Bericht Engine bis zur Texts Darstellung ist optimiert. In neuer Version verwendet Vorschau Fenster Doppelpufferung und erstellt nur neuen Bereich der Seite wieder. Zwei diese Features machen die Berichts Vorschau bequemer für die Anwender. Ab der Version XE7 organisiert man die Texts Darstellung mit den Methoden von FastReport FMX und vermeidet standardisierte Methode, was erhöht die Geschwindigkeit der Darstellung mehrmals! Der Berichts Engine ist auch stark verändert. Aus der Bibliothek Carbon importiert man die Funktion, die für Vergleich vom Text verantwortlich ist. Das spart die Zeit bei der Berichtserstellung unter Mac OS. Die Berechnung der Große von Objekten ist auch geändert und jetzt mit Cache von Fonts durchgeführt. Für die Komptabilität zwischen Kontext D2D und GDIP wurden auch Mechanismen der Teilung und der Berechnung der Große von Objekten geändert --------------- + New double buffered preview. It draws only objects which appear on screen (increase preview performance) + New native text rendering with font caching starts with XE7 significant increase all text rendering and calculation * Improved rendering behavior to minimize differences between GDIP and D2D contexts (when report calculates sizes with one context and print with another) * Optimized rendering of report designer controls (Inspector, workspace, Rulers) * Optimization in the report engine * Improved split mechanism + Added new faster text comparison from Carbon framework for Mac OS + Added LineSpacing support for PDF export - Changes Width and Height calculation for report objects - Bitmap preview cache is optional now (use PreviewOptions.PagesInPictureCache) - Fixed FireDac rtti module - Fixed Alias editor for RAD Studio Berlin - Fixed background image in HTML export - Fixed incorrect frames draw for report object - Fixed JPEG images export - Fixed bug with unlimited pages when preview doesn't show pages - Fixed visual behavior of few object editors - Fixed PDF export memory leaks - Fixed TfrxSysMemoView editor - Fixed report inheritance from report template in the designer ### Neue Version FastReport FMX + FastScript URL: https://www.fast-report.com/de/news/fastreport-fmx-2.4 Summary: Neue Version FastReport FMX + FastScript Neue Version FastReport FMX + FastScript Wir freuen uns, Ihnen die neue Version von FastReport FMX 2 und FastScript vorzustellen! Wir können ankündigen, dass FastReport FMX 2 und FastScript jetzt die neue Version von Embarcadero RAD Studio 10.1 Berlin unterstützen! Wir haben unsere Produkte außerdem verbessert und Fehler behoben. FastReport FMX 2: + Added support of Embarcadero RAD Studio 10.1 Berlin includes compatibility fixes for new FMX framework + Added support of HTML tags in Memo object for export filters (RTF) - Minor changes in objects draw mechanism - Fixed problem in PDF export with long text lines cuts off - Fixed bug in stretched Memo with Line spacing - Fixed bug with clipping of Memo object - Fixed bug with font scale during printing when application compiled with RAD Studio 10.1 Berlin FastScript: + Added support of Embarcadero RAD Studio 10.1 Berlin - Fixed problem with syntax memo in FMX framework - Fixed small memo leak in methods helper - Fixed Rtti declaration for some methods in FMX framework ### Neue Version FastReport Mono - 2016.1 URL: https://www.fast-report.com/de/news/fastreport-mono-2016.1 Summary: Neue Version FastReport Mono - 2016.1 Neue Version FastReport Mono - 2016.1 Neues in FastReport Mono 2016. Jetzt arbeiten FastReport .Mono und Online Report Designer gemeinsam. Alle andere letzten und modernsten Features von FastReport .Net werden auch in letzter Version von FastReport .Mono zur Verfügung gestellt. Dazu gehören die Erstellung der Dokumenten entsprechend PDF/A Standardisierung und neue Barcodes Typen Aztec, Plessey, GS1-128/EAN-128. Neue Version von FastReport .Mono mit vielen Verbesserungen und Ergänzungen erleichtert wesentlich die Erstellung von Ihren Berichten mit Framework Mono. + added support of Online Report Designer in WebReport + added support PDF/A in PDF export + added barcodes Aztec, Plessey, GS1-128/EAN-128 + added new Gauge objects + added exports in XAML, SVG, PPML, PostScript + added property CSVExport.NoQuotes in CSV export + added properties in WebReport: DesignReport, DesignScriptCode, DesignerPath, DesignerSavePath, DesignerSaveCallBack, PrintInBrowser, SinglePage + added property WebReport.XlsxSeamless for export tables without brakes in Excel 2007 export + added property WebReport.EmbedPictures (embedded pictures in HTML) + added property WebReport.DesignerLocale (sets an interface language for Online Report Designer) + added property EmbedPictures(images inside html code) in HTML export + added property WebReport.RefreshTimeout (refresh timeout in seconds, 0 – auto refresh disabled), the property useful for Dashboards + added outline for text with color selection, width and line style (property TextObject.TextOutline) + added event for drawing the custom objects in WebReport or override drawing any standard object (WebReport.CustomDraw), works only with enabled WebReport.Layer + added support layered HTML in WebReport (WebReport.Layers) with better WYSIWYG + added support of TextObject.TextOutline in PDF export + added support LineHeight, ParagraphOffset in HTML export + added html tags filtration in CSV export + added text clipping functionality (TextObject.Clip) in PDF export + added property PDFExport.ShowPrintDialog for showing the print dialog on opening the PDF document * updated internal jQuery up to v1.12.3 - fixed bug in WebReport with downloading files from IE8 in Windows XP - fixed bug with several WebReport objects in one page - fixed bug with multiline TextObject in dialogs in WebReport ### Neue Version FastReport VCL 5 URL: https://www.fast-report.com/de/news/fastreport-vcl-5.5 Summary: Neue Version FastReport VCL 5 Neue Version FastReport VCL 5 In der neuen Version von FastReport VCL 5.5 unterstützen wir neue Entwicklungsumgebung Embarcadero RAD Studio 10.1 Berlin. Außerdem, gibt es viele Features und Neuerungen in neuer Version für Lazarus. Dazu gehören Unterstützung von inneren Diagrammen (Charts), Export in PDF und einige Berichtigungen der Kompatibilität. In FastReport VCL ist die Arbeit des Bildschirms mit höher dpi Auflösung auch verbessert: + Added Embarcadero RAD Studio 10.1 Berlin support for x32 and x64 windows platforms + [Lazarus] Added export to PDF + [Lazarus] Added support of native Lazarus Chart component + Added HTML tags and line spacing support for DOCX export + Added SynPDF Export demo + Added TfrxPrintMode support in the frxClassRTTI + Improved picture cache - [Lazarus] Fixed images printing - [Lazarus] Fixed compatibility with x64 platforms - [Enterpise] Fixed CGI and ISAPI demos - [Enterprise] Fixed problem with images and dialog forms - Fixed problems (wrogn scale of Charts, Barcodes, RTF) with non dpi-aware applications with big scale factor (150% and more) - Fixed export to PDF for FCharSpacing <> 0 and HAlign = haBlock - Fixed exporting of Unicode characters to ODF for non-Unicode IDE - Fixed exporting of text with empty lines at the end to XLSX - Fixed access to resource (frc) file - Fixed empty text with HTML tags exporting to ODF - Fixed horizontal align in the ODF export - Fixed zoom after drill-down - Fixed bins' list refreshing when TfrxReport.PrintOptions.Printer changed in the designer - Fixed wrapping of the paragraph's first line with ParagraphGap - Fixed bug with page's color ant frame in the PDF export - Fixed exporting date to BIFF8 - Fixed BIFF8 export for reports with more then 1025 pages - Fixed exporting text with non-printable chars in the XLSX export - Fixed "Canvas does not allow drawing" error in the TfrxRichView - Fixed style's font for HighDPI - Fixed object's export to images if object's height or width < 1 for PDF - Fixed parent for objects with Left < 0 - Fixed haBlock alignment for RTL languages for PDF - Fixed reading confirmation for SMTP - Fixed Standart Report Wizard - Fixed restoring of preview's positions after drill-down - Fixed filenames of attachment in the e-mail export - Fixed &FNC1; usage in the Code128C and CodeEAN128C barcodes - [Fast Script] Improved FormatFloat accuracy - Fixed params in the FireDAC components - Fixed printing on high-DPI printers - Fixed numeric formatting in the XLSX export - Fixed FieldNames usage in th DBF export - Fixed Z-order for images in the HTML(Layered) export ### Neue Version von Fast Report Generator für .NET veröffentlicht URL: https://www.fast-report.com/de/news/fastreport-net-1.4-release Summary: Neue Version von Fast Report Generator für .NET veröffentlicht Neue Version von Fast Report Generator für .NET veröffentlicht Fast Reports haben die Version 1.4 von FastReport.NET veröffentlicht, einer Reporting-Lösung für Windows Forms, ASP.NET und WPF, die in Visual Studio (VS) 2005,2008 und 2010 und Delphi Prizm genutzt werden kann. Neben der Unterstützung von Visual Studio 2010 soll die neue Version über zahlreiche Änderungen verfügen. Mit Fastreport.Net sollen sich Anwendungs-unabhängige .NET Reports erzeugen lassen, so dass es als Standalone Reporting Tool genutzt werden kann. Nutzer sollen unter anderem an verschiedene Datenbanken anbinden und deren Tables nutzen oder durchsuchen können. Darüber hinaus sollen Reports Dialog-Forms zugefügt werden und so einige Parameter vor der Durchführung eines Reports abgefragt werden können. ### Neue Version von Fast Report VCL - 2021 URL: https://www.fast-report.com/de/news/release-fastreport-vcl-2021-2 Summary: Neue Version von Fast Report VCL - 2021 Neue Version von Fast Report VCL - 2021 Deutlich verbessertes Arbeiten mit Bildern - wie in Bildbearbeitungsprogrammen:  Hochwertige Vektor-SVG-Bilder in Reports  Verbesserte Bildtransparenz in verschiedenen Formaten Neue Objekte erweitern das Konzept eines "Reports":  Two-Track Pharmacode zum Gestalten und Drucken von Medikamenten- und Impfstoffverpackungen Berichtssicherheit und Datenschutz:  Jetzt werden Berichte in PDF mit einer digitalen Signatur geschützt. Sie garantiert ihre Einzigartigkeit, ermöglicht die eindeutige Feststellung der Urheberschaft und schützt sie vor Bearbeitung. Ihre Berichte entsprechen jetzt den Docflow-Standards.  Optimierung der Ressourcen:  Seitenminiaturen werden schneller gebildet Weniger Speicher für die Arbeit erforderlich ! Neues Lizenzierunsmodell: Ab März 2021 werden alle FastReport VCL-Editionen abonnementbasiert. Das bedeutet, dass Sie immer eine aktuelle Version haben werden, solange Ihr Abonnement gültig ist.  Seien Sie unter den Ersten, die die neuen Möglichkeiten von FastReport VCL in der Praxis ausprobieren! Bilder im Vektor-SVG-Format über das Standardobjekt "Picture" importieren und ausgeben (nur für Delphi). Verbessern Sie das Aussehen Ihrer Berichte! Unterstützung von digitalen Unterschriften im PDF-Export mit Unterstützung von pfx- und p12-Zertifikaten hinzugefügt. Unterschreiben Sie Ihre PDF-Dokumente in nur 3 einfachen Schritten: Fügen Sie das Objekt "Digitale Signatur" (TfrxDigitalSignatureView) hinzu, wählen Sie die Art der Signatur (versteckt, sichtbar, Bild) und unterschreiben Sie Dokumente mit Ihrem eigenen Zertifikat. Verbesserte Transparenzunterstützung für Bilder innerhalb eines Reports. Jetzt unterstützt FastReport VCL nicht nur die Farbmaske, sondern auch einen Alphakanal in der Reportvorschau, auf dem Ausdruck und beim Export, was die transparenten Bilder unterstützt. Experimenteller Bilder-Cache mit der Möglichkeit, Miniaturbilder zu erzeugen und die Gesamtbildqualität zu steuern, wurde hinzugefügt. Der neue Bild-Cache spart Speicherverbrauch und GDI-Deskriptoren. Er lädt nur eine Kopie des duplizierten Bildes (kann mit der Eigenschaft Report.PictureCacheOptions.CaсhedImagesBuildType=tbtOriginal eingeschaltet werden). Der Bilder-Cache kann für die Erzeugung von Miniaturbildern eingerichtet werden, was für ein schnelles Laden der Bilder im Vorschaufenster genutzt wird (kann mit Report.PictureCacheOptions.CaсhedImagesBuildType=tbtAtPrepare eingeschaltet werden). Die Qualität der Miniaturbilder wird über die Eigenschaften von Report.PictureCacheOptions.ThumbnailQualityReducer gesteuert und erlaubt die Einstellung der prozentualen Kompression und der Bedingungen. Darüber hinaus ist es möglich, die Gesamtqualität der Komprimierung für alle Bilder über die Eigenschaft Report.PictureCacheOptions.OriginalQualityReducer zu steuern. Diese Bilder werden für die Vorschau, den Ausdruck und den Export eines Berichts verwendet.  Neuer Barcodetyp "Two-Track Pharmacode" wurde hinzugefügt. Neues TfrxRichView-Objekt für Lazarus mit Unterstützung von Linux für das Laden von rtf-Dokumenten in einen Bericht hinzugefügt. Die Möglichkeit, den Web-Browser für das Autorisierungsfenster in Cloud-Save-Filtern (EdgeView2, CEF4Delphi) zu ersetzen, wurde hinzugefügt. Mehr Details finden Sie im  Artikel . Komplette Liste der Änderungen: Version 2021 ---------------------------- + Unterstützung des Vektor-SVG-Formats im TfrxPictureView-Objekt wurde hinzugefügt + Digitales Signatur-Objekt und digitale Signatur-Unterstützung für PDF-Export wurden hinzugefügt (Unterstützte Typen: skNone, skInvisible, skVisible, skEmpty) + Experimenteller Bild-Cache und Thumbnail-Cache wurden hinzugefügt, die über die Eigenschaften TfrxReport.PictureCacheOptions gesteuert werden + Unterstützung von Alpha-Transparenz für Exportfilter und Druck wurden hinzugefügt + Two-Track Pharmacode Barcode wurde hinzugefügt. + RichView-Objekt für Lazarus mit Linux-Unterstützung wurde hinzugefügt. + Unterstützung für externe Webbrowser-Komponenten für Autorisierungsdialog wurde hinzugefügt (CEF4Delphi, neue Edge-Schnittstellen) + Unterstützung von Windows-Umgebungsvariablen in der Client-Server-Konfigurationsdatei wie %ALLUSERSPROFILE% wurde hinzugefügt. - Skalierung der Vorschau für Thumbnails bei HighDPI wurde verbessert. - Fehler in XLSX mit Leerzeilen wurde behoben. - Druckstatus für virtuelle Drucker wurde korrigiert. - EMF-zu-SVG-Export mit SegoeUI-Schriftart wurde behoben. - Korrigierte IME-Eingabe im Syntax-Memo für eine Gruppe von mehr als zwei Symbolen - Fehler beim Clip-in EMF-nach-PDF-Export wurde behoben. - Behobener TfrxPictureView-Clip - Korrigierter Synchronisationsfehler bei Dialogformularen unter Delphi 7 CS-Komponenten - Lücken bei interaktiven Textfeldern in PDF wurden behoben. - Fehler mit der Schriftart Cambria Math im SVG/HTML-Export wurde behoben. - Korrigierte HasField-Funktion bei ausgelöster Exception - HatchBrush für Lazarus unter Linux wurde verbessert. - Abwürgen des Hauptthreads im Synchronizer #601673 wurden behoben. - Überspringen von Diagramm-Lesefehlern beim Lesen von Dateien aus anderen Versionen für TeeCharts wurden behoben. - Korrigierte PaperSizes Maximalanzahl für einige Drucker. ### Neue Version von Fast Report VCL - 2021 URL: https://www.fast-report.com/de/news/release-fastreport-vcl-2020.0 Summary: Neue Version von Fast Report VCL - 2021 Neue Version von Fast Report VCL - 2021 Deutlich verbessertes Arbeiten mit Bildern - wie in Bildbearbeitungsprogrammen:  Hochwertige Vektor-SVG-Bilder in Reports  Verbesserte Bildtransparenz in verschiedenen Formaten Neue Objekte erweitern das Konzept eines "Reports":  Two-Track Pharmacode zum Gestalten und Drucken von Medikamenten- und Impfstoffverpackungen Berichtssicherheit und Datenschutz:  Jetzt werden Berichte in PDF mit einer digitalen Signatur geschützt. Sie garantiert ihre Einzigartigkeit, ermöglicht die eindeutige Feststellung der Urheberschaft und schützt sie vor Bearbeitung. Ihre Berichte entsprechen jetzt den Docflow-Standards.  Optimierung der Ressourcen:  Seitenminiaturen werden schneller gebildet Weniger Speicher für die Arbeit erforderlich ! Neues Lizenzierunsmodell: Ab März 2021 werden alle FastReport VCL-Editionen abonnementbasiert. Das bedeutet, dass Sie immer eine aktuelle Version haben werden, solange Ihr Abonnement gültig ist.  Seien Sie unter den Ersten, die die neuen Möglichkeiten von FastReport VCL in der Praxis ausprobieren! Bilder im Vektor-SVG-Format über das Standardobjekt "Picture" importieren und ausgeben (nur für Delphi). Verbessern Sie das Aussehen Ihrer Berichte! Unterstützung von digitalen Unterschriften im PDF-Export mit Unterstützung von pfx- und p12-Zertifikaten hinzugefügt. Unterschreiben Sie Ihre PDF-Dokumente in nur 3 einfachen Schritten: Fügen Sie das Objekt "Digitale Signatur" (TfrxDigitalSignatureView) hinzu, wählen Sie die Art der Signatur (versteckt, sichtbar, Bild) und unterschreiben Sie Dokumente mit Ihrem eigenen Zertifikat. Verbesserte Transparenzunterstützung für Bilder innerhalb eines Reports. Jetzt unterstützt FastReport VCL nicht nur die Farbmaske, sondern auch einen Alphakanal in der Reportvorschau, auf dem Ausdruck und beim Export, was die transparenten Bilder unterstützt. Experimenteller Bilder-Cache mit der Möglichkeit, Miniaturbilder zu erzeugen und die Gesamtbildqualität zu steuern, wurde hinzugefügt. Der neue Bild-Cache spart Speicherverbrauch und GDI-Deskriptoren. Er lädt nur eine Kopie des duplizierten Bildes (kann mit der Eigenschaft Report.PictureCacheOptions.CaсhedImagesBuildType=tbtOriginal eingeschaltet werden). Der Bilder-Cache kann für die Erzeugung von Miniaturbildern eingerichtet werden, was für ein schnelles Laden der Bilder im Vorschaufenster genutzt wird (kann mit Report.PictureCacheOptions.CaсhedImagesBuildType=tbtAtPrepare eingeschaltet werden). Die Qualität der Miniaturbilder wird über die Eigenschaften von Report.PictureCacheOptions.ThumbnailQualityReducer gesteuert und erlaubt die Einstellung der prozentualen Kompression und der Bedingungen. Darüber hinaus ist es möglich, die Gesamtqualität der Komprimierung für alle Bilder über die Eigenschaft Report.PictureCacheOptions.OriginalQualityReducer zu steuern. Diese Bilder werden für die Vorschau, den Ausdruck und den Export eines Berichts verwendet.  Neuer Barcodetyp "Two-Track Pharmacode" wurde hinzugefügt. Neues TfrxRichView-Objekt für Lazarus mit Unterstützung von Linux für das Laden von rtf-Dokumenten in einen Bericht hinzugefügt. Die Möglichkeit, den Web-Browser für das Autorisierungsfenster in Cloud-Save-Filtern (EdgeView2, CEF4Delphi) zu ersetzen, wurde hinzugefügt. Mehr Details finden Sie im  Artikel . Komplette Liste der Änderungen: Version 2021 ---------------------------- + Unterstützung des Vektor-SVG-Formats im TfrxPictureView-Objekt wurde hinzugefügt + Digitales Signatur-Objekt und digitale Signatur-Unterstützung für PDF-Export wurden hinzugefügt (Unterstützte Typen: skNone, skInvisible, skVisible, skEmpty) + Experimenteller Bild-Cache und Thumbnail-Cache wurden hinzugefügt, die über die Eigenschaften TfrxReport.PictureCacheOptions gesteuert werden + Unterstützung von Alpha-Transparenz für Exportfilter und Druck wurden hinzugefügt + Two-Track Pharmacode Barcode wurde hinzugefügt. + RichView-Objekt für Lazarus mit Linux-Unterstützung wurde hinzugefügt. + Unterstützung für externe Webbrowser-Komponenten für Autorisierungsdialog wurde hinzugefügt (CEF4Delphi, neue Edge-Schnittstellen) + Unterstützung von Windows-Umgebungsvariablen in der Client-Server-Konfigurationsdatei wie %ALLUSERSPROFILE% wurde hinzugefügt. - Skalierung der Vorschau für Thumbnails bei HighDPI wurde verbessert. - Fehler in XLSX mit Leerzeilen wurde behoben. - Druckstatus für virtuelle Drucker wurde korrigiert. - EMF-zu-SVG-Export mit SegoeUI-Schriftart wurde behoben. - Korrigierte IME-Eingabe im Syntax-Memo für eine Gruppe von mehr als zwei Symbolen - Fehler beim Clip-in EMF-nach-PDF-Export wurde behoben. - Behobener TfrxPictureView-Clip - Korrigierter Synchronisationsfehler bei Dialogformularen unter Delphi 7 CS-Komponenten - Lücken bei interaktiven Textfeldern in PDF wurden behoben. - Fehler mit der Schriftart Cambria Math im SVG/HTML-Export wurde behoben. - Korrigierte HasField-Funktion bei ausgelöster Exception - HatchBrush für Lazarus unter Linux wurde verbessert. - Abwürgen des Hauptthreads im Synchronizer #601673 wurden behoben. - Überspringen von Diagramm-Lesefehlern beim Lesen von Dateien aus anderen Versionen für TeeCharts wurden behoben. - Korrigierte PaperSizes Maximalanzahl für einige Drucker. ### Neue Version von FastCube .NET - Integration von Business Graphics URL: https://www.fast-report.com/de/news/fastcube-net-2021.1 Summary: Neue Version von FastCube .NET - Integration von Business Graphics Neue Version von FastCube .NET - Integration von Business Graphics Wir haben FastReport Business Graphics-Erweiterung hinzugefügt. Das ist das neue Produkt für die interraktive Visualisierung von Daten aus Anwendungen.   Mehr zu FastReport Business Graphics für .NET Die Komponente ListDataSet wurde hinzugefügt, die das Laden von Daten in den Cube mit Hilfe von Windows Forms Data Binding ermöglicht. Es ist jetzt möglich, Daten in den Cube mit Hilfe von Windows Forms komplexer Datenbindung zu laden, die in Standard-Steuerelementen verwendet wird: DataGridView, ListView und Combobox. Complex Data Binding lädt Daten über die BindingSource-Komponente, die als Proxy agiert (weitere Informationen finden Sie im MSDN). Hier ist ein kleines Beispiel für das Laden von Daten aus List<>. 1. Deklarieren Sie eine ProductInfo-Klasse ``` public class ProductInfo { public String Name { get; set; } public String Group { get; set; } public int Count { get; set; } } ``` 2. Erstellen Sie eine Liste von ProductInfo-Datensätzen ``` List CreateProducts() { return new List { new ProductInfo {Group = "Bakery products", Name = "Ciabatta", Count = 3}, new ProductInfo {Group = "Bakery products", Name = "Bread", Count = 5}, new ProductInfo {Group = "Bakery products", Name = "Croissant", Count = 1},   new ProductInfo {Group = "Alcohol", Name = "Wine", Count = 6}, new ProductInfo {Group = "Alcohol", Name = "Whiskey", Count = 2}, new ProductInfo {Group = "Alcohol", Name = "Beer", Count = 5},   new ProductInfo {Group = "Dairy products", Name = "Yoghurt", Count = 5}, new ProductInfo {Group = "Dairy products", Name = "Milk", Count = 4} }; } ```  3. Cube und Slice konfigurieren ``` private void Form1_Load(object sender, EventArgs e) { // configure data source listDataSet1.DataSource = CreateProducts(); // load data to Cube cube1.Active = true; // configure Slice slice1.YAxisContainer.AddSliceField(slice1.SliceFields.GetFieldByName("Group")); slice1.YAxisContainer.AddSliceField(slice1.SliceFields.GetFieldByName("Name")); var measure = new FastReport.Olap.Slice.MeasureField(slice1, FastReport.Olap.Types.AggregateFunction.Sum, slice1.SliceFields.GetFieldByName("Count")); slice1.MeasuresContainer.AddMeasure(measure); slice1.XAxisContainer.AddMeasuresField(); } ``` Hier ist das Ergebnis: Das vollständige Beispiel befindet sich in Demos\C#\DataBindings. Weitere Änderungen: - Menüpunkt "Kopieren" zum Kontextmenü von XAxisZone und YAxisZone der Komponente SliceGrid wurde hinzugefügt. Der Menüpunkt kopiert die Beschriftung des ausgewählten Knotens in die Zwischenablage. - Einfügen aus der Zwischenablage in einer Popup-Liste führt eine Suchoperation aus. - Doppelklick im Popup-Filter einer Dimension führt die SliceGrid-Positionierung auf das angeklickte Element aus. ### Neue Version von FastCube .NET – 2020.1 URL: https://www.fast-report.com/de/news/fastcube-net-2020.1 Summary: Neue Version von FastCube .NET – 2020.1 Neue Version von FastCube .NET – 2020.1 ASP.NET Core-Paket wurde hinzugefügt Ab dieser Version kommt die Unterstützung von ASP .Net Core zusätzlich hinzu. Zwei interaktive Web-Steuerelemente sind zur Verwendung bereit: WebSliceGrid und WebCubeGrid (SliceGrid und CubeGrid für Web). ONLINE DEMO Markirung der Messzellen In dieser Version haben wir die Fähigkeiten von FastCube .Net zum Markieren von Zellen deutlich verbessert. Wir fügten neue Highlight-Klassen hinzu, verbesserten Klassen, die wir vorher hatten und korrigierten Fehler. * Klasse TopHighlight - hebt die meisten und die wenigsten Zellen hervor * AverageHighlight - hebt Zellen hervor, die mit dem Durchschnitt verglichen werden * UniqueHighlight - hebt wiederholbare und einzigartige Zellen hervor * ExpressionHighlight - hebt Zellen hervor, die Ausdrücken entsprechen * Wir haben auch die Hervorhebung von Balkendiagrammen (Klasse ContinuousHighlight) verbessert: jetzt können negative und positive Werte in einem anderen Stil und auf verschiedenen Seiten der Achse gezeichnet werden. Weitere Details und Anwendungsbeispiele finden Sie in unserer aktualisierten FastCube .Net-Dokumentation.  Speichern in Clouds Wir haben Unterstützung für das Speichern von Würfeln, Schnitten und Exporten in Google Drive, DropBox und FTP hinzugefügt. Andere wichtige Änderungen * Das Menü "Exportieren" wurde mit dem Menü "Speichern" in der SliceGridToolBar und der CubeGridToolBar zusammengelegt. * Highlight-Klassen wurden in den FastReport.Olap.Highlight-Namensraum verschoben * Großes Refactoring des ContinousHighlight mit Aufhebung der Kompatibilität: Vorher: ContinuousHighlightValueType enum hatte BoundByRow, BoundByCol, PercentByRow, PercentileByCol, PercentileByRow, PercentileByCol Elemente. Jetzt: Diese Elemente wurden durch Bound-, Percent- und Percentile-Elemente ersetzt. Neues Enum HighlightScanDirection und die dazugehörige Eigenschaft ScanDirection hinzugefügt gemeinsam für alle Highlight-Typen mit den Elementen Auto, Rows und Columns. Neue Speicherungen werden in der alten Version und in der aktuellen Version von FastCube VCL 2 nicht korrekt funktionieren. Effekt: Vereinfachung des Highlight-Setups durch reduzierte Combobox-Listen. Auto-Element passt für die meisten Fälle und bricht das Highlight nicht ab (wie vorher) nach "Measures" Feld von den Zeilen in die Spalten verschieben und umgekehrt. Fehler * Fehler bei der Operation "In die Zwischenablage kopieren" der SliceGrid-Datenzonenzellen wurde behoben. * Fehler bei der Diagrammerstellung wurde korrigiert. * Fehler beim Schließen des übergebenen Streams innerhalb der Methode Cube.Save(Stream) wurde behoben. * Fehlerkorrektur beim Export in das XLS-Format. ### Neue Version von FastCube VCL URL: https://www.fast-report.com/de/news/fastcube-vcl-2.6 Summary: Neue Version von FastCube VCL Neue Version von FastCube VCL Version 2.6. In der neuen Version sind neue Eigenschaften hinzugefügt, die für die Einstellungen vom Benutzers Interface verantwortlich sind. Durch diese Eigenschaften kann das Arbeitsschema vom Interface beschränkt und gesperrt werden. Jetzt sind drei Typen von Beschränkungen realisiert: - zrDontMoveItems - das Verbot, die Liste von den Felder aus der bestimmten Datenband zu korrigieren. Beim Aktivieren dieser Eigenschaft hat der Anwender keine Möglichkeit, die Felder aus dem bestimmten Datenband hinzuzufügen, zu löschen und umzustellen. - zrDontShowPopupMenu - das Verbot des Aufrufs vom Kontext-Menü im bestimmten Datenband. - zrDontEditItemProperties – das Verbot des Aufrufs vom Editor den Eigenschaften oder vom Feld aus diesem Datenband. Gleichzeitig kann man mehrere Sperrungen einsetzen. Es gibt jetzt eine Möglichkeit, die Veränderung von der Felder Liste mit der Hilfe von den Eventen der Komponente TfcxSlice zu kontrollieren: -OnBeforeRemoveSliceFieldFromRegion: TfcxSliceFieldRegionChange – der Aufruf vor dem Löschen des Feldes vom Band. -OnBeforeAddSliceFieldToRegion: TfcxSliceFieldRegionChange – der Aufruf vor dem Hinzufügen des Feldes in den Band. -OnAfterAddSliceFieldToRegion: TfcxSliceFieldRegionChanged - der Aufruf nach dem Hinzufügen des Feldes in den Band. TfcxSliceFieldRegionChange = procedure(ASliceFieldName: String; ARegionOfField: TfcxRegionOfField; var AAllow: Boolean) of Object; TfcxSliceFieldRegionChanged = procedure(ARegionFieldIndex: Integer; ARegionOfField: TfcxRegionOfField) of Object; Der Event OnBefore* erlaubt die Position mit dem Feld ASliceFieldName im Band ARegionOfField durch die Einstellung von AAllow in False abzubrechen. Die Arbeit mit den Formaten von den Slice Felder ist berichtigt. Jetzt erneut die Funktion von Formatveränderung für die Slice Felder die Kreuz-Tabelle sofort und ruft keine Formatveränderung von anderen Feldern mit dem gleichen Daten Typ auf. Zusätzlich kann das Format von den Slice Feldern ins Schema gespeichert und aus dem erneut werden Die neue Eigenschaft vom Anzeiger ist hunzugefügt: TfcxMeasureField.ChangeNullToZero: boolean Bei der Einstellung dieser Eigenschaft in True werden leere Zellen vom Anzeiger (die Zellen ohne Detaillierung) mit dem Wert 0 angezeigt Für mehrere Informationen sehen Sie die ganze Liste von Veränderungen. ### Neue Version von FastCube VCL 2.11 URL: https://www.fast-report.com/de/news/fastcube-vcl-2.11 Summary: Neue Version von FastCube VCL 2.11 Neue Version von FastCube VCL 2.11 Unterstützung von Rad Studio 10.4 ist hinzugefügt Startet von dieser Version unterstützen wir Rad Studio 10.4. Zeilen Hervorheben der Measures In dieser Version verbreiteten wir sehr stark die Möglichkeiten von FastCube VCL fürs Hervorheben der Zeilen. Hinzugefügt sind neue Hervorheben Klassen, verarbeitet sind schon existierte Klassen und einige Bugs sind berichtigt. Klasse TfcxTopHighlight – Hervorheben von kleinsten und größten Werten der Zeilen Klasse TfcxAverageHighlight – Hervorheben der Zeilen ausgehend durchschnittlicher Werte Klasse TfcxUniqueHighlight – Hervorheben von wiederholenden und einzigartigen Werten Klasse TfcxExpressionHighlight – Hervorheben der Zeilen nach der Formel-Bedingungen Verbessert sind die Möglichkeiten von Histogramme (Klasse TfcxContinuousHighlight): negative und positive Werten können mit verschiedenem Still und zweiseitig von der Asche dargestellt werden. Wesentliche Veränderungen Wesentliche Refactoring von TfcxContinousHighlight mit der Kompatibilität Verlust Früher: TfcxContinuousHighlightValueType enthielt die Elemente BoundByRow, BoundByCol, PercentByRow, PercentByCol, PercentileByRow, PercentileByCol.  Jetzt: Diese Elemente sind mit Bound, Percent, Percentile ersetzt. Zusätzlich ist der Typ TfcxHighlightScanDirection hinzugefügt und entsprechende Eigenschaft ScanDirection ist die gleiche für alle Typen von Highlight mit den Werten Auto, Rows, Columns. Neue Speicherungen werden nicht in alter Version korrekt funktionieren.  Ergebniss : Vereinfachung des Hervorhebens der Einstellungen, weil Drop-Down Liste weniger Varianten haben, das Wert Auto passt für die Mehrheit der Fälle und die Eigenschaft „Highlight“ wird beim Übergang des Felds „Measures“ aus Spalten zu den Zeilen und umgekehrt arbeitsfähig. Bugs Korrigiert ist der Bug bei der Bearbeitung der Felder TDate, TTime, TDateTime для Lazarus/FPC Korrigiert ist der Bug vom Ausgang außer Array Grenze in TfcxSliceGrid + Hinzugefügt ist die Unterstützung von RAD Studio 10.4 + Hinzugefügt ist die Hervorheben Variante relativ durchschnittlicher Werten (TfcxAverageHighlight). + Hinzugefügt ist die Hervorheben Variante von der kleinsten und größten N Werten der Zellen (TfcxTopHighlight). + Hinzugefügt ist Hervorheben Variante der wiederholenden und einzigartigen Werten der Zellen (TfcxUniqueHighlight). + Hinzugefügt ist Hervorheben Variante der Zellen nach der Formeln Bedingungen (TfcxExpressionHighlight). + Hinzugefügt sind die Einstellungen für die Darstellung der negativen Werten für ContinuousHighlight, wenn Kind = ContinuousHighlightKind.BarChart + Hinzugefügt ist das Event TfcxCustomToolbar.BeforeDialogExecute * Wesentlicher Refactoring TfcxContinousHighlight mit dem Kompatibilität Verlust - Berichtigt ist der Bug für Felder Bearbeitung TDate, TTime, TDateTime для Lazarus/FPC - Berichtigt ist der Bug des Ausgangs aus der Array Grenze in TfcxSliceGrid ### Neue Version von FastReport .NET - 2016.4 URL: https://www.fast-report.com/de/news/fastreport-net-2016.4 Summary: Neue Version von FastReport .NET - 2016.4 Neue Version von FastReport .NET - 2016.4 Neue Version von FastReport .NET 2016.4 ist verfügbar!  ✔ Das Objekt WebReport unterstützt jetzt interaktive Funktionen: Arbeit mit Bookmarks, Hyperlinks, Links auf detaillierten Bericht, Links auf detaillierte Berichtsseite, drill-downs. Hinzugefügt ist auch die Unterstützung vom onClick-Event bei der Darstellung des Berichts im Web-Browser. ✔ Im Export gibt es auch eine PDF Erstellung entsprechend polygraphischem Standard PDF/X-3 mit der Unterstützung von Farbe Profilen für den Druck. ✔ Fast Report hat eine neue Möglichkeit, Daten aus Sharepoint/Office365 zu bekommen und die bei der Berichtserstellung zu verwenden. [Core] + added new HtmlObject for using in the WebReport or HTML export + added event Report.CustomCalc for custom data processing - fixed issue with incorrect assembly loading in report script [Designer] + added TextOutline editor - fixed bug with disappearing of part PolyLineObject, PolygonObject after preview [Exports] + added compliance with PDF/X-3 in PDF export + added new property PDFExport.PDFCompliance + added property PDFExport.ColorProfile for using in PDF/X-3 compliance mode + added support of export pictures with lossless compression in PDF export + added property PDFExport.ImageLossless + added IsScrolled property in XAML export * depercated properties: PDFExport.PdfA, PDFExport.PdfACompliance) - fixed bug with html tags in Excel 2007 export - fixed bug with wrong format of negative value of cell with CustomFormat in Excel 2007 export - fixed bug with line-height in HtmlObject in HTML export - fixed bug with skipping sequences spaces in TextObject for Excel2007 and HTML exports - fixed bug with handling control symbols in Excel2007Export - fixed bug with encryption in PDF export - fixed bug with validation of PDF/A compliance with hyperlinks in report [WebReport] + added hyperlinks on bookmarks functionality (works only with Layers = true) + added hyperlinks on page number functionality (works only with Layers = true) + added click event handler functionality (works only with Layers = true) + added detailed reports - hyperlinks on hidden report page or report file (works only with Layers = true) + added new property WebReport.ShowTabCloseButton (default value: false) + added new property WebReport.TabPosition (default value: TabPosition.InsideToolbar) + added new example for Single Page Application \Demos\C#\Web\SPADemo * improved memory consumption * improved caching of reports - fixed bug with downloading in Android - fixed bug in WebReport with CacheDelay in MVC applications - fixed bug with URLEncoded Cookies in Online Designer call-back - fixed bug with null ID in MVC - fixed bug with skipping lead spaces in TextObject - fixed bug with page breaks on printing from browser [Extras] + added connector SharePoint/"Office 365" \Extras\Connections\FastReport.SharePoint * updated German resources ### Neue Version von FastReport .NET - 2020.1 URL: https://www.fast-report.com/de/news/fastreport-net-2020.1 Summary: Neue Version von FastReport .NET - 2020.1 Neue Version von FastReport .NET - 2020.1 Die neue Version von FastReport.NET 2020.1 bietet nun die Möglichkeit, Text- und Bilddateien per Drag & Drop in den Designer zu ziehen. Dabei werden die entsprechenden Objekte auf der Berichtsseite erstellt.  Sie können auch Text oder ein Bild aus der Zwischenablage in den Bericht einfügen.  Es ist auch möglich, das Exportmenü anzupassen.   In WebReport können Sie nun die Exportparameter ändern, indem Sie das entsprechende Ereignis hinzufügen. Version 2020. 1 --------------- [Engine] + Die Ereignisse für die Schriftverwaltung wurden hinzugefügt.  Weitere Informationen finden Sie im neuen Demo-Programm unter: .\Demos\C#\FontHandlersExportToPDF + Die Möglichkeit, die Anzahl der Dezimalstellen für Zahlen-, Geld- und Prozentformate bei Verwendung der Systemeinstellungen zu ändern, wurde hinzugefügt. + Die Eigenschaft "SplitRows" für Matrixobjekt wurde hinzugefügt.  Standardmäßig ist sein Wert „False“ und in diesem Fall werden die Zeilen mit den gleichen Werten zusammengeführt.  Wenn „True“ - dann werden die Zeichenketten aufgeteilt (wie in TableObject). - Es wurde der Fehler behoben, der entschied bei dem Versuch, DBNull in eine leere Zeichenkette zu konvertieren, wenn ConvertNulls deaktiviert ist. - Es wurde der Fehler behoben, wenn die PageFooter mit aktiviertem PrintOn=LastPage auf der vorletzten Seite angezeigt wurde. [Designer] + Drag & Drop von Bildern in den Formaten png, jpeg, jpg, gif, ico, bmp, tif, tiff, emf, wmf und Textdateien im txt- und rtf-Format sind hinzugefügt. + Nun ist es möglich, Text und Bild aus der Zwischenablage in die Seite einfügen. + Die Möglichkeit der Erstellung einer neuen Berichtsseite wurde hinzugefügt: Schaltfläche "+" im Seitenfenster, Doppelklick auf den freien Platz im Seitenfenster, Drücken der Tastenkombination Strg+N. - Es wurde ein Fehler behoben, wenn versucht wurde, einen falschen RowSpan-Wert für die Matrixobjektzelle einzustellen. - Es wurde der Fehler behoben, der beim Versuch, einen falschen RowSpan-Wert für die Matrixobjektzelle einzustellen, auftrat. - Der Fehler beim Zurücksetzen von Farbe, Breite und Stil im Boundary Editor wurde behoben. - Der Fehler beim Ändern der Größe von PolyLineObject/PolygonObject, das mit Strg+Button kopiert wurde, wurde behoben. - Fehler beim inaktiven Kontextmenü "Anzeigemodus" eines SVG-Objekts wurde behoben. - Der Fehler wurde behoben, wenn es unmöglich war, einen angehängten Bericht zu löschen, wenn die zugehörige Seite gelöscht wurde. - Der Fehler wurde behoben, wenn die Schaltflächen im Abschnitt "Panels" der Registerkarte "View" nicht der Sichtbarkeit der bestimmten Fenster entsprachen. [Preview] + Editor für Exportmenüs wurde hinzugefügt. > Der neue Editor ist in den Einstellungen der Benutzeroberfläche verfügbar; Sie können das Export- oder Exportmenü ausblenden.  * Jetzt ist das Menü mit den Datenquellen im Texteditor im Vorschaufenster ausgeblendet.  * Die Schaltfläche "Seite löschen" im Vorschaufenster ist nun inaktiv, wenn der vorbereitete Bericht aus einer Seite besteht. [Exports] + Die Möglichkeit zum Teilen von Seiten im XML-Export wurde hinzugefügt. + Die Unterstützung für die Padding-Eigenschaft für Textobjekte in Word2007 hinzugefügt. * Jetzt im PDF-Export mit InteractiveForms = true-Schriften werden nicht gespeichert, wenn es keine editierbaren Elemente im Bericht gibt. - Der Fehler beim Export eines mehrseitigen Berichts nach XML wurde behoben. - Der Fehler im PDF-Export wurde behoben, der zu einer fehlerhaften Dateierstellung bei aktivierten EmbeddingFonts- und InteractiveForms-Eigenschaften führte. - Die Hintergrundanzeige des Barcodeobjekts beim Export nach Pdf und HTML wurde korrigiert. - Der Fehler bei der Anzeige von Shape, Barcode, Polygon, etc. mit Füllung (oder Hintergrund) in allen tabellarischen Exporten wurde behoben. [WebReport] + Die Möglichkeit, Exportparameter zu ändern, wurde hinzugefügt.  Abonnieren Sie dazu das Ereignis ExportParameters in WebReport.Report.  - Falsche Höhe und Breite wurden für gemischte Berichte (Landscape & Portrait) korrigiert.  - Fehlerhafte Hintergrundanzeige für ShapeObject wurde behoben. - Das Fehlen einer nicht standardmäßigen Füllung (Hatch, LinearGradient, etc.) in ShapeObject wurde behoben. [.Net Core] - Der Fehler mit dem SQLite-Plugin wurde behoben, wenn die Datenbank Nullwerte hat.  - Der Fehler bei der Einbettung von Schriften in Dokumente wurde behoben. ### Neue Version von FastReport .NET - 2020.2 URL: https://www.fast-report.com/de/news/fastreport-net-2020.2 Summary: Neue Version von FastReport .NET - 2020.2 Neue Version von FastReport .NET - 2020.2 Die neue Version von FastReport .NET 2020.2 unterstützt den PDF/A-1a-Standard beim PDF-Export und hat einen neuen Export nach DXF hinzugefügt. Jetzt gibt es eine Version von FastReport .NET Core, die mit Core 3 und Core 3.1 kompatibel ist. Auch in FastReport.NET Core wurde Unterstützung für MSChart hinzugefügt. Darüber hinaus wurden dem Online-Designer für FastReport.NET Core die Funktionen hinzugefügt. --------------- [Engine] + added property Report.Tag + added "AutoEncode" property for DataMatrix Barcode. By default, if true, it encodes the &1; as a symbol of FNC1. If false, the character is encoded as is. + added "OnScriptCompile" event that called when report's script compiles + added new TextQuality: SingleBitPerPixel and SingleBitPerPixelGridFit + added an ability to split table rows + added RUB, BYN and BBYN currencies to ToWordsRu function - fixed a bug when shifting SubReport to a new page didn't work correctly - fixed a bug when the data footer break away from the data when property "keep with data" is enabled - fixed generation of barcode GS1-128 - fixed public API for editing exports menu in PreviewControl - fixed incorrect value of Total, if it refers to another Total - fixed a bug where the table was not transferred correctly - fixed a bug with parsing xml with hexidecimal values, e.g. "To create it: " [Designer] + added backlighting of the band that the selected element will located on when dragging is completed + added an ability to open subreport page by double-clicking on its object + added an ability to change fonts for Code Tab, Text Editor and Expression Editor + added an ability to replace pictures with drag & drop + added an ability to open report file by drag & dropping + added an ability to scroll the report horizontally while holding down the Shift key * when changing the window, the context menu now closes * now during autosave the selected item from the properties window is not reset - fixed a bug when changing parameters after adding a line caused exception - fixed a bug with creating the Intelligent Mail barcode - fixed a bug with JSON-connection in Connection Wizard - fixed a bug with incorrect drawing of horizontal guides - fixed a bug when the width of objects was reset after closing Preview with enabled right anchor [Preview] + added "About" button in toolbar of preview window + added an ability to scroll the report horizontally while holding down the Shift key [Exports] + added export to DXF + added support of PDF/A-1a standard in PDF export - fixed a bug with printing of layered Html export, when the report contains pages with landscape orientation - fixed a bug where exporting to EMF called an exception - fixed display of objects with negative height/width for layered Html-export [.Net Core] + added version of FastReport for Core 3/3.1 for Windows-only + added MSChart support + added Functions in Online Designer * updated a nuget dependencies to release versions instead of previews * changed access modifier PrintPdf and PrintHtml * added a new way for saving reports in online-designer: DesignerSaveCallBack is obsolete, please use DesignerSaveMethod instead ### Neue version von FastReport .NET - 2020.3 URL: https://www.fast-report.com/de/news/fastreport-net-2020.3 Summary: Neue version von FastReport .NET - 2020.3 Neue version von FastReport .NET - 2020.3 In dem neuen FastReport.NET 2020.3 haben wir eine neuartige QR-Methode hinzugefügt, nämlich den  Swiss QR Code. Es gibt neue Eigenschaften wie VisibleExpression, PrintableExpression und ExportableExpression. Diese Eigenschaften ermöglichen es, Werte der Eigenschaften sichtbar, ausdruckbar und exportierbar in Abhängigkeit von bestimmten Bedingungen zu konfigurieren. Auch das Speichern von integrierten Schriften beim PDF-Export wurde optimiert, wodurch die Dateigrößen deutlich reduziert werden konnten. Darüber hinaus können FastReport.Core und FastReport.OpenSource jetzt auch auf Unix-Systemen kompiliert werden. Die Unterstützung des .NET-Frameworks 2.0 wurde eingestellt. Version 2020.3 --------------- [Engine] + eine neue Art von QR-Code hinzugefügt, Swiss QR Code + die Eigenschaft MatrixObject.PrintIfEmpty wurde hinzugefügt, mit der die Matrix angezeigt werden kann, auch wenn sie leer ist + die Eigenschaft Page.LastPageSource wurde hinzugefügt, die es ermöglicht, den Druckerschacht für den Druck der letzten Seite des Berichts zu konfigurieren + die Eigenschaften SichtbarerAusdruck, DruckbarerAusdruck und ExportierbarerAusdruck wurden hinzugefügt > diese Eigenschaften erlauben es, den Wert der Eigenschaften sichtbar, druckbar und exportierbar einzustellen, abhängig von der Erfüllung der angegebenen Bedingung * eingestellte Unterstützung von .NET Framework 2.0 - der Fehler bei der Sichtbarkeit von Textobjekten wurde behoben, wenn der Parameter Highlight.Visible aktiviert ist - der Fehler bei der Arbeit mit der Eigenschaft PrintableExpression wurde behoben [Designer] - der Fehler wurde behoben, bei dem Drag&Drop in die Matrix nicht funktionierte - Fehler beim Öffnen von DevExpress-Dateien wurde behoben, der zu System.FormatException führte - der Fehler "Count cannot be less than zero." beim Öffnen von DevExpress-Dateien wurde behoben - der Fehler beim Verschieben von Objekten im Berichtsbaum bei gedrückter Strg-Taste wurde behoben - der Fehler mit dem Dropdown-Menü der Farbauswahl-Schaltfläche wurde behoben [Preview] - der Fehler bei der Einstellung der Exportliste mit Config.PreviewSettings wurde behoben - der Fehler wurde behoben, bei dem der Bericht nur in der Box gespeichert werden konnte, unabhängig von der im Menü gewählten Wolkenspeicherung [Exports] * optimierte Speicherung von eingebetteten Schriften beim PDF-Export. Die Dateigröße hat sich deutlich verringert - der Fehler mit falschen Einrückungen beim Export nach OpenOffice Writer wurde behoben - der Fehler mit falscher Bildgröße beim Export nach RTF wurde behoben - der Fehler mit Seitenumbrüchen beim Export in OpenOffice Writer wurde behoben - der Fehler mit Absatzversatz beim Export in OpenOffice Writer wurde behoben - der Fehler mit Textbegründung bei Exporten in OpenOffice Writer und OpenOffice Spreadsheet wurde behoben - der Fehler im Excel-Export (BIFF8) behoben [WebReport] - der Fehler beim Laden von Ressourcen im WebReport (OpenSource-Version) wurde behoben - der Fehler mit der Bildskalierung in WebReport wurde behoben - der Fehler mit Zeitüberschreitungs-Ausnahme beim Speichern eines Berichts im Online-Designer wurde behoben - den Fehler bei Aufrufen von WebReport.ExportPdf, WebReport.ExportCsv, WebReport.ExportRtf usw. wurde behoben [.Net Core] * der Kompilierungsfehler FastReport.Core und FastReport.OpenSource auf Unix-Systemen wurde behoben (wegen net40 in targetFrameworks) - einige API-Fehler im Berichtscode, die in System.Drawing.Primitives verfügbar sind, wurden behoben - defekte Schaltfläche "Öffnen nach Export" in FR.Core3 wurde behoben ### Neue Version von FastReport .NET - 2021.3 URL: https://www.fast-report.com/de/news/fastreport-net-2021.3 Summary: Neue Version von FastReport .NET - 2021.3 Neue Version von FastReport .NET - 2021.3 Die neue Version von FastReport .NET - 2021.3 implementiert HiDPI-Unterstützung in der Demo-Anwendung. Es wurden Razor-Komponenten zur Einbettung in eine Blazor-Server-Anwendung hinzugefügt. Es gibt neue Exporte nach XODT und XODS. Die FastReport OpenSource Version hat jetzt die Möglichkeit, DevExpress, List and Label und SQL Server Reporting Services Berichte zu importieren. die Version 2021.3 --------------- [Engine] + die HiDPI-Unterstützung zur neuen Demo-Anwendung wurde hinzugefügt - der Fehler wurde behoben, bei dem die Seitengrößen nach der Vorschau zurückgesetzt werden konnten - der Fehler wurde behoben, bei dem das Drucken eines RichText-Objekts bei großer Windows-Skalierung nicht korrekt erfolgte - der Fehler wurde behoben, der zu System.ArgumentOutOfRangeException in Substring-Funktionen führte - der Fehler wurde behoben, der beim Zeichnen von PictureObject mit einigen Bildern zu einer System.ArgumentException führte - der Fehler wurde behoben, bei dem Tabellen nicht angezeigt wurden, wenn eine Verbindung zu Advantage Database über ODBC hergestellt wurde - der Fehler wurde behoben, bei dem RichText außerhalb der Seite angezeigt wurde - der Fehler beim Neukompilieren des Report-Skripts wurde behoben, der mit ChildBand interagierte [Designer] + das Verhalten des Seitenpanels verbessert - Fehler mit Index of Bounds im SQLBuilder im Designer behoben - der Fehler, bei dem die Dialogseite nicht geöffnet wurde, wenn sie ein GridControl hatte, wurde behoben - der Fehler im Rechts-nach-Links-Modus wurde behoben - den Fehler bei der Skalierung des Dialogformulars wurde behoben [die Vorschau] - der Fehler wurde behoben, bei dem der Prozentsatz der Skalierung in der Vorschau falsch angezeigt werden konnte [ die Exporte] + Export nach XODT wurde hinzugefügt + Export nach XODS wurde hinzugefügt - der Bug beim Export nach ODF wurde behoben, wenn das Dokument nicht in MyOffice geöffnet wurde - der Bug beim Schließen von Zellen mit RichText beim Export nach RTF wurde behoben - der Bug beim Exportieren von Objekten mit dem Rendering-Modus HtmlParagraph wurde behoben - der Bug beim Exportieren von Zeilen mit Pfeilkappe beim Ebenenexport nach Word 2007 wurde behoben - der Bug beim Exportieren von Linien mit Pfeilspitze im Export nach PowerPoint 2007 wurde behoben [der WebBericht] + Razor-Komponenten zur Einbettung in eine Blazor-Server-Applikation wurden hinzugefügt. Sie ist Teil des FastReport.Web-Pakets und befindet sich unter dem Pfad: FastReport.Web.Blazor.Components. Es wird empfohlen, die Komponente WebReportContainer zu verwenden, um den Bericht anzuzeigen. - der Fehler in WebReport Core mit SinglePage und Dialogen wurde behoben - der Fehler bei der Kompilierung von VB .NET-Skripten wurde behoben, der zu einem Fehler "Module cannot be generic" führte [.NET Core] * Paketreferenz Microsoft.CodeAnalysis auf Version 3.3.1 wurde aktualisiert * FastReport.Compat-Abhängigkeit auf Version 2021.1.4 wurde aktualisiert - der Fehler mit fehlerhaften Bildern im PDF-Export unter Linux wurde behoben - der Fehler wurde behoben, der zu System.NullReferenceException beim Aufruf von CsvDataConnection.CreateAllTables() führte [Extras] - der Bug beim fehlerhaften Laden von Tabellennamen aus ClickHouse wurde behoben ### Neue Version von FastReport Business Graphics .NET 2025.1 URL: https://www.fast-report.com/de/news/business-graphics-2025.1 Summary: Wir präsentieren Ihnen die neue Version von FastReport Business Graphics .NET 2025.1, die wichtige Fehlerbehebungen und Verbesserungen enthält. Wir präsentieren Ihnen die neue Version von FastReport Business Graphics .NET 2025.1, die wichtige Fehlerbehebungen und Verbesserungen enthält. Wir präsentieren Ihnen die neue Version von FastReport Business Graphics .NET 2025.1, die wichtige Fehlerbehebungen und Verbesserungen enthält. Dieses Update verbessert die Stabilität der Bibliotheken, die Genauigkeit der Elementanzeige und behebt Probleme im Zusammenhang mit Datenänderungen in Diagrammen. Wichtigste Änderungen in Version 2025.1 Behebung eines visuellen Fehlers bei der Anordnung von Elementen bei einer nicht standardmäßigen DPI  Die neue Version behebt das Problem mit der Anzeige von Elementen auf Formularen bei Verwendung von nicht standardmäßigen DPI-Werten (dots per inch). Jetzt wird die Benutzeroberfläche korrekt skaliert, wobei die genaue Position aller Elemente erhalten bleibt, was die Qualität der Anzeige auf hochauflösenden Monitoren verbessert. Korrigieren der Positionen der Elemente im Gantt-Diagramm-Bearbeitungsformular  Im Gantt-Diagramm-Bearbeitungsformular wurden Ungenauigkeiten bei der Positionierung von Elementen korrigiert. Diese Aktualisierung stellt sicher, dass die Steuerelemente im Formular jetzt korrekt angezeigt werden und reagieren, was die Anpassung des Diagramms vereinfacht. Korrigieren der Positionen der Elemente im Gantt-Diagramm-Bearbeitungsformular  Bisher gab es ein Problem, bei dem Texte in Gantt-Diagrammen falsch oder gar nicht angezeigt wurden.  In der neuen Version wurde dieser Fehler behoben und Texte werden in den Diagrammen nun korrekt angezeigt, was die Lesbarkeit und Aussagekraft der Diagramme verbessert. Behebung eines Fehlers beim Ändern von Werten im Gantt-Diagramm  Aufgrund dieses Problems konnte der Anfangswert des Balkens im Gantt-Diagramm nicht geändert werden. Datenänderungen werden jetzt in Echtzeit widergespiegelt und Benutzer können Zeitintervalle in Diagrammen einfach bearbeiten. Vollständige Liste der Änderungen * Die Nutzungsvereinbarung wurde aktualisiert; + Ein visueller Fehler wurde bei der Anordnung von Elementen auf dem Formular bei Verwendung von nicht standardmäßigen DPI behoben;  + Die Positionen der Elemente wurden im Gantt-Diagramm-Bearbeitungsformular korrigiert; + Ein Fehler wurde bei der Textdarstellung im Gantt-Diagramm behoben; + Ein Fehler wurde behoben, aufgrund dessen der Anfangswert des Balkens im Gantt-Diagramm nicht geändert werden konnte; ### Neue Version von FastReport Desktop 2022.2 veröffentlicht! URL: https://www.fast-report.com/de/news/fastreport-desktop-2022.2 Summary: Die Veröffentlichung der Version 2022.2 in FastReport Desktop fand statt. Es wurden zahlreiche neue Funktionen und Änderungen vorgenommen. Die Veröffentlichung der Version 2022.2 in FastReport Desktop fand statt. Es wurden zahlreiche neue Funktionen und Änderungen vorgenommen. Funktion zur Speicherung eines Berichtes mit Zufallsdaten   Das Dateimenü im Berichtsdesigner hat eine neue Option "Mit Zufallsdaten speichern...". Wenn Sie den Bericht auf diese Weise speichern, werden alle Datenquellen im Bericht gespeichert und die Daten darin durch Zufallsdaten ersetzt. Hervorheben von sich überschneidenden Objekten im Designer Beim Platzieren von Objekten auf der Berichtsseite werden nun sich überschneidende Objekte und Objekte außerhalb der Bands und des Seitenbereichs farblich hervorgehoben. Ein korrekter Bericht sollte solche Objekte nicht enthalten. Die Nichteinhaltung dieser Empfehlung kann zu einer Reihe von Problemen bei der Erstellung und dem Export von Berichten führen. Diese Option ist standardmäßig deaktiviert. Sie können es in den Designer-Einstellungen Datei->Einstellungen (File->Options) aktivieren. Lineal mit Führungslinien im RichObject-Editor Mit dem neuen Tool können Sie bequem Einzüge und Tabulatorpositionen beim Bearbeiten eines RichObjects anpassen.  Lesen sie mehr im Artikel. Konsolendienstprogramm zur Umwandlung von RTF-Dateien hinzugefügt Sie können damit RTF-Dateien bequem in Berichtsvorlagen umwandeln. Verwendungsmöglichkeit von XLSX-Dateien als Datenquellen You can Jetzt können Sie Daten aus Excel 2007-Dateien wie aus einer Datenbank abrufen und in einem Bericht verwendennow retrieve data from Excel 2007 files as from a database and use it in a report.  Lesen sie mehr im Artikel . Option "Zellen fixieren" beim Exportieren nach Excel 2007 Mit dieser Option können Sie einen Bereich des Blattes festlegen, der beim Scrollen immer sichtbar ist. Sie können die erste Zeile, die erste Spalte, eine bestimmte Anzahl von Zeilen und Spalten fixieren. Export des Zahlen- und Datumsformats in das Excel 97-Format (BIFF8) hinzugefügt. Im HTML-Export gibt es jetzt die Option "Hochwertiges SVG" - wenn Sie diese Einstellung aktivieren, wird die Qualität von SVG-Bildern deutlich höher sein. Sie sollten jedoch bedenken, dass der Speicherverbrauch höher sein wird. In Word-Dokumenten wurde der Export von Lesezeichen und internen Links hinzugefügt. In PDF, Word, HTML und RTF haben jetzt Export-Registerkarten Breite. Im SVG-Export haben wir eine neue Eigenschaft Prefix Style hinzugefügt - sie ermöglicht es Ihnen, ein Präfix für alle Stile festzulegen. Wir haben auch die Dokumentation verbessert und die Möglichkeit hinzugefügt, die Lokalisierung in den FastReport für DBA-Einstellungen zu ändern. Vollständige Liste der Änderungen in Version 2022.2 [Engine] + Funktion zur Speicherung eines Berichts mit Zufallsdaten hinzugefügt; * die ExportBand-Methode verwendet jetzt das BandBase-Argument anstelle von Base; - Fehler beim doppelten Aufrufen von AfterData-, BeforePrint- und AfterPrint-Ereignissen des ContainerObject-Objekts behoben; - Fehler behoben, der eine System.NullReferenceException beim Ausführen von Berichten mit Dialogformularen verursachte; - Fehler behoben, der dazu führte, dass die VisibleExpression-Eigenschaft von Unterberichten und Seiten nicht funktionierte; - Bug bei der vertikalen Verschiebung von sich nicht überschneidenden Objekten bei der Umwandlung von RTF-Dateien behoben; - Fehler beim rechten Anker auf Seiten mit unendlicher Breite und im Querformat behoben; - Übersetzung von Listen bei der Umwandlung von RTF-Dateien korrigiert; - Fehler behoben, der dazu führte, dass die RichObject.AllowExpressions-Eigenschaft nicht funktionierte; - Fehler behoben, der eine System.OverflowException beim Rendering einer unvorbereiteten unendlichen Seite verursachte; [Designer] + Hervorhebung von sich überschneidenden Objekten hinzugefügt; + Lineal mit Führungslinien im RichObject-Editor hinzugefügt; + Passwort-Zeichen durch Punkte im Objektinspektor ersetzt; + Warnung vor einem möglichen Stapelüberlauf hinzugefügt, wenn eine Matrix oder eine AdvMatrix auf einem sich wiederholenden Band platziert wird; - Fehlermeldung entfernt, wenn der Barcode-Text einen Ausdruck enthält; - Fehler mit der Option zum Deaktivieren von Hotkeys behoben; - Dropdown-Menü beim Klicken auf die LineStyle- und LineWidth-Schaltflächen korrigiert; - korrigierte Anzeige der Daten im Designer; - Fehler behoben, die eine System.NullReferenceException beim Ziehen von Objekten in die AdvMatrix verursachten; - Fehler mit falscher Anzeige der Schatteneinstellungen im Rahmeneditor behoben; [Preview] - Fehler behoben, der eine System.NullReferenceException beim Klicken auf ein editierbares Textobjekt verursachte; - Fehler mit nicht funktionierenden Hyperlinks in Berichten mit mehrspaltigen Bands behoben; - Fehler behoben, bei dem das Exportieren eines Berichts zur Speicherung eines vorbereiteten Berichts führte; - Fehler bei der Einstellung der Listen der verfügbaren Exporte und der Cloud-Exporte in PreviewControl behoben; [Exports] + Export nach ZPL II hinzugefügt; + Option "Hohe Qualität SVG" beim HTML-Export hinzugefügt; + Option "Zellen fixieren" beim Exportieren nach Excel 2007 hinzugefügt; + Option der Druckskalierung beim Exportieren nach Excel 2007 hinzugefügt; + Exportieren von Lesezeichen und internen Links in Word hinzugefügt; + Exportieren des Zahlen- und Datumsformats nach Excel 97 hinzugefügt; + Verschlüsselung von personenbezogenen Benutzerdaten beim E-Mail-Export hinzugefügt; + Exportieren des RichObject-Einzugs nach RTF hinzugefügt; + Exportieren des RichObject-Zeilenumbruchs nach RTF hinzugefügt; + Exportieren des TextObject-Einzugs nach Word hinzugefügt; + Exportieren der Breite von Tabulatorzeichen nach PDF, Word, HTML und RTF hinzugefügt; + Neue PrefixStyle Eigenschaft im SVG-Export hinzugefügt, mit der ein Präfix für alle Stile festgelegt werden kann; * Export von RichObject nach Excel 2007 verbessert; * FastReport Cloud- und XMPP-Exporte entfernt; - falsche Drehung der Querformat-Ausrichtung von Seiten beim Drucken einer HTML-Datei behoben, wenn sie Stile von vorherigen Seiten verwendeten; - Fehler mit der Schriftskalierung beim PDF-Export behoben; - Speicherleck beim Export von SVG-Objekten nach HTML mit der Option "Hohe Qualität SVG" behoben; - Fehler beim Einbetten von Schriften behoben, für die eine Verpackung im PDF-Export nicht zulässig ist; - Fehler beim Exportieren von Tabulatorzeichen nach Word behoben; - die Bildhintergrundfüllung und die line-height Eigenschaft beim HTML-Export korrigiert; - Fehler beim Exportieren von benutzerdefinierten SVGObject gestrichelten Linien nach PDF behoben; - Fehler beim Exportieren von Rändern verbundener Zellen nach SVG behoben. ### Neue Version von FastReport Desktop 2022.3 veröffentlicht! URL: https://www.fast-report.com/de/news/fastreport-desktop-2022.3 Summary: Die Version 2022.3 wurde in FastReport Desktop veröffentlicht. Wir haben viele neue Funktionen für Sie vorbereitet: den Validator der Berichtsvorlage, den FRX-Formateditor. Die Version 2022.3 wurde in FastReport Desktop veröffentlicht. Wir haben viele neue Funktionen für Sie vorbereitet: den Validator der Berichtsvorlage, den FRX-Formateditor. Die Version 2022.3 von FastReport Desktop wurde veröffentlicht. Haben wir eine Menge neuer Funktionen für Sie vorbereitet: einen Validator, um die Reportvorlage zu prüfen und eine Fehlerliste erhalten zu können, einen FRX-Format-Editor, einen Reportkonverter aus StimulSoft, Kopierdialogseiten und vieles mehr. Berichtsvalidierung: Dem Berichtsdesigner wurde eine Registerkarte "Validierung" hinzugefügt (rechts neben den Registerkarten "Daten" und "Berichtsbaum"). Hier können Sie die Berichtsvorlage überprüfen und eine Liste der Fehler und Warnungen abrufen. All dies wird in Form einer Tabelle angezeigt, die den Objektnamen (falls vorhanden) und die Fehlerbeschreibung enthält. Wenn Sie eine Zeile in der Tabelle auswählen, wird das jeweilige Objekt im Designer hervorgehoben. Folgende Fehler- und Warnungstypen können auftreten: unbenannte Objekte, Objekte mit demselben Namen, sich überschneidende Objekte, Objekte mit einer Höhe oder Breite von Null sowie Objekte, die teilweise oder vollständig außerhalb des übergeordneten Objekts liegen. Unbenannte Objekte und Objekte mit demselben Namen gehören zu den kritischen Fehlern. Sie können bei der Erstellung eines Berichts verschiedene Fehlern verursachen und sogar die Anwendung zum Absturz bringen. Darüber hinaus sind diese Fehler ohne einen Validator sehr schwer zu finden. Sich überschneidende Objekte gehören zu keinen schwerwiegenden Fehlern. In einigen Fällen können sie nützlich sein und zielgerichtet eingesetzt werden (z. B. Linien oder Rechtecke). Sich überschneidende Textobjekte können in den meisten Fällen zu fehlerhaften Exporten führen, vor allem bei tabellarischen Exporten, z. B. in Excel. Nach dem Exportieren werden viele zusätzliche Zellen usw. vorhanden sein. Mit solchen Objekten muss man vorsichtig sein. Objekte, die teilweise außerhalb des übergeordneten Objekts liegen (z.B. außerhalb des Bands bzw. der Seite), können in seltenen Fällen ebenso nützlich sein. In meisten Fällen aber führen zu Fehlern, wenn ein Bericht erstellt oder exportiert wird. Objekte, die vollständig außerhalb des übergeordneten Objekts liegen, gehören zu schweren Fehlern. Auch das Auffinden solcher Objekte ist ohne einen Validator sehr schwierig. Sich überschneidende Objekte und Objekte, die außerhalb des übergeordneten Objekts liegen, können farblich hervorgehoben werden (die sind jetzt wählbar), wenn die entsprechende Einstellung im Menü "Datei -> Einstellungen" aktiviert ist. Eine Berichtsvalidierung ist überhaupt nicht erforderlich. Es kann jedoch nützlich sein, wenn Ihr Bericht nicht so funktioniert oder aussieht, wie es gewünscht wird. Weitere Informationen über die Berichtsvalidierung finden Sie unter folgendem Link. FRX Editor Manchmal ist es notwendig, den Inhalt einer FRX-Datei mit Texteditoren von Drittanbietern zu bearbeiten. Sie können dies nun direkt im Berichtsdesigner tun. Zu diesem Zweck wurde ein FRX-Editor hinzugefügt. Er ist standardmäßig deaktiviert. Um den Editor zu aktivieren, gehen Sie zum Menü "Datei -> Einstellungen". Im Berichtsdesigner wird die Registerkarte FRX links neben der Registerkarte Code angezeigt. Die hier vorgenommenen Änderungen werden sofort auf den Bericht angewendet und auf dessen Seiten angezeigt. Weitere Informationen über den FRX-Editor finden Sie im folgenden Artikel.  StimulSoft-Berichtskonvertierung Es wurde die Funktion hinzugefügt, StimulSoft-Berichtsvorlagen in FastReport .NET Vorlagen zu konvertieren. StimulSoft-Berichte können Implementierungsobjekte enthalten, die vom FastReport-Designer nicht unterstützt werden. Diese Objekte werden nicht exportiert oder werden durch andere ersetzt, so dass der erstellte Bericht dem in StimulSoft erstellten Bericht so ähnlich wie möglich ist. Es ist wichtig zu beachten, dass der Import von Cross-Bands dadurch realisiert wird, dass ihr Inhalt in das übergeordnete Band übernommen wird. Weitere Informationen über die Berichtskonvertierung finden Sie im folgenden Artikel unter folgendem Link. Kopieren von Dialogseiten  Es wurde die Funktion hinzugefügt, Dialogseiten sowohl über das Kontextmenü der Dialogseite als auch über die Schaltfläche "Bericht -> Berichtsseite kopieren" zu kopieren. Beim Kopieren wird eine Kopie der Dialogseite mit einem einmaligen Namen erstellt. Alle untergeordneten Objekte haben ebenfalls einmalige Namen. Die Ereignishandler der Objekte sind jedoch die gleichen wie die der Originalseite. Gegebenfalls sollten neue Ereignishandler erstellt werden. Dialogseiten können jetzt nicht nur über die Schaltfläche "Bericht -> Seite löschen", sondern auch über das Kontextmenü im Formulareditor und Berichtsbaum gelöscht werden. Deaktivieren der letzten Formatierungseinstellungen  Wenn ein Objekt im Designer erstellt wird, werden seine Einstellungen auf das nächste erstellte Objekt desselben Typs übertragen. Wenn Sie z. B. ein Textobjekt erstellen und dessen Schriftgröße, Rahmen und Füllfarbe festlegen, wird das nächste Textobjekt mit denselben Einstellungen erstellt. Dies ist praktisch, wenn Sie mehrere Objekte mit denselben oder ähnlichen Einstellungen erstellen müssen. In Situationen, wenn dieses Verhalten des Designers nicht erforderlich ist, kann es im Menü Datei -> Einstellungen deaktiviert werden. In diesem Fall werden Objekte mit Standardeinstellungen erstellt. Exportieren aller Registerkarten  Wenn Sie interaktive Berichte anzeigen, können Sie detaillierte Berichte in neuen Registerkarten öffnen. Hier sehen Sie drei geöffnete Registerkarten. Zuvor wurde nur die aktive Registerkarte exportiert. Jetzt können Sie alle Registerkarten in eine Datei exportieren, indem Sie die neue Option "Alle Registerkarten exportieren" verwenden. Detaillierte Beschreibung der zugehörigen Assemblies und installierten Plugins  Wenn Sie nun mit der Maus über eine dll in der Liste der Plugins (Datei -> Einstellungen -> Plugins) und in der Liste der Assembly-Links (Bericht -> Eigenschaften -> Skript) fahren, werden detaillierte Informationen mit Beschreibung, Version, Größe, Erstellungsdatum usw. angezeigt. Sprachauswahl beim Exportieren in Word, PowerPoint, Rich Text, OpenOffice Write und OpenOffice Calc  Bei diesen Exporten können Sie nun die Sprache des Dokuments auswählen. Die Standardeinstellung ist die im Designer ausgewählte Sprache. Es wurde Option "Gitternetzlinien anzeigen" beim Excel 2007-Export hinzugefügt. Vollständige Liste der Änderungen  [Engine] + Der StimulSoft-Berichtskonverter wurde hinzugefügt; + Die Änderung des JSON-Datenquellennamens wurde in Ausdrücken beim Umbenennen hinzugefügt; + Die Konvertierung der PaperSize-Eigenschaft wurde bei der Konvertierung von StimulSoft- Berichten hinzugefügt; + Bei der Konvertierung von StimulSoft-Berichten wurde die Überprüfung auf Vorhandensein von zugehörigen Assemblies hinzugefügt; + Die PrintOnParent-Eigenschaft wurde zu den Table- und Matrix-Objekten hinzugefügt; + Das Laden von Berichtsparametern wurde bei der Konvertierung von RDL-Berichten hinzugefügt; + Das Laden von verschachtelten Berichten wurde bei der Konvertierung von RDL-Berichten hinzugefügt; + Die Leistung der Berichte mit einer großen Anzahl von Objekten wurde verbessert; + Die Funktion zum Speichern von JSON-Verbindungsdaten unter Verwendung der StoreData-Eigenschaft wurde hinzugefügt; * Der Ausnahmetext beim Berechnen und Formatieren eines Ausdrucks wurde geändert, wenn e.InnerException null ist; * Beim Laden von RDL-Berichten entspricht die Seitenbreite nur dann der Abschnittsbreite, wenn es keine Seitenbreite gibt; - Die Berechnung der DataMatrix C40- und Text-Kodierungslänge wurde korrigiert; - System.ComponentModel.Win32Exception wurde beim Drucken mit deaktiviertem "Print Manager" behandelt - Das Ausblenden des Bildrandes beim Drucken mit automatischer Größe wurde behoben; - Der Stapelüberlauffehler wurde behoben, der auftrat, wenn ein Bericht mit einem untergeordneten Band des Seitenfußes erstellt wurde und die Option, eine neue Seite zu beginnen, aktiviert war; - Der Bug wurde behoben, bei dem der Pfad zum Basisbericht nicht an den aktuellen Bericht unter Unix OS übergeben wurde; - Es wurde ein Fehler bei der Erstellung eines Unterberichts und einer Seite mit demselben Namen bei der Konvertierung von StimulSoft-Berichten behoben; - Es wurde ein Fehler mit falschen Namen bei der Konvertierung von StimulSoft-Berichten behoben; - Der Fehler mit TotalPages in Page.VisibleExpression wurde behoben, der ein Exception verursachte, wenn Double-Passing deaktiviert war; - Der Fehler wurde behoben, bei dem ein Band über die Seite hinausgehen konnte; - Der Fehler wurde behoben, bei dem Objekte über einen Band oder ContainerObjekt hinausgehen konnten; - Der Einrückungsfehler wurde bei der Übersetzung von RTF in Berichtsobjekte behoben; - Der Zeilenabstand für aus RichObject übersetzten Text wurde korrigiert; - Fehler mit der ConnectionString-Eigenschaft in der JsonDataSourceConnectionStringBuilder-Klasse, wenn der Wert ohne Anfrage-Header war, wurde behoben; [Designer] + Der Berichtsvalidator wurde hinzugefügt, um fehlerhafte Objekte (wiederholte Namen, negative Abmessungen usw.) zu finden; + Der Editor für RichObject.Text-Eigenschaft wurde hinzugefügt; + Der FRX-Editor wurde zum Berichtsdesigner hinzugefügt; + Detaillierte Beschreibungen von zugehörigen Assemblies und installierten Plugins wurden hinzugefügt; + Die Möglichkeit wurde hinzugefügt, um Dialogseiten zu kopieren; + Die Möglichkeit wurde hinzugefügt, um Dialogseiten über das Kontextmenü zu löschen; + Die Möglichkeit wurde hinzugefügt, um die Verwendung der letzten Formatierungseinstellungen beim Erstellen von Objekten zu deaktivieren; + Die Integration mit FastReport.Id wurde hinzugefügt; + Die Möglichkeit wurde hinzugefügt, um die Online-Dokumentation im Berichtsdesigner aufzurufen; + Der Assistenten zur Visualisierung der ID-Prüfzeichen wurde hinzugefügt; + QuickInfos über rechte und untere Einzügen für Hilfslinien und Objekte wurden im Designer hinzugefügt; + Die Möglichkeit wurde hinzugefügt, um die Farbe der Beleuchtung von sich überschneidenden Objekten im Designer auszuwählen; * Das Erscheinungsbild des ElasticSearch-Verbindungseditorformulars wurde geändert; * Die Textfelder im CISWizardForm mit Einheiten in Textfelder wurden geändert, die nur Zahlen unterstützen; - Der Fehler wurde behoben, der ein System.NullRefereceException beim Erstellen einer berechneten Spalte für eine verschachtelte JSON-Tabelle verursachte; - Der Fehler wurde behoben, der ein System.FormatException beim Rendern von Kartenbeschriftungen verursachte; - Der Fehler wurde behoben, der ein System.NullReferenceException verursachte, wenn die Schaltfläche "Einfügen" im Kontextmenü der Dialogseiten gedrückt wurde; - Die fehlerhafte Skalierung der Designer-Zoom-Steuerelemente wurde im HiDPI-Modus korrigiert, wenn diese aus einer älteren Demo-Anwendung heraus ausgeführt wurden; - Das Öffnen des Speicherformulars, nachdem der gesamte Bericht gespeichert wurde, wurde korrigiert; - Nicht skalierbare Elemente im Begrüßungsfenster wurden korrigiert; - Die Hervorhebung von sich überschneidenden Graphen wurde korrigiert; - Das Exception beim Umbenennen einer JSON-Tabelle wurde korrigiert; - UpdateStatusBar im DialogWorkspace wurde korrigiert; - Fehler bei der Lokalisierung der Schaltfläche "Konto..." im Menü "Datei" wurde behoben; - Behebung eines Fehlers beim Abbrechen der Auswahl eines Objekts, wenn dessen Eigenschaften geändert wurden; - Behebung eines Fehlers, bei dem der Wechsel zur Seite "Code" nach dem Hinzufügen eines Event-Handlers nicht erfolgte; [Preview] + Das Exportieren aller offenen Registerkarten wurde implementiert; - Der Fehler wurde behoben, der ein System.NullReferenceException beim Erstellen eines Berichts mit einem RichObject auf einem System ohne Drucker verursachte; - Der Fehler wurde im MSChart-Objekt im HiDPI-Modus behoben; [Exports] + Die Sprachausgabe wurde beim Exportieren in Word, PowerPoint, Rich Text, OpenOffice Write und OpenOffice Calc hinzugefügt; + Die Verschlüsselung des Passworts des digitalen Signaturzertifikats wurde beim PDF-Export hinzugefügt, wenn es gespeichert wird; + Die Option "Gitterlinien anzeigen" wurde beim Excel 2007 Export hinzugefügt; + Der Export von Datentypen nach DBF wurde hinzugefügt; + Es wurde eine neue Eigenschaft PrefixStyle zum SVG-Export hinzugefügt, mit der Sie ein Präfix für alle Stile innerhalb des SVG-Exports festlegen können; * UTF-8 ist als Standardkodierung für den DBF-Export festgelegt; - Die fehlerhafte Skalierung von Bildern wurde beim HTML-Export nach Ebenen korrigiert, wenn eine hohe svg-Qualität aktiviert ist und die Vergrößerung größer als 1 ist. - Der Fehler wurde behoben, der ein System.IndexOutOfRangeException verursachte, wenn eine Schrift ohne Kerning in PDF exportiert wurde; - Der Fehler wurde bei der Skalierung von Bildern beim HTML-Export nach Ebenen behoben; - Der Fehler wurde behoben, der ein System.NullReferenceException beim Exportieren eines Berichts mit einer leeren Seite in Word 2007 verursachte; - Das Speicherleck wurde beim PDF-Export mit einigen CJK-Schriften behoben; - Das Re-Rendering von Tabellenzellen wurde beim SVG-Export behoben; - Falscher Seitenstil wurde beim Drucken aus dem Browser für tabellarischen HTML-Export behoben; - Die Option "Systemdatenformatierung verwenden" wurde beim Excel 2007-Export hinzugefügt; - Das Exception wurde behoben, das beim HTML-Export eines Objekts mit negativen Abmessungen auftrat; - Der Fehler wurde beim PDF-Export behoben, wenn Compressed = false ist; - Die falsch eingetragene border-collapse Eigenschaft im tabellarischen HTML-Export wurde korrigiert; - Der Fehler wurde beim Excel-Export behoben, bei dem die Füllung in der Ausgabedatei beim ersten Mal nicht geändert wurde; - Der Fehler wurde beim Exportieren von Wasserzeichen nach PostScript behoben; - Der Fehler wurde bei der Schriftskalierung beim PDF-Export behoben; - Der Fehler wurde behoben, bei dem ein Textobjekt mit HtmlTags, das nach RTF exportiert wurde, nicht durch die Tags
, , geändert wurde. ### Neue Version von FastReport Desktop 2023.1 veröffentlicht! URL: https://www.fast-report.com/de/news/fastreport-desktop-2023.1 Summary: Erweiterung der Funktionalität für FastReport Desktop. Ab Version 2023.1 steht Ihnen Folgendes zur Verfügung: Verbesserung des Berichtsprüfers, Integration in die FastReport Cloud, Korrektur von MSChartObject, gespeicherte Prozeduren usw. Erweiterung der Funktionalität für FastReport Desktop. Ab Version 2023.1 steht Ihnen Folgendes zur Verfügung: Verbesserung des Berichtsprüfers, Integration in die FastReport Cloud, Korrektur von MSChartObject, gespeicherte Prozeduren usw. Erweiterung der Funktionalität für FastReport Desktop. Ab Version 2023.1 steht Ihnen Folgendes zur Verfügung: Verbesserung des Berichtsprüfers, Integration in die FastReport Cloud, Korrektur von MSChartObject, gespeicherte Prozeduren usw. FastReport Cloud Integration FastReport Desktop und FastReport for DBA unterstützen jetzt teilweise die FastReport Cloud Interaktion.  Herunterladen und Hochladen von Berichten  Sie können nun Ihren Bericht aus dem Cloud-Speicher herunterladen und ihn im Designer bearbeiten oder umgekehrt Ihre Dateien in die Cloud hochladen. Web-Vorschau Zusätzlich zur Standardvorschau ist jetzt auch eine Web-Vorschau möglich. Der Bericht kann in der Web-Vorschau nur dann angezeigt werden, wenn er aus der Cloud geöffnet ist. Verbindung mit FastReport Cloud Datenquellen  Die FastReport Cloud kann Verbindungen mit Datenquellen speichern. Ab jetzt haben Sie die Möglichkeit, diese Datenquellen zu Ihrem eigenen Bericht hinzuzufügen.  Es ist jetzt auch möglich, eine Verbindung in die Cloud hochzuladen. Wenn Sie mehr über die neuen Funktionen erfahren möchten, lesen Sie bitte diesen Artikel. Verbesserungen im Berichtsvalidator Erhöhte Leistungsgeschwindigkeit Die Berichtsvalidierung läuft jetzt in einem separaten Stream. Auch die Geschwindigkeit wurde deutlich optimiert. Sie können die Änderungen bei der Verarbeitung von Berichten mit einer großen Anzahl von Fehlern feststellen. Während der Validator den Bericht überprüft, wird im Validierungsfenster eine entsprechende Meldung angezeigt. Dabei können Sie den Bericht bearbeiten. Wenn der Validator fertig ist, wird eine Fehlertabelle angezeigt. Einrichten der Validierungstabelle  Zur Benutzerfreundlichkeit wurde eine neue Spalte mit Fehlernummern hinzugefügt. Sie kann über das Kontextmenü der Tabelle aktiviert oder deaktiviert werden. Auf die gleiche Weise können Sie die Anzeige der Spalte für die Fehlerart anpassen. JasperReports-Vorlagen-Konverter  Es wurde die Möglichkeit hinzugefügt, Berichtsvorlagen aus JasperReports in FastReport .NET-Vorlagen zu konvertieren. JasperReports-Berichte können Objekte enthalten, die vom FastReport-Designer nicht unterstützt werden. Diese Objekte werden nicht konvertiert oder durch andere ersetzt, damit der erstellte Bericht dem in JasperReports erstellten Bericht so ähnlich wie möglich aussieht. Mehr dazu lesen Sie im Artikel. Verbesserungen und Korrekturen am MSChartObject Das MSChartObject hat eine große Anzahl von Eigenschaften und Einstellungen. Die am häufigsten verwendeten sind im Objekteditor gesammelt. Eigenschaften, die im Editor nicht verfügbar sind, können mit dem Objektinspektor geändert werden. Es gab jedoch ein Problem mit diesen Eigenschaften - wenn sie geändert wurden, wurde der Bericht nicht als geändert betrachtet. Infolgedessen war es unmöglich, diesen zu speichern. Um den Bericht zu speichern, musste eine andere Eigenschaft oder ein anderes Objekt geändert werden. Darüber hinaus wurden bei der Erstellung eines Berichts und nach dem Schließen des Vorschaufensters die Werte dieser Eigenschaften auf ihre Standardwerte zurückgesetzt. Dieser Fehler ist in der neuen Version behoben worden. Verbindung zu in MsSQL gespeicherten Prozeduren  Es wurde die Möglichkeit hinzugefügt, eine Verbindung zu in MsSQL gespeicherten Prozeduren herzustellen. Dies war bisher über eine Datenbankabfrage verfügbar. Jetzt können Sie viel bequemer eine Verbindung zu den Prozeduren herstellen, indem Sie die Datenbanktabellen- Verbindungsschnittstelle verwenden. Diese Datenbanktabellen werden im Auswahlfenster zusammen mit den Tabellen angezeigt. Wenn Sie eine Prozedur auswählen, erscheint ein Fenster mit den Parametereinstellungen, falls vorhanden.  Mehr dazu lesen Sie im Artikel. Exportverbesserungen  Option "Zum Drucken" beim RTF-Exportieren Es wurde eine neue Eigenschaft PrintOptimized und eine entsprechende Option im Exportfenster hinzugefügt. Wenn Sie diese Einstellung aktivieren, wird die Qualität des Bildes beim Exportieren erheblich verbessert. Allerdings erhöht sich auch die Größe der resultierenden Datei. Finanzformat beim Exportieren nach Excel 2007 Das Währungsformat kann nun als Finanzformat exportiert werden. Dazu wurden im Exportfenster eine entsprechende Option und die CurrencyToAccounting-Eigenschaft hinzugefügt. Die vollständige Liste der Änderungen ist unter folgendem Link verfügbar. ### Neue Version von FastReport FMX - 2.7 URL: https://www.fast-report.com/de/news/fastreport-fmx-2.7 Summary: Neue Version von FastReport FMX - 2.7 Neue Version von FastReport FMX - 2.7 In der neuen Version haben wir die Unterstützung von Embarcadero RAD Studio 10.3 mit den neuesten Updates und die Unterstützung der neuen Plattform MacOS x64 hinzugefügt.  Der Export in PDF wurde in dieser Version erheblich verbessert: wir haben die Blocktext-Ausrichtung hinzugefügt und die Arbeit mit Schriftarten verbessert. Auch das Umbrechen und Zeichnen von Textobjekten wurde verbessert. Komplette Liste der Änderungen: die Version 2.7 --------------- + Unterstützung von Embarcadero RAD Studio 10.3 + Unterstützung von MacOS x64 + Unterstützung von Blockausrichtung im Textobjekt (HAlign=haBlock) beim PDF-Export + Möglichkeit zum Verschieben von Registerkarten für Berichtsseiten im Berichtsdesigner + Popup-Menü für Seiten Tab im Berichts-Designer - Verbesserte Realisierung von Textumbruch - Verbesserte Textzeichnung zwischen verschiedenen Plattformen - Feste Skalierung des Vorschauinhalts für 150% Skala oder höher - Druck von HTML-Tag-Subskripten wurde korrigiert - Inaktiver Berichtsdesigner beim Wechsel zur Dialogseite(OSX) wurde behoben - Korrigierte Änderung der Seitenausrichtung - Korrigierte Zeichnung einer schmalen Luftschrift im D2D-Kontext für RAD Studio 10.2 und höher - Fixierte Textaufteilung für einfache Textdarstellung - Korrigierter fsUnderline-Stil im GDIP Canvas-Cache für Schriftarten - Rechte Ausrichtung beim PDF-Export wurde behoben - Fixe Abstand-Bandbreite beim PDF-Export - Feste Schriftnamen beim PDF-Export - Falsches Ergebnis der Funktion CalclHeight wurde korrigiert - Hinweisaufrufe in der Berichtsvorschau und im Berichtsdesigner wurden korrigiert. - Feste Reihenfolge der modalen Dialoge unter OSX für Rad Studio 10.2.3 - der Fehler beim PDF-Export unter OSX wurde behoben - der Fehler in TfrxMemoView mit HAlign=haRight wurde behoben - PDF-Export wurde korrigiert, wenn die Schrift einen Multi-Byte-Namen wie "MS ゴシック» hat - die Fehler mit dem DBLookupComboBox DialogPage-Steuerelement wurden behoben - die Fehler mit PictureCache in Datei unter MacOS wurden behoben - die Fehlermeldung "Objektsperre nicht besessen" für Chart-Objekt wurde behoben - Feste Dialogseite für RAD Studio 10.2 (Position, Schriftart, Randstil) - Korrigierte Abschneidung des letzten Symbols beim PDF-Export unindizieren OSX - der Fehler mit Combobox im Objektinspektor wurde behoben - die Fehler mit PictureCache in Datei unter MacOS wurden behoben - der Fehler mit PictureCache in Datei unter MacOS wurde behoben - die Fehlermeldung "Objektsperre nicht besessen" für Chart-Objekt wurde behoben - Feste Dialogseite für RAD Studio 10.2 (Position, Schriftart, Randstil) - Korrigierte Abschneidung des letzten Symbols beim PDF-Export unindizieren OSX - der Fehler mit Combobox im Objektinspektor wurde behoben - die Vorschausperre während des Exports wurde behoben - Feste Strichcode-Linien - AV in der TfrxCustomMemoView.DrawPart wurde korrigiert + TfrxPreview.PageSetupDialog für C++Builder-Kompatibilität wurde hinzugefügt - die Endlosschleife in der TfrxMemoView.WrapText wurde korrigiert - das Einfrieren der IDE wurde behoben, wenn der Designer minimiert wurde - das AV im PDF-Export wurde behoben - Korrigierter Export von Schriften mit fester Breite nach PDF Übersetzt mit www.DeepL.com/Translator (kostenlose Version) ### Neue Version von FastReport FMX 2.8 ist freigegeben! URL: https://www.fast-report.com/de/news/fastreport-fmx-2.8 Summary: Neue Version von FastReport FMX 2.8 ist freigegeben! Neue Version von FastReport FMX 2.8 ist freigegeben! In der neuen Version von FastReport FMX haben wir die Unterstützung von FmxLinux hinzugefügt, so dass Sie jetzt Ihre Anwendung mit FastReport FMX unter Linux erstellen können. Erfahren Sie in unserem Blog, wie Sie FastReport FMX 2.8 für FmxLinux installieren und verwenden Diese Version verbessert auch die Arbeit mit den neuesten Versionen von macOS Big Sur und Anwendungen, die die Notarisierung bestanden haben. Darüber hinaus haben wir Pakete für Embarcadero RAD Studio 10.4 hinzugefügt und allgemeine Verbesserungen vorgenommen. Vollständige Liste der Änderungen: Version 2.8 --------------- + Unterstützung des FmxLinux-Frameworks wurde hinzugefügt + Unterstützung von Embarcadero RAD Studio 10.4 wurde hinzugefügt * Verbesserte Unterstützung der neuen MacOS-Version BigSur * Verbesserte Arial Unicode MS-Simulation für Fett/Kursiv - Behobener Export von Bildern für den PDF-Export in RAD Studio 10.4 - Korrigierter Zugriff auf Schriftarten im Sandbox-Modus unter OS X (notariell beglaubigte Anwendungen) - Behobenes Vorschau-Popup-Menü - Korrigierte Kompilierung von FireDAC-Paketen - Checkbox-Export nach PDF wurde behoben - Möglichkeit hinzugefügt, Barcodes über Skriptcode in fester Größe zu setzen - Fehler im Dateicache der Vorschauseiten behoben ### Neue Version von FastReport FMX 2022.1 veröffentlicht! URL: https://www.fast-report.com/de/news/fastreport-fmx-2022.1 Summary: Neue Version von FastReport FMX 2022.1 veröffentlicht! Neue Version von FastReport FMX 2022.1 veröffentlicht! Ab Version 2022.1 werden alle FastReport Releases auf Abonnementbasis bereitgestellt. Dadurch wird sichergestellt, dass Sie Zugang zu allen Funktionen der aktuellsten Versionen haben, solange Ihr Abonnement gültig ist. Die neue Version unterstützt jetzt Embarcadero RAD Studio 11 und die neue macOS 64 Bit-ARM-Plattform für Apple M1. In dieser Version haben wir auch den Satz der FastReport FMX Exportfilter erweitert. Die Exportfilter in OpenOffice ODT und ODS stehen jetzt zur Verfügung. Darüber hinaus wurde die Funktion von FmxLinux unter Linux und die Unterstützung für Metal API unter macOS verbessert. Version 2022.1 --------------- + Unterstützung für Embarcadero RAD Studio 11 hinzugefügt; + Unterstützung für macOS 64 Bit-ARM-Compiler für Apple M1 hinzugefügt; + um ODT und ODS-Exportfilter erweitert; * Neues GTK-basiertes Druckmodul für FmxLinux; * Lesen von Cmap-Tabellen in TTF Schriftart auf der macOS Plattform hinzugefügt; * Lokale CopyFrom-Funktion für GZip-Packer hinzugefügt, die Ausnahmen beim Debuggen beseitigt; - Fehler in Canvas.BeginScene behoben, wenn AutoWidth = true; - Fehler beim PDF-Export im vollständigen Debug-Modus behoben; - Navigation im HTML-Export ist jetzt korrekt; - Verhalten der Eigenschaft TfrxPreview.Workspace.DoubleBuffered unter macOS mit Metal korrigiert; - Falsche Größe der Metriktabelle korrigiert, die das Überschreiben anderer Schrifttabellen beim PDF-Export verursachen konnte; - Fehler bei der Serialisierung von bearbeiteten Seiten in Previewpages behoben; - Kleinere Speicherlecks behoben; - Fehler in der Dropdown-Liste der Felder behoben; - Drucken und Exportieren in Delphi 11 korrigiert; - Fehler mit Metal Canvas im Berichtsdesigner behoben; - Barcode-Höhe korrigiert; - Punkt- und Linienstile im PDF-Export korrigiert; - Schriftartenliste unter Linux korrigiert; - Struktur der ODT/ODS-Exporte und Ausgabe von Bildern in RTF unter LibreOffice korrigiert; - Fehler in "No mapping for the Unicode character exists in the target multi-byte code page" behoben, wenn Text aus einem Stream geladen wird; - HTML-Tags korrigiert. ### Neue Version von FastReport Mono - 2017.1 URL: https://www.fast-report.com/de/news/fastreport-mono-2017.1 Summary: Neue Version von FastReport Mono - 2017.1 Neue Version von FastReport Mono - 2017.1 Neues Release FastReport. Mono 2017.1 kann jetzt Hintergrund-Bilder in RTF erstellen, Apple Fonts unterstützen, Dokumente in BIFF8 exportieren:  ✔  Export in Excel 97-2003 ist hinzugefügt ✔  Schicht-Export in RTF ist integriert  ✔  Export in PDF ist verbessert ✔  Erstellung von Berichten in Linux ohne Verwendung von X Window System ist integriert  ### Neue Version von FastReport Mono - 2021.3 URL: https://www.fast-report.com/de/news/fastreport-mono-2021.3 Summary: Neue Version von FastReport Mono - 2021.3 Neue Version von FastReport Mono - 2021.3 Die neue Version von FastReport Mono 2021.3 ergänzt neue Exporte zu XODT und XODS. Sie finden diese in den Kompatibilitätseinstellungen der entsprechenden Exporte in Open Office. Es wurden verschiedene Optimierungen und Verbesserungen im Berichtsprozessor und Korrekturen für früher gefundene Fehler vorgenommen. Die Version 2021.3 --------------- [Die Engine] - der Fehler wurde behoben, dass die Seitengrößen nach der Vorschau zurückgesetzt werden konnten - der Fehler wurde behoben, der zu System.ArgumentOutOfRangeException in Substring-Funktionen führte - der Fehler wurde behoben, der zu einer System.ArgumentException beim Zeichnen von PictureObject mit einigen Bildern führte - der Fehler wurde behoben, bei dem RichText außerhalb der Seite verschwand - der Fehler beim Neukompilieren des Report-Skripts wurde behoben, der mit ChildBand interagierte [Der Designer] + das Verhalten des Seitenpanels wurde verbessert. - der Fehler mit dem Index der Begrenzungen im SQLBuilder im Designer wurde behoben - die Behebung von einem Fehler, bei dem die Dialogseite nicht geöffnet wurde, wenn sie ein GridControl hatte - die Fehler im Rechts-nach-Links-Modus wurden behoben - der Fehler bei der Skalierung des Dialogformulars wurde behoben [Die Vorschau] - der Fehler wurde behoben, bei dem der Prozentsatz der Skalierung in der Vorschau falsch angezeigt werden konnte [Die Exporte] + Export nach XODT wurde hinzugefügt + Export nach XODS wurde hinzugefügt - Behebung des Fehlers beim Export nach ODF, wenn das Dokument nicht in MyOffice geöffnet wurde - Behebung des Fehlers beim Schließen von Zellen mit RichText beim Exportieren nach RTF - Behebung des Fehlers beim Exportieren von Objekten mit dem Rendering-Modus HtmlParagraph - Behebung des Fehlers beim Exportieren von Linien mit Pfeilspitze beim Export nach Word 2007 mit Ebenen - Behebung des Fehlers beim Exportieren von Linien mit Pfeilspitze im Export nach PowerPoint 2007 [Die WebReporte] - der Fehler beim Kompilieren von VB.NET-Skripten wurde behoben, der zu einem Fehler "Module cannot be generic" führte ### Neue Version von FastReport Mono 2021.2 ist da! URL: https://www.fast-report.com/de/news/fastreport-mono-2021.2 Summary: Neue Version von FastReport Mono 2021.2 ist da! Neue Version von FastReport Mono 2021.2 ist da! In der neuen Version von FastReport Mono 2021.2 haben wir die Aggregatfunktion CountDistinct hinzugefügt, mit der Sie eindeutige Werte zählen können. Die Verarbeitung von RichText-Objekten wurde erneut verbessert. Außerdem haben wir Unterstützung für den ODF 1.2 Standard beim Export nach Open Office hinzugefügt. Eine Reihe von Fehlern bei der Berichtsverarbeitung und beim Speichern in verschiedene Formate wurden behoben. Die Version 2021.2 --------------- [Engine] + Aggregatfunktion CountDistinct wurde hinzugefügt (Berichtssummen und Matrixobjektsummen) + Unterstützung von TLS 1.2 wurde hinzugefügt + 2 neue Typen von UncheckedSymbol für CheckBox wurden hinzugefügt + die Möglichkeit, das Herunterladen von XML- und CSV-Daten lokal zu deaktivieren, wurde hinzugefügt + die Möglichkeit, die XML-Datenquelle per URL zu laden, wurde hinzugefügt + die Möglichkeit, die Schriftart für die ostasiatischen Sprachen im Word2007-Export zu ändern, wurde hinzugefügt + die Möglichkeit, Zahlen in Wörter für die polnische Sprache zu konvertieren, wurde hinzugefügt + Universalpaket für Windows, das auf .NET Framework 4.x, .NET Core 3.1 und .NET 5 abzielt, wurde hinzugefügt * optimierte Kopier-Streams in einigen Fällen - Fehler mit unvollständigem Kopieren der Matrix beim Kopieren der Berichtsseite wurde behoben - Fehler beim Importieren von DevExpress-Berichten wurde behoben - Fehler beim Importieren von RDL-Reports wurde behoben - Fehler bei der Darstellung eines Bandes mit aktivierter FillUnusedSpace-Eigenschaft wurde behoben, obwohl noch genügend freier Platz verfügbar war - Fehler beim Importieren von Listen- und Etikettenberichten wurde behoben - Fehler in der Eigenschaft AutoSize für SvgObject wurde behoben - Fehler bei TextObject.AutoShirnk=FontSize wurde behoben, wenn die Größe des TextObjects zu klein war - Fehler bei der Verwendung der Variablen TotalPages in VisibleExpression wurde behoben - Fehler bei der Konvertierung von RichText wenn RichObject.Text null wurde behoben [Exporte] + Unterstützung von ODF 1.2 beim Export nach ODT/ODS wurde hinzugefügt - Speichern des Berichts in Box wurde korrigiert - Reporterstellung in OneDrive wurde korrigiert - Speichern des Berichts in Google Drive wurde korrigiert - Fehler beim Export nach PDF wurde behoben, der zu System.OutOfMemoryException führte - Fehler beim Export nach Excel 2007 mit der Option "Große Seitenanzahl und Seitenumbrüche" wurde behoben, der zur Erstellung einer falschen Datei führte - Fehler beim Export als Bild wurde behoben, bei dem der transparente Hintergrund des Berichts nicht berücksichtigt wurde - Fehler beim Export nach Excel 2007 wurde behoben, der zu einer System.NullReferenceException führte - Validierungsfehler beim Export nach ODT/ODS wurden behoben - Fehler beim ODT-Export wurde behoben, wenn die Datei in Word 2019 nicht korrekt geöffnet wurde - Fehler mit falscher Zeilenposition beim Export nach Word 2007 wurde behoben [WebReport] - "Bericht speichern" im Online Designer ohne Änderungen wurde behoben - Problem mit falschen Rändern zwischen Objekten in einer Vorschau wurde behoben [Designer] - Problem mit falschem Arbeitsdesigner-Menü wurde behoben ### Neue Version von FastReport Mono 2021.4 steht zur Verfügung URL: https://www.fast-report.com/de/news/fastreport-mono-2021.4 Summary: Neue Version von FastReport Mono 2021.4 steht zur Verfügung Neue Version von FastReport Mono 2021.4 steht zur Verfügung Neue Funktionen Neue Symbole im Visual Studio-Stil sind hinzugefügt. Sie können im Fenster " View/Options/User Interface " (oder " File/Options/User Interface ", wenn Sie die Ribbon-Benutzeroberfläche verwenden) zwischen den Icon-Packs wechseln: Die neuen Symbole sind für High-DPI-Bildschirme gut geeignet. Es wurde die Möglichkeit hinzugefügt, die FastReport-Konfiguration zurückzusetzen, die in der FastReport.Config-Datei im Benutzerprofil gespeichert wird. Dies kann im Fenster " View/Options/User Interface " über die Schaltfläche "Reset config" erfolgen. Ein Neustart des Designers ist erforderlich, um die Änderungen zu übernehmen. Für das Text-Objekt wurde die Möglichkeit hinzugefügt, die Namen der DB-Dateien bei der Berichterstellung in einer vereinfachten Form anzuzeigen. Sie können diese Option im Fenster "View/Options/Objects appearance" aktivieren. Diese Option ist standardmäßig deaktiviert. Wenn Sie sie einschalten, zeigt das Textobjekt mit einem einzelnen DB-Feld nur den Feldnamen ohne Datenquellennamen an: Dadurch sieht der Bericht sauberer aus, insbesondere wenn er viele kleine Objekte enthält. Sie können immer noch den vollständigen Text des Objekts in der Statuszeile sehen. Es wurde die Möglichkeit hinzugefügt, jede Zelle im Eckbereich des Matrixobjekts einzurichten. Um dies zu tun, verwenden Sie das Kontextmenü der Zelle und die Befehle "Zelle teilen", "Zellen verbinden": Es wurde die Möglichkeit zur Verbindung mit ElasticSearch hinzugefügt. Die Verbindung ist im Datenassistenten und vom Code aus verfügbar.  Barcode Japanese Post 4 - State Code hinzugefügt. Die Schaltflächen “Alles zuklappen”/”Alles aufklappen” und das Suchfeld für den Bericht- und Datenbaum sind im Designer hinzugefügt.  Wenn Sie auf „+“ klicken, wird der Baum erweitert und wenn Sie auf „-„ klicken, wird der Baum zugeklappt. Diese Änderungen sollten die Arbeit mit Berichten, die viele Objekte und/oder Datenquellen enthalten, vereinfachen. Der Konverter von RichText zu Berichtsobjekten wurde erheblich verbessert und optimiert. FastReport Business Graphics-Integrationsobjekte sind hinzugefügt (\Extras\Objects\FastReportBGObjects). Universelle FastReport.Data-Plugins Die Pakete mit FastReport.Data-Plugins wurden aktualisiert. Jetzt enthalten sie Plugins für verschiedene FastReport Editionen (.NET, Core, CoreWin, OpenSource) und verbinden automatisch die notwendige Bibliothek, je nach dem von Ihnen verwendeten Produkt. Die FastReport Edition 2021.3.0 oder höher ist für die korrekte Arbeit erforderlich. Die FastReport.Core.Data-, FastReport.CoreWin.Data- und FastReport.OpenSource.Data- Plugins wurden für veraltet erklärt und werden nicht mehr unterstützt. Lokalisierungen In der Logik der Lokalisierungsänderung wurden kleine Änderungen vorgenommen. 1. Das  FastReport.Localization . Paket ist hinzugefügt. Dieses Paket enthält Lokalisierungsdateien für FastReport.NET-, FastReport.Core-, FastReport.CoreWin-, FastReport.Mono-, FastReport.OpenSource-Produkte und erstellt das Lokalisierungsverzeichnis im Ausgabeverzeichnis des Benutzerprojekts, wenn dieses Paket hinzugefügt wird. 2. Eine neue API zum Ändern der Lokalisierung unter Verwendung des CultureInfo-Typs ist hinzugefügt - FastReport.Utils.Res.LoadLocale(CultureInfo culture). Wenn diese Methode aufgerufen wird, sucht FastReport nach der passenden Lokalisierung für die ausgewählte Kultur. Geladene Gebietsschemata werden zwischengespeichert. Damit diese Methode korrekt funktioniert, müssen Sie das FastReport.Localization-Paket aus Schritt 1 in Ihrem Projekt installieren oder den Pfad zu dem Ordner mit den Lokalisierungsdateien in der Eigenschaft FastReport.Utils.Res.LocaleFolder festlegen. Fehlerkorrekturen - Fehler in den Dock- und Anchor-Eigenschaften von Objekten behoben, die sich innerhalb einer Tabellen-/Matrixzelle befinden. - Stapelüberlauf-Fehler beim Hinzufügen von SubReport-Objekten zum Seitenfußband behoben. - Fehler beim SVG-Export behoben, wenn die DPI-Einstellung des Systems größer als 96DPI ist. Vollständige Liste der Änderungen von FastReport Mono 2021.4 [Modul] + Verbindung zu ElasticSearch hinzugefügt. + Ein neuer Barcode - Japanese PostNet hinzugefügt. + Res.LoadLocale (CultureInfo)-Methode hinzugefügt, die das ausgewählte Gebietsschema durch das CultureInfo-Argument ändert. Geladene Gebietsschemata werden zwischengespeichert. Für den korrekten Betrieb ist das hinzugefügte FastReport.Localization-Paket erforderlich. * Optimierter und vereinheitlichter Konverter von RichText zu Berichtsobjekten. - Fehler mit falscher Tab-Breite behoben, wenn TextObject.TextRenderType = TextRenderType.HtmlTextRenderer. - Fehler mit SubReport-Objekt in einem Seitenfußband behoben, der eine Stapelüberlauf-Ausnahme verursachte. - Fehler in den Dock- und Anchor-Eigenschaften von Objekten innerhalb von Tabellen-/Matrixzellen behoben. - Fehler behoben, der zu System.ArgumentException führte, wenn ein PictureObject außerhalb des Bandes gezeichnet wurde. - Fehler behoben, bei dem der rechte Anker (Anker = AnchorStyles.Right) nicht richtig funktioniert hat, wenn die Seite eine unbegrenzte Breite hatte. - Fehler beim Ersetzen einer benutzerdefinierten Schriftart durch eine Standardschriftart beim Erstellen eines Berichts behoben. - Fehler bei der vertikalen Ausrichtung bei der Konvertierung von RTF behoben (standardmäßig, jetzt oben statt mittig). - Fehler bei der Konvertierung von RTF-Tabellen in Berichtsobjekte behoben. [Designer] + Vereinfachte Anzeige von DB-Feldnamen im Designer hinzugefügt. + Schaltflächen “Alles zuklappen”/”Alles aufklappen” und das Suchfeld für den Bericht- und Datenbaum hinzugefügt. + Neue Symbole hinzugefügt. Verwenden Sie den "View|Options|User interface"-Dialog des Designers, um zwischen Icon-Packs zu wechseln. - Fehler behoben, der zum Absturz des Berichtsdesigners mit einer falschen Tabelle in der Datenquelle führte. [Vorschau] - Fehler beim Speichern von vorbereiteten Berichten mit konvertierten RichObjects behoben. [Exporte] + Beim Export nach Word 2007 wurde die Option "Keine Abschnittsumbrüche in die Seitenumbrüchen hinzufügen" hinzugefügt. Standardmäßig werden sowohl Seitenumbrüche als auch Abschnittsumbrüche hinzugefügt. - Seitenumbruch im Html-Export korrigiert (PageBreaks- Eigenschaft). - SVG-Export mit dem Parameter "Export multiplizieren" korrigiert. - SVG-Exportfehler auf dem High-DPI-Bildschirm behoben. - Namen der im Zip-Archiv gespeicherten Dateien korrigiert. - Tab-Breite beim Export von RichObject korrigiert. - Fehler beim XPS-Export behoben, bei dem unter Linux exportierte Dokumente unter Windows nicht geöffnet werden konnten. - Fehler behoben, bei denen Anker- und Dock-Eigenschaften beim Exportieren von Seiten mit unbegrenzter Breite nicht richtig funktionierten. - Fehler beim Export von Textobjekten in Excel 2007 mit aktiviertem HtmlParagraph-Rendertyp behoben. Deaktivieren Sie die WYSIWYG-Exportoption, um Text anstelle von Bildern zu exportieren. [Extras] + 'FastReport.Localization'-Paket hinzugefügt, das FastReport-Lokalisierungsdateien in Ihrem Projekt für die Arbeit mit verschiedenen Sprachen enthält. + FastReport Business Graphics Integrationsobjekte hinzugefügt (\Extras\Objects\FastReportBGObjects). [Demos] + Übergang zur Liste der Berichte beim Klicken auf den Pfeil auf dem Ordner in der neuen Demo implementiert. * Target Framework für die neue Demo auf 4.7.2 geändert. * Farbe der inaktiven Schaltflächen im Miniaturansicht-Modus der neuen Demo geändert. * Hintergrundfarbe des Zoom-Schiebereglers in der neuen Demo geändert. * Hintergrundfarbe bei der Anzeige von Dialogformularen in der neuen Demo geändert. * Hintergrundfarbe der interaktiven Berichtsregister in der neuen Demo geändert. * Speicherort des Ordners mit den Berichtsminiaturansichten für die Demoanwendung geändert. Jetzt befindet sich dieser Ordner nicht mehr in Programmdateien, sondern in AppData\Local. - Probleme bei der Anzeige von Oberflächenelementen der neuen Demo-Anwendung behoben. - Fehler behoben, der dazu führte, dass ein vorbereiteter Bericht gespeichert wurde, wenn man auf die Dropdown-Elemente im Speichermenü der neuen Demo-Anwendung klickte. - Fehler bei der Ausrichtung von Berichten im Vorschaufenster der neuen Demo behoben. - Fehler beim doppelten Start des Dialogs behoben, wenn ein Bericht in der neuen Demo ausgewählt wird. - Fehler beim Dehnen von Miniaturansichten in der neuen Demo behoben. - Fehler behoben, der zu einer Verzögerung beim Verschieben des Fensters einer neuen Demo führte. - Fehler in der neuen Demo mit gleichzeitiger Anzeige von Miniaturansichten in Ordner- und Berichtsleisten behoben. ### Neue Version von FastReport Online Designer 2023.2 URL: https://www.fast-report.com/de/news/fastreport-online-designer-2023.2 Summary: Verbessern Sie die Benutzererfahrung in FastReport Online Designer 2023.2 mit MSChart, dem RichText-Objekt und der Build-API. Verbessern Sie die Benutzererfahrung in FastReport Online Designer 2023.2 mit MSChart, dem RichText-Objekt und der Build-API. Neue Objekte Das MSChart Objekt wurde hinzugefügt  Das MSChart-Objekt wird zum Zeichnen verschiedener Diagramme unter Verwendung der Microsoft Chart-Bibliothek verwendet. MSChart wird derzeit nur in der Berichtsansicht erstellt. Ein kurzer Überblick über die Funktionen der Bibliothek: über 30 Diagrammtypen (Histogramm-, Flächen-, Linien-, Blasen-, Kreis-, Netz-, Finanzen-, Pyramidendiagrammen, Bereiche); 3D-Unterstützung; Unterstützung mehrerer Reihen unterschiedlicher Typen in einem Diagramm; volle Kontrolle über das Aussehen und Verhalten der einzelnen Diagrammelemente. Diagrammelemente  Ein Diagramm kann einen oder mehrere Diagrammbereiche haben. Jeder Bereich kann eine oder mehrere Reihen enthalten. Die folgende Abbildung zeigt ein Beispiel für ein Diagramm, das zwei Bereiche enthält (der erste Bereich enthält zwei Reihen, der zweite eine Reihe): Beachten Sie, dass einige Reihentypen (z. B. Kreisdiagramme) einen separaten Diagrammbereich erfordern. Diagramm-Editor  Das Objekt "Diagramm" enthält eine Vielzahl von Einstellungen, die über den Aufruf des Objekteditors gesteuert werden können. Doppelklicken Sie dazu auf das Objekt:  Das RichText Objekt wurde hinzugefügt [Beta] Mit diesem Objekt können Sie einen formatierten Text im RTF-Format anzeigen.  Versuchen Sie, wenn möglich, mit einem "Text"-Objekt auszukommen, um Text anzuzeigen. Beim Exportieren des Berichts in andere Formate wird das Objekt "Formatierter Text" als Bild exportiert. Um einen Text zu bearbeiten, doppelklicken  Sie können auch Microsoft Word verwenden, um einen Text zu erstellen. Sobald Sie den Text erstellt haben, speichern Sie ihn im RTF-Format. Rufen Sie dann den Objekteditor auf und klicken Sie auf die Schaltfläche "Öffnen", um den Text aus der RTF-Datei zu laden. Bitte beachten Sie, dass das Objekt nicht alle Funktionen von Microsoft Word unterstützt. Es wird in Zukunft weiterentwickelt werden. Neue Funktionen Konfiguration der FastReport Online Designer Symbole Es ist jetzt möglich, einen Designer mit verschiedenen Symbolsätzen zusammenzustellen. Derzeit ist ein Satz mit klassischen Symbolen und Symbolen im Stil von Visual Studio 2019 verfügbar. Beispiele für klassische Symbole: Beispiele für Symbolen im Stil von Visual Studio 2019:  Um den Symbolsatz zu ändern, den Sie verwenden möchten, wählen Sie beim Erstellen im Abschnitt "Designthema" den gewünschten Satz aus. FastReport Online Designer Build über eine API Der FastReport Online Designer Builder hat nun die Möglichkeit, einen Designer Build über eine API durchzuführen. Dank dieser Funktion können Sie den Build-Prozess automatisieren. API-Schlüssel Die Benutzerautorisierung erfolgt über einen API-Schlüssel, den Sie im FastReport Online Designer Builder erstellen können. Um den Schlüssel zu erstellen, müssen Sie: sich mit Ihrem Konto anmelden; zum neuen Menüpunkt "API-Schlüssel" gehen; auf die Schaltfläche in der unteren rechten Ecke oder auf die rote Aufschrift klicken. Es wird dann ein neuer API-Schlüssel erstellt. Sie können auf den Schlüssel klicken, um ihn zu kopieren und ihn zur Autorisierung der API zu verwenden. Lesen Sie mehr im Artikel. Anpassung von FastReport Online Designer Sie können jetzt die Hauptfarben und die im Designer verwendete Favicons anpassen. Designer Beispiel mit einer anderen Hauptfarbe: Beim Build des FastReport Online Designers können Sie im Abschnitt "Designthema" die Farben und das Favicon konfigurieren. Die Inhaber von speziellen OEM White Label FastReport Online Designer Lizenzen können den Produktnamen ändern und den Text auf dem Startbildschirm bearbeiten. Es wurde die Möglichkeit hinzugefügt, die Elementengröße ohne Bezug auf das Raster zu ändern Wenn Sie die ALT-Taste gedrückt halten, wird die Größe des Elements ohne Bezug auf das Raster geändert, so dass Sie die Größe des Elements so genau wie möglich einstellen können. Funktion „Positionieren der Elemente“ wurde hinzugefügt  Mit diesem Update wurden auch Funktionen für die Positionierung von Elementen relativ zueinander und in Bezug auf das Raster hinzugefügt. Modaler Dialog zur Einstellung von Bands wurde hinzugefügt  Sie können jetzt auch die Sortierung der Bands über einen speziellen modalen Dialog ändern, hinzufügen oder löschen. Drücken Sie die Schaltfläche in der oberen linken Ecke des Arbeitsbereichs, um den Dialog mit den Einstellungen von Bands aufzurufen.  Die Schaltfläche zum Ändern der Lokalisierung wurde in der oberen Leiste des Online-Designers hinzugefügt Die Lokalisierung kann nun bequem geändert werden, unabhängig davon, welches Panel gerade ausgewählt ist. Die Funktionen zum Strecken des Berichts nach Bildschirmbreite und -höhe wurden hinzugefügt  Sie können den Bericht nach der Breite oder Höhe strecken, indem Sie auf die entsprechende Schaltfläche klicken. Änderungen am Design  In dieser Version wurden die meisten Dialogfelder umgestaltet, um die Benutzerfreundlichkeit bei der Verwendung des Online-Designers zu verbessern. Vollständige Änderungsliste  + Das MSChart Objekt wurde hinzugefügt; + Das RichText Objekt wurde hinzugefügt; + Die Möglichkeit, einen Designer über die API zu zusammenzustellen, wurde hinzugefügt; + Die Möglichkeit, den Stil des Designers anzupassen, wurde hinzugefügt; + Die Möglichkeit, Symbolsätze zu ändern, wurde hinzugefügt; + Die Funktionen zur Positionierung von Elementen auf der Arbeitsfläche wurden hinzugefügt; + Modaler Dialog zur Einstellung von Bands wurde hinzugefügt; + Die Schaltfläche zum Ändern der Lokalisierung wurde in der oberen Leiste des Online-Designers hinzugefügt; + Die Funktionen zum Strecken des Berichts nach Bildschirmbreite und -höhe wurden hinzugefügt; + Die Schaltfläche "Ausdruck bearbeiten" zum OutlineExpression-Parameter wurde hinzugefügt; + Der SVG-Editor wurde hinzugefügt; + Die Möglichkeit, die Breite und Höhe des Berichtsdialogs zu ändern, wurde hinzugefügt; + Die Möglichkeit, eine tabellarische Datenquelle zu löschen, wurde hinzugefügt; - Das SubReport-Objekt wurde korrigiert; - Das TExtObject-Verhalten, wenn der Text gedreht wird, wurde korrigiert; - Ein Fehler bei der Vollbildansicht des Berichts wurde behoben; - Die Anzeige der Seitenvorschau für lange Vorlagen wurde korrigiert; - Das Standardverhalten der Schaltflächen OK und Abbrechen im Berichtsdialogfeld wurde korrigiert; - Das Verhalten von Komponentengruppen wurde korrigiert, Pop-up-Fenster werden nun geschlossen, wenn sie den Fokus verlieren; - Die Anzeige des Tabellenbaums wurde beim Erstellen einer Verbindung zu Firefox korrigiert; - Es wurde ein Fehler behoben, bei dem die Vorschau-Registerkarte auch in einem Build ohne sie angezeigt wurde; * Das Design aller modalen Dialoge wurde verbessert; * Die Geschwindigkeit des Designers wurde in Firefox verbessert; * Der Stil des Zoom Controls wurde ausgebessert; * Die Lokalisierungen der Produktschnittstellen wurden aktualisiert. ### Neue Version von FastReport Online Designer 2024.1 URL: https://www.fast-report.com/de/news/fastreport-online-designer-2024.1 Summary: Mit der Veröffentlichung von 2024.1 wurde der visuelle Komfort beim Erstellen von Berichten verbessert, neue Dateien und Verläufe für Objekte und Bänder wurden hinzugefügt. Mit der Veröffentlichung von 2024.1 wurde der visuelle Komfort beim Erstellen von Berichten verbessert, neue Dateien und Verläufe für Objekte und Bänder wurden hinzugefügt. Große Änderungen wurden am Berichtsdesigner mit der Version 2024.1 vorgenommen! Wir haben ein besonderes Augenmerk auf die Änderungen an der internen Architektur des Produkts gelegt sowie die visuelle Benutzerfreundlichkeit bei der Erstellung von Berichten verbessert. Außerdem wurden neue Objektfüllungen und Farbverläufe hinzugefügt. Neue Funktionen  Es wurde die Möglichkeit hinzugefügt, einen linearen Farbverlauf auf ein Objekt oder ein Band anzuwenden  Um einen linearen Farbverlauf auf ein Objekt oder ein Band anzuwenden, wählen Sie das Element aus und klicken Sie dann auf die Gruppe Füllen im Eigenschaftenpanel: Daraufhin öffnet sich ein Dialogfeld. Klicken Sie im Dialogfeld auf die Registerkarte "Farbverlauf". Danach können Sie die Parameter des Farbverlaufs (Startfarbe, Endfarbe, Verlaufswinkel, Fokus und Kontrast) auswählen und die Änderungen übernehmen: Es wurde die Möglichkeit hinzugefügt, einen Pfadfarbverlauf auf ein Objekt oder ein Band anzuwenden  Um einen Pfadfarbverlauf auf ein Objekt oder ein Band anzuwenden, wählen Sie das Element aus und klicken Sie dann auf die Gruppe Füllen im Eigenschaftenpanel: Daraufhin öffnet sich ein Dialogfeld. Klicken Sie im Dialogfeld auf die Registerkarte "Pfadfarbverlauf". Danach können Sie die Parameter des Pfadfarbverlaufs (Farbe der Mitte, Farbe des Randes, Form) auswählen und die Änderungen übernehmen: Es wurde die Möglichkeit hinzugefügt, eine Schraffurfüllung auf ein Objekt oder ein Band anzuwenden  Um eine Schraffurfüllung auf ein Objekt oder ein Band anzuwenden, wählen Sie das Element aus und klicken Sie dann auf die Gruppe Füllen im Eigenschaftenpanel: Daraufhin öffnet sich ein Dialogfeld. Klicken Sie im Dialogfeld auf die Registerkarte "Schraffuren". Hier können Sie die Schraffurparameter (Schraffurfarbe, Hintergrundfarbe, Schraffurstil) auswählen und die Änderungen übernehmen:  Es wurde die Möglichkeit hinzugefügt, eine Glasfüllung auf ein Objekt oder ein Band anzuwenden  Um eine Glasfüllung auf ein Objekt oder ein Band anzuwenden, wählen Sie das Element aus und klicken Sie dann auf die Gruppe Füllen im Eigenschaftenpanel: Daraufhin öffnet sich ein Dialogfeld. Klicken Sie im Dialogfeld auf die Registerkarte "Glas". Danach können Sie die Parameter der Glasfüllung (Farbe, Transparenz, Schraffur) auswählen und die Änderungen übernehmen: Es wurde die Möglichkeit hinzugefügt, eine Texturfüllung auf ein Objekt oder ein Band anzuwenden  Um eine Texturfüllung auf ein Objekt oder ein Band anzuwenden, wählen Sie das Element aus und klicken Sie dann auf die Gruppe Füllen im Eigenschaftenpanel: Daraufhin öffnet sich ein Dialogfeld. Klicken Sie im Dialogfeld auf die Registerkarte "Textur". Danach können Sie die Parameter der Texturfüllung (Bild, Texturmustergröße, Übertragungsmodus, Option " Seitenverhältnis beibehalten", Musterverschiebung in der X- und Y-Achse) auswählen und die Änderungen übernehmen:  Es wurde die Möglichkeit hinzugefügt, ein Feld per Drag-and-drop auf einen Barcode zu ziehen, damit es in der DataColumn aufgezeichnet wird  Um nun beliebige Daten in einen Barcode einzufügen, können Sie neben der Verwendung des Eigenschaftenfensters auch Daten aus dem Datenfenster direkt auf den Barcode ziehen: Es wurde die Möglichkeit hinzugefügt, eine Matrix über das Kontextmenü zu löschen  Auf Wunsch der Benutzer wurde im Kontextmenü der Matrix ein nützlicher Eintrag "Löschen" hinzugefügt: Verbesserungen Überarbeitung und neues Design der Pop-up-Fenster  Alle Pop-up-Fenster, wie z. B. der Ausdrucks- oder der Format-Editor, wurden komplett neu gestaltet und an moderne UI-Standards angepasst. Wir haben alle Dialogfelder in unserem Projekt komplett überarbeitet und neu geschrieben. Wir haben daran gearbeitet, um eine bessere Leistung, Benutzerfreundlichkeit und Optimierung der Benutzeroberfläche zu gewährleisten. Zum Beispiel wird der Ausdruck jetzt an die angegebene Stelle im Feld des Ausdruckseditors verschoben: Hier ist die vollständige Liste der geänderten Fenster: MS Chart bearbeiten; Bands bearbeiten; Ränder bearbeiten; Verbindungszeichenfolge bearbeiten; Datenband bearbeiten; Füllung bearbeiten; Schriftart bearbeiten; GroupHeader bearbeiten; Bedingte Auswahl bearbeiten; Karte bearbeiten; Matrixzellen bearbeiten; MS Chart-Serien bearbeiten; Bild bearbeiten; RichText bearbeiten; Format; Link-Editor; Kartenebene laden; Connection hinzufügen; Aufzeichnung bearbeiten. Überarbeitung und neues Design der Pop-up-Fensterelemente Neben den funktionalen Verbesserungen werden Sie auch optische Änderungen feststellen. Das Design der Steuerelemente ist moderner, sauberer und intuitiver geworden. Das Ziel dieser Änderungen ist, die Interaktion der Benutzer mit der Anwendung zu verbessern. Überarbeitung und neues Design der Bedienungsschaltplatte (Eigenschaften, Berichtsbaum, Daten, Ereignisse) Die Bedienungsschaltplatte wurde überarbeitet und geändert. Sie enthält: Eigenschaftenpanel; Berichtsbaumpanel; Datenpanel; Ereignispanel. Die Bedienungsschaltplatte befindet sich jetzt auf der rechten Seite: Das Eigenschaftenpanel wurde umgestaltet. Jetzt sieht es wie folgt aus: Das Berichtsbaumpanel wurde ebenso überarbeitet: Das Datenpanel wurde umgestaltet: Das Ereignispanel wurde auch umgestaltet: Neues Komponentenpanel für Desktop-Geräte  Bei Desktop-Geräten, wie z. B. einem PC oder Laptop, wird das Komponentenpanel jetzt auf der linken Seite angezeigt: Bei Geräten mit Touchscreen ist das Komponentenpanel an der gleichen Stelle geblieben: Geändertes Farbauswahltool Das Farbauswahltool wurde aktualisiert und leistungsfähiger geworden. Mit der neuen Version des Tools können Sie voreingestellte Farben auswählen und die Farbtransparenz anpassen. Die alte Version des Tools sah wie folgt aus: Die neue Version sieht wie folgt aus: Wenn der GroupHeader gelöscht wird, wird das Datenband nicht mitgelöscht  Wenn Sie früher den GroupHeader löschten, wurde auch das Datenband mitgelöscht. Jetzt bleibt das Datenband erhalten: Durch die Verwendung von JavaScript-Injektionen in FastReport Online Designer kann deren Funktionalität beeinträchtigt sein! Bitte kontaktieren Sie unseren Support , wenn Sie Probleme haben. Vollständige Änderungsliste  ----- + Es wurde die Möglichkeit hinzugefügt, einen linearen Farbverlauf auf ein Objekt oder ein Band anzuwenden; + Es wurde die Möglichkeit hinzugefügt, einen Pfadfarbverlauf auf ein Objekt oder ein Band anzuwenden; + Es wurde die Möglichkeit hinzugefügt, eine Schraffurfüllung auf ein Objekt oder ein Band anzuwenden; + Es wurde die Möglichkeit hinzugefügt, eine Glasfüllung auf ein Objekt oder ein Band anzuwenden; + Es wurde die Möglichkeit hinzugefügt, eine Texturfüllung auf ein Objekt oder ein Band anzuwenden; + Es wurde die Möglichkeit hinzugefügt, ein Feld per Drag-and-drop auf einen Barcode zu ziehen, damit es in der DataColumn aufgezeichnet wird; + Es wurde die Möglichkeit hinzugefügt, eine Matrix über das Kontextmenü zu löschen; * Überarbeitung und neues Design der Pop-up-Fenster; * Überarbeitung und neues Design der Pop-up-Fensterelemente; * Überarbeitung und neues Design der Bedienungsschaltplatte (Eigenschaften, Berichtsbaum, Daten, Ereignisse); * Neues Komponentenpanel für Desktop-Geräte; * Ersetzen des Farbauswahltools; * Wenn der GroupHeader gelöscht wird, wird das Datenband nicht mitgelöscht; * Aktualisierte Lokalisierung; * und weitere Verbesserungen; - Der Fehler wurde behoben, bei dem das Objekt "Simple Progress Sensor" nicht angezeigt wurde; - Der Fehler wurde behoben, der dazu führte, dass bei der Auswahl eines Datenformats in manchen Fällen nichts passierte; - Die Standardfarbe für Tabellenränder wurde korrigiert; - Das Zurücksetzen des Trennzeichens beim erneuten Öffnen des Formulars "Datenformat" wurde korrigiert; - Das Problem wurde behoben, bei dem die CheckedListbox in einem Dialogformular nicht aktualisiert wurde; - Kompatibilitätsprobleme wurden bei älteren Berichten behoben; - Die Anzeige der nummerierten Liste in RichText wurde korrigiert; - Fehler im Dialogformular wurden behoben; - Die Anzeige von Ereignissen nach dem Neuladen des Berichts wurde korrigiert; - und weitere Korrekturen. ### Neue Version von FastReport Online Designer 2024.2 URL: https://www.fast-report.com/de/news/fastreport-online-designer-2024.2 Summary: Neue Funktionen in Version 2024.2: Spark-Grafikobjekt, Erstellung benutzerdefinierter SQL-Abfragen, Intellisense beim Bearbeiten von Code. Neue Funktionen in Version 2024.2: Spark-Grafikobjekt, Erstellung benutzerdefinierter SQL-Abfragen, Intellisense beim Bearbeiten von Code. Umfassende Aktualisierung der Funktionen des Berichtsdesigners. Für Sie sind jetzt noch weitere Funktionen verfügbar: ein neues Sparkline-Objekt, Erstellung von benutzerdefinierten SQL-Abfragen, Intellisense bei der Bearbeitung von Berichtscode. Auf die Anfragen unserer Benutzer haben wir die Builder-Anwendung zur Erstellung von Assemblies erheblich verbessert. Neue Möglichkeiten Implementierung eines Kontextmenüs für eine Seite im Seitenbedienfeld Um die Arbeit mit Seiten bequemer zu gestalten, wurde ein Kontextmenü eingeführt. Über dieses Menü ist es möglich, das Seitenbearbeitungsfenster zu öffnen, Berichtsseiten zu kopieren oder zu löschen. Implementierung des Sparkline-Objekts Jetzt steht das Sparkline-Objekt nicht nur zur Anzeige, sondern auch zur Bearbeitung zur Verfügung. Sie können das Sparkline Bearbeitungsfenster aufrufen, indem Sie auf das Objekt auf dem Band doppelklicken. Danach öffnet sich ein Fenster im FastReport Online Designer, in dem Sie die Daten für das Diagramm festlegen und das Erscheinungsbild, die Bereiche, die Achsen, die Kopfzeile und die Legende anpassen können. Bei der Vorschau des Berichts wird das Sparkline angezeigt: Eine neue Möglichkeit, Verbindungen zu löschen und zu bearbeiten  Um eine Verbindung zu löschen, müssen Sie auf die Schaltfläche "Löschen" klicken: Wenn Sie eine bestehende Verbindung bearbeiten möchten, klicken Sie auf das Schraubenschlüssel-Symbol. Dadurch wird der Verbindungsassistent geöffnet: Ein neuer Modus, in dem die Band-Namen oben angezeigt werden  Ähnlich wie im FastReport .NET-Berichtsvorlagendesigner wurde im FastReport Online Designer die Möglichkeit geschaffen, die Anzeige der Band-Namen zu ändern. Wenn Sie den Modus der Anzeige von Band-Namen von vertikal auf horizontal ändern möchten, sollten Sie auf die Schaltfläche in der oberen linken Ecke des Arbeitsbereichs klicken: Implementierung einer Speichern-Schaltfläche für das Mini-Theme  Für das Mini-Thema wurde eine Speichern-Schaltfläche hinzugefügt. Sie befindet sich in der oberen Leiste: Eine neue Möglichkeit, benutzerdefinierte SQL-Abfragen durchzuführen  Das Arbeiten mit Datenquellen ist noch bequemer geworden. Im FastReport Online Designer wurde die Möglichkeit hinzugefügt, benutzerdefinierte SQL-Abfragen durchzuführen. Um diese Funktion zu aktivieren, müssen Sie den Parameter in den Code der Serveranwendung einfügen: ``` services.AddFastReport(options => options.AllowCustomSqlQueries = true); ``` Stellen Sie sicher, dass Ihre Datenbank schreibgeschützt ist und keine sensiblen Informationen enthält. Nachdem Sie die Funktion aktiviert haben (beim Erstellen einer Datenquelle), wird Ihnen die Möglichkeit geboten, Ihre SQL-Ansichten für diese Datenquelle hinzuzufügen. Sie können diese SQL-Ansichten wie normale Tabellen verwenden. Implementierung der Sortierung und einer Schaltfläche zum Ein-/Ausblenden für die erweiterte Matrix sowie der Möglichkeit, die Sichtbarkeit von Daten über die Schaltfläche zu ändern  Das Objekt „Erweiterte Matrix“ wurde verbessert. Matrixberichte können jetzt interaktiver gestaltet werden. Um die Felder zu sortieren, müssen Sie das Kontextmenü der Kopfzelle aufrufen und den entsprechenden Punkt auswählen: Sie können die Sortierbedingungen festlegen, indem Sie auf die Zelle doppelklicken und die entsprechende Registerkarte im Fenster mit den Kopfzelleneinstellungen öffnen: Die Schaltfläche zum Ein-/Ausblenden wird auf ähnliche Weise über das Kontextmenü hinzugefügt: Die Betriebsbedingungen dieser Schaltfläche können auch für andere Kopfzellen konfiguriert werden, indem Sie die Registerkarte "Sichtbarkeit" im Einstellungsfenster der gewünschten Zelle öffnen. Dann müssen Sie die gewünschte Schaltfläche in der Dropdown-Liste "Sichtbarkeit durch Schaltfläche umschalten" auswählen: Eine neue Möglichkeit, ein berechnetes Feld zu erstellen  Wenn Sie einen Ausdruck dauerhaft verwenden möchten, können Sie ein entsprechendes Feld in der Datenquelle erstellen. Dazu rufen Sie das Kontextmenü der Tabelle auf und wählen Sie darin den Punkt "Neues berechnetes Feld..." aus. Nachdem Sie ein berechnetes Feld erstellt haben, können Sie im Eigenschaftenpanel einen Ausdruck für dieses Feld festlegen. Implementierung der Dock-Eigenschaft im Designer  Um das Nutzungserlebnis zu verbessern, wurde eine visuelle Anzeige der Dock-Eigenschaft im Berichtsvorlagendesigner implementiert. Diese Eigenschaft ermöglicht es Ihnen, die Band-Komponente auszurichten. Implementierung der SizeMode-Eigenschaft der Bilder im Designer  Wir haben eine visuelle Anzeige der SizeMode-Eigenschaft bei der Bearbeitung einer Berichtsvorlage implementiert. Mit dieser Eigenschaft können Sie den Bildanzeigemodus einstellen. Implementierung der VisibleExpression-Eigenschaft der Berichtseite  Wenn Sie eine Berichtsvorlage im FastReport Online Designer bearbeiten, können Sie jetzt die Bedingung für die Seitenanzeige festlegen. Zu diesem Zweck wird die VisibleExpression- Eigenschaft verwendet. Sie können ihren Wert im Eigenschaftenpanel entweder manuell oder mit Hilfe des Ausdruckseditors festlegen. Ein neues Fenster zur Seitenbearbeitung  Um die Seitenanpassung bequemer zu gestalten, wurde ein Fenster zur Seitenbearbeitung hinzugefügt. Sie können es über das Kontextmenü der Seite im Seitenbedienfeld öffnen, indem Sie den Punkt „Seite einrichten“ auswählen. Eine neue Möglichkeit, Verknüpfungen zwischen Tabellen in Datenquellen zu erstellen  Im FastReport Online Designer 2024.2 wurde eine Funktion hinzugefügt, mit der Sie eine Verknüpfung zwischen Tabellen in einer Datenquelle erstellen können. Rufen Sie dazu das Kontextmenü der Tabelle auf und wählen Sie den Punkt „Neue Verknüpfung“: Daraufhin öffnet sich das Fenster zur Bearbeitung der Verknüpfungen, in dem Sie die notwendigen Parameter einstellen können: Eine neue Intellisense-Funktion zum Bearbeiten des Berichtscodes (*beta)  In der neuesten Aktualisierung von FastReport Online Designer haben wir das Arbeiten mit dem C# Code deutlich verbessert. Dank der Einführung der Intellisense-Funktion ist die Bearbeitung von Skripten im Berichtseditor jetzt noch bequemer und benutzerfreundlicher geworden. Die Intellisense bietet automatische Code-Vervollständigung und Tipps zur Syntax, so dass die Benutzer den Code schneller und genauer direkt in der Web-Oberfläche schreiben können. Dies vereinfacht den Entwicklungsprozess erheblich und macht den FastReport Online Designer zu einem noch leistungsfähigeren Werkzeug für Ihr Unternehmen. Implementierung einer neuen App-Version von FastReport Online Designer Builder  Auch für den FastReport Online Designer Builder wurde eine neue Version implementiert. Das Design und das Nutzungserlebnis wurden verbessert, ein dunkles Thema wurde auf der Grundlage von Benutzeranfragen erstellt. Verbesserungen Neu gestaltetes Kontextmenü  Im Kontextmenü von FastReport Online Designer Objekten wurden die Hauptelemente in einem Panel gruppiert. Außerdem wurden Symbole hinzugefügt, um das Nutzungserlebnis zu verbessern. Das Kontextmenü sieht nun wie folgt aus: Erweiterte Informationen in der StatusBar  Hinzufügen von Informationen mit X- und Y-Koordinaten der linken oberen Ecke der ausgewählten Komponente; Hinzufügen von Informationen mit X- und Y-Koordinaten der unteren rechten Ecke der ausgewählten Komponente; Hinzufügen von Informationen über Breite und Höhe der ausgewählten Komponente; Hinzufügen von Texten zu Textobjekten. Verbessertes Nutzungserlebnis der Zoom-Leiste Um das Nutzungserlebnis der Zoom-Leiste zu verbessern, wurden einige Verbesserungen vorgenommen. Die Leiste sieht jetzt wie folgt aus: Vollständige Änderungsliste  --- + Das Kontextmenü der Seite wurde im Seitenbedienfeld implementiert; + Das Sparkline-Objekt wurde implementiert; + Es wurde die Möglichkeit hinzugefügt, eine Verbindung zu löschen und zu bearbeiten; + Es wurde ein Modus hinzugefügt, in dem die Band-Namen oben angezeigt werden; + Die Speichern-Schaltfläche wurde für Mini-Theme implementiert; + Es wurde die Möglichkeit hinzugefügt, benutzerdefinierte SQL-Abfragen durchzuführen; + Für die erweiterte Matrix wurden die Sortierung und eine Schaltfläche zum Ein-/Ausblenden sowie die Möglichkeit, die Sichtbarkeit über die Schaltfläche zu ändern, implementiert; + Es wurde die Möglichkeit hinzugefügt, ein berechnetes Feld zu erstellen; + Die Dock-Eigenschaft wurde im Designer implementiert; + Die SizeMode-Eigenschaft wurde für Bilder im Designer implementiert; + Die VisibleExpression-Eigenschaft der Berichtseite wurde implementiert; + Das Fenster zur Seitenbearbeitung wurde hinzugefügt; + Es wurde die Möglichkeit hinzugefügt, Verknüpfungen zwischen Tabellen in Datenquellen zu erstellen; + Zum Bearbeiten des Berichtscodes wurde die Intellisense-Funktionalität hinzugefügt; + Eine neue App-Version von FastReport Online Designer Builder wurde implementiert; * Das Kontextmenü wurde neu gestaltet; * Die Information, die in der StatusBar angezeigt wird, wurde erweitert; * Das Nutzungserlebnis der Zoom-Leiste wurde verbessert; - Der Fehler wurde behoben, bei dem ein Feld aus der Datenbank im EvaluateCondition-Editor von Total falsch übertragen wurde; - Der Fehler wurde behoben, bei dem die MS Chart-Datenquelle beim Öffnen eines Berichts verschwand; - Der Fehler wurde behoben, bei dem die Hervorhebungsbedingungen beim Laden nach dem Speichern eines Berichts nicht korrekt angezeigt wurden; - Der Fehler wurde behoben, bei dem die Sortierung in DataBand nicht funktionierte; - Der Fehler wurde behoben, der beim Doppelklick auf eine Komponente eines Dialogformulars auftrat; - Der Fehler wurde behoben, bei dem eingefügte Berichtsparameter nicht korrekt funktionierten; - Der Fehler wurde behoben, bei dem das Dialogformular keine Maßwerte akzeptierte; - Und weitere Verbesserungen. ### Neue Version von FastReport Online Designer 2025.1 URL: https://www.fast-report.com/de/news/fastreport-online-designer-2025.1 Summary: In der Veröffentlichung von FastReport Online Designer 2025.1 haben wir ein neues Komponentenmenü hinzugefügt, neue Funktionen in das Kontextmenü des Objekts „Tabelle“ eingeführt, die Wasserzeicheneinstellungen verbessert, die Erstellung von Hilfslinien auf der Seite hinzugefügt und vieles mehr. In der Veröffentlichung von FastReport Online Designer 2025.1 haben wir ein neues Komponentenmenü hinzugefügt, neue Funktionen in das Kontextmenü des Objekts „Tabelle“ eingeführt, die Wasserzeicheneinstellungen verbessert, die Erstellung von Hilfslinien auf der Seite hinzugefügt und vieles mehr. Wir freuen uns bekannt zu geben, dass wir ein Update für den visuellen Vorlagen- und Berichtsdesigner in Ihrem Browser veröffentlicht haben. In der Veröffentlichung von FastReport Online Designer 2025.1 haben wir ein neues Komponentenmenü hinzugefügt, neue Funktionen in das Kontextmenü des Objekts „Tabelle“ eingeführt, die Wasserzeicheneinstellungen verbessert, die Erstellung von Hilfslinien auf der Seite hinzugefügt und vieles mehr. Neue Möglichkeiten Neues Komponentenmenü implementiert  Die neue Menüversion wurde speziell für mobile Geräte entwickelt und bietet ein kompaktes und intuitives Erlebnis. Sie können zwischen dem aktuellen Menü und dem neuen Menü wählen, je nach Ihren Vorlieben und Workflow-Anforderungen. Dieses neue Komponentenmenü kann über den Designer Builder aktiviert und deaktiviert werden. Neue Funktionen zum Kontextmenü des Objekts „Tabelle“ hinzugefügt Für eine flexiblere und komfortablere Bearbeitung wurden dem Kontextmenü des Objekts „Tabelle“ neue Funktionen hinzugefügt. Jetzt können Sie neue Spalten und Zeilen direkt aus dem Kontextmenü heraus hinzufügen: Sie können wählen, ob Sie eine Spalte rechts oder links von der aktuellen Zelle sowie eine Zeile oben oder unten hinzufügen möchten. Außerdem ist es jetzt möglich, eine ausgewählte Spalte oder Zeile schnell zu löschen, was den Prozess der Tabellenanpassung vereinfacht. Außerdem wurde die Möglichkeit hinzugefügt, den Stil mehrerer Zellen gleichzeitig über die Hauptsymbolleiste zu ändern. Sie können mehrere Zellen auswählen und die Formatierung auf sie anwenden, z. B. Schriftart, Textfarbe, Füllung und andere Formatierungsoptionen über die Symbolleiste ändern. Implementierung von Feldern in der Eigenschaftsleiste, die ihre Werte je nach Maßeinheit ändern  Jetzt können Sie Parameter wie z. B. Objektabmessungen in praktischen Einheiten festlegen: Zentimeter, Millimeter, Zoll oder Hundertstel Zoll. Wenn Sie eine bestimmte Einheit auswählen, werden alle Werte automatisch neu berechnet und in dieser Einheit angezeigt, so dass Sie Parameter direkt in den ausgewählten Einheiten ohne zusätzliche Neuberechnung bearbeiten können. Diese Funktion gewährleistet eine genaue und einfache Anpassung von Objekten, indem die Benutzeroberfläche an unterschiedliche Arbeitsanforderungen angepasst wird. Ändern des Drehwinkels einer Komponente mit Hotkeys  Mit dieser Aktualisierung kann jede Komponente mit der Eigenschaft „Winkel“ (Angle) mit bequemen Tastenkombinationen gedreht werden:  Umschalttaste (Shift) + → — um 1 Grad nach rechts drehen Umschalttaste (Shift) + ← — um 1 Grad nach links drehen Strg (Ctrl) + Umschalt (Shift) + → — um 90 Grad nach rechts drehen Strg (Ctrl) + Umschalt (Shift) + ← — um 90 Grad nach links drehen Bei Verwendung der Strg-Tastenkombination wird die Komponente am nächstgelegenen rechten Winkel ausgerichtet. Wenn der aktuelle Winkel beispielsweise 20 Grad beträgt, wird durch Drehen nach rechts mit Strg + Umschalt + → der Winkel auf 90 Grad geändert. Wenn der Winkel ebenfalls 95 Grad beträgt, wird der Winkel durch Drehen nach rechts auf 180 Grad gesetzt. Mit dieser Funktion können Sie den Drehwinkel schnell steuern und so flexibel und bequem mit Komponenten arbeiten. Stilisierung mehrerer Komponenten über die Hauptsymbolleiste  In der Hauptsymbolleiste können Sie mehrere Komponenten gleichzeitig formatieren, indem Sie einheitliche Einstellungen für Schriftart, Textausrichtung, Hintergrundfüllung und andere Parameter festlegen. Sie können eine Schriftart aus den verfügbaren Stilen auswählen, ihre Größe und ihren Schriftschnitt anpassen sowie die Farbe für die Textauswahl in Komponenten festlegen. Die Textausrichtung ist horizontal (links, rechts, mittig) und vertikal (oben, unten, mittig) einstellbar. Bei der Bearbeitung von Ausdrücken wurde die Suche im Datenbaum hinzugefügt  Bei der Bearbeitung von Ausdrücken ist jetzt die Funktion zur Suche im Datenbaum verfügbar. Es wurde ein Suchfeld hinzugefügt, mit dem Sie schnell die benötigten Elemente in der Baumstruktur der Daten finden können, wodurch langwierige manuelle Suchen vermieden werden. Diese neue Funktion beschleunigt die Arbeit erheblich, insbesondere bei großen Datenmengen, und macht den Bearbeitungsprozess bequemer und effizienter.   Erstellen von Hilfslinien auf einer Seite  Sie können jetzt Hilfslinien platzieren und diese als Anker für Objektgrenzen verwenden. Wenn eine Komponente eine Hilfslinie berührt, rastet sie automatisch daran ein. Wenn Sie die Hilfslinie verschieben, bewegen sich alle daran befestigten Komponenten mit, wobei sie ihre Position relativ zur Hilfslinie beibehalten. Wenn eine Komponente an zwei Hilfslinien auf gegenüberliegenden Seiten eingerastet ist, wird mit der Änderung der Hilfslinien ihre Größe geändert an die neuen Grenzen angepasst. Diese Funktion bietet eine präzisere Ausrichtung und Flexibilität bei der Anordnung von Elementen auf einer Seite. Bearbeitung von Datenquellen  Auf vielfachen Wunsch unserer Kunden haben wir die Bearbeitung von Datenquellen hinzugefügt. Rufen Sie dazu das Kontextmenü der gewünschten Tabelle auf und klicken Sie auf „Bearbeiten“. Daraufhin öffnet sich ein Fenster, in dem Sie eine benutzerdefinierte SQL-Abfrage definieren und Parameter für diese Abfrage erstellen können.   Achtung! Vergessen Sie nicht, sicherzustellen, dass Ihre Datenbank SCHREIBGESCHÜTZT ist. Möglichkeit zum Bearbeiten von Wasserzeichen hinzugefügt  Der FastReport Online Designer bietet nun die Möglichkeit, das Wasserzeichen anzupassen. Um das Bearbeitungsfenster zu öffnen, klicken Sie auf die entsprechende Schaltfläche in der Eigenschaftsleiste. Das Wasserzeichen wird auf dem Seitenlayout angezeigt. Verbesserungen Neues Design für die Eigenschaftsleiste  Die Eigenschaftsleiste verfügt über ein neues Design, das die Benutzeroberfläche benutzerfreundlicher und intuitiver macht. Die aktualisierte Leiste verbessert die Informationswahrnehmung dank einer optimierten Struktur und einem modernen visuellen Stil. Jetzt ist es einfacher, die erforderlichen Parameter zu finden und die Eigenschaften von Objekten anzupassen, was zu einer höheren Produktivität des Designers beiträgt. Lokalisierung des Designers auf Japanisch hinzugefügt  Alle Elemente der Benutzeroberfläche, einschließlich der Menüs und Symbolleisten, sind jetzt ins Japanische übersetzt, so dass die Begriffe in anderen Sprachen nicht mehr verstanden werden müssen. Neue Komponenten zur Größenänderung von Objekten  Es wurden neue Komponenten für die Größenanpassung von Objekten hinzugefügt, die die Genauigkeit und die Bedienungsfreundlichkeit auf jeder Zoomstufe gewährleisten. Im Gegensatz zu früheren Versionen ändert sich die Größe dieser Komponenten nicht mit dem Arbeitsbereich, sodass die Interaktion mit ihnen unabhängig vom Maßstab einfach ist. Die Steuerung der Objektgröße bleibt nun auch bei verkleinertem Maßstab präzise und intuitiv, was die Kontrolle über die Bearbeitung verbessert. Verbesserte Anzeige von Werten im Format-Dialogfeld  Mit dem Update 2025.1 wird ein leerer Wert in einem Eingabefeld als „Kein“ oder "None" angezeigt. Diese Änderung macht die Benutzeroberfläche informativer und schließt die Möglichkeit von Missverständnissen seitens der Benutzer aus. Anzeige des Komponentennamens ohne Inhalt  Bei Komponenten, die keinen Wert oder keinen Inhalt haben, wird jetzt ihr Name angezeigt. Vollständige Liste der Änderungen  ---- + Ein neues Komponentenmenü wurde implementiert; + Neue Funktionen wurden zum Kontextmenü des Objekts „Tabelle“ hinzugefügt; + In der Eigenschaftsleiste wurden Felder implementiert, die ihre Werte je nach Maßeinheit ändern; + Die Möglichkeit wurde hinzugefügt, den Drehwinkel mit Hotkeys zu ändern; + Die Möglichkeit wurde hinzugefügt, mehrere Komponenten über die Hauptsymbolleiste zu formatieren; + Die Möglichkeit wurde hinzugefügt, beim Bearbeiten eines Ausdrucks den Datenbaum zu durchsuchen; + Die Möglichkeit wurde hinzugefügt, Hilfslinien auf der Seite zu erstellen; * Ein neues Design der Eigenschaftsleiste wurde implementiert; * Es wurde die Lokalisierung des Designers auf Japanisch hinzugefügt; * Neue Komponenten zur Größenänderung von Objekten wurden implementiert; * Im Format-Dialogfeld wurde die Anzeige der Werte verbessert; * Für Komponenten ohne Ansicht wurde die Anzeige der Komponentennamen hinzugefügt; - Ein Fehler wurde behoben, bei dem die Rastereinstellungen beim Verlassen des Designers nicht gespeichert wurden; - Die Anzeige des Dialogfelds "Band-Einstellungen" wurde korrigiert; - Die Anzeige des Dialogfelds „Füllen“ wurde korrigiert; - Die Lokalisierung des Feldes Unlimited height wurde korrigiert; - Bei der Verbindung von verschachteltem JSON wurde ein Problem behoben; - Ein Anzeigeproblem wurde bei verschachtelten Containerobjekten behoben; - Ein Problem wurde mit der Bildtranskodierung durch die SVG-Komponente behoben; - Es wurde ein Problem mit der SVG-Komponente behoben, bei dem das DataColumn-Bild bei Verwendung von eckigen Klammern nicht angezeigt wurde; - In MSChart wurde ein Problem mit kyrillischer Kodierung behoben; - Ein Problem wurde behoben, bei dem die Markierung im Berichtsbaum die Bildlaufposition zurücksetzte; - Ein Problem wurde bei der Anzeige langer Namen von Datenquellen behoben; - Ein Problem wurde beim Zeilenumbruch im Text beim erneuten Speichern eines Berichts behoben; - Ein Problem wurde im RichText mit der aktivierten Eigenschaft Dock=„Fill“ behoben; - Ein Problem wurde im Dialogfeld „Bedingte Auswahl“ mit dem Farbauswahlfeld behoben; - Es wurde ein Fehler behoben, bei dem es unmöglich war, eine Seite für einen verschachtelten Bericht auszuwählen; - Es wurde ein Fehler behoben, der beim Öffnen eines Berichts mit RichObject und mit der aktivierten Eigenschaft Dock=„Fill“ auftritt; - Ein Fehler wurde behoben, bei dem die Seitenfüllung nicht angezeigt wurde. ### Neue Version von FastReport VCL - 2021 URL: https://www.fast-report.com/de/news/release-fastreport-vcl-2021 Summary: Neue Version von FastReport VCL - 2021 Neue Version von FastReport VCL - 2021 Deutlich verbessertes Arbeiten mit Bildern - wie in Bildbearbeitungsprogrammen:  Hochwertige Vektor-SVG-Bilder in Reports  Verbesserte Bildtransparenz in verschiedenen Formaten Neue Objekte erweitern das Konzept eines "Reports":  Two-Track Pharmacode zum Gestalten und Drucken von Medikamenten- und Impfstoffverpackungen Berichtssicherheit und Datenschutz:  Jetzt werden Berichte in PDF mit einer digitalen Signatur geschützt. Sie garantiert ihre Einzigartigkeit, ermöglicht die eindeutige Feststellung der Urheberschaft und schützt sie vor Bearbeitung. Ihre Berichte entsprechen jetzt den Docflow-Standards.  Optimierung der Ressourcen:  Seitenminiaturen werden schneller gebildet Weniger Speicher für die Arbeit erforderlich ! Neues Lizenzierunsmodell: Ab März 2021 werden alle FastReport VCL-Editionen abonnementbasiert. Das bedeutet, dass Sie immer eine aktuelle Version haben werden, solange Ihr Abonnement gültig ist.  Seien Sie unter den Ersten, die die neuen Möglichkeiten von FastReport VCL in der Praxis ausprobieren! 
Bilder im Vektor-SVG-Format über das Standardobjekt "Picture" importieren und ausgeben (nur für Delphi). Verbessern Sie das Aussehen Ihrer Berichte! Unterstützung von digitalen Unterschriften im PDF-Export mit Unterstützung von pfx- und p12-Zertifikaten hinzugefügt. Unterschreiben Sie Ihre PDF-Dokumente in nur 3 einfachen Schritten: Fügen Sie das Objekt "Digitale Signatur" (TfrxDigitalSignatureView) hinzu, wählen Sie die Art der Signatur (versteckt, sichtbar, Bild) und unterschreiben Sie Dokumente mit Ihrem eigenen Zertifikat.

 Verbesserte Transparenzunterstützung für Bilder innerhalb eines Reports. Jetzt unterstützt FastReport VCL nicht nur die Farbmaske, sondern auch einen Alphakanal in der Reportvorschau, auf dem Ausdruck und beim Export, was die transparenten Bilder unterstützt.

 Experimenteller Bilder-Cache mit der Möglichkeit, Miniaturbilder zu erzeugen und die Gesamtbildqualität zu steuern, wurde hinzugefügt. Der neue Bild-Cache spart Speicherverbrauch und GDI-Deskriptoren. Er lädt nur eine Kopie des duplizierten Bildes (kann mit der Eigenschaft Report.PictureCacheOptions.CaсhedImagesBuildType=tbtOriginal eingeschaltet werden). Der Bilder-Cache kann für die Erzeugung von Miniaturbildern eingerichtet werden, was für ein schnelles Laden der Bilder im Vorschaufenster genutzt wird (kann mit Report.PictureCacheOptions.CaсhedImagesBuildType=tbtAtPrepare eingeschaltet werden). Die Qualität der Miniaturbilder wird über die Eigenschaften von Report.PictureCacheOptions.ThumbnailQualityReducer gesteuert und erlaubt die Einstellung der prozentualen Kompression und der Bedingungen. Darüber hinaus ist es möglich, die Gesamtqualität der Komprimierung für alle Bilder über die Eigenschaft Report.PictureCacheOptions.OriginalQualityReducer zu steuern. Diese Bilder werden für die Vorschau, den Ausdruck und den Export eines Berichts verwendet.  Neuer Barcodetyp "Two-Track Pharmacode" wurde hinzugefügt. Neues TfrxRichView-Objekt für Lazarus mit Unterstützung von Linux für das Laden von rtf-Dokumenten in einen Bericht hinzugefügt. Die Möglichkeit, den Web-Browser für das Autorisierungsfenster in Cloud-Save-Filtern (EdgeView2, CEF4Delphi) zu ersetzen, wurde hinzugefügt. Mehr Details finden Sie im  Artikel . Komplette Liste der Änderungen: Version 2021 ---------------------------- + Unterstützung des Vektor-SVG-Formats im TfrxPictureView-Objekt wurde hinzugefügt + Digitales Signatur-Objekt und digitale Signatur-Unterstützung für PDF-Export wurden hinzugefügt (Unterstützte Typen: skNone, skInvisible, skVisible, skEmpty) + Experimenteller Bild-Cache und Thumbnail-Cache wurden hinzugefügt, die über die Eigenschaften TfrxReport.PictureCacheOptions gesteuert werden + Unterstützung von Alpha-Transparenz für Exportfilter und Druck wurden hinzugefügt + Two-Track Pharmacode Barcode wurde hinzugefügt. + RichView-Objekt für Lazarus mit Linux-Unterstützung wurde hinzugefügt. + Unterstützung für externe Webbrowser-Komponenten für Autorisierungsdialog wurde hinzugefügt (CEF4Delphi, neue Edge-Schnittstellen) + Unterstützung von Windows-Umgebungsvariablen in der Client-Server-Konfigurationsdatei wie %ALLUSERSPROFILE% wurde hinzugefügt. - Skalierung der Vorschau für Thumbnails bei HighDPI wurde verbessert. - Fehler in XLSX mit Leerzeilen wurde behoben. - Druckstatus für virtuelle Drucker wurde korrigiert. - EMF-zu-SVG-Export mit SegoeUI-Schriftart wurde behoben. - Korrigierte IME-Eingabe im Syntax-Memo für eine Gruppe von mehr als zwei Symbolen - Fehler beim Clip-in EMF-nach-PDF-Export wurde behoben. - Behobener TfrxPictureView-Clip - Korrigierter Synchronisationsfehler bei Dialogformularen unter Delphi 7 CS-Komponenten - Lücken bei interaktiven Textfeldern in PDF wurden behoben. - Fehler mit der Schriftart Cambria Math im SVG/HTML-Export wurde behoben. - Korrigierte HasField-Funktion bei ausgelöster Exception - HatchBrush für Lazarus unter Linux wurde verbessert. - Abwürgen des Hauptthreads im Synchronizer #601673 wurden behoben. - Überspringen von Diagramm-Lesefehlern beim Lesen von Dateien aus anderen Versionen für TeeCharts wurden behoben. - Korrigierte PaperSizes Maximalanzahl für einige Drucker. ### Neue Version von FastReport VCL - 6.1. URL: https://www.fast-report.com/de/news/fastreport-vcl-6.1 Summary: Neue Version von FastReport VCL - 6.1. Neue Version von FastReport VCL - 6.1. Die neue Version beinhaltet: Die Funktionalität des Objektes „Tabelle“ wurde erweitert. Der Export in PDF wurde bearbeitet und verbessert. Das Objekt “Anchor” für Report Objekte wurde hinzugefügt. Eine neue Funktionalität für das Füllen des freien Platzes auf einer Seite unter Verwendung von relational verknüpften Bänden. Die Report Engine wurde für die Arbeit mit einer großen Menge von Objekten im Designer optimiert. Version 6.1 ---------------------------- - Improved ODT export filter to use different styles for different report pages - Improved ODT export filter to use max page sizes for Continues sheet - Fixed table(objects) width in ODT export filter (doesn't stretch to page width); - Fixed text processing with AllowHTML in ODT export filter - Fixed TfrxDateEditControl with WeekNumbers = True for Windows XP [6.0.10] ---------------------------- - Fixed bug when OnPreviewClick does not refresh modified object - Fixed performance drop with objects "Shift" mechanism - Fixed C++ Builder issue with TfrxReportPage - Fixed saving of processing property in DFM [6.0.9] ---------------------------- + Added support of PDF/A-2 format [6.0.8] ---------------------------- - Improved rotated text in PDF, SVG and HTML-Div export filters - Fixed bug with expressions processing and Drill-Down groups [6.0.7] ---------------------------- - Fixed EMF export - Fixed export of table object in graphics export filters - Added Arabic numbers substitution in PDF export (with RTLReading) [6.0.6] ---------------------------- - Fixed calculating of table cell with vertical Font rotation - Fixed Hindy and Thai ligatures in PDF export - Fixed Char spacing with HAlign in PDF export - Fixed Copy/Paste of internal DB component - Fixed vertical barcodes borders - Fixed ADO parameters in the designer [6.0.5] ---------------------------- + Added Anchors for report objects and Dialog controls + Added Table rtti helpers for TableWidth and TableHeight properties - Fixed bug in IO transports with network path (in DefaultPath) - Improved multi-threading support in PDF export - Fixed bug with bad position of images in PDF export [6.0.4] ---------------------------- + Added AutoSize property for barcodes (default true), set it to false prevent component from size changing (changes zoom instead) + Added MinWidth and MaxWidth for table column can be set ti limit auto size (0 unlimited) + Added MinHeight and MaxHeight for table row can be set ti limit auto size (0 unlimited) - Fixed bug when using detail report with inheritance and OnLoadTemplate event [6.0.3] ---------------------------- + Added new report variables TableRow and TableColumn can be used inside table objects + Added ability to set path for "Indy" library in Recompile + Added new align mode baHidden objects with this mode don't collide with others - Fixed line spacing in PDF and SVG exports - Fixed ADO parameters - Fixed highlight editor for group of objects - Fixed issues with band Fill/Frame and aligned objects - Fixed bug in column header with band Frame/Fill - Fixed exporting of report properties in OXML exports - Fixed FNC1 processing in Datamatrix barcode - Fixed PadLeft/PadRight functions under with unicode environment - Fixed issue when used RangeEnd = reCount to limit records of the dataset - Fixed error which can appear after deleting table column [6.0.2] ---------------------------- + Added TfrxChild.ToNRows and ToNRowsMode properties allows to fill empty page space (see 15.fr3 report in FRMain demo) - Fixed aggregate functions for table object - Fixed issues when paste data component to report page - Fixed SlaveExport property for export filters [6.0.1] ---------------------------- + Added TfrxPreviewOptions.AllowPreviewEdit property - Set it to False to disable any interactive editors in the report preview - Fixed export of images embedded in RichView - Optimization for big tables and big reports (Designer can handle tables with 10000 cells and more) - Fixed vertical band behavior in the report designer - Objects containers like table can be used on vertical bands - Fixed SaveDialog when FileName is empty - Fixed OpenAfterExport behavior - Fixed HTML Tags in RTF export ### Neue Version von FastReport VCL - 6.6 URL: https://www.fast-report.com/de/news/fastreport-vcl-6.6 Summary: Neue Version von FastReport VCL - 6.6 Neue Version von FastReport VCL - 6.6 Eine Menge neuer Features in FastReport VCL und FastReport für Lazarus. In dieser Version haben wir die Filterung der Registerkarten "Variablen" und "Funktionen" im "Datenbaum" hinzugefügt    Es ist jetzt möglich, alle Felder im "Datenbaum" auszublenden. Es ist möglich, Filter für die schnelle Suche der Berichtsobjekte im "Berichtsbaum" zu verwenden Neuer linearer Barcodetyp wurde hinzugefügt - Pharmacode 2D-Barcodes können jetzt mit dem neuen Barcode-Editor angepasst werden  DataMatrix barcode unterstützt jetzt GS1-Regeln und kann automatisch Barcode nach diesen Regeln (GS1Rule-Eigenschaft) erzeugen, kodiert Zeichenketten wie: (01)09501101020917 Die neue Eigenschaft ShowCellBreak im Objekt Kreuztabelle erlaubt es, das Ausblenden von Rahmen bei einem Zellenumbruch abzuschalten Und eine verbesserte Suche im Vorschaufenster  Auch tolle Neuheiten für FastReport for Lazarus! - Es ist endlich aus der Beta-Phase herausgekommen; - Grundlegende Unterstützung von HiDPI unter Windows; - Behobene und verbesserte Exportfilter einschließlich Linux-Plattform - Unterstützung von Dialogseiten auf Linux GTK; - Verbesserte Unterstützung von LazCharts; - Drucken für Linux GTK hinzugefügt und Textausgabe mit align korrigiert. Alle Änderungen:  ---------------------------- + Filter im Berichtsbaum für schnelle Suche der Berichtsobjekte wurde hinzugefügt + Möglichkeit zum Filtern von Variablen und Funktionen im DataTree wurde hinzugefügt + Neue Suche zum Vorschau-Control wurde hinzugefügt + GS1Rule-Eigenschaft zu DataMatrix-Barcode wurde hinzugefügt (automatische Unterstützung von GS1-Regeln) + Neuen Barcodetyp Pharmacode wurde hinzugefügt + Neuen frxBarcode2DEditor wurde hinzugefügt + TfrxCustomCrossView.ShowCellBreak wurde hinzugefügt (Standardwert True), wenn auf "False" gesetzt, blendet die Kreuztabelle die Rahmen der geteilten Zellen nicht aus + Neuer Typ für Hyperlinks wurde hinzugefügt (hkNone - nichts tun. Nützlich, wenn wir den Hyperlink vom Skript aus deaktivieren müssen) + Neue TfrxPreview.HideScrolls-Eigenschaft und OnScrollMaxChange/OnScrollPosChange-Ereignisse wurden hinzugefügt (benutzerdefinierte Implementierung von Scrollbalken) + Hinzufügen der Methode TfrxChartView.ClearSeries + Hinzufügen der Beschriftungsquelle für die Diagrammreihe TOHLCSeries + Neue Eigenschaft ColorBar für alle Barcode-Typen wurde hinzugefügt (Farbe der Barcode-Daten einstellen) * [Lazarus] Verbesserter Diagrammeditor-Dialog für Lazarus-Diagramme * HostControls/UnHostControls-Methoden sind jetzt virtuell und in TfrxBaseForm verschoben * Änderungen im Synchronisationsmechanismus für Syntax-Memo. Der Worker-Thread (TfrxCodeCompletionThread) synchronisiert jetzt über SendMessages statt TThread.Synchronize * CreateUniqueName mit DefaultReport kopiert jetzt Objekte aus der aktuellen Objektliste - Tabulatorreihenfolge im PDF-Exportdialog korrigiert - Fehler mit Report-Thread beim Beenden des Hauptserver-Threads mit Clients behoben - Behoben TTabSet drag and drop im Reportdesigner - Korrigierte Schaltfläche Feld einfügen (DataTree) - [Lazarus] Falsche Füllungen von Schaltflächen im Stil-Editor-Dialog behoben - Korrigierte Objektkanten im Report-Designer für dotMatrix Report - [Lazarus] Korrigiertes TfrxPageControl - Korrigierter Fehler bei der Berechnung von TFIBBCDField - [Lazarus] Korrigierte DialogPage im Report-Designer für Lazarus Win/unix - Korrigierter Export einiger TeeChart Pro Serien im PDF und SVG Export - Lazarus] Erste Verbesserungen für HiDPI unter Lazarus - Korrigierte Clouds-Authentifizierung vom eingebetteten Browser(FEATURE_BROWSER_EMULATION) - Falsche RichView-Aufteilung behoben - Korrigierter Fehler, wenn ConfigFileName ignoriert wurde - Behoben Kompilierung mit TeePro Version größer als sieben - [Lazarus] Behobene Speicherlecks - Lazarus] Korrigierte Drucken von Linux(GTK) - Korrigierte Tabellenaufteilung. In speziellen Szenarien konnte eine Zeile, die nicht auf die Seite passte, verschwinden. - Behobenes Diagramm Highlight für gestapelte Reihen. - Behobener Export von Devanagari-Text im PDF-Export - Behoben HABlock Align für Farsi Sprache - Korrigierte eingebettete Karte im Map-Objekt - Korrigierter Export von Monospaced-Schriften im PDF-Export - [Lazarus] Behobene Textausgabe unter GTK(Linux) - Korrigierter Cross-Editor in HiDPI - [Client/Server] Korrigierter CGI-Client und Export aus Dialogberichten - Korrigierte Export-Dateinamen und Erweiterungen beim Export aus dem Webbrowser - Groß-/Kleinschreibung bei HTML-Tags im HTML5div-Export behoben - Behoben TfrxEMFExport - Fixed Data Tree Drag&Drop für Variablen und Funktionen - Behoben DataMatrix c40 und txt-Kodierungen für spezielle Symbole - Fehler beim Laden von RTF-Dateien im RichView-Control unter Windows 10 behoben (lädt manchmal als reiner Text) - Fehler im PDF-Export behoben, wenn die XObject-Liste auf jeder Seite gelöscht wird, was die Größe der PDF-Datei mit Bildern erhöht - Fehler in großen XLS-Dateien (Excel 97 BIFF8) behoben - Behobener Fehler beim Export von Dateinamen in Client/Server-Komponenten (vom Webbrowser) - Korrigierter PDF-Export mit GapX, GapY < 0 - Korrigierte Client/Server-Komponenten beim Export von Berichten mit Dialogseite aus dem Webbrowser - Behobene Schnellschaltflächen in der MDI-Vorschau - HiDPI-Korrekturen für frxSynMemo: Speichern/Laden der Schriftgröße für unterschiedliche DPI, GutterWidth, Linienmarkierungen, Haltepunktmarkierungen - HiDPI-Fehlerbehebungen für RegEditorsDialog: CheckBox, ComboBox-Pfeil, DropDown-Listenbreite beim ersten Anzeigen - Fixes Zeichnen von Icons auf der StatusBar im Report-Designer für HiDPI - TfrxTreePanel FileterMinWidth/FileterMaxWidth für HiDPI korrigiert - Korrigierte Schriftgröße in der Font ComboBox Vorschau (HiDPI) - Position der Schriftvorschau in der Schrift ComboBox (HiDPI) korrigiert - Korrigierte Bandbeschriftung im HiDPI-Modus, wenn der primäre Monitor eine Skalierung von mehr als 150 % hat - Korrigierte TfrxComboBox.ListWidth in HiDPI (primärer Monitor mit HiRes) - Korrigierte Systemdialoge (Schriftart/Farbe) im HiDPI-Per-Monitor-V2-Modus - Korrigierte ComboBox-Positionen im Report-Designer für niedrige benutzerdefinierte Skalierung (weniger als 150%) - Korrigierter frxProgress-Dialog im HiDPI-Modus - Korrigierte Bild-Ressourcen für niedrige Skalierungswerte (weniger als 150%) - Falscher Anker im Datensatz-Editor behoben - Flackern des Datenbaums für interne Datensätze nach Schließen der Vorschau behoben Vollständige Liste der Änderungen. macos/deepLFree.translatedWithDeepL.text ### Neue Version von FastReport VCL 2022.3 jetzt verfügbar! URL: https://www.fast-report.com/de/news/fastreport-vcl-2022.3 Summary: Wir haben für Sie eine Reihe von interessantesten Verbesserungen vorgenommen und Fehler behoben, die ab der FastReport VCL 2022.3 Version verfügbar sind. Wir haben für Sie eine Reihe von interessantesten Verbesserungen vorgenommen und Fehler behoben, die ab der FastReport VCL 2022.3 Version verfügbar sind. Wir haben für Sie eine Reihe von interessantesten Verbesserungen vorgenommen und Fehler behoben, die ab der FastReport VCL 2022.3 Version verfügbar sind. Um Ihnen qualitativ hochwertige und konsistente Updates bieten zu können, haben wir die Entscheidung getroffen, die Unterstützung für Nicht-Unicode-fähige Delphi-Versionen einzustellen. Alle späteren Versionen werden mit der Delphi 2010 unterstützt. FastReport VCL 2022.3 unterstützt jetzt das letzte Update von Embarcadero RAD Studio 11.2. Berichts-Engine  Mit der neuen ClearEmptyLines-Eigenschaft des Textobjekts können Sie leere Zeilen im Objekt löschen. In Kombination mit den Eigenschaften CanShrink und ShiftAlways ermöglicht dies das Einklappen von Objekten mit leeren Werten. Dadurch wird der gesamte Baum der unten liegenden Objekte nach oben verschoben. Textobjekte verfügen über einen neuen Dehnungsmodus (StretchMode) namens smPartMaxHeight. Bei umbrechenden Objekten wird in diesem Modus eine angepasste Höhe jedes Teils nach dem Umbruch verwendet, im Gegensatz zum smMaxHeight-Modus, der die Höhe des Bandes vor dem Umbruch verwendet. Eine statische Tabelle verfügt über ein Zellenobjekt, das jetzt die OnBeforePrint / OnAfterPrint / OnAfterData Ereignisse enthält. In den Geräten ohne AlphaBlend-Unterstützung wurde die Unterstützung für Drucken von halbtransparenten Bildern mit dem Dithering-Algorithmus hinzugefügt. Hinweis: Einige Geräte werden möglicherweise nicht unterstützt. Berichtsobjekte Die Unterstützung für das Drehen eines TfrxPDFView-Objekts wurde hinzugefügt. Die grundlegende Unterstützung der Rotation einiger Formen im Bericht wurde hinzugefügt. Es wurde ein neuer Code11 hinzugefügt. Das TfrxHtmlView Objekt kann nun auch in Lazarus verwendet werden. Zusätzlich wurde die Unterstützung für die Ausgabe von links nach rechts mit der Parameterverarbeitung dir="rtl" hinzugefügt. Exporte und Transporte  Interaktive PDF-Formulare können jetzt mit den neuen Combobox- und Listbox-Objekten erweitert werden. Dies erleichtert Ihnen den Umgang mit interaktiven PDF-Dokumenten zur Erstellung von Fragebögen und Umfragen. Neue Transporte für den Zugriff per Webmail-API auf MS Outlook- und Gmail-Postfächer. Die Transporte können Berichte senden und empfangen und die Ergebnisse als exportierte Dokumente akzeptieren.Bitte lesen Sie, wie Sie  MS Outlook und  Gmail  von FastReport VCL aus nutzen können. Es wurde die Möglichkeit hinzugefügt, doppelte Bilder in Exportfiltern zu hashen. Mit dem neuen Cashe kann die Anzahl der doppelten Bilder und die daraus resultierende Exportgröße reduziert werden. Aktivieren Sie diese Funktion über die CalculatePictureHash Eigenschaft des Exportfilters. Berichtsdesigner Neue QuickInfos für Textobjekte, bei denen der Text nicht in das Feld passt. Verbesserter Scriptcode-Editor  Mit den Hotkeys "Strg + /" können Sie Codeblöcke schnell kommentieren. Schnelles Hinzufügen von durchsuchbaren Variablen (Kontextmenü und Hotkeys). Neue QuickInfos und Schritt-für-Schritt Debugging-Modi “Step over” und “Run until return”. Client-Server-Modell Es wurde die Möglichkeit hinzugefügt, eine '*'-Maske in Konfigurationsdateien mit einer Liste von IP-Adressen zu verwenden. Es wurde Anwendungsbeispiel des Servers über GCI in Lazarus hinzugefügt. Vollständige Liste der Änderungen in der 2022.3 Version --------------- [Transporte] + Ein neuer Outlook Web E-Mail-Transport wurde hinzugefügt; + Ein neuer Gmail Web E-Mail-Transport wurde hinzugefügt; - Die Unicode-Namen im GDrive-Transport wurden korrigiert; [Client-Server-Modell] + Ein GCI Beispiel wurde für Lazarus hinzugefügt; + Die '*' Maske wird jetzt in den IP-Server-Listen unterstützt; [Designer] + Neue QuickInfos wurden zum Berichtsdesigner hinzugefügt, die den vollständigen Text des Memo-Objekts anzeigen; + Kurze Kommentare wurden im Syntax Memo Editor für markierte Texte hinzugefügt (Standard-Hotkey «Strg + /»); + Neue QuickInfos wurden zum Syntax Memo Editor hinzugefügt; + Debugging-Modi Step over und StepReturn wurden hinzugefügt; + Schnelles Hinzufügen von markierten Texten aus dem Syntax-Memo zur Watches-Liste über das Kontextmenü; - TfrxDesignerForm.GetCurrentForm wurde korrigiert (TFrame-Unterstützung wurde hinzugefügt); - Der Fehler in den Komponenteneditoren des Berichtsdesigners wurde behoben, wenn die Editoren denselben Eigenschaftsnamen mit unterschiedlichen Flags haben (paMultiSelect); - Festes Papierformat B4 (JIS) wurde korrigiert; - Die CodeCompletion-Thread-Zerstörung wurde behoben, wenn benutzerdefinierte Skripte Report.Script.Parent zugewiesen werden; - Die Unicode-Namensgenerierung für Objekte bei Drag&Drop aus DataTree wurde korrigiert; [Berichts-Engine] + Neuer ShiftMode wurde hinzugefügt, smPartMaxHeight streckt jeden Teil eines geteilten Objekts auf die maximale Höhe des Bandes und passt die Höhe jedes Teils an; + Die Hash-Berechnung für im Bericht verwendete Bilder, für Exportfilter (ExportFilter.CalculatePictureHash-Eigenschaft) und erstellte Berichte wurde hinzugefügt (TfrxReport.PictureCacheOptions.CalculateHash); + Die Druckemulation von halbtransparenten Masken mit dem Dithering-Algorithmus für Drucker ohne AlphaBlend-Unterstützung wurde hinzugefügt (wird möglicherweise nicht von allen Druckern unterstützt); + TfrxTableCell.OnBeforePrint/OnAfterPrint/OnAfterData Ereignishandler wurden zu den statischen Tabellenobjekten hinzugefügt; + Eine neue Memo-Objekteigenschaft ClearEmptyLines wurde hinzugefügt, die alle leeren Zeilen innerhalb des Memo-Objekts nach der GetData-Methode entfernt; - Der Fehler wurde behoben, der auftrat, wenn eine Kombination aus MemoView.AutoWidth=True und Align=baWidth verwendet wurde, um Objekte auf einem Container zu platzieren; - Der Fehler wurde behoben, bei dem Verschiebungswerte von Basisobjekten nicht korrekt waren, wenn das erste Objekt in einem Container auf die nächste Seite verschoben wurde; - Korrektes Entfernen von Editoren beim Upload von Paketen; - Mechanismus zum Aufteilen eines statischen Tabellenobjektes wurde korrigiert; [Exporte] + Interaktive PDF-Formulare werden von Listbox und Combobox Objekten unterstützt; - Das Unicode-Passwort beim PDF-Export wurde korrigiert; - Der PDF-Export von HTML-Tags für die Embarcadero-Edition wurde korrigiert; - Der Export von halbtransparenten Vektorgrafiken (SVG) wurde korrigiert, wenn der AllowVector Parameter auf False gesetzt ist; - Der XLSX-Export für Delphi-Versionen, die Unicode nicht unterstützen, wurde korrigiert; - Der PDF-Exportfehler mit europäischen Ligaturen wurde über EMF (ETO_GLYPH_INDEX) behoben; - Beim PDF-Export wird kein Cliptext mehr exportiert, wenn die gesamte Zeile nicht passt; [Sonstiges] + Neue openssl-Bibliotheken wurden hinzugefügt (statische crt und x64-Unterstützung); - Die CBuilder 2007 Kopfzeilengenerierung wurde korrigiert; - Probleme mit HiDPI PerMonitorV2 wurden behoben; [Vorschau] - Die Vorschauseiten-Einstellungseinheiten wurden korrigiert; [Berichtsobjekte] + Ein neuer Code11 wurde hinzugefügt; + Die grundlegende Rotation wurde zum TfrxShapeView-Objekt hinzugefügt; + Die Linux-Unterstützung wurde für TfrxPDFView in Lazarus hinzugefügt; + Die Rotation-Eigenschaft wurde für TfrxPDFView hinzugefügt; + Die RTL-Schrift-Unterstützung wurde zum TfrxHtmlView-Objekt hinzugefügt; + Die TfrxHtmlView- Objektunterstützung wurde in Lazarus hinzugefügt; - Ein Fehler im QR-EPC-Barcode wurde behoben; - Fehler in der Datamatrix-C40-Codierung wurde behoben, wenn die Datengröße den Code-Größengrenzen entspricht; - Der Fehler wurde bei der 2D-Barcode-Skalierung beim PDF-Export für nicht dpi-fähige Anwendungen behoben; - Die TfrxHTMLView Ausdrucksverarbeitung der Datenfelder wurde korrigiert; - Ein Fehler im GS1-128-Code wurde behoben; - Die RichView-Aufteilung wurde im Doppelpass-Bericht korrigiert; * Die Laz Chart Unterstützung wurde auf die Version 2.2.0 aktualisiert; [Ressourcen] * Schweizerische Ressourcen wurden aktualisiert; * Deutsche Ressourcen wurden aktualisiert. ### Neue Version von FastReport VCL 5.2 ist freigegeben URL: https://www.fast-report.com/de/news/fastreport-vcl-5.2 Summary: Neue Version von FastReport VCL 5.2 ist freigegeben Neue Version von FastReport VCL 5.2 ist freigegeben Neue Version von FastReport VCL 5.2 enthält eine Reihe von Änderungen. Lazarus: Zusätzliche Unterstützung der kostenlose Cross-Plattform-Entwicklungsumgebung Lazarus. Es ist die erste Beta-Version, die Designer und Vorschau enthält. Neue Möglichkeiten werden später hinzugefügt werden, wie jetzt bieten wir Ihnen, es zu versuchen und geben Sie uns Ihr Rückinformation. SVG: Beliebte Vektorgrafik-Format weit verbreitet über das Internet verwendet wird, ist jetzt zur Verfügung in Fastreport Exporte . SVG-Vorteil beinhaltet die Erhaltung der Qualität des Bildes während der Ausweitung der seinen Teil. Es ist sinnvoll, wenn die Erstellung von Karten, große Tabellen oder Schaubildern. RAD Studio XE7: Zusätzliche Unterstützung der neuen Version von RAD Studio XE7 Designer: Verbesserung der Berichte Erbe und Synchronisieren Qualität der Vorlagen. Hinzugefügt einige neue Möglichkeiten der Arbeit mit Datenbaum, wie Mehrfachauswahl, Ziehen und Bearbeitung. Export: Transparenz und Farbe Maske in PDF. + Added Embarcadero RAD Studio XE7 support for x32 and x64 windows platforms + Added initial support of Lazarus for Fast Report 5 - first beta release with includes ther report designer and the report preview. + Added new export filter to SVG format - SVG is a graphical vector format used in web and now FastReport allow you to export reports to this format. + Added ability to reset object properties to parents in inherited report (whole report or single object) - ability to restore object properties of any object in inherited report to default values introduced in base report. + Added multi-selection for data tree and ability to drag whole dataset(create band) - allow to drag any count of fields from "data tree" or/and include whole dataset. + Added ability to move/select/edit report objects from report tree window - new enhanced "report objects tree" gives ability to select move and edit objects more easily. + Added transparency and color mask in PDF export (Pictures/HTML-tags/RTF) - pictures and some objects like RTF may uses alpha mask during export to PDF. + Added selection mode in report designer - new selection modes allow to select all object of the same kind as selected. + Changed preview tabs mechanism. TfrxPreview.EachReportInTab allow to bind few report components to a single preview and show each in the separate tab. + [enterprise] Added new Enterprise demo to show how to build client application for mobile platform in FMX framework - learn how you can build a mobile client for FastReport Enterprise edition. + Improved variables and styles editor to handle new inheritence items + Added export of page frame in PDF + Added cell rotation in XLSX and DOCX exports filters + Added packages for IBO4 for D2005-XE3 - [enterprise] Fixed unicode problems in FR Server navigator toolbar - Fixed TfrxFontComboBox now uses TfrxReport.iniFile for saving data - Fixed FireDac components compatibility for XE7 - Fixed align of text in DOCX export - Fixed Indy SMTP mail transfer - Fixed frxTeeChart problem in multy-threaded inviroment - Fixed error with export of 2d barcode from code - Fixed problem with new DBX behaviour in master detail reports starts from Delphi XE - Fixed problem with KeepFooter in subreports - Fixed DateTime format in BIFF export - Fixed preview window flickering with drilldown reports - Fixed text align fix for negative LineSpacing - Fixed minor problems with report inheritance - Fixed preview error which may appears during preparing crosstab - Fixed TIFF export problem when using Stream - Fixed problem with crosstab header resizing in some cases - Fixed problem with minimizing report designer in application compiled with delphi 2010 and above - Fixed visibility of several components for x64 platform - Fixed script inheritance in reports when used fsGlobalModule - Fixed OnLoadTemplate and OnGetUnit events for inherited report - Fixed OnPreviewDblClick event - Fixed missing Fill property for some objects - Fixed double frames in PDF export - Fixed font embedding problem with x64 platform - Fixed incorrect preview behaviour in some cases - Fixed PDF checkbox export - Fixed EAN13 barcode bug - Fixed numeric formats in XLSX export - Fixed TabOrder in frxEditPage - Added missing bcCode128 support in report script - Restored published Color property for TfrxSysMemoView ### Neue Version von FastReport VCL 6.5 URL: https://www.fast-report.com/de/news/fastreport-vcl-6.5 Summary: Neue Version von FastReport VCL 6.5 Neue Version von FastReport VCL 6.5 Diese Version nimmt mehrere Verbesserungen für den Berichtsdesigner auf, die Erstellung der Berichte in FastReport VCL noch rascher ermöglichen. Wir haben die Benutzeroberfläche der Datenstruktur, des Objektinspektors und der Klassenstruktur ("Data Tree", "Object Inspector", "Classes Tree") überarbeitet und jetzt sind die Filtration der Elemente und Verwendung der Schnellzugriffstasten möglich. Neue Funktionen der Datenstruktur ("Data Tree") Neue Funktionen der Klassenstruktur ("Classes Tree")  Neue Funktionen des Objektinspektors ("Object Inspector") Die Berichtsengine hat folgende Verbesserungen bekommen: - Mit dem neuen RichView.FileLink-Eigenschaft ist es nun möglich, RTFs beim Erstellen eines Berichts zu laden; - Jetzt ist es möglich, die Anzahl der Spalten im GS1 Databar ES Barcode einzustellen; - Die Feature ReportSummary.PrintAtBottom ermöglicht es Ihnen, die dass das Berichtsbasement immer am unteren Rand der Seite angezeigt wird; - Die neue PageFooter.PrintOnSinglePage-Eigenschaft erweitert das Verhalten der PrintOnLastPage/PrintOnFirstPage-Eigenschaften wenn nur eine Seite gemeldet wird. Wir haben auch einen neuen Exportfilter für PostScript und PPML hinzugefügt. Version 6.5 ---------------------------- * Improved interface of the DataTree, Object Inspector and ClassesTree in the report designer. Added toolbars with fast action buttons and filter of data. + Added RichView.FileLink property - use it to load RTF files at prepare-time (can be used to reduce memory using for big RTF) + Added Colums property for GS1 Databar ES barcode + Added PageFooter.PrintOnSinglePage property - override behavior of PrintOnLastPage/PrintOnFirstPage when the page is Last and First at the same time. + Added ReportSummary.PrintAtBottom property - allows to print report summary at the bottom of the page + Added PostScript export filter + Added PPML export filter * Updated convertes from RB and QR - Fixed GS1 Databar ES barcode for special case (odd count of modules) - Fixed GS1 Databar barcode for smooth height changing in the report designer - Fixed wrong behavior of Processing property with DetailPage - Fixed line break in PDF export under Windows 10 x64 - Fixed loading of OSM maps with '`' sign - Fixed dialog Form in HIDPI called from preview (ClentHeight/ClientWidth serialized with scaled values) - Fixed designer flickering at show - Fixed report options dialog printer list icons - Fixed print dialog printer list icons - Fixed Codewindow font size when save designer settings * Changes in LoadPreferences interface, added second parameter as Def settings container * Reduced fields updating in Master-Detail link. Updates only when fields list changed (Some DS like DBX recreates fields). - Fixed Esc key pressing when TfrxDateEditControl expanded - Fixed bug with incorrect size of CellularTextObject - Improved RichView synchronization in multi-thread environment - TfrxPreviewForm.FFilterList moved to constructor/destructor (for custom inheritors) - Fixed layer's internal dataset in the Map editor - Fixed Indy transport for 465, 587 port [6.4.13] - Fixed designer's Color Selection dialog in the D2009 - Fixed rotated EAN13 barcode - Fixed exporting of FONT COLOR tag to PDF - Fixed ODF default values - Fixed Arial font spaces in the PDF export - Fixed rotation of the image inside RichView in SVG export - [Lazarus] Fixed designer's scaling - [Lazarus] Fixed text split in memo object - Fixed Aztec multiline text - Fixed embedded files in PDF export - Fixed memory leaks in the LazChart - Fixed Aztec barcode with umlaut characters - Fixed QR barcode QuietZone - Fixed cross-tab changing when AutoWidth = False - Fixed Emf -> Pdf with KeepAspectRatio - Fixed restoring of the current tab during debugging [6.4.10] - Fixed TfrxDMPMemoView bounds in the PDF export - Fixed exporting of fsAltDot frame line style in the PDF export - Fixed C++ Builder compatibility [6.4.7 - 6.4.9] - Fixed division by zero in the PDF export [6.4.4 - 6.4.6] - Fixed wrong behavior of Table object with vertical bands - Fixed FIB connection form [6.4.3] - Fixed TfrxMailExport when it cancelled - Fixed AV when set TfrxCustomExportFilter.ShowDialog in OnBeginExport event [6.4.2] - Fixed EAN13 barcode drawing - Fixed Underlines with LineSpacing printing [6.4.1] - Fixed Invalid ImageList error ### Neue Version von Visual Studio 2022 URL: https://www.fast-report.com/de/blogs/release-visual-studio-2022 Summary: Überprüfung der neuen Version des Visual Studio 2022-Entwicklertools mit vielen Änderungen im Vergleich zu 2019 und .NET 6-Unterstützung. Überprüfung der neuen Version des Visual Studio 2022-Entwicklertools mit vielen Änderungen im Vergleich zu 2019 und .NET 6-Unterstützung. Überprüfung der neuen Version des Visual Studio 2022-Entwicklertools mit vielen Änderungen im Vergleich zu 2019 und .NET 6-Unterstützung. Eine der hochkarätigen Neuheiten auf dem Softwaremarkt im Jahr 2021 ist die neue Version von Microsoft Visual Studio 2022. Dieses wunderbare Tool für Entwickler wurde von vielen geliebt. Heute können wir sagen, dass das moderne Visual Studio (im Folgenden als VS abgekürzt) wahrscheinlich die beste IDE ist. Microsoft schenkt diesem Produkt große Aufmerksamkeit und verbessert es ständig. Schauen wir uns an, welche Neuerungen in dieser Version enthalten sind: 1. Studio ist jetzt 64-Bit groß Wie Sie sich erinnern, wurde Ihr Visual Studio bisher standardmäßig im Ordner Program Files (x86) installiert, d.h. es war ein 32-Bit-Programm. VS ist jetzt 64-Bit groß. So können Sie "schwere" Projekte laden und mit ihnen ohne 4-GB-Grenze arbeiten. Und das ist bei großen Projekten ein wirklich großes Problem. 2. Einer meiner Lieblingstricks in Visual Studio ist AI IntelliCode Dieses Subsystem ist für Codehinweise zuständig, die auf einer intelligenten Analyse Ihres Codes basieren. Ein typisches Beispiel für die IntelliCode-Funktionsweise ist die Instanziierung eines Objekts, wobei der Zieltyp automatisch nach dem new-Operator eingefügt wird. Und dann wird Ihnen ein vollständiges Konstrukt zur Instanzerstellung mit einem mehr oder weniger passenden Namen angeboten. In der neuen VS-Version wurde dieses Subsystem deutlich verbessert. Die künstliche Intelligenz ist besser geworden. Jetzt sind Hinweise nützlicher und genauer. Bei richtiger Anwendung von IntelliCode erhöht sich die Codierungsgeschwindigkeit erheblich, aber darüber hinaus macht es immer mehr Spaß. Intelligente Assistenten umgeben uns mittlerweile nicht nur im Alltag, sondern auch bei der Arbeit.  3. Umgang mit dem Speicher  Eines der Hauptprobleme von VS2019 - hoher Speicherverbrauch bei umfangreichen Projekten - wurde behoben. Dies ist ein wirklich drängendes Problem, das die Nerven vieler Entwickler strapaziert hat.  4. Visual Studio for Mac Dieses interessante Phänomen gibt es ab VS2017. Wer hätte gedacht, dass Leute, die an einem MacBook sitzen, Programme für Windows schreiben. Es ist wirklich möglich. Fairnesshalber muss man sagen, dass dies eine ziemlich seltene Praxis ist. Grundsätzlich werden für MacOS in VS plattformübergreifende .NET Core-Anwendungen erstellt. Die Version 22 bietet eine Reihe von Neuerungen: verbesserte Geschwindigkeit und IDE Stabilität; neues Dialogfeld für Git-Repository, GitHub-Integration; .NET 6 und C#10 Unterstützung. 5. Ein kurzer Überblick über wichtige Änderungen Die Suche nach allen Dateien mit Ctrl+Shift+F, die bei allen beliebt ist, erfolgt jetzt schnell. Es war schon vorher sehr schnell, aber jetzt ist es um ein Vielfaches schneller. Die .NET 6-Unterstützung ist der Hauptgrund, warum jeder 22 Studio nutzen wird. VS2022 selbst wird von der Community als nette Ergänzung zur neuen Version des Frameworks wahrgenommen. Zweifellos hat seine Veröffentlichung die meiste Aufmerksamkeit auf sich gezogen. Hot Reload für Razor-Seiten und CSS. Plus ein großes Update für Blazor- und Razor-Seiteneditoren. Unterstützt mehrere Git-Repositories für eine Lösung. Sie haben beispielsweise eine große Lösung mit vielen verbundenen Projekten. Und diese Projekte befinden sich in verschiedenen Repositories. Jetzt müssen Sie sich nicht mehr den Kopf zerbrechen, wie Sie Änderungen an allen benötigten Repositories vornehmen können. 6. Aktualisierte UI Die Benutzerschnittstelle ist lakonischer und benutzerfreundlicher geworden. Allerdings ist VS2019 mit den neuesten Updates auch sehr praktisch. Die auffallendsten Sachen sind: Die Symbole haben sich geändert. Nichts grundsätzlich Neues, sie wurden nur aufgefrischt. Die Farben wurden überarbeitet, mit mehr Kontrast und neuen Farbtönen. Dunkles Design sieht sehr angenehm aus. Adaptivdesign passt sich dem Design in Windows an. Neue Schriftarten im Editor. Vergleichen wir visuell dunkles Design in 2022: Und in 2019 Versionen: Das erste sieht viel kontrastreicher aus. Daher ist es einfacher und angenehmer, Informationen zu lesen. 7. Personalisierung Für diejenigen, die gerne alles für sich selbst anpassen möchten, gibt es viele Möglichkeiten. Eine davon wurde oben erwähnt, dies ist die Design-Anpassung an das Design in Windows; Synchronisierung der IDE-Einstellungen auf allen PCs, auf denen Sie unter Ihrem Microsoft-Profil arbeiten. Das haben wir schon oft gesehen. Das Windows 11 bietet die Synchronisierung von Geräten; Umfangreiche Möglichkeiten zum Verschieben von Fenstern, Einrichten von Registerkarten, Verfolgen von Registerkarten. Im Grunde war das alles schon da, und jetzt ist es noch besser geworden. Zusammenfassung Es gibt keine großen Änderungen gegenüber VS2019. Aber sie werden auch nicht benötigt. Diese IDE ist bereits nahezu ideal, zumindest für heute. Die Verbesserung solch scheinbar unwichtiger Funktionen wie der Suche oder Hinweise hat einen großen Einfluss auf die Wahrnehmung des Produkts. Man hat das Gefühl, dass es neu ist, wenn auch es sich ein wenig verändert hat. Handelt es sich dabei um einen Marketing-Trick oder um die Sorge für die Benutzerfreundlichkeit? Wenn man zum ersten Mal mit VS2022 arbeitet, bemerkt man all diese Neuerungen, aber nachdem man einige Zeit damit gearbeitet hat, versteht man, dass es immer noch das gleiche 2019 ist. Es ist klar, dass die neue Version des .NET 6-Frameworks auch ein neues Studio erforderte, um den Effekt zu verbessern. Und wir haben eine bekommen. Tags: Visual Studio, Visual Studio ### Neuer Artikel: Tabs in WebReport URL: https://www.fast-report.com/de/news/tabs-webreport-blog Summary: In einem neuen Artikel über WebReport erfahren Sie, wie Sie mithilfe von Registerkarten mehrere Berichte in WebReport in der Version anzeigen können FastReport.NET 2013.4 und neuer. In einem neuen Artikel über WebReport erfahren Sie, wie Sie mithilfe von Registerkarten mehrere Berichte in WebReport in der Version anzeigen können FastReport.NET 2013.4 und neuer. New article about WebReport tell you how you can use tabs to view multiple reports in WebReport  in version FastReport.NET 2013.4 and newer. Tabs can be useful for viewing many reports with additional information. Each report in tab has own navigation and may be attached to any data source. Saving in different formats is performed for each tab. We have plans to implement FastReport.NET for open the detailed report in a separate tab by clicking on the object page. Also we will add the ability to close unnecessary tabs. Read more... This example presents you way to using FastReport.Net for develop Wep Reporting on MVC. Try to work demo page with prepared Web Reports online: https://fast-report.com:2013 - Online demo of report is available also for iOS and Android devices.  https://fast-report.com:2013/razor - Online demo of MVC3 technology.  Web Reports is available in Win+Web Forms and Professional Edition. Articles about FastReport.Net MVC and Web Reporting: FastReport .Net 2013.2 MVC;  Create a PDF file on button press in browser;  FastReport .Net and jQuery;  FastReport.Net on mobile devices. ### Neuer Berichtskonverter aus Stimulsoft in FastReport .NET URL: https://www.fast-report.com/de/news/converter-stimulsoft-dotnet Summary: Im September wurde ein neuer Konverter für den Import von Dokumenten und Berichten aus Stimulsoft in FastReport .NET veröffentlicht. Im September wurde ein neuer Konverter für den Import von Dokumenten und Berichten aus Stimulsoft in FastReport .NET veröffentlicht. Ein neuer Konverter zum Importieren von Dokumenten und Berichten aus Stimulsoft in FastReport .NET wurde im September veröffentlicht. In FastReport .NET, FastReport CoreWin und FastReport Mono können Sie jetzt ganz einfach Stimulsoft Produktformatvorlagen (.mrt) in FastReport-Berichte (.fpx) konvertieren. Der importierte Bericht kann Unterschiede aufweisen. Es ist wahrscheinlich, dass dieser Bericht nachgearbeitet werden muss, indem Verbindungen hinzugefügt und Funktionen mit Variablen in Textobjekten geändert werden. In der  Tabelle  können Sie einen Vergleich der StimulSoft- und FastReport- Berichtsgeneratoren finden. Mehr Informationen über die Konvertierung der Daten finden Sie in unserem Artikel . ### Neuer Blogbeitrag: "Registrieren von Json-Daten in FastReport .NET" URL: https://www.fast-report.com/de/news/blog-entry-json-net Summary: Neuer Blogbeitrag: "Registrieren von Json-Daten in FastReport .NET" Neuer Blogbeitrag: "Registrieren von Json-Daten in FastReport .NET" Wie registriert man Json als Datenquelle in FastReport.NET ohne ein Schema zu kennen? Wenn Sie Json als Datenquelle in FastReport.NET. registrieren müssen, können Sie es durch die Registrierung von Geschäftsobjekten erfolgen. Lesen Sie weiter ### Neuer Blogbeitrag: "Roslyn-Funktionen in Visual Studio 2015 Preview" URL: https://www.fast-report.com/de/news/new-blog-entry Summary: Neuer Blogbeitrag: "Roslyn-Funktionen in Visual Studio 2015 Preview" Neuer Blogbeitrag: "Roslyn-Funktionen in Visual Studio 2015 Preview" Die Visual Studio 2015 Preview Edition enthält eine neue Version der C# - und VB-Compiler. NET namens "Roslyn". Roslyn ist ein vollständig umgeschriebener C# und VB Compiler. NET; wenn sie zuvor in C++ geschrieben wurden, ist der C# -Compiler jetzt in C# und der VB. NET entsprechend in VB.NET geschrieben. Roslyn ist auch völlig geöffnet, und seine Quellen sind auf GitHub verfügbar. Mit dem früheren Compiler gab der Entwickler den Quellcode an die Eingabe an, und am Ausgang erhielt er IL, und es war nicht möglich, diesen Prozess zu beeinflussen. Der neue Compiler folgt der Compiler-as-a-Service Idee: Es ist jetzt eine ganze Plattform mit einer eigenen API, die es dem Entwickler ermöglicht, direkt am Kompilierungsprozess teilzunehmen. Lesen Sie weiter ### Neuer NextCloud-Transport in FastReport VCL URL: https://www.fast-report.com/de/blogs/nextcloud-transport-vcl Summary: Detaillierte Anweisungen zur Verwendung des neuen Transports für die Verbindung mit der NextCloud, um die erstellten Berichte in der Cloud zu speichern. Detaillierte Anweisungen zur Verwendung des neuen Transports für die Verbindung mit der NextCloud, um die erstellten Berichte in der Cloud zu speichern. Detaillierte Anweisungen zur Verwendung des neuen Transports für die Verbindung mit der NextCloud, um die erstellten Berichte in der Cloud zu speichern. Vor mehr als 5 Jahren haben wir neue Sonderkomponenten „Transporte" hinzugefügt. Sie helfen dabei, erstellte Berichte in der Cloud zu speichern sowie in der Cloud gespeicherte Dateien (z. B. Bilder) zu verwenden, um Berichte zu erstellen. Mit dem Release 2023.3 haben wir zu den acht bestehenden Transporten einen neunten hinzugefügt, der für die Zusammenarbeit mit NextCloud zuständig ist.  In diesem Artikel werden Einstellungen der NextCloud behandelt und einige Besonderheiten analysiert.  Wenn Sie bereits mit unseren Transporten gearbeitet haben, können Sie direkt zu dem Kapitel über die Verbindungseinstellungen  gehen. Hinweis! Für die Nutzung des HTTPS-Protokolls werden die folgenden OpenSSL-Bibliotheken benötigt: libssl-3.dll und libcrypto-3.dll. Diese Dateien befinden sich im Verzeichnis der Haupt-Demo-Anwendung. Sie müssen die Bibliotheken entweder in den Anwendungsordner oder in das Systemverzeichnis kopieren. Hinzufügen von Transporten zur Anwendung und deren Einstellung  Als Erstes muss wie bei anderen Transporten die entsprechende Komponente aus der Registerkarte “FastReport VCL Internet transports” hinzugefügt werden. Sie können das Kontextmenü der Komponente verwenden. Dadurch wird die Verbindung direkt aus der Entwicklungsumgebung heraus hergestellt. Klicken Sie auf das Untermenü “Edit connection”. Standardmäßig reagieren die Transporte nur auf eine Autorisierungsantwort eines Browsers über den Port 9898. Wenn dieser Port bereits belegt ist oder wenn Sie planen, diesen Port in der Zukunft zu verwenden, können Sie in FastReport VCL den Port in der Eigenschaft ListenerPort ändern. Als nächstes gehen wir davon aus, dass der Port 9898 standartmäßig verwendet wird. Wichtig! Der Benutzer muss für die Anmeldung nicht jedes Mal alle der folgenden Schritte ausführen. Diese Einstellung muss nur einmal vom Cloud-Administrator vorgenommen werden. Nachdem alle Schritte abgeschlossen sind, können die Anmeldungsdaten von anderen Benutzern verwendet werden. Verbindung zu NextCloud Wenn Sie eine Datei mit Hilfe des Transports öffnen oder speichern möchten, wird Ihnen das Standard-Anmeldungsdialogfeld angezeigt (sofern Sie sich nicht zuvor angemeldet haben). Um zur Seite mit den NextCloud-Unterlangen zu gelangen, klicken Sie auf das Fragezeichen. Zuerst müssen Sie einen OAuth-Client auf Ihrem Server erstellen. Öffnen Sie NextCloud in Ihrem Browser und klicken Sie auf die Profil-Schaltfläche. Klicken Sie dann in der Dropdown-Liste auf “Settings”.  Wählen Sie im Einstellungsmenü “Security” aus. Geben Sie den Namen des Clients ein, und geben Sie„http://localhost:9898“ im Feld „Redirection URI“ an, und klicken Sie anschließend auf die Schaltfläche “Add”. Bitte beachten Sie, dass der Port mit dem Port übereinstimmen muss, der in der Eigenschaft ListenerPort der Transportkomponente angegeben ist. An dieser Stelle sehen Sie, dass die Anwendung erfolgreich erstellt worden ist. Kopieren Sie die Felder "Client Identifier" und "Secret" wie im folgenden Screenshot dargestellt. Fügen Sie die kopierten Daten in die entsprechenden Pflichteingabefelder des FastReport VCL Anmeldungsdialogs ein. Klicken Sie auf “OK”. Im Standardbrowser sollte sich ein neues Fenster öffnen. Sie werden aufgefordert, sich anzumelden. Nach der Autorisierung werden Sie aufgefordert, den Zugriff für die Anwendung freizugeben. Das Browserfenster kann dann geschlossen werden. Wenn die Verbindung erfolgreich hergestellt wird, wird der Standard-FastReport-VCL-Dateibrowser angezeigt. Das Einzige, was noch zu tun ist, ist die hochgeladene Datei in NextCloud zu überprüfen. Damit ist die Verbindungseinstellung erfolgreich abgeschlossen. Jetzt wissen Sie, wie man in FastReport VCL die Verbindung zu NextCloud hergestellt werden kann. Wenn Sie Linux haben, können Sie den neuen Transport testen, ohne sich irgendwo anzumelden, indem Sie einen NextCloud-Server auf Ihrem Rechner einrichten. Tags: VCL, Lazarus, FastReport, Delphi, Web Storage ### Neuer S3 (Amazon) Transport in FastReport VCL URL: https://www.fast-report.com/de/blogs/simple-storage-service-vcl Summary: In diesem Artikel werden wir uns den neuen Transport in S3 (Amazon) für FastReport VCL ansehen, bei dem es sich um einen Objektspeicher für Dateien und Buckets handelt. In diesem Artikel werden wir uns den neuen Transport in S3 (Amazon) für FastReport VCL ansehen, bei dem es sich um einen Objektspeicher für Dateien und Buckets handelt. In diesem Artikel werden wir uns den neuen Transport in S3 (Amazon) für FastReport VCL ansehen, bei dem es sich um einen Objektspeicher für Dateien und Buckets handelt. In diesem Artikel werden wir uns mit dem neuen S3-Transport befassen. Funktionell unterscheidet sich S3 stark von dem, womit die meisten Menschen gewohnt sind zu arbeiten. Daher werden wir zu Beginn dieses Artikels seine wichtigsten Merkmale im Detail betrachten. Hinweis! Für die Nutzung des HTTPS-Protokolls werden die folgenden OpenSSL-Bibliotheken benötigt: libssl-3.dll und libcrypto-3.dll. Diese Dateien befinden sich im Verzeichnis der Haupt-Demo-Anwendung. Sie müssen die Bibliotheken entweder in den Anwendungsordner oder in das Systemverzeichnis kopieren. Was ist das? S3 ist kein Dateispeicher wie Dropbox, Google Drive, Mega und andere. S3 ist ein Objektspeicher. Und zuallererst müssen wir den Unterschied zwischen diesen beiden Konzepten verstehen. Ein Dateispeicher verfügt über eine übliche hierarchische Struktur (Baumstruktur). Das sind bekannte Verzeichnisse (Ordner), in denen andere Verzeichnisse und Dateien gespeichert sind. Objektspeicher sind relativ neu (der älteste ist jetzt etwa 20 Jahre alt). Sie unterscheiden sich geringfügig in ihren Implementierungen, so dass die meisten Funktionen gleich sind, aber es gibt einige, die nur auf S3 anwendbar sind. Alle Objektspeicher sind "flach", d. h. sie haben keine hierarchische Struktur, wenn auch sie eine solche "simulieren" können. Die erste Entität, auf die Sie stoßen werden, wenn Sie mit S3 arbeiten, ist ein Bucket. Die nächstliegende Analogie ist die "Map" in vielen Programmiersprachen, bei der ein Schlüssel verwendet wird, um Daten abzufragen. Ein Bucket kann nur Dateien speichern, aber keine anderen Buckets. Zur Veranschaulichung betrachten wir einen Bucket einmal genauer. Bucket Schlüssel Daten video.mp4 Daten text_file.txt Daten code.pas Daten Nach dem Schlüssel können Sie die dazugehörigen Metadaten abrufen und diese nach Bedarf selbst interpretieren. Viel interessanter ist die Simulation der hierarchischen Ordnerstruktur in einem solchen System. Bucket Schlüssel Daten video.mp4 Daten folder1\text_file.txt Daten folder1\video.mp4 Daten folder1\folder1_1\video.mp4 Daten folder2\text_file.txt Daten folder1\ Leer folder1\folder1_1\ Leer folder2\ Leer Bei einigen „Ordnern“ handelt es sich um dieselben Objekte wie bei Dateien. Sie sind nur aus Gründen der Übersichtlichkeit anders eingefärbt. Ein weiteres Unterscheidungsmerkmal ist ein Schrägstrich (\) am Ende des Schlüssels. Oft haben solche "Ordner" keine Daten (obwohl sie Daten haben können). Um zu sehen, was sich in dem "Ordner" folder1 befindet, müssen wir nach dem Anfang des Schlüssels "folder1\" filtern. Viel interessanter ist jedoch das Löschen von "Ordnern". Wenn wir versuchen, den "Ordner" folder1 in der Web-GUI zu löschen, werden einige Dienste dies tun, aber die übrigen werden uns die Fehlermeldung "Ein leerer Ordner kann nicht gelöscht werden" geben. Wenn wir einen Datensatz mit dem API-Schlüssel "folder1\" löschen, wird dieser "Ordner" in den meisten GUIs nicht mehr angezeigt. Auch können wir ihn nicht mehr darauf zugreifen, aber tatsächlich werden die Dateien in diesem „Ordner“ nicht verschwinden. Sobald wir anschließend den „Ordner“ folder1 erstellen, enthält dieser bereits die von uns vergessenen Dateien. Der Schlüssel selbst unterliegt nur sehr wenigen Einschränkungen und kann beispielsweise so lauten: „////“. Und das werden „Ordner“ mit leeren Namen sein. Warum sind Objektspeicher besser als Dateispeicher? 1. Objektspeicher sind wesentlich kostengünstiger. Jedes Objekt ist nicht an ein bestimmtes Gerät gebunden, so dass der Objektspeicher problemlos auf die benötigte Kapazität erweitert werden kann. Sie können ganz einfach ein Petabyte Objektspeicher (ca. 1.000.000 Gigabyte) mieten. 2. Objektspeicher ermöglichen eine sehr schnelle Suche. Aber natürlich sind Objektspeicher am besten für unstrukturierte (nicht baumartige) Daten geeignet. Neues Authentifizierungssystem Alle bisherigen Transporte funktionierten mit dem OAuth-2-Protokoll. S3 könnte theoretisch auch mit OAuth 2 arbeiten, aber in seine API ist sein eigenes Authentifizierungssystem eingebaut. OAuth 2 erhielt mit der Client-ID und der Secret-ID ein Token, das für eine bestimmte Zeit gültig war und alle Anfragen signieren konnte. Die interne S3-Authentifizierung mit derselben Client-ID und Secret-ID erstellt für jeden Vorgang ein neues einmaliges Token unter Verwendung von SHA256HMAC auf der Grundlage von etwa 30 Variablen (einschließlich Zeitpunkt der Token-Generierung, erforderlicher Vorgang usw.). Der Server prüft nur, ob das Token korrekt generiert wurde, und wenn das vom Server akzeptierte Token mit dem vom Server generierten Token übereinstimmt, wird der Vorgang abgeschlossen. Danach kann das Token nicht mehr verwendet werden. AWS S3 Der Transport heißt zwar "TfrxS3IOTransport" und bezieht sich eindeutig auf AWS S3 (Amazon Simple Storage Service), aber dessen API wurde von vielen Objektspeichern kopiert (die bedingt als S3-ähnlich bezeichnet werden können), so dass dieser Transport es Ihnen ermöglicht, nicht nur mit dem Amazon-Service zu arbeiten. Hinzufügen von Transporten zur Anwendung und deren Konfiguration  Ganz am Anfang müssen Sie die entsprechende Komponente aus der Registerkarte „FastReport VCL Internet Transports“ hinzufügen. Sie können das Kontextmenü der Komponente verwenden. Dadurch wird die Verbindung direkt aus der Entwicklungsumgebung heraus hergestellt. Klicken Sie auf das Untermenü “Edit connection”. S3-Verbindungsdialog  Wenn Sie eine Datei mit Hilfe eines Transports öffnen oder darin speichern müssen, steht Ihnen der folgende Standard-Autorisierungsdialog zur Verfügung (falls Sie sich zuvor nicht angemeldet waren). Schauen wir uns die einzelnen Felder in diesem Formular an: Server URL ist eine URL-Adresse, die in der API verwendet wird. Um die URL herauszufinden, müssen Sie die Dokumentation lesen. Bei AWS S3 sollte sie standardmäßig "s3.amazonaws.com" lauten. Client ID ist ein öffentlicher Schlüssel zur Autorisierung (oft wird als Access Key bezeichnet). Secret ID ist ein geheimer Schlüssel zur Autorisierung (oft wird als Secret Access Key bezeichnet). Region - Sie müssen die Dokumentation lesen, um mögliche Regionswerte zu wissen. Manchmal gibt es ungewöhnliche Anforderungen, z. B. ist es in AWS S3 möglich, eine Liste von Bucket-Listen nur mit der Region "us-east-1" anzufordern. Bucket - um nicht jedes Mal einen Bucket manuell auswählen zu müssen, können Sie ihn in diesem Feld angeben, manchmal sind Buckets durch eine bestimmte Region gekennzeichnet. Bucket style - ein Bucket kann auf zwei Arten angegeben werden: path style (aws.s3.com/ bucket ) und virtual hosted style ( bucket .aws.s3.com). "Path style" ist veraltet, weil es mehrere Zugriffe auf verschiedene Buckets über einen bestimmten DNS geben kann, was eine zusätzliche Belastung verursachen kann. Einige Dienste unterstützen beide Arten, einige nur eine, und einige sind für verschiedene Situationen anpassbar.  Unter folgendem Link können Sie mehr darüber lesen. Nach erfolgreicher Verbindung sehen Sie den FastReport-VCL Standard-Dateibrowser (im Screenshot unten ist die Liste der Dateien im Bucket dargestellt). Damit ist der Verbindungsaufbau erfolgreich abgeschlossen. Jetzt wissen Sie, wie in FastReport VCL die S3-Verbindung hergestellt wird. Es bleibt nur noch, die letzten Feinheiten unserer Implementierung zu erwähnen. Unser Team hat die Erstellung und Löschung von Buckets nicht implementiert. Bisher unterscheiden sich Buckets optisch nicht von Ordnern (in unserer ersten GUI-Version), da dies zu gefährlich wäre. Auch das Löschen eines Ordners mitsamt seinem Inhalt ist noch nicht implementiert. Und es gibt auch kein teilweises Herunterladen der Datei (was bei einer Dateigröße von 100 Megabyte oder mehr empfohlen wird). Dieser Transport hat eine Menge Details und Feinheiten bei der Konfiguration, aber in einigen Fällen wird er ein optimaler Ersatz für Dateispeicher sein. Tags: VCL, Lazarus, FastReport, Delphi, Web Storage ### Neues Berichtsvalidierungssystem in FastReport VCL URL: https://www.fast-report.com/de/blogs/validation-reports-vcl Summary: In diesem Artikel erklären wir, wie die Berichtsprüfung funktioniert, wie sie konfiguriert wird, wie Sie eigene Regeln anhand von Beispielen erstellen und geben Einblicke in interessante Neuerungen. In diesem Artikel erklären wir, wie die Berichtsprüfung funktioniert, wie sie konfiguriert wird, wie Sie eigene Regeln anhand von Beispielen erstellen und geben Einblicke in interessante Neuerungen. Im technischen Support wurde uns oft der Wunsch nach einer automatischen Berichtsprüfung mitgeteilt – und mit dem Release 2026.2.0 haben wir dies umgesetzt. Im Menü „Datei“ des Berichtsdesigners sind nun die Punkte „Validate“ und „Einstellungen für Validierungsregeln“ (Validation Rule Settings) verfügbar. Damit können Berichte nicht nur geprüft, sondern auch der Satz an Regeln – einschließlich eigener Regeln – verwaltet werden. In diesem Artikel erklären wir, wie die Berichtsprüfung funktioniert, wie sie konfiguriert wird, wie Sie eigene Regeln anhand von Beispielen erstellen und geben Einblicke in interessante Neuerungen. Im technischen Support wurde uns oft der Wunsch nach einer automatischen Berichtsprüfung mitgeteilt – und mit dem Release 2026.2.0 haben wir dies umgesetzt. Im Menü „Datei“ des Berichtsdesigners sind nun die Punkte „Validate“ und „Einstellungen für Validierungsregeln“ (Validation Rule Settings) verfügbar. Damit können Berichte nicht nur geprüft, sondern auch der Satz an Regeln – einschließlich eigener Regeln – verwaltet werden. In diesem Artikel erklären wir, wie die Berichtsprüfung funktioniert, wie sie konfiguriert wird, wie Sie eigene Regeln anhand von Beispielen erstellen und geben Einblicke in interessante Neuerungen. Begriffe Wir beschränken uns auf drei grundlegende Begriffe, die in diesem Artikel mehrfach verwendet werden. Validierung ist die Prüfung der korrekten Berichtserstellung und der Einhaltung festgelegter Regeln, ohne den Bericht selbst zu generieren. Die Validierung erfolgt durch die sequenzielle Anwendung eines vordefinierten Regelsatzes auf den Bericht. Regel ist eine einzelne Prüffunktion, die während der Berichtsvalidierung ausgeführt wird. Der Validierer speichert einen Satz von Regeln. Eine Regel kann ein- oder ausgeschaltet sein. Bei der Validierung werden nur die eingeschalteten Regeln ausgeführt. Während der Ausführung kann eine Regel mehrere Nachrichten senden. Nachricht ist ein Eintrag, den eine Regel während der Berichtsprüfung erzeugt. Eine Nachricht enthält Informationen über ein erkanntes Problem, einschließlich Kritikalitätsstufe, Textbeschreibung und Reaktion auf einen Doppelklick. Durchführen einer Berichtsprüfung im Designer Die Berichtsvalidierung wird über den Menüpunkt „Validieren“ (Validate) oder durch Drücken der Tastenkombination Umschalt+F9 ausgeführt. Die Validierung kann auch an das Speichern oder Erstellen des Berichts gekoppelt werden. Dies kann im Menü „Ansicht → Einstellungen…“ (View → Options) auf dem Reiter „Validierung“ (Validation) konfiguriert werden. Das Kontrollkästchen „Automatische Validierung“ (Automatic validation) aktiviert den automatischen Start der Berichtsprüfung beim Erstellen oder Speichern des Berichts. Die Einstellung „Validierung fehlgeschlagen ab Kritikalitätsstufe“ (Validation fails if severity is at least) legt fest, ab welcher Kritikalitätsstufe die Validierung als fehlgeschlagen gilt. Mögliche Werte: „Hinweis“ (Hint), „Warnung“ (Warning), „Fehler“ (Error). Wenn Sie „Warnung“ auswählen, gilt die Validierung bereits dann als fehlgeschlagen, wenn während der Prüfung mindestens eine Warnung oder ein Fehler auftritt. Standardmäßig ist „Fehler“ eingestellt. Die letzten beiden Einstellungen steuern die Aktionen bei Berichten, die die Validierung beim Speichern oder Erstellen nicht bestehen. Sie können die Aktion erlauben, den Benutzer benachrichtigen oder die Aktion untersagen. Konfiguration der Regelliste Im Menü „Einstellungen für Validierungsregeln“ (Validation rule settings) kann der Satz an Regeln konfiguriert werden, der auf den Bericht angewendet wird. Dieses Fenster sieht wie folgt aus: In der linken Liste „Standardregeln“ (Default rules) befinden sich die integrierten Regeln. Die rechte Liste „Benutzerdefinierte Regeln“ (Custom rules) ist für Regeln vorgesehen, die der Benutzer für spezifische Anforderungen erstellt hat. Diese Trennung ist jedoch bedingt: Der Benutzer kann seine eigenen Regeln auch in die Liste der Standardregeln einfügen. Die Kontrollkästchen unter den Listen ermöglichen es, alle Elemente einer Liste auf einmal zu aktivieren oder zu deaktivieren. Das Kontrollkästchen „Validierung beim Speichern ausführen“ (Run validation on save) startet die Validierung beim Schließen des Regel-Einstellungsfensters durch Klicken auf die Schaltfläche „OK“. Bei nachfolgenden Validierungen werden nur die aktivierten Regeln verwendet. Die Listen der angewendeten Regeln bleiben auch nach Beenden des Berichtsdesigners erhalten. Liste der Standardregeln Standardmäßig sind die folgenden Regeln verfügbar: IntersectingTest erkennt Überlappungen von Berichtskomponenten. In einigen Fällen kann dies absichtlich geschehen sein, aber für tabellarische Exporte können solche Überlappungen Probleme verursachen. Daher empfehlen wir, diese Regel bei Verwendung tabellarischer Exporte aktiviert zu lassen. PrepareScript prüft das Berichtsskript. Derzeit beschränkt sich die Prüfung auf die Kompilierung des Skripts. ComponentValidation_IsEmpty findet leere Komponenten, die nicht mit Datenquellen verbunden sind. Manchmal werden solche Komponenten über das Skript befüllt, daher ist ihr Vorhandensein nicht immer ein Fehler. ComponentValidation_Properties prüft die korrekte Einstellung von Komponenteneigenschaften. Beispielsweise prüft die Regel, ob nicht angebundene Child Bands vorhanden sind, sowie die Syntax von Ausdrücken in Eigenschaften. ComponentValidation_Expressions prüft die Korrektheit von Ausdrücken in Komponenten, indem deren Werte ausgewertet werden. Standardmäßig deaktiviert. DatasetsValidation prüft die korrekte Konfiguration der Berichts-Datasets. Standardmäßig deaktiviert. Bitte beachten Sie, dass die Regelliste in Zukunft erweitert werden kann. Berichtsvalidierung im DemoCenter Versuchen wir, eine Berichtsvalidierung zu starten. Beachten Sie: Die Validierung gilt als fehlgeschlagen, wenn Warnungen oder schwerwiegendere Fehler auftreten (falls Sie vergessen haben, wie das funktioniert, lesen Sie bitte im Abschnitt „Durchführen einer Berichtsprüfung im Designer“ nach). Nehmen wir den Bericht 1.fr3 aus dem DemoCenter und starten die Validierung: Die Berichtsvalidierung ist fehlgeschlagen. Die Regel IntersectingTest hat fünf Warnungen erkannt. Dies war zu erwarten, da eine leere MemoView zur Hintergrundfüllung der geraden Zeilen verwendet wird. Um die Liste der Warnungen anzuzeigen, kann der Knoten mit der Regel aufgeklappt werden. Durch einen Doppelklick auf die Zeile mit der Warnung wird die Komponente im Designer hervorgehoben, auf die die Regel das Problem gemeldet hat. Es ist wichtig zu beachten, dass nicht nur die Berichtsseiten, sondern auch das Skript sowie die Dialoge geprüft werden können. Für die Validierung steht der gesamte Bericht zur Verfügung. Debug-Ausgabe mit DebugLn Beachten Sie das Fenster zur Ausgabe der Validierungsmeldungen. Wir haben uns entschieden, es auch für andere Zwecke zu nutzen, beispielsweise für Debug-Meldungen und die Anzeige der Berichtserstellungszeit. Wie kann dies genutzt werden? Verwenden Sie im Berichtsskript die neue Funktion DebugLn . Rufen Sie sie mit einem Parameter vom Typ String auf. Der Wert des Parameters erscheint bei der Berichtsausführung im Fenster „Messages“ zusammen mit einem Zeitstempel. Sehen wir uns das an einem Beispiel an. Öffnen Sie im „FastReport Demo“ einen beliebigen Bericht, z. B. 1.fr3. Erstellen Sie einige Ereignisse bei Komponenten und rufen Sie im Ereignisbehandlungscode DebugLn() mit dem Ereignisnamen auf. Starten Sie den Bericht – im Fenster Messages sehen Sie dann die folgende Information: Wir hoffen, dass diese Funktion Ihnen hilft, Berichte effizienter zu debuggen. Erstellen einer eigenen Regel Weiter oben wurde erwähnt, dass Sie eigene Regeln zur Berichtsprüfung erstellen können. Sehen wir uns im Detail an, wie das geht. Jede Validierungsregel muss ein Nachfahre einer der folgenden Klassen sein: TfrxValidationRule ist Basisklasse für Berichtsregeln. Um mit dieser Klasse zu arbeiten, muss die abstrakte Methode Validate(AReport: TfrxReport) überschrieben werden. TfrxValidationPageRule ist eine Klasse für die seitenweise Validierung eines Berichts. In Nachfahren muss die Methode ValidatePage überschrieben werden. Diese Methode wird für jede Berichtsseite aufgerufen. TfrxValidationComponentRule ist eine Klasse für die komponentenweise Validierung eines Berichts. In dieser Klasse muss die Methode ValidateComponent überschrieben werden. Diese Methode wird für jede Berichtskomponente aufgerufen. Zur Meldung eines Validierungsfehlers ist in der Basisklasse TfrxValidationRule die folgende Methode vorgesehen: ``` procedure DoMessage(ASeverity: TfrxValidationSeverity; const AText: string; ADoubleClickData: TObject = nil); ``` Diese Methode sendet eine Fehlermeldung an die registrierten Empfänger. Sehen wir uns die Parameter im Detail an: ASeverity: TfrxValidationSeverity . Dieser Parameter bestimmt den Typ der Fehlermeldung und kann die Werte vsHint, vsWarning oder vsError annehmen. const AText: string; Zeichenkette mit der Fehlermeldung. ADoubleClickData: TObject = nil . Parameter, der die Aktion bei Doppelklick festlegt. Betrachten wir den dritten Parameter ADoubleClickData etwas genauer. Derzeit kann hier nur eine Instanz der Klasse TfrxDoubleClickSetSelectionData übergeben werden. Dies kann in Zukunft erweitert werden. Diese Klasse hat die folgenden Felder: ComponentName: string;  Name der Komponente, bei deren Prüfung der Validierungsfehler aufgetreten ist. PropName: string; Name der Komponenteneigenschaft, bei deren Prüfung der Validierungsfehler aufgetreten ist. SelStart: TPoint . Startposition des fehlerhaften Codes im Code-Editor. SelEnd: TPoint . Endposition des fehlerhaften Codes im Code-Editor. Für die korrekte Verarbeitung gibt es drei Möglichkeiten, dieses Objekt zu füllen: Nur ComponentName . Bei Doppelklick wird zur Komponente navigiert. ComponentName + PropName . Die Eigenschaft wird im Objektinspektor hervorgehoben. Auch die Aktivierung von verschachtelten Eigenschaften ist möglich – dies wird im folgenden Beispiel zu sehen sein. SelStart + SelEnd . Bei Doppelklick auf die Meldung wird in den Code-Editor gewechselt und der entsprechende Text markiert. Nach dem Senden der Validierungsfehlermeldung muss das Objekt, das für den Doppelklick verantwortlich ist, gelöscht werden. Um eine Regel zu verwenden, muss die geschriebene Klasse registriert werden. Dies geschieht durch den Aufruf des folgenden Codes: ``` frxValidationSettings.RegisterRule(ABucket: TfrxRuleBucket; ARuleClass: TfrxValidationRuleClass; AActive: Boolean = True); ``` Das Objekt frxValidationSettings ist im Modul TfrxValidator definiert. Es handelt sich um ein Singleton zur Speicherung der Validierungsregeln. Die Aufrufparameter im Einzelnen: ABucket: TfrxRuleBucket legt fest, ob es sich um eine systemeigene oder benutzerdefinierte Regel handelt. Mögliche Werte: rbCustom, rbDefault. ARuleClass: TfrxValidationRuleClass ist die Klasse der erstellten Regel. AActive: Boolean legt fest, ob die Regel standardmäßig aktiv ist (dies kann später im Dialog der Regeln geändert werden). Basierend auf dem oben Gesagten versuchen wir, eine eigene Berichtsvalidierungsregel zu formulieren. Angenommen, wir erstellen Berichte für eine Firma, in der alle Texte in den Firmenfarben Schwarz und Rot gehalten sein müssen. Die Verwendung anderer Farben gilt als Fehler. Auch die Rahmen von Beschriftungen müssen schwarz oder rot sein, der Hintergrund weiß. Da wir einzelne Komponenten prüfen, bietet sich für die Vererbung die Klasse TfrxValidationComponentRule an. Die Deklaration unserer Regelklasse sieht wie folgt aus: ``` type TCorporateRule = class(TfrxValidationComponentRule) private procedure SendMessage(AComponent: TFrxComponent; APropertyName, AText:string); public procedure ValidateComponent(AComponent: TfrxComponent); override; class function GetName: string; override; end; ``` Auch die Methode GetName muss überschrieben werden, um den Namen der Regel zurückzugeben. Die Implementierung der Methoden: ``` class function TCorporateRule.GetName: string; begin Result := 'Corporate_Colors'; end;     procedure TCorporateRule.SendMessage(AComponent: TFrxComponent; APropertyName: string); var LSelData: TfrxDoubleClickSetSelectionData; begin LSelData := TfrxDoubleClickSetSelectionData.Create; try LSelData.ComponentName := AComponent.Name; LSelData.PropName := APropertyName; DoMessage(vsError, AComponent.Name + ': Invalid color of property ' + APropertyName, LSelData); finally LSelData.Free; end; end;     procedure TCorporateRule.ValidateComponent(AComponent: TfrxComponent); var LMemo: TfrxMemoView; function CheckColors(AValue: TColor): Boolean; begin Result := (AValue = clBlack) or (AValue = clRed) or (AValue = clWhite) or (AValue = clNone) ; end; begin if not (AComponent is TfrxMemoView) then Exit; LMemo := TfrxMemoView(AComponent); if not CheckColors(LMemo.Font.Color) then SendMessage(LMemo, 'Font.Color'); if (not CheckColors(LMemo.Frame.TopLine.Color)) and (ftTop in LMemo.Frame.Typ) then SendMessage(LMemo, 'Frame.TopLine.Color'); if not CheckColors(LMemo.Frame.BottomLine.Color) and (ftBottom in LMemo.Frame.Typ) then SendMessage(LMemo, 'Frame.BottomLine.Color'); if not CheckColors(LMemo.Frame.LeftLine.Color) and (ftLeft in LMemo.Frame.Typ) then SendMessage(LMemo, 'Frame.LeftLine.Color'); if not CheckColors(LMemo.Frame.RightLine.Color) and (ftRight in LMemo.Frame.Typ) then SendMessage(LMemo, 'Frame.RightLine.Color'); if not CheckColors(LMemo.Color) then SendMessage(LMemo, 'Color'); end; ``` Registrierung der Regel: ``` initialization frxValidationSettings.RegisterRule(rbCustom, TCorporateRule); ``` Starten Sie nun die Anwendung, öffnen Sie den Berichtsdesigner und überprüfen Sie die Regelliste. Testen wir nun unsere Regel mit einem Bericht, z. B. mit dem Bericht 1.fr3 aus dem DemoCenter. Im Prüflog ist zu sehen, dass die Regel anschlägt. Bei einem Doppelklick auf den Fehler wird sofort zur Komponente mit der falschen Farbe navigiert. Im Objektinspektor ist die betreffende Eigenschaft hervorgehoben. Validierung außerhalb des Designers Mit FastReport wird die Berichtsprüfung nur im Designer selbst durchgeführt. Falls solche Prüfungen auch in anderen Fällen benötigt werden, kann der Benutzer sie selbst implementieren. So können beispielsweise Hunderte von Berichten auf Knopfdruck validiert werden. Dies kann wie folgt realisiert werden: Zuerst muss eine Validator-Klasse TfrxValidator erstellt werden. Dann wird die Liste der Regeln mit der Methode frxValidationSettings.ApplySettings(AValidator: TfrxValidator) übernommen. Wenn nicht alle verfügbaren Regeln verwendet werden sollen, sondern nur bestimmte, müssen die Listen DefaultRules und CustomRules des Validator-Objekts manuell mit Regel-Objekten gefüllt werden (ein Implementierungsbeispiel findet sich in frxValidationSettings.ApplySettings ). Mit der Methode TfrxValidator.AddListener(const AListener: IfrxValidationListener) werden Empfänger für die Validierungsfehlermeldungen hinzugefügt. Anschließend wird die Methode TfrxValidator.Validate(AReport: TfrxReport) zur Prüfung des Berichts gestartet. Dies ist eine recht allgemeine Anleitung. Ein fertiges Implementierungsbeispiel finden Sie im Demo-Projekt ConsoleValidate. Wie wir sehen, ist die Berichtsvalidierung unkompliziert und sehr nützlich. Wir freuen uns über Vorschläge zur Erstellung neuer Regeln. Tags: VCL, FastReport, Designer, Delphi, Customization ### New documentation of FastReport and FastReport Studio URL: https://www.fast-report.com/de/news/update-documentation-fastreport-2006 Summary: New documentation of FastReport and FastReport Studio New documentation of FastReport and FastReport Studio We have release new version of documentation for FastReport for Delphi and FastReport Studio in PDF-format. ### New face of Fast Reports. URL: https://www.fast-report.com/de/news/new-web-site-2006 Summary: New face of Fast Reports. New face of Fast Reports. Welcome to our new web-site with new style and new navigation. Now it is become more, but more useful and easy to use. Keep out our news! We can garantee many good news at the near time. ### new features for FastReport customers URL: https://www.fast-report.com/de/news/new-features-fastreport-customers Summary: new features for FastReport customers new features for FastReport customers Only from Fast Reports, Inc. Only for our customers! We are glad to inform you about our new feature. We polish FastReport up every day! You can appreciate that.  Daily Build (it is not an official release!) is built once per day and has the latest modifications. Both Stable Release and Daily Build are available for our customers! See Changes.txt file in customer web panel with the list of the latest modifications. Join FastReport community! ### New licenses to FastReport URL: https://www.fast-report.com/de/news/new-licenses-teams-2007 Summary: New licenses to FastReport New licenses to FastReport By popular request of developer's commands and organizations now available Team license (for teams of developers to four people inclusive) and site-license (for an unlimited number of work places in the organization with the one geographical address) for all editions of 4 FastReport for Delphi/C++ Builder/BDS. ### New transport Yandex Disk in FastReport VCL URL: https://www.fast-report.com/de/blogs/transport-yandex-disk-vcl Summary: Fügen Sie einen neuen Yandex Drive Transport zu Ihrer Anwendung und konfigurieren Sie es von FastReport VCL. Fügen Sie einen neuen Yandex Drive Transport zu Ihrer Anwendung und konfigurieren Sie es von FastReport VCL. Fügen Sie einen neuen Yandex Drive Transport zu Ihrer Anwendung und konfigurieren Sie es von FastReport VCL. Vor etwa drei Jahren haben wir neue Spezialkomponenten, die Transporte, hinzugefügt. Sie helfen dabei, erstellte Berichte in der Cloud zu speichern und Cloud-Dateien (z. B. Bilder) zur Erstellung von Berichten zu verwenden. Bislang gab es 4 Cloud-Transporte: Dropbox, Google Drive, Box, OneDrive, sowie 2 Nicht-Cloud- Transporte: Email und FTP. Mehr über die Einstellung von Cloud-Transporten können Sie hier finden, und  hier  finden, und  hier finden Sie Info über die Verwendung von Cloud-Dateien. In diesem Artikel beschreiben wir den Hinzufügungsvorgang des fünften Cloud-Transports: Yandex Disc. Betrachten wir alle Feinheiten bei der Einstellung und beschreiben wir die Möglichkeiten in Details.  Wenn Sie bereits mit unseren Cloud-Transporten gearbeitet haben, können Sie direkt zum  Kapitel über Verbindungseinstellungen gehen. Hinweis! Für die Nutzung des HTTPS-Protokolls werden die folgenden OpenSSL-Bibliotheken benötigt: libssl-3.dll und libcrypto-3.dll. Diese Dateien befinden sich im Verzeichnis der Haupt-Demo-Anwendung. Sie müssen die Bibliotheken entweder in den Anwendungsordner oder in das Systemverzeichnis kopieren. Hinzufügen des Transports zur Anwendung und Einstellung Als erstes müssen Sie wie bei anderen Transporten die entsprechende Komponente aus der Registerkarte “FastReport VCL Internet transports” hinzufügen. Sie können das Kontextmenü der Komponente verwenden. Dadurch wird die Verbindung direkt von der Entwicklungsumgebung aus hergestellt. Klicken Sie auf das Untermenü “Edit connection”. Standardmäßig reagieren die Transporte nur auf eine Autorisierungsantwort eines Browsers über den Port 9898. Wenn dieser Port bereits belegt ist oder wenn Sie planen, diesen Port in der Zukunft zu verwenden, können Sie in FastReport VCL den Port in der Eigenschaft ListenerPort ändern. Als nächstes gehen wir davon aus, dass der Port 9898 standartmäßig verwendet wird. Wichtig! Der Benutzer muss für die Anmeldung nicht jedes Mal alle der folgenden Schritte ausführen. Diese Einstellung muss nur einmal vom Cloud-Administrator vorgenommen werden. Nachdem alle Schritte abgeschlossen sind, können die Anmeldungsdaten von anderen Benutzern verwendet werden. Verbindung zu Yandex Disk Wenn der Benutzer eine Datei mit Hilfe des Transports öffnen oder speichern möchte, wird ihm das Standard-Anmeldungsdialogfeld angezeigt (sofern er sich nicht zuvor angemeldet hat). Um zur Seite mit den Verbindungseinstellungen zu gelangen, klicken Sie auf das Fragezeichen oben rechts im Anmeldefenster. Danach wird der Standardbrowser mit der Zugriffseite für externe Yandex Disk Anwendung geöffnet. Wenn der Benutzer nicht bei Yandex angemeldet ist, wird eine Anmeldeseite geöffnet, auf der er sich bei seinem Yandex-Konto anmelden muss. Klicken Sie auf die Schaltfläche "Neue Anwendung registrieren". Geben Sie den Namen der Anwendung ein und gehen Sie nach unten. Wählen Sie in "Plattformen" die Option "Webdienste", geben Sie im Feld «Callback URI» « http://localhost:9898 » ein und klicken Sie danach auf “Hinzufügen”. Bitte beachten Sie, dass der Port mit dem Port übereinstimmen muss, der in der Eigenschaft ListenerPort der Transportkomponente angegeben ist. Die Liste der möglichen Zugriffe ist ziemlich lang, daher haben wir die meisten davon in der folgenden Abbildung ausgeblendet. Öffnen Sie "Yandex.Disk REST API" und aktivieren Sie die Kontrollkästchen "An beliebiger Stelle der Festplatte schreiben" und "Gesamte Festplatte lesen". Gehen Sie dann ganz nach unten und klicken Sie auf "Anwendung erstellen". Sie werden sehen, dass die Anwendung erstellt wurde. Kopieren Sie die Felder "ID" und "Passwort". Und fügen Sie sie in die entsprechenden Eingabefelder des FastReport VCL Anmeldungsdialogs ein. Klicken Sie auf “Ok”. Im Standardbrowser sollte sich ein neues Fenster öffnen. Sie werden aufgefordert, ein Konto für die Anmeldung auszuwählen. Sobald Sie ein Konto ausgewählt haben, können Sie das Browserfenster schließen. Wenn die Verbindung erfolgreich ist, wird der Standard-FastReport-VCL-Dateibrowser angezeigt. Auf diesem Screenshot sehen Sie die Überprüfung der Unicode-Unterstützung. Wir betrachten Transporte als einen wichtigen Teil unseres Produkts und werden ihre Anzahl schrittweise erhöhen, aber so wie das Angebot einer Nachfrage folgt, so werden Transporte nach Ihren Wünschen erstellt. Wenn Sie irgendwelche Vorschläge haben, lassen Sie es uns bitte über  Support wissen. Tags: VCL, Lazarus, FastReport, Delphi, Email, Web Storage ### New version FastCube 2.1 URL: https://www.fast-report.com/de/news/fastcube-vcl-2.1 Summary: New version FastCube 2.1 New version FastCube 2.1 + Added new progress type fcxpFetchingData to track loading data progress by TfcxCube.OnProgress + Added TfcxSlice.OnScriptError event to handle errors in script + Added script functions to search measure value by dimensions values: TMeasure.GetValueWithColDimValues(ADimValues: Array of variant): Variant and TMeasure.GetValueWithRowDimValues(ADimValues: Array of variant): Variant + Added TfcxMeasuresContainer.AddCalculationScript procedure for adding functions to script + Added TMeasures.CurrentMeasureIndex: Integer and TMeasures.CurrentMeasureName: String properties for use in scripts + Added TfcxSliceDataZone.PopupCell: TfcxMeasureCell property for use in popup menus + Added an ability to use default color palette in export to Excel + Added an ability to override zone popup menus or to inject own menu items into zone popup menus + Added selection rows/columns group for selected cell + Added TopN Load/Save together with schema + TopN popup shows inactive conditions + Added Save menu in TfcxSliceGridToolbar + Added TfcxCustomToolbar.OnMenuItemClick event which allows to change reaction of menu items on toolbar  + Added TfcxCustomToolbar.OnButtonClick event which allows to change reaction of buttons on toolbar  + Added TfcxAxisContainer.ShowTotalAs: TfcxShowTotalAs property. See default value for each axis in  TfcxSlice.Settings + Added TfcxMeasuresContainer.DeleteMeasures + Added an ability to show hint for SliceGrid elements (use ShowHint = True to enable it) + Added TfcxCustomToolbar.OnGetButtonVisible event which allows to change visibility of particular buttons on toolbar  + Added TfcxpSliceGridReport component + Added Version property to FastCube components + Added XE5 support in Recompile Wizard + Added TfcxSliceContainer.Alignment + Added TfcxSliceGrid.OnDataDblClick event to be compatible with 1.x versions + Call the first export filter on Export button click if there are no other filters registered + Auto drop down toolbutton menu if it has no other click action + Added property TfcxSlice.Settings (default setting for axis and fields) + Added check type for date/time splitting  + Added: Fields List now popups by mouse click on any point inside button (instead of click on popup indicator only) + Added TfcxSliceGrid.OnGetClipboardText and TfcxCubeGrid.OnGetClipboardText event handlers to allow override standard behavior + Added an ability to hide CaptionZone in SliceGrid and CubeGrid + Added Portuguese translation and help files + Added Czech translation by Karel Janeček + Added Italian translation by Augusto Pellis + Added partial translation for languages from FastCube 1 - Fixed a bug with converting types of loading data - Fixed scrollbar disabling when it had position > 0 - Fixed error with HideTotalForSingleValue in axis with measures - Fixed errors with Hidden nodes - Fixed export cells with Percent and Rank - Fixed error in Data marker - Fixed error in export to Excel - Fixed error in row/column selection - Fixed some errors in TopN - Fixed error in GetData from DataSet in Delphi XE3-XE5 - Fixed error of saving filters of Date and Time parts - Fixed some errors in TopN - Fixed error with TDataSet from DLL - Fixed error in fcxCube.AppendData - Fixed error in TimeStamp and BCD - Fixed errors while exporting an empty slice to Excel - Fixed AV in with empty Cube - Fixed some AV in empty Slice - Fixed memory leak in FieldsPopup - Fixed integer overflow in Hash for string fileds - Fixed "Range check error" after DblClick in empty SliceGrid - Fixed AV on resize in empty SliceGrid * Added overloaded methods AddCalcMeasure and InsertCalcMeasure to create calculation measures with var section * Added: Export tool button not enabled when no registered exports * Renamed TfcxSliceGrid.Export to TfcxSliceGrid.DoExport * Fixed Chart package for Delphi XE3 * Fixed alignment popup menu check state * Fixed an error with memory corruption on unicode versions of Delphi (D2009+) * Fixed data loading from TWideStringField * Fixed LoadFromStream() did not load streams previosly saved by SaveToStream() * Fixed garbage on slice grid in some cases * Added missing lazarus form files for FastScript integration * Fixed loading string resources with FPC >= 2.7.1 * Fixed Measure/Dimension caption change in Lazarus applications * Fixed file names for case sensitive file systems (like on Mac OS X and Linux) ### New version FastReport .NET 2013.4 URL: https://www.fast-report.com/de/news/fastreport-net-2013.4 Summary: New version FastReport .NET 2013.4 New version FastReport .NET 2013.4 We prepared web-report online demo. You can to try new features from your browsers: 1. https://fast-report.com:2013 - Online demo of report is available also for iOS and Android devices 2. https://fast-report.com:2013/razor  - Online demo of MVC3 technology We will release more online things in next versions :-)  Other features of 2013. 4 : + updated documentation on German and English + added multi tabs preview in WebReport + added export in XAML + added linear gauge object in designer + added demo report for linear gauge (Gauge.frx) * show band name in the total editor form's band combobox - fixed bug in PDF export with extra large bitmaps - fixed bug with rendering of ASP.NET WebReport control in design-time - fixed bug with PrintOn.FirstPage | PrintOn.LastPage - fixed bug with digit count in numbers in exports - fixed bug with invisible objects (out of page bounds) in table-based exports - fixed bug with line spacing in layered export in Word 2007 ### New version FastReport .NET 2014.1 URL: https://www.fast-report.com/de/news/fastreport-net-2014.1 Summary: New version FastReport .NET 2014.1 New version FastReport .NET 2014.1 Now FastReport.NET is compatible with restrictions Fips Algorithm Policy (Federal Information Processing Standards) with some limitations (encryption of PDF export, encryption of report). Also we present a support of standard for long-term archiving of electronic documents PDF/A ISO 19005-1:2005. Exchanging by documents expanded by adding a new export in SVG (scalable vector graphics). You can replace any graphic in toolbar of WebReport and dynamically load any available localization (28 language packs available) for your Web reports. + added compatibility with Fips Algorithm Policy (with limitations: encryption of PDF export, encryption of report) + added support of PDF/A in PDF export + added export to SVG + added support of html tags , , and it RTF export. + added localization in WebReport (property WebReport.LocalizationFile) + added custom icons and background in WebReport toolbar + added new demo of localization and customization in Webreport (Demos\C#\MvcCustomization\) * added default action to the Print buttion in WebReport when WebReport.PrintInPdf = false; - fixed bug with paragraphs in RTF & Word2007 exports - fixed bug when inserting gauge - fixed bug with bookmarks in PDF export - fixed bug with an additional empty page in the export to the MS Word 2007 - fixed bug with borders in XAML export - fixed bug with rendering of ASP.NET WebReport control in design-time - fixed bug with showing of invisible dialog pages in WebReport - fixed the line spacing in a layered export to Word 2007 - fixed bug with incorrect server address in save to FTP server ### New version FastReport .NET 2014.2 URL: https://www.fast-report.com/de/news/fastreport-net-2014.2 Summary: New version FastReport .NET 2014.2 New version FastReport .NET 2014.2 ``` FastReport ist bereits seit mehreren Jahren auf dem Markt. Jetzt verfügen wir auch über ein Datenvolumen, das die Leistung und die Vorteile von FastReport besonders deutlich werden lässt. Wir stellen Ihnen den neuen FastReport mit Big Data vor! Sicherlich das schönste .Net Produkt zur Erstellung von Berichten für ASP.Net und den Desktop + Verbindung zu Google BigQuery + Beispiel für den Zugriff auf Google BigQuery + Speichern in der "Box" Cloud aus der Vorschau + Unterstützung des Zeilenabstands in RTF- und DOCX-Exporten * schnellerer Zugriff auf die Datenbanken (bis zu 6 Mal schneller) * Sprachenauswahl im Sprachdialog der Benutzeroberfläche * aktualisierte Ressourcen- fixed bug with fonts in SVG export- fixed bug with default message in ProgressBar window- fixed bug with AVG function in Map editor- fixed bug in font packing subsystem (in some rare cases the OS/2 table was overlapped by other tables)- fixed bug with artifact lines in RoundRectangle with big Curve value- fixed bug with ParagraphOffset in RTF export- fixed bug with hints in WebReport toolbar ``` ### New version FastReport .NET 2014.3 URL: https://www.fast-report.com/de/news/fastreport-net-2014.3 Summary: New version FastReport .NET 2014.3 New version FastReport .NET 2014.3 FastReport have an editor of QR-codes in the designer. Now you will free to create a QR-codes with the contents: vCard, URI, E-mail address, E-mail message, coordinates, SMS, Call, Event, Wi-FI, etc. Designer give new converter from List & Label in FastReport. Also you can use new linear indicators. + added QR-code editor in designer + added import from List & Label report template + added vertical linear gauge + added simple gauge + added vertical simple gauge + added new properties AllowExpression, Brackets in Barcode object + added new property Inverted in linear gauge + increased customization options of scale in simple gauge + added new property DefaultZoom in PDFExport + added new property DefaultPage in PDFExport + added WebMatrix demo (\Demos\C#\WebMatrix) + added CSV export in WebReport + added processing of event handlers Load, FormClosing and FormClosed in DialogPage in WebReport + added MonthCalendar object in WebReport * updated German, French, Japanese resources - fixed bug with scaling of linear gauge - fixed bug with spaces in file names in exports in WebReport - fixed bug with metafile size in RTF export - fixed bug with line spacing in RTF export - fixed bug with HTML-tags in RTF export - fixed bug with landscape pages in Word 2007 (docx) export - fixed bug with selecting all text (Ctrl+A) in the object inspector in designer - fixed bug with refresh of DateTimePicker in WebReport ### New version FastReport FMX 2 URL: https://www.fast-report.com/de/news/fastreport-fmx-2 Summary: New version FastReport FMX 2 New version FastReport FMX 2 We have excellent news for you! New version of FastReport FMX can work with Embarcadero RAD Studio XE5. You need upgrade your FastReport FMX via cpanel for 30% discount. Users who bought a product for last 6 month will get this version for free! Full change list:  + Added support of Embarcadero RAD Studio XE5 (iOS not supported) for both Delphi and C++Builder developing environment + Added PDF export for both OSX and WIn platforms including font embedding/links/outlines + Added support of C++Builder for OSX platform (some properties changed to Double type from extended) + Added FireDac internal components + Added TeeChart Pro packages support + Added font editor dialog - Improved speed in the report designer when editing reports with many objects - Fixed Styles editor in the report designer - Fixed export of wrapped text - Fixed chart printing under WIN platform - Fixed printing from application compiled with XE4/XE5 - Fixed problem with TfrxPictureView with Stretched = false - Fixed problem with accessing some properties of object in designer menu (fast access menu) - Fixed problem with calculation of the memo size (cut off text in crosstab) - Fixed bugs with TfrxPreview component - Fixed minor problems in many editors dialogs ### New version FastReport FMX 2.1 URL: https://www.fast-report.com/de/news/fastreport-fmx-2.1 Summary: New version FastReport FMX 2.1 New version FastReport FMX 2.1 + Added new QR barcode + Added recompile utility for fast packages recompilation + Added TeeChart Std support - Fixed memory leaks - Fixed error when designer hangs/crashes application in OSX - Fixed problems with context menu in the report designer under OSX(XE5) - Fixed problem with XE5 update 2 for C++ Builder ### New version FastReport FMX 2.2 URL: https://www.fast-report.com/de/news/fastreport-fmx-2.2 Summary: New version FastReport FMX 2.2 New version FastReport FMX 2.2 Main features: ability to export with transparency to PDF and RAD Studio XE7 support. + Added support of Embarcadero RAD Studio XE7 for both Delphi and C++Builder developing environment + Added support of Embarcadero RAD Studio XE6 for both Delphi and C++Builder developing environment + Added TfrxCheckBoxView component + Added ability to export with transparency to PDF + Improved CrossTab editor - Fixed performance issue with XE6 and above on OSX platform - Fixed problem with components registration on XE5 and above - Fixed embedded Fonts in PDF export on x64 platfoorm - Fixed CrossTab and TeeChart editors errors on XE5 and above - Fixed TfrxDBDataSet editor - Fixed printing report with different pages dimensions - Fixed Memo and Code editiors on XE6 ### New version FastReport Mono 2014 URL: https://www.fast-report.com/de/news/fastreport-mono-2014 Summary: New version FastReport.Mono 2014 New version FastReport.Mono 2014 + added multi tabs preview in WebReport + added support of ASP.NET MVC framework (ASPX, Razor) in WebReport * IMPORTANT! changed extension of WebReport handler (from FastReport.Export.aspx to FastReport.Export.axd), please check existing web.config + added dialogs in WebReport (some controls and features are in development now) + added AJAX in WebReport + added new customizable toolbar in WebReport + extended checking for errors of exporting - fixed frame in text export - fixed bug with the re-export to PDF from code - fixed bug in Excel 2007 export with styles for multi-page report template - fixed bug in Excel 2007 export with empty page name - fixed bug in PictureObject - fixed bug in the Word 2007 export in layer mode - fixed bug in TrueType font parser - fixed connection timeout for PostgreSQL ### New version FastReport VCL 4.15 URL: https://www.fast-report.com/de/news/fastreport-vcl-4.15 Summary: Traditionally supports the most wide range of Delphi versions (from 4th to XE5 for today). 64x supports as well as 32x Traditionally supports the most wide range of Delphi versions (from 4th to XE5 for today). 64x supports as well as 32x Traditionally supports the most wide range of Delphi versions (from 4th to XE5 for today). 64x supports as well as 32x (sorry we forgot to write about at the previous release where whas also). C++Builder SUpport as well as Delphi (yes XE5 is supporting now too). Traditionally Fast Reporting and XML as the main report format. + Added Embarcadero RAD Studio XE5 support + Added Internal components for FireDac database engine + fixed bug with images in PDF export for OSX and iOS viewers + Added ability to set font charset to default in Style Editor - fixed duplex problem when printing several copies of the report - fixed problem with PNG images - fixed problem with TfrxPictureView transparent If you need a little bit much more than internal FastReport VCL Embarcadero Edition - see comparison table P.S. Sorry, we are working hard on FastReport VCL 5 now, so no so many changes. Follow our news :-) ### New version FastReport VCL 5.1 URL: https://www.fast-report.com/de/news/fastreport-vcl-5.1 Summary: New version FastReport VCL 5.1 New version FastReport VCL 5.1 What's new?  Added Embarcadero RAD Studio XE6 support; Added OnGetCustomData/OnSaveCustomData events which allow to save; custom data inside report template(look new CustomReportData demo); Added OnLoadDetailTemplate event - used to load detail reports from other sources like data fields; Added new multiImage mechanism in TIFF export - multiImage document is not limited with pages count; Added new property UTF8 in CSV export filter for stroing Unicode text in UTF8 encoding; Added missing RTTI information for new clases; - Improved and fixed template inheritence (inherite some collections like classes and variables); - Improved checkbox control in PDF export; - Fixed script inheritence - for more information see example "Report with script enheritence"; - Fixed Interactive chart behaviour and added "Interactive Chart " report example; - Fixed bug with shadows in pictures in PDF export; - Fixed problem with multipage preview; - Fixed negative number export in BIFF8 export (braket form); - Fixed pictures in PowerPoint export; - Fixed bug with Excel export in Enterprise edition; - Fixed frames in RTF export; - Fixed gradient fill in exports; ### New version FastReport.NET 1.8 URL: https://www.fast-report.com/de/news/fastreport-net-1.8 Summary: New version FastReport.NET 1.8 New version FastReport.NET 1.8 We are pleased to release the new version of FastReport.Net - report generator for MS Visual Studio software developers. The m ain feature of the new version is its ability to use WebReport component s in Web Farm and Web Garden technologies.  It allows you to d i vide web-application (or site) work over several servers (Web Farm) or over several process in one server (Web Garden)  in order to reduc e server load and increas e system resili ence should problem s arise with one of  the servers or processes at report generation time.  Full change-list:  + added Web Farms and Web Gardens support in WebReport  + added HoverStyle property to all report objects  + added WebReport.CachePriority property  * improved WebReport using ControlState instead of ViewState, increased speed and stability  - fixed bug when opening RDL-file from recent files list  - fixed bug with empty sub - report  - fixed bug in Crystal Reports import plugin (incorrect conver sion of type of some sections)  - fixed bug in Crystal Reports import plugin (incorrect conver sion of report creation date)  - fixed bug in Crystal Reports import plugin (incorrect conver sion of PaperOrientation property)  - fixed bug in Crystal Reports import plugin (incorrect conver sion of paper size for formats B4 and B5)  - fixed bug in Crystal Reports import plugin (incorrect conver sion of groups)  - fixed bug with sub - report and KeepTogether  - fixed bug with report parameters and undo/redo  - fixed bug with null thickness and Dash or Dot style of lines in PDF export  - fixed bug with two-pass report and business object datasource  - fixed bug with printing/exporting interactive reports  - fixed bug when invoking WebReport component designer  - fixed padding when exporting to RTF/Word2007  - fixed bug in PDF export (images and encryption)  - fixed bug with images when editing a prepared report  - fixed number format when exporting to Excel ### New version FastScript 1.101 URL: https://www.fast-report.com/de/news/fastscript-1.101 Summary: New version FastScript 1.101 New version FastScript 1.101 + added support of Embarcadero Rad Studio XE5 for VCL x32/x64 compilators. + added support of Embarcadero Rad Studio XE5 FireMonkey framework (2) for Windows x32/x64 and OSX platforms. ### New version of FastCube 1.9 URL: https://www.fast-report.com/de/news/fastcube-vcl-1.9 Summary: New version of FastCube 1.9 New version of FastCube 1.9 We are pleased to release the new version of  FastCube 1.9  with support for Embarcadero Rad Studio XE2 (Delphi XE2/C++Builder XE2) . --------------------------------------------------------------------------------  Full change-list:  + a dded support for Embarcadero Rad Studio XE2 (Delphi XE2/C++Builder XE2) + a dded feature loading data from multiple sources with the same structure. Added TfcCube.UseMultiLoad property and event TfcCube.OnGetNextDataset  + a dded Lithuanian resources (thanks to Evaldas) + a dded script properties VisibleCol and VisibleRow in TDimensions and TMeasures + a dded option mdcoUseYearInWeekOfYear in TfcCube.Options. It allows the use of week number in the past year or next year + a dded script properties TDimensions.MembersCountInCol: Integer and Dimensions.MembersCountInRow: Integer + a dded option mdsoCalcOrderByDimOrder in TfcSlice ( u se Dimensions order during calculation of measures) + a dded event OnAfterAddedSliceFieldToRegion: TfcSliceFieldRegionChanged in TfcSlice + a dded version info in StatForm (open from toolbar) + a dded Hungarian resources (thanks to Berenyi Gabor) * unit fcAbout renamed to fcAboutDlg since 1stClass has same unit name  * c hanged for compatibility with version 2  - f ixed error in GetFirstColIndex, GetFirstRowIndex - f ixed error in TfcCube.Refresh - f ixed error loading multiple dataset s - f ixed a few errors with display of national characters in Lazarus - c hanged a few sort routines to fix problems with accidental dissapear ance of random dimension members , experienced only by Lazarus users - f ixed error with sort by measure totals and focused row/column (measures count > 1) - f ixed print error ( having value '[]') - f ixed Recompile ({$R-} {- Range-Checking }) - f ixed Recompile for Embarcadero Rad Studio XE (Delphi XE/C++Builder XE) ### New YouTube channel URL: https://www.fast-report.com/de/news/new-youtube-channel Summary: New YouTube channel New YouTube channel Hi Friends! Our new YouTube channel . Now you can watch FastReport VCL lessons . FastReport.Net lessons very soon! ### News URL: https://www.fast-report.com/de/news Summary: Bleiben Sie auf dem Laufenden mit den neuesten Nachrichten und Updates zu Fast Reports. Erfahren Sie mehr über neue Produkte, Verbesserungen und Sonderangebote für unsere Lösungen. Nachrichten 11. September 2026 Trefft Fast Reports auf dem Entwickler Summit 2026 in Berlin! Wir freuen uns, bekannt zu geben, dass Fast Reports Partner des Entwickler Summit 2026 ist, der am 17. September in Berlin stattfindet. 10. August 2026 Fast Reports feiert Geburtstag – 20 % Rabatt sichern Jedes Jahr entstehen neue Produkte, Tausende erfolgreicher Projekte werden umgesetzt und Millionen von Berichten mit den Lösungen von Fast Reports erstellt. Unser größter Erfolg ist jedoch die Gemeinschaft unserer Kunden und Partner, die uns bei der Automatisierung ihrer Berichterstattung vertrauen. Vielen Dank, dass Sie sich für unsere Produkte entschieden haben und gemeinsam mit uns wachsen. Anlässlich des Fast Reports Jubiläums erhalten Sie 20 % Rabatt auf alle Reporting-Bibliotheken FastReport VCL, FastReport .NET und FastReport Desktop. Die Aktion läuft vom 10. bis einschließlich 25. August. Nutzen Sie dieses Sonderangebot, um neue Produkte zu erwerben oder Ihre bestehenden Lizenzen auf die neueste Version zu aktualisieren – jetzt zum Sonderpreis. Wir freuen uns, Teil Ihrer Projekte zu sein, und werden unsere Produkte auch weiterhin kontinuierlich verbessern, damit die Berichterstellung noch einfacher und effizienter wird. 25. Mai 2026 Update der Service-Lösungen auf Version 2026.2 Im Release 2026.2 der Service-Linie (FastReport Cloud, FastReport Publisher, FastReport Corporate Server), haben wir uns auf die Steigerung der Zuverlässigkeit und Benutzerfreundlichkeit konzentriert: Die Arbeit mit Aufgaben und dem Planer wurde verbessert, die Funktionen des Admin-Panels wurden erweitert, neue Integrationsmöglichkeiten wurden hinzugefügt und Fehler in mehreren Schlüsselkomponenten behoben. Unterstützung von API-Keys im Online Designer Der Online Designer unterstützt jetzt die Authentifizierung über API-Keys, was die Integrationsmöglichkeiten in Unternehmenssysteme erweitert. Um sich mit einem API-Key zu autorisieren, muss der URL der Parameter apikey hinzugefügt werden. Beispiel: {hostname}/designer/?uuid={templateId}&v=df&apikey={apikey}. Außerdem verwendet der Online Designer nun das Symbol aus der Serverkonfiguration, sodass Branding korrekt ohne zusätzliche Anpassungen übernommen wird. Beschleunigung von Aufgaben und des Planers Die Berechnung von Cron-Ausdrücken wird jetzt zwischenspeichert. Dies reduziert die Anzahl der Datenbankzugriffe bei der Arbeit mit dem Planer erheblich. Zudem wurden Fehler behoben, durch die Aufgaben ohne ausreichende Berechtigungen gestartet werden konnten oder zu häufig ausgeführt wurden. Erweiterte Dokumentation Die aktuelle Produktversion wurde in alle Dokumentationsartikel aufgenommen. Dadurch können Skripte aus der Dokumentation zur Installation der aktuellen Produktversion verwendet werden. Die Dokumentation zu Aufgaben und dem Planer wurde verbessert, und es wurde ein Artikel über die Einschränkungen der Demo-Version des Publishers und des Corporate Servers hinzugefügt. Zusätzliche Änderungen für FastReport Corporate Server und FastReport Publisher Nachfolgend sind Änderungen aufgeführt, die nur die On-Premise-Produkte der Linie betreffen. Neues Admin-Panel basierend auf Fluent UI Das Admin-Panel wurde komplett auf Basis von Fluent UI überarbeitet – einer modernen Komponentenbibliothek von Microsoft. Die Oberfläche ist nun konsistenter, benutzerfreundlicher und barrierefreier. Auch die Fehlerbehandlung auf der Seite zur Massenbearbeitung von Plänen wurde verbessert. Das neue Admin-Panel wird derzeit in der Cloud-Infrastruktur getestet und wird in Kürze standardmäßig im Publisher und Corporate Server aktiviert. Erweiterte Funktionen der Methode UpdateSubscriptionPlan Der Methode UpdateSubscriptionPlan wurde ein neues Flag hinzugefügt. Es ermöglicht, aktuelle Pläne sofort für alle Abonnements zu aktualisieren, die diesen Plan nutzen. Dies vereinfacht die Massenverwaltung von Konfigurationen. Unterstützung der lokalen Browserzeit Die Erstellung und Verlängerung eines Workspaces wird jetzt in der lokalen Zeit des Browsers festgelegt. Das Erstellungsdatum von Audits auf der Audit-Seite wird ebenfalls in der lokalen Zeit angezeigt. Dadurch entfallen Diskrepanzen für Benutzer aus verschiedenen Zeitzonen. Standardproduktname aus dem Lizenzschlüssel Der Produktname (Corporate Server oder Publisher) kann jetzt automatisch aus dem Lizenzschlüssel ermittelt werden. Die erste Einrichtung des Produkts bei der Bereitstellung wird dadurch einfacher. Erweiterte FerretDB-Funktionen Ein Fehler wurde behoben, durch den Migrationen bei Verwendung von FerretDB nicht ausgeführt wurden. Zusätzlich wurde die Mechanik optimiert. Swagger-Datei für das Admin-Panel Im Corporate Server und Publisher wurde eine Swagger-Datei hinzugefügt, die die API des Admin-Panels beschreibt. Dies vereinfacht die Integration und das Kennenlernen der verfügbaren administrativen API-Funktionen. Die Beschreibung der Admin-Panel-API ist unter /api/swagger/index.html verfügbar, wenn der entsprechende Bereich oben rechts auf dem Bildschirm ausgewählt wird. Fehler im Installer behoben Ein Fehler wurde behoben, bei dem der Installer falsche Demo-Lizenzschlüssel während der Installation verwendet hat. FastConverter Ein neuer Dienst wurde veröffentlicht – FastConverter. Er ermöglicht die Konvertierung von *.FPX-Dateien in verschiedene, von FastReport Cloud unterstützte Formate (z. B. *.PDF, *.DOCX). Der Dienst erfordert keine Installation oder Registrierung. Sie können Ihre Berichte über den folgenden Link konvertieren. Vollständige Änderungsliste [Admin Panel]+ Der Methode UpdateSubscriptionPlan wurde ein neues Flag hinzugefügt. Es ermöglicht die Aktualisierung aktueller Pläne für alle Abonnements, die den aktualisierten Plan nutzen.* Erstellung und Verlängerung eines Workspaces werden jetzt in der lokalen Browserzeit festgelegt.* Das Erstellungsdatum von Audits auf der Audit-Seite wird jetzt in der lokalen Browserzeit angezeigt.- Fehlerbehandlung auf der Seite zur Massenbearbeitung von Plänen verbessert.- Korrekturen für das neue Admin-Panel. [Backend]+ Fehlende Audit-Meldungen wurden hinzugefügt.- Fehler behoben, bei dem CORS für statische Dateien einen Fehler 500 zurückgab.- Standardmäßige Setzung des Produktnamens (Corporate Server, Publisher) aus dem Lizenzschlüssel hinzugefügt.- Berechtigungsprüfung bei der Massenverschiebung von Dateien korrigiert.- Fehler in der 48. Migration behoben, bei dem ein null-Wert nicht als String verarbeitet werden konnte.- MHT-Export korrigiert. [Common]+ Swagger-Datei für das Admin-Panel im Corporate Server und Publisher hinzugefügt.+ Zusätzliche Tests zur Funktionsfähigkeit von FerretDB hinzugefügt.- Fehler behoben, bei dem MySQL das Erstellen von Parametern für SELECT-Abfragen verhinderte.- Fehler behoben, bei dem Migrationen bei Verwendung von FerretDB nicht ausgeführt wurden. [Docs]+ Aktuelle Produktversion in alle Dokumentationsartikel aufgenommen.+ Dokumentation zu Aufgaben und dem Planer verbessert.+ Artikel über die Einschränkungen der Demo-Version des Publishers und Corporate Servers hinzugefügt. [Frontend]+ Neues Admin-Panel basierend auf Fluent UI hinzugefügt.- Dateiauswahldialog in Transportaufgaben korrigiert. [Installer]-  Fehler behoben, bei dem der Installer falsche Demo-Lizenzschlüssel verwendete. [Online Designer]+ Unterstützung für API-Keys im Online Designer hinzugefügt.* Der Online Designer verwendet jetzt das Symbol aus der Serverkonfiguration. [SDK]- Fehler bei der Übergabe von Datum und Uhrzeit behoben. [Tasks]+ Zwischenspeicherung der Berechnung von Cron-Ausdrücken hinzugefügt, was die Datenbankarbeit erheblich beschleunigt.- Fehler behoben, der das Starten von Aufgaben erlaubte, wenn der Benutzer keinen aktiven Cloud-Workspace hatte.- Fehler behoben, durch den Aufgaben ausgeführt wurden, obwohl der Workspace keine Berechtigung zur Nutzung des Planers hatte.- Fehler behoben, durch den eine Aufgabe zu oft ausgeführt wurde, wenn ein Cron-Ausdruck angegeben war. 19. Mai 2026 Release der Version 2026.2 für den FastReport Online Designer In der neuen Version des FastReport Online Designer (2026.2) wurden die Benutzeroberfläche erheblich verbessert und das Theming-System überarbeitet. Hinzu kommen eine neue Berichtsarbeitsfläche sowie eine beträchtliche Menge an neuen Funktionen. Zu den wichtigsten Änderungen gehören ein vollständig überarbeitetes Theme im Stil von FastReport .NET Avalonia, ein neuer Docking-Manager zur flexiblen Anpassung der Panels, Pop-up-Einstellungen für den Designer, ein verbessertes Undo/Redo-System und vieles mehr. Neue Funktionen Theme von FastReport .NET Avalonia In Version 2026.2 wurde das Erscheinungsbild des Online Designer komplett überarbeitet – ein neues Theme im Stil von FastReport .NET Avalonia wurde hinzugefügt. Die Stile aller Steuerelemente, Panels, Pop-ups und Symbolleisten wurden aktualisiert. Das Theme ist responsiv und wird auf Bildschirmen verschiedener Größen korrekt dargestellt. Eigenschaftenpanel überarbeitet Das Eigenschaftenpanel erhielt ein aktualisiertes Design in Form einer Eigenschaftstabelle. Das Eigenschaftenpanel wurde nun mit dem Ereignispanel in einer einheitlichen Benutzeroberfläche zusammengeführt – genau wie in der Desktop-Version von FastReport. Das Umschalten zwischen Eigenschaften und Ereignissen einer Komponente erfolgt über eine Symbolleiste innerhalb des Panels, sodass Sie die Ereignisse nicht mehr in einem separaten Fenster suchen müssen. Docking-Manager Ein neuer Docking-Manager wurde implementiert, der es dem Benutzer ermöglicht, die Anordnung der Panels in der Designer-Oberfläche flexibel anzupassen. Die Panels können per Drag & Drop verschoben, an verschiedenen Bildschirmseiten angedockt und in ihrer Größe verändert werden. Neue Arbeitsfläche: Lineale, Hilfslinien, Band-Überschriften Die Arbeitsfläche des Designers wurde vollständig überarbeitet. Die Lineale und Hilfslinien wurden aktualisiert – sie spiegeln jetzt die Position der Komponenten auf der Seite genauer wider und sind bei jedem Zoomfaktor verfügbar. Die Band-Überschriften wurden in eine separate Ebene ausgelagert. Darüber hinaus wurde die Unterstützung für ein alternatives Raster bei gedrückter Alt-Taste hinzugefügt – Komponenten können mit reduzierter Schrittweite verschoben und skaliert werden, um eine präzise Positionierung zu ermöglichen. Symbolleisten der Panels „Daten“ und „Berichtsbaum“ Die Panels „Daten“ und „Berichtsbaum“ erhielten Symbolleisten mit Funktionen aus FastReport .NET. Sie können Knoten ein- und ausklappen, Dropdown-Listen verwenden und neue Verknüpfungen erstellen. Die Panels unterstützen das rekursive Ein- und Ausklappen von Knoten sowie das automatische Umschalten auf das benachbarte Element beim Löschen eines Knotens. Einstellungsfenster des Designers Ein einheitliches Einstellungsfenster des Designers wurde hinzugefügt, das die Konfiguration des Erscheinungsbilds, die Objektparameter und die Interaktionsmöglichkeiten mit der Anwendung vereint. Folgende Bereiche stehen zur Verfügung: Oberfläche. Einstellungen für Tastenkürzel und Auto-Save. Berichtsseite. Einstellungen für Raster und Maßeinheiten. Objekt-Erscheinungsbild. Stile und Darstellung der Komponenten. Registerkarte „Code“. Einstellungen für die Codepage. Registerkarte „FRX“. Einstellungen für die FRX-Vorlagenbearbeitungsseite. Die Einstellungen werden beim Schließen des Designers gespeichert und beim nächsten Öffnen wiederhergestellt. Bearbeitungsfenster für Barcodes Ein eigenes Fenster zur Konfiguration der Barcode-Komponente wurde implementiert – als Ersatz für den universellen Ausdruckseditor. Das Fenster enthält separate Registerkarten für jeden Barcode-Typ mit den entsprechenden Konfigurationsfeldern, einschließlich Swiss QR. Bearbeitungsfenster für Schriftarten Das Fenster zur Schriftartkonfiguration wurde überarbeitet – Erscheinungsbild und Struktur wurden an das Design von FastReport .NET angepasst. Das Fenster ersetzt die bisherige vereinfachte Version und bietet Zugriff auf den vollständigen Satz an Schriftartparametern. FRX-Vorlageneditor Ein eingebetteter Editor für das XML-Berichtsvorlage (FRX) wurde hinzugefügt. Der Editor mit Syntaxhervorhebung ermöglicht es, die XML-Struktur des Berichts direkt anzuzeigen und zu bearbeiten. Es werden Undo/Redo sowie die Synchronisierung mit der Hauptansicht des Designers unterstützt. Formatkopieren von Komponenten Sie können jetzt Stile zwischen Komponenten kopieren und einfügen. Dies ist das Äquivalent zum Werkzeug „Format übertragen“ aus der Desktop-Version und ist über die Symbolleiste verfügbar. Diese Funktion ermöglicht es, die Einstellungen für Schriftarten, Farben, Rahmen und andere Eigenschaften schnell auf verschiedene Berichtskomponenten anzuwenden. Neue Logik beim Zeichnen von Formen Die Logik des Zeichnens der Komponenten PolyLine, Polygon und Linien wurde überarbeitet. In dieser Version erfolgt das Zeichnen interaktiv, ohne dass zwischen verschiedenen Werkzeugen umgeschaltet werden muss. In der Komponentenleiste wurden Presets hinzugefügt, um typische Formen schnell einfügen zu können. Neue Logik beim Hinzufügen von Komponenten auf die Seite Der Mechanismus zum Hinzufügen von Komponenten wurde nach dem Vorbild der Desktop-Version von FastReport .NET überarbeitet. Die Komponente wird nun durch einen Klick auf die Komponentenleiste hinzugefügt – danach wechselt der Cursor in den Platzierungsmodus, und unter dem Cursor wird eine Vorschau der zukünftigen Komponente angezeigt. Ein erneuter Klick auf die Seite erstellt die Komponente an der Position der Vorschau. Funktionen „Bericht öffnen“ und „Bericht speichern“ Es gibt nun die Funktionalität zum Öffnen und Speichern von Berichten. Sie können jetzt einen Bericht direkt aus dem Dateisystem im WebReport öffnen, ohne ihn vorher auf den Server laden zu müssen. Außerdem können Sie einen fertigen Bericht in Ihrem eigenen Dateisystem speichern. Bitte beachten Sie: Vor der Verwendung dieser Funktionen müssen die Datenquellen im WebReport angebunden werden. Verbesserungen Undo/Redo: benannte Aktionen und Gruppenrückgängigmachung Das Undo/Redo-System wurde auf den Code-Editor und den FRX-Vorlageneditor ausgeweitet. Jeder Aktion in der Anwendung wurde eine Textbeschreibung zugewiesen, sodass es in der Änderungshistorie keine anonymen Einträge mehr gibt. Sie können visuell mehrere Aktionen auswählen und mit einem einzigen Klick rückgängig machen. Überarbeitung des Code-Editors Im Skript-Editor des Berichts wurde eine konfigurierbare Tabulierung hinzugefügt. Die Einzugsgröße wird nun in den Einstellungen der Code-Editor-Seite festgelegt. Anpassungsfähigkeit der Benutzeroberfläche Die Designer-Oberfläche wurde an Bildschirme verschiedener Größen angepasst – sowohl im Avalonia- als auch im klassischen Theme. Die Elemente skalieren und ordnen sich bei Größenänderung des Browserfensters neu an. Überarbeitung der Seitenleiste Die Seitenleiste wurde um die Möglichkeit erweitert, Seiten und Dialogseiten zu erstellen. Bei Klick auf die Schaltfläche „+“ mit der linken Maustaste wird eine Seite erstellt. Bei Klick mit der rechten Maustaste öffnet sich ein Kontextmenü mit der Möglichkeit, entweder eine Dialogseite oder eine normale Berichtsseite zu erstellen. Neues UI-Element für die Datenquellenauswahl Ein neues Steuerelement zur Auswahl einer Datenquelle wurde hinzugefügt – analog zur Desktop-Version von FastReport .NET. Anstatt den Tabellen- oder Feldnamen manuell in ein Textfeld einzugeben, wird nun ein Baum mit Verbindungen, Datenquellen und Spalten angezeigt – die Auswahl erfolgt mit einem einzigen Klick. Das Steuerelement wird in zwei Modi verwendet: Auswahl einer Datenquelle für ein Band. Im Band-Editor (Registerkarte „Datenquelle“) sind nur Tabellen zur Auswahl verfügbar. Auswahl eines Datenfelds für eine Komponente. Beispielsweise auf der Registerkarte „Datenfeld“ des Picture-Editors: Im Baum werden Tabellen und deren Spalten angezeigt; Sie können ein bestimmtes Feld auswählen oder den Wert auf None zurücksetzen. Möglichkeit zur Bearbeitung einer Verbindung Es wurde die Möglichkeit hinzugefügt, eine zuvor erstellte Datenquellenverbindung zu bearbeiten – die Parameter der Verbindungszeichenfolge zu öffnen, zu ändern und zu speichern, ohne die Verbindung von Grund auf neu erstellen zu müssen. Aus Sicherheitsgründen wird die Verbindungszeichenfolge nicht im Bericht selbst gespeichert und verbleibt nur im Browserspeicher innerhalb der aktuellen Designer-Sitzung. Daher ist die Bearbeitung nur unter folgenden Bedingungen möglich: Die Verbindung wurde in der aktuellen Sitzung erstellt, und die Designer-Seite wurde seitdem nicht neu geladen. Der Bericht wurde nach dem Erstellen der Verbindung nicht erneut geöffnet. Nach einem Neuladen der Seite oder erneutem Öffnen des Berichts verliert der Designer die Verbindungszeichenfolge, und die Bearbeitung ist nicht mehr möglich – in diesem Fall muss die Verbindung neu erstellt werden. Fehlerkorrekturen Probleme beim Speichern von kyrillischen Zeichen im Skriptcode behoben (VCL) Ein Fehler wurde behoben, bei dem kyrillische Zeichen im Skriptcode in VCL-Berichten nicht korrekt gespeichert wurden. Eigenschaft VisibleExpression korrigiert (.NET) Das Problem, bei dem die Eigenschaft VisibleExpression im Eigenschaftenpanel einer Textkomponente fehlte, wurde behoben. Die Eigenschaft wird nun korrekt angezeigt. Fehler bei Verwendung einer Füllung bei ShapeObj behoben (.NET) Ein Fehler, der auftrat, wenn versucht wurde, eine Füllung auf eine ShapeObj-Komponente anzuwenden, wurde behoben. Die Füllungseinstellung funktioniert nun korrekt. Korrigiert: Identische Tabellennamen bei JSON-Verbindungen (.NET) Das Problem, bei dem bei der Erstellung mehrerer JSON-Verbindungen alle Tabellen denselben Namen erhielten, wurde behoben. Jede Verbindung erhält nun einen eindeutigen Tabellennamen. Fehler beim Öffnen eines Berichts mit erweiterter Matrix behoben (.NET) Ein Fehler, der beim Öffnen eines Berichts mit einer stark gefüllten erweiterten Matrix (AdvMatrix) auftrat, wurde behoben. Bei einer großen Anzahl von Feldern öffnet sich der Bericht nun fehlerfrei. Korrigiert: Textfarbe verschwand beim erneuten Öffnen des Berichts (.NET) Das Problem, bei dem die geänderte Textfarbe in einem TextObject zwar korrekt gespeichert wurde, aber nach dem Neuladen der Seite im Designmodus nicht angezeigt wurde, wurde behoben. Die Textfarbe wird nun korrekt gespeichert und wiederhergestellt. Fehler bei Verwendung des Achsenformats in MsChart behoben (.NET) Zwei Probleme bei der Arbeit mit der MsChart-Komponente wurden behoben: Das Format der Y-Achsenbeschriftungen wurde beim Neuladen des Berichts nicht gespeichert, und beim Versuch, einen Bericht mit neu festgelegtem Format vorzubereiten, erhielt der Benutzer einen Fehler. Korrigiert: Undo/Redo-Buttons waren bis zum Hinzufügen des ersten Objekts nicht verfügbar (.NET, VCL) Das Problem, bei dem die Undo- und Redo-Buttons nach dem Laden eines Berichts inaktiv blieben, selbst wenn der Benutzer Bänder änderte oder vorhandene Objekte verschob, wurde behoben. Die Buttons wurden erst nach dem Hinzufügen eines neuen Objekts auf die Seite aktiviert. Die Änderungshistorie wird nun ab der ersten Aktion korrekt nachverfolgt. Fehler beim Kopieren einer Seite mit AdvMatrix/Matrix/Table behoben (.NET) Ein Fehler, der beim Versuch auftrat, eine Berichtsseite mit den Komponenten AdvMatrix, Matrix oder Table zu kopieren, wurde behoben. Korrigiert: Layout des Berichts wurde beim Speichern zerstört (.NET) Ein kritischer Fehler wurde behoben, der beim Speichern von Berichten auftrat, die Tabellen für das Layout verwendeten. Beim Speichern kam es zu einem inkorrekten Beschneiden der Tabellenbreite, wodurch das Berichtslayout zerstört wurde. Korrigiert: Währungsformat fehlte in der Lokalisierung (.NET) Das Problem, bei dem im Dialog zur Formatierung von numerischen Daten das Währungsformat fehlte, wurde behoben. Korrigiert: Eingebaute Funktion PadLeft funktionierte nicht (.NET) Das Problem, bei dem die Funktion PadLeft in der Desktop-Version korrekt ausgeführt wurde, aber im Online Designer bei der Berichtsvorbereitung über WebReport nicht funktionierte, wurde behoben. Fehler bei der Vorbereitung eines Berichts mit DataType="System.Guid" behoben (.NET) Ein Fehler, der beim Versuch auftrat, einen Bericht mit einem Feld des Datentyps System.Guid vorzubereiten, wurde behoben. Probleme bei der Erstellung einer Postgres-Datenquelle behoben (.NET) Eine Reihe von Problemen bei der Arbeit mit PostgreSQL-Verbindungen wurden behoben: Korrekte Konvertierung von Anführungszeichen in XML für TableName und SelectCommand wurde hinzugefügt, Duplizierung von Prozeduren beim Hinzufügen eines Parameters wurde behoben, Verlust des Parametertyps beim Wechsel in die Vorschau wurde behoben. Korrigiert: Im Stileditor konnte der Stilname nicht geändert werden (.NET) Ein Fehler wurde behoben, bei dem die Änderung des Stilnamens im Stileditor nicht gespeichert wurde. Nach dem Schließen und erneuten Öffnen des Popup-Fensters wurde der Stil weiterhin mit dem ursprünglichen Namen (z. B. „Style1“) angezeigt. Ersetzung von Methoden im Skript korrigiert (VCL) Ein Fehler wurde behoben, bei dem die aufeinanderfolgende Erstellung mehrerer Ereignishandler für dieselbe Komponente dazu führte, dass der neue Handler den vorherigen überschrieb. Beispielsweise löschte die Erstellung von OnAfterPrint nach OnAfterData den Code des ersten Handlers. Sortierung von Bändern korrigiert (VCL) Ein Fehler wurde behoben, bei dem die Sortierung von Bändern in VCL-Lösungen nicht korrekt funktionierte. Funktionalität der Dialoge „Datenformat“ und der bedingten Formatierung korrigiert (VCL) Eine Reihe von Problemen bei der Arbeit mit der Textkomponente in VCL wurde behoben: Der Dialog „Datenformat“ war nicht bearbeitbar, wenn der Text kein Ausdruck war. Die fehlerhafte Logik der Textpositionierung in der mehrzeiligen Komponente wurde korrigiert. Verhalten von Undo/Redo beim Hinzufügen von Komponenten auf ein Band korrigiert (VCL) Ein Fehler wurde behoben: Beim Hinzufügen einer Komponente auf ein schmales Band (das automatisch erweitert wurde) entfernte das Drücken von Undo die Komponente, stellte jedoch nicht die ursprüngliche Größe des Bands wieder her. Ein anschließendes Drücken von Redo führte zu keinem Ergebnis. Korrigiert: Registerkarte „Felder“ bei untergeordneter Tabelle im „Verbindungseditor“ öffnete sich nicht (.NET) Das Problem, bei dem sich beim Erstellen von Verknüpfungen zwischen MS SQL-Tabellenverbindungen die Registerkarte „Felder“ bei der untergeordneten Tabelle im „Verbindungseditor“ nicht öffnete, wurde behoben. Leere Dropdown-Liste der Eigenschaft BreakTo korrigiert (.NET) Das Problem, bei dem die Dropdown-Liste der Eigenschaft BreakTo im Eigenschaftenpanel eines TextObject leer war und keine Auswahl eines Werts ermöglichte, wurde behoben. Vollständige Liste der Änderungen Neue Funktionen + FastReport .NET Avalonia-Theme+ Neues Eigenschaftenpanel+ Docking-Manager für alle Panels+ Neue Arbeitsfläche: Lineale, Hilfslinien und Band-Überschriften überarbeitet+ Symbolleisten für die Panels „Daten“ und „Berichtsbaum“+ Popup-Einstellungen des Designers (Erscheinungsbild, Objekte, Interaktion)+ Popup zur Barcode-Bearbeitung+ Popup zur Schriftartbearbeitung+ Editor für FRX-Berichtsvorlagen+ Formatkopieren von Komponenten+ Neue Logik zum Zeichnen von Formen (PolyLine, Polygon, Linien) sowie Presets+ Neue Logik zum Hinzufügen von Komponenten mit Vorschau+ Funktionen „Bericht öffnen“ und „Bericht speichern“ Verbesserungen + Undo/Redo mit benannten Aktionen für den Code- und FRX-Editor+ Konfigurierbare Tabulierung im Code-Editor+ Anpassungsfähigkeit der Benutzeroberfläche für alle Bildschirmgrößen (beide Themes)+ Überarbeitung der Seitenleiste+ Neue Steuerung zur Auswahl von Datenquellen in den Editoren für Bänder und Komponenten (Datenquellenbaum wie im Desktop)+ Bearbeitung einer zuvor erstellten Datenquellenverbindung (innerhalb der aktuellen Browsersitzung) Fehlerkorrekturen - Probleme beim Speichern von kyrillischen Zeichen im Skriptcode behoben (VCL)- Eigenschaft VisibleExpression korrigiert (.NET)- Fehler bei Verwendung einer Füllung bei ShapeObj behoben (.NET)- Identische Tabellennamen bei JSON-Verbindungen korrigiert (.NET)- Fehler beim Öffnen eines Berichts mit erweiterter Matrix behoben (.NET)- Fehler behoben, bei dem die Textfarbe beim erneuten Öffnen des Berichts verschwand (.NET)- Fehler bei Verwendung des Achsenformats in MsChart behoben (.NET)- Fehler behoben, bei dem die Undo/Redo-Buttons bis zum Hinzufügen des ersten Objekts nicht verfügbar waren (.NET, VCL)- Fehler beim Kopieren einer Seite mit AdvMatrix/Matrix/Table behoben (.NET)- Problem behoben, bei dem das Berichtslayout beim Speichern zerstört wurde (.NET)- Fehlendes Währungsformat in der Lokalisierung korrigiert (.NET)- Problem behoben, bei dem die eingebaute Funktion PadLeft nicht funktionierte (.NET)- Fehler bei der Vorbereitung eines Berichts mit DataType="System.Guid" behoben (.NET)- Probleme bei der Erstellung einer Postgres-Datenquelle behoben (.NET)- Verhalten behoben, bei dem der Stilname im Stileditor nicht geändert werden konnte (.NET)- Ersetzung von Methoden im Skript korrigiert (VCL)- Sortierung von Bändern korrigiert (VCL)- Funktionalität der Dialoge „Datenformat“ und der bedingten Formatierung korrigiert (VCL)- Verhalten von Undo/Redo beim Hinzufügen von Komponenten auf ein Band korrigiert (VCL)- Fehler behoben, bei dem sich die Registerkarte „Felder“ bei untergeordneten Tabellen im „Verbindungseditor“ nicht öffnete (.NET)- Leere Dropdown-Liste der Eigenschaft BreakTo korrigiert (.NET) 18. Mai 2026 -15% Rabatt auf Single-Lizenzen für unabhängige Entwickler Der Freelancers’ Day ist eine großartige Gelegenheit, individuelle Entwickler zu feiern. Vom 18. bis 22. Mai erhalten Sie 15 % Rabatt auf Single-Lizenzen für: — FastReport .NET— FastReport VCL— FastReport Desktop Wenn Sie selbstständig arbeiten, Projekte betreuen, Produkte entwickeln und täglich eigenständig komplexe Aufgaben lösen, ist dieses Angebot genau für Sie. FastReport begann einst ebenfalls als Tool eines unabhängigen Entwicklers. Und auch heute unterstützen wir weiterhin diejenigen, die die Branche mit ihren Ideen, ihrer Expertise und ihrem Code voranbringen. Sichern Sie sich Ihre Lizenz mit Rabatt bis zum 22. Mai! 14. Mai 2026 Der 14. Mai ist der Tag der Freelancer Und das ist ein großartiger Anlass zu sagen, dass unabhängige Entwickler eine echte treibende Kraft der Branche sind. Freelancer übernehmen oft alles auf einmal: Entwicklung, Architektur, Kommunikation mit Kunden, Deadlines und Projektbetreuung. Ohne große Teams, aber mit enormer Verantwortung und Expertise. Ein unabhängiger Entwickler zu sein bedeutet nicht, „allein zu arbeiten“. Es bedeutet, mutig und flexibel zu sein und Projekte kontinuierlich mit den eigenen Fähigkeiten und dem eigenen Einsatz voranzubringen. FastReport selbst begann einst als Projekt eines einzelnen Entwicklers – aus einer einzigen Idee, unermüdlicher Arbeit und dem Wunsch heraus, ein praktisches Werkzeug für andere Programmierer zu schaffen. Im Laufe der Zeit ist daraus ein Produkt geworden, das von Entwicklern auf der ganzen Welt genutzt wird. Dennoch fühlen wir uns weiterhin der Philosophie der unabhängigen Entwicklung und den Menschen, die große Dinge eigenständig erschaffen, besonders verbunden. Treten Sie noch heute der FastReport-Community bei, um gemeinsam mit uns leistungsstarke Softwareprodukte zu entwickeln! 21. April 2026 Überblick über das Update 2026.2 für FastReport VCL In der Version 2026.2 von FastReport VCL gibt es 10 neue UI-Komponenten für Delphi und Lazarus, ein aktualisiertes FastGrid mit verschachtelten Gruppierungen, ein Berichtsvalidierungssystem sowie eine Eigenschaft zur Steuerung der Spaltenanordnung von Bändern (TfrxDataBand.BandColumns.Layout). Hinzugekommen sind ein Modus für die zentrierte Ausrichtung innerhalb eines Containers, die Eigenschaft UseSizeConstraints für Tabellen, Bild-Nachbearbeitungseffekte sowie die Möglichkeit, beim Export originale Bildverweise beizubehalten. Darüber hinaus wurden FastReport FMX, FastCube und FastQueryBuilder verbessert. Neue UI-Komponenten (Editoren) für Delphi und Lazarus Die Komponentenbibliothek wurde um 10 neue UI-Editoren erweitert: TfrBarcode, TfrButtonEdit, TfrCalendar, TfrCheckBox, TfrComboBox, TfrCurrencyEdit, TfrEdit, TfrImage, TfrMaskEdit, TfrSpinEdit. Der Hauptunterschied unserer UI-Komponenten zu den Standardkomponenten liegt in den zusätzlichen Konfigurationsmöglichkeiten für Darstellung und Steuerung. TfrBarcode. Integrieren Sie alle verfügbaren linearen und zweidimensionalen Barcodes aus dem FastReport-Set direkt in Ihre Anwendung – ohne Berichte. TfrCalendar. Nutzen Sie eine Kalenderkomponente mit erweiterten Einstellungsmöglichkeiten. TfrMaskEdit. Fügen Sie Ihrer Anwendung Eingabefelder mit komplexen Masken hinzu. TfrCurrencyEdit. Ein Editor mit Währungsdarstellung, der in modernen Geschäftsanwendungen nicht mehr wegzudenken ist. Testen Sie unsere Editoren in Ihrer eigenen Anwendung. FastGrid erhielt ein großes Update Mit dem Update können jetzt verschachtelte Gruppierungen innerhalb des Grids erstellt werden. Sie können Gruppen jetzt einfach ein- und ausklappen. Das Erstellen von Gruppen ist einfacher geworden – ziehen Sie einfach ein Feld per Drag & Drop in den Gruppierungsbereich. Für jeden Feldtyp gibt es einen eigenen Editor. FastGrid nutzt alle verfügbaren UI-Editoren zur Bearbeitung der Felder. Außerdem können Sie Daten schnell als Berichte in jedes beliebige Format exportieren – mit FastReport. Testen Sie die neuen Funktionen der UI-Komponenten in unserer Demo-Anwendung. Neue Funktionen von FastReport VCL Berichtsvalidierungssystem Prüfen Sie Berichte vor dem Speichern auf Fehler und folgen Sie dabei den Empfehlungen zu deren Entwicklung. Integrieren Sie das Berichtsvalidierungssystem in Ihre CI/CD-Pipeline. Das neue System ermöglicht die Prüfung von Berichten sowohl aus dem Designer heraus als auch direkt aus dem Code heraus. Dank seiner Flexibilität können Sie eigene Validierungsregeln hinzufügen – sei es die Prüfung auf korrekte Objektbenennung oder die Einhaltung des Corporate Designs in Berichtsvorlagen. Das Validierungssystem enthält eine Reihe von Standardregeln für die Validierung: Überlappungen von Objekten, widersprüchliche Eigenschaften, Datasets, Ausdrücke, leere Objekte sowie den Berichtsskript. Sie können das Speichern von Berichten, die die Validierung nicht bestehen, für Benutzer unterbinden. Lesen Sie mehr über das Berichtsvalidierungssystem in unserem Artikel. Neue Eigenschaft zur Steuerung der Spaltenanordnung von Bändern Der Berichts-Engine wurde eine Funktion zur Steuerung der Spaltenanordnung von Bändern hinzugefügt – über die Eigenschaft TfrxDataBand.BandColumns.Layout. Diese Eigenschaft ermöglicht die Wahl der Spaltenausgabe-Reihenfolge: zuerst nach rechts, dann nach unten (AcrossThenDown) oder zuerst nach unten, dann nach rechts (DownThenAcross). Im Modus DownThenAcross kann die maximale Anzahl von Zeilen pro Spalte über die Eigenschaft MaxRows festgelegt werden. Standardmäßig wird der Durchschnittswert der Gesamtzahl der Datensätze verwendet. Neuer Ausrichtungsmodus In diesem Update (2026.2) haben wir einen neuen Ausrichtungsmodus hinzugefügt: die Zentrierung im Container – baHVCenter. Dieser Modus berücksichtigt nicht nur die Breite, sondern auch die Höhe. UseSizeConstraints: Neue Eigenschaft für Tabellen Für Tabellenspalten und -zeilen steht jetzt die neue Eigenschaft UseSizeConstraints zur Verfügung. Sie ermöglicht es, maximale und minimale Größen für Breite und Höhe festzulegen – nicht nur bei der Erstellung des Berichts, sondern auch während des Designs und beim Ändern der Tabellengröße. Diese Eigenschaft ist nützlich, um feste Zeilen und Spalten zu erstellen, wenn die Tabelle auf die gesamte Seitenbreite gestreckt wird (z. B. mit FitPartsToPageWidth oder Align). Neue Effekte für Bilder Die überarbeitete Bildausgabe erhielt eine Postprocessing-Pipeline. Dadurch konnten neue Eigenschaften für die Nachbearbeitung des Objekts TfrxPictureView hinzugefügt werden: Transparency zur Festlegung einer Halbtransparenz-Maske sowie Drehung und Spiegelung des Bildes. Verbesserung beim Export: Beibehaltung ursprünglicher Bildverweise In der neuesten Version unseres Exports wurde eine neue Funktion hinzugefügt, um die ursprünglichen Bildverweise beizubehalten, die in der Eigenschaft DataLink.Link angegeben sind. Diese Funktionalität ermöglicht es Anwendern, den Exportprozess flexibler zu steuern und stellt sicher, dass alle erforderlichen Daten erhalten bleiben. Die Steuerung dieses Prozesses erfolgt über das Flag dltOnExport der Eigenschaft LoadType sowie über die Eigenschaft ExportDataLinksMode bei allen Exportfiltern. Die Exporte können nun in drei Modi arbeiten: edmNone (Standard). Es wird nur das exportiert, was in das Bildobjekt geladen wurde. edmLoadToObject. Beim Export werden die Daten über den Verweis geladen und anschließend exportiert. edmInternalExport. HTML-Exporte verwenden den ursprünglichen Verweis, der im Feld DataLink.Link angegeben ist. Diese Funktion vereinfacht die Arbeit mit dem Datenexport erheblich und ermöglicht die Beibehaltung aller wichtigen Bildverweise – was besonders bei der Arbeit mit großen Datenmengen und komplexen Projekten nützlich ist. Verbesserungen bei FastReport FMX, FastCube und FastQueryBuilder In FastReport FMX wurde die Möglichkeit hinzugefügt, Berichte zu drucken, während die Skia-Canvas-Funktion auf Windows-Plattformen in RAD Studio 13 aktiviert ist. In FastCube wurde die Eigenschaft TfcxSliceGridToolbar.AutoExpandPopups zum automatischen Aufklappen von Gruppen hinzugefügt. Die Editoren CrossView und ChartView wurden überarbeitet und in Bezug auf die Integration mit FastReport verbessert. FastQueryBuilder unterstützt jetzt das Escapen von Feldern und Tabellen für verschiedene SQL-Dialekte. Neben diesen Änderungen enthalten die Produkte zahlreiche weitere Verbesserungen und Fehlerbehebungen. Die vollständige Liste der Änderungen finden Sie in den Release Notes. Version 2026.2.0 VCL.Core---------------[Engine]- Fehlerbehandlung bei CSS in HTMLView korrigiert [Graphic]- Fehler EPNGOutMemory beim Scrollen von Bildern behoben- Ausgabe von transparentem SVG in TfrxPictureView korrigiert- Transparenz von SVG korrigiert- Behoben: AV beim Zerstören des Objekts TfrxSVGGraphic- Fehler bei TfrxPictureView mit SVG behoben [Localization]* Portugiesische Ressourcen aktualisiert* Eigenschaft TfrLocalizationController.Language ist jetzt unabhängig von der Groß-/Kleinschreibung Lazarus.Core---------------[Engine]- Fehlerbehandlung bei CSS in HTMLView korrigiert [Graphic]- Fehler EPNGOutMemory beim Scrollen von Bildern behoben- Ausgabe von transparentem SVG in TfrxPictureView korrigiert- Transparenz von SVG korrigiert- Behoben: AV beim Zerstören des Objekts TfrxSVGGraphic [Localization]* Portugiesische Ressourcen aktualisiert* Eigenschaft TfrLocalizationController.Language ist jetzt unabhängig von der Groß-/Kleinschreibung VCL.Controls---------------[Engine]+ Der Memo-Familie wurde die Verarbeitung von CTRL+(Up/Down/PageUp/PageDown) hinzugefügt [UI]* Die Verarbeitung von Gutter und Footer bei der Memo-Familie wurde verbessert- AV beim Zuklappen von Knoten nach vollständigem Aufklappen des Baums behoben- Fehlerhafte Darstellung von HotTrack und Select bei Verwendung von Themes in TfrTreeView korrigiert- Fehler in TfrTreeView behoben, bei dem die Mehrfachauswahl durch Mausklick auf einen nicht ausgewählten Knoten nicht aufgehoben wurde- Fehlerhafte Textfarben bei QuickInfo (Tooltip) und Knotenhintergrundmarkierung bei Verwendung von Design-Themes in TfrTreeView korrigiert Lazarus.Controls---------------[Engine]+ Der Memo-Familie wurde die Verarbeitung von CTRL+(Up/Down/PageUp/PageDown) hinzugefügt- AV in der Linux-Konsolenanwendung behoben [UI]* Die Verarbeitung von Gutter und Footer bei der Memo-Familie wurde verbessert- AV beim Zuklappen eines Knotens nach vollständigem Aufklappen des Baums behoben- Fehler in TfrTreeView behoben, bei dem die Mehrfachauswahl durch Mausklick auf einen nicht ausgewählten Knoten nicht aufgehoben wurde VCL.FastScript---------------[Engine]- FastScript ClearLocalVars für Variant-Arrays korrigiert- Unterstützung für fvtInt64 korrigiert [RTTI]+ Funktion WeekOf zum Skript hinzugefügt- Funktion InRange korrigiert FMX.FastScript---------------[Engine]- FastScript ClearLocalVars für Variant-Arrays korrigiert [RTTI]+ Funktion WeekOf zum Skript hinzugefügt- Funktion InRange korrigiert- Unterstützung für fvtInt64 korrigiert Lazarus.FastScript---------------[Engine]- FastScript ClearLocalVars für Variant-Arrays korrigiert [RTTI]+ Funktion WeekOf zum Skript hinzugefügt- Funktion InRange korrigiert- Unterstützung für fvtInt64 korrigiert VCL.FastCube---------------[Engine]- Fehler bei der Arbeit mit ftBCD-Feldern behoben [UI]+ Symbol für TfcxpMemoView hinzugefügt+ Eigenschaft AutoExpandPopups zu TfcxSliceGridToolbar hinzugefügt (wie in TfcxSliceGrid)- Nicht funktionierender Kontextmenüpunkt „Create a custom filter...“ für Dimensionen behoben FMX.FastCube---------------[Engine]- Darstellung von Symbolen korrigiert [UI]+ Symbol für TfcxpMemoView hinzugefügt+ Eigenschaft AutoExpandPopups zu TfcxSliceGridToolbar hinzugefügt (wie in TfcxSliceGrid)- Nicht funktionierender Kontextmenüpunkt „Create a custom filter...“ für Dimensionen behoben- CrossView-Editor korrigiert- ChartView-Editor korrigiert Lazarus.FastCube---------------[Exports]- Schriftgrößen von Stilen beim Export für Lazarus und HiDPI korrigiert [UI]+ Symbol für TfcxpMemoView hinzugefügt+ Eigenschaft AutoExpandPopups zu TfcxSliceGridToolbar hinzugefügt (wie in TfcxSliceGrid)- Nicht funktionierender Kontextmenüpunkt „Create a custom filter...“ für Dimensionen behoben VCL.FastQueryBuilder---------------[Engine]+ Unterstützung für SQL-Escaping von Tabellen- und Feldnamen hinzugefügt+ Eigenschaft TfqbFDEngine.TablePattern hinzugefügt Lazarus.FastQueryBuilder---------------[Engine]+ Unterstützung für SQL-Escaping von Tabellen- und Feldnamen hinzugefügt+ Eigenschaft TfqbFDEngine.TablePattern hinzugefügt VCL.FastReport---------------[Client-server]- Fehler bei der Formatbestimmung in der Server Online-Designer API behoben [Engine]+ Validierungsregel für die Skriptkompilierung hinzugefügt+ Validierungsregeln für Objekte hinzugefügt+ Validierung von Berichts-Datasets hinzugefügt+ Neue Eigenschaft TfrxDataBand.BandColumns.Layout zur Steuerung der Spaltenausgabe-Reihenfolge hinzugefügt (AcrossThenDown oder DownThenAcross)+ Neuer Ausrichtungstyp für Objekte hinzugefügt – baHVCenter, der das Objekt an Breite und Höhe des übergeordneten Containers ausrichtet+ Berichtsvalidierer hinzugefügt+ Bild-Nachbearbeitungspipeline hinzugefügt (Spiegelung und Drehung von Bildern)* Netzwerkdruckereinstellungen verwenden jetzt zwischengespeicherte Ergebnisse für schnelleres Laden des Berichtsdesigners* Drehungen und Spiegelungen bei PictureView beschleunigt- Darstellung halbtransparenter Wasserzeichen mit einem Rotationswert kleiner 0 korrigiert- Verhalten der Transparenzeigenschaft bei Vektorbildern korrigiert- Verwendung von Wasserzeichen aus Skripten korrigiert- Fehler behoben, bei dem eine dynamische Tabelle bei der Arbeit mit sich wiederholenden Datenbändern vorherige Werte verwendete- Base64-Decodierung korrigiert- RichView-Umbruchfehler behoben- Verhalten von KeepTogether bei Verwendung des Flags StartNewPage korrigiert- Verhalten der Eigenschaft PrintOn beim Wechsel eines Bands auf die nächste Seite korrigiert- Fehler in GridTableBuilder bei Verwendung der Standard-Property-Editoren behoben [Report object]+ Eigenschaft Transparency zum Objekt TfrxPictureView hinzugefügt- Fehler in HTMLView behoben, der auftrat, wenn eine Tabelle keine Spalten enthielt- Fehler behoben, bei dem beim PDF-Export die Voreinstellung für 2D-Barcodes fehlte- Drehung von Vektorbildern bei Winkeln nahe 45, 135, 225, 315 Grad korrigiert- Unterstützung für die Win64-Plattform korrigiert [Preview]- Fehler behoben, bei dem die Vorschau Mausklick-Ereignisse während des Scrollens mit dem Schwenk-Werkzeug auslöste [Exports]+ Interne DataLink-Verarbeitung für HTML-Exporte hinzugefügt+ Lesebestätigung für E-Mail-Export (Indy) hinzugefügt- PDF-Exportdialog korrigiert- Fehlende HTML-Tag-Stile im DOCX-Exportfilter korrigiert- Fehler beim Export von HTMLDiv behoben, das in eine andere HTML-Seite eingebettet war- RTF-Export von Berichten mit Seiten unterschiedlicher Ausrichtung korrigiert- PDF-Exportfehler behoben- PDF-Export für 64-Bit-Systeme korrigiert- PDF-Struktur mit ZUGFERD korrigiert- Arabisch-Export in PDF korrigiert- Problem mit PNG/SVG-Transparenz beim PDF-Export behoben- Embedded Subset in PDF korrigiert- Export von Leerzeichen in PDF für Zeilen mit Tabulatorzeichen ($09) korrigiert- Export leerer TfrxMemoView mit AllowHTMLTags=True nach DOCX korrigiert- Fehler in PDF/A und PDF mit CMYK-Farbraum korrigiert [Designer]+ Überprüfung von Band-Überschneidungen hinzugefügt+ Speicherung der DataTree-Einstellungen in Objekt- und Ausdruckseditoren hinzugefügt+ DebugLn-Funktion zum Berichtsdesigner hinzugefügt* Suche und Hervorhebung von Überschneidungen verbessert* Standardwert für das Feld TfrxDesigner.DefaultFont.Color auf clBlack geändert- Fehler „Zugriff verweigert“ mit der Zwischenablage im Designer behoben- Verwendung von frxEditSQL.inc korrigiert- Aktualisierung interner Dataset-Parameter im Bearbeitungsmodus korrigiert- Fehler behoben, bei dem der Berichtsdesigner das falsche Mausereignis für - Dialogsteuerelemente einfügte- Hinzufügen von Symbolen für benutzerdefinierte Komponenten korrigiert- Öffnen des Laufzeit-Designers mit benutzerdefinierter TfrxReport.IniFile korrigiert- Hervorhebung sich überschneidender Objekte korrigiert FMX.FastReport---------------[Engine]+ Möglichkeit hinzugefügt, Berichte bei aktivierter Skia-Canvas-Funktion auf der Windows-Plattform in RAD Studio 13 zu drucken [Designer]- Tooltips im Designer korrigiert- Speicherleck im Designer behoben, wenn sich ein Bild in der Zwischenablage befand- Sortierung der Designer-Werkzeugpalette korrigiert [Exports]- RTF-Export von Berichten mit Seiten unterschiedlicher Ausrichtung korrigiert- Fehlerhafte Größe des 2D-Barcodes beim Export aus dem Code heraus korrigiert Lazarus.FastReport---------------[Client-server]- Fehler bei der Formatbestimmung in der Server Online-Designer API behoben [Engine]+ Validierungsregel für die Skriptkompilierung hinzugefügt+ Validierungsregeln für Objekte hinzugefügt+ Validierung von Berichts-Datasets hinzugefügt+ Erste Version des Berichtsvalidierers implementiert+ Neue Eigenschaft TfrxDataBand.BandColumns.Layout zur Steuerung der Spaltenausgabe-Reihenfolge hinzugefügt (AcrossThenDown oder DownThenAcross)+ Neuer Ausrichtungstyp für Objekte hinzugefügt – baHVCenter, der das Objekt an Breite und Höhe des übergeordneten Containers ausrichtet+ Bild-Nachbearbeitungspipeline hinzugefügt* Netzwerkdruckereinstellungen verwenden jetzt zwischengespeicherte Ergebnisse für schnelleres Laden des Berichtsdesigners- Verwendung von Wasserzeichen aus Skripten korrigiert- Fehler behoben, bei dem eine dynamische Tabelle bei der Arbeit mit sich wiederholenden - Datenbändern vorherige Werte verwendete- Verhalten von KeepTogether bei Verwendung des Flags StartNewPage korrigiert- Verhalten der Eigenschaft PrintOn beim Wechsel eines Bands auf die nächste Seite korrigiert- Fehler in GridTableBuilder bei Verwendung der Standard-Property-Editoren behoben [Report object]+ Eigenschaft Transparency zum Objekt TfrxPictureView hinzugefügt- Fehler in HTMLView behoben, der auftrat, wenn eine Tabelle keine Spalten enthielt- Fehler behoben, bei dem beim PDF-Export die Voreinstellung für 2D-Barcodes fehlte- Base64-Decodierung korrigiert- Drehung von Vektorbildern bei Winkeln nahe 45, 135, 225, 315 Grad korrigiert [Preview]- Fehler behoben, bei dem die Vorschau Mausklick-Ereignisse während des Scrollens mit dem Schwenk-Werkzeug auslöste [Exports]+ Interne DataLink-Verarbeitung für HTML-Exporte hinzugefügt- PDF-Exportdialog korrigiert- Fehlende HTML-Tag-Stile im DOCX-Exportfilter korrigiert- Fehler beim Export von HTMLDiv behoben, das in eine andere HTML-Seite eingebettet war- RTF-Export von Berichten mit Seiten unterschiedlicher Ausrichtung korrigiert- PDF-Exportdialog korrigiert- PDF-Exportfehler behoben- PDF-Export für 64-Bit-Systeme korrigiert- PDF-Struktur mit ZUGFERD korrigiert- Arabisch-Export in PDF korrigiert- Problem mit PNG/SVG-Transparenz beim PDF-Export behoben- Embedded Subset in PDF korrigiert- Export von Leerzeichen in PDF für Zeilen mit Tabulatorzeichen ($09) korrigiert- Export leerer TfrxMemoView mit AllowHTMLTags=True nach DOCX korrigiert- Fehler in PDF/A und PDF mit CMYK-Farbraum korrigiert [Designer]+ Überprüfung von Band-Überschneidungen hinzugefügt+ Speicherung der DataTree-Einstellungen in Objekt- und Ausdruckseditoren hinzugefügt+ DebugLn-Funktion zum Berichtsdesigner hinzugefügt* Suche und Hervorhebung von Überschneidungen verbessert* Standardwert für das Feld TfrxDesigner.DefaultFont.Color auf clBlack geändert- Kopieren im PictureView-Editor behoben, wenn kein Bild vorhanden war- Verwendung von frxEditSQL.inc korrigiert- Aktualisierung interner Dataset-Parameter im Bearbeitungsmodus korrigiert- Fehler behoben, bei dem der Berichtsdesigner das falsche Mausereignis für Dialogsteuerelemente einfügte- Hinzufügen von Symbolen für benutzerdefinierte Komponenten korrigiert- Öffnen des Laufzeit-Designers mit benutzerdefinierter TfrxReport.IniFile korrigiert- Hervorhebung sich überschneidender Objekte korrigiert VCL.FastGrid---------------[UI]+ Neuer Cursor zum Löschen von Spalten hinzugefügt+ Möglichkeit hinzugefügt, die Spaltenbreite zu ändern, wenn die rechte Spaltengrenze außerhalb des sichtbaren Bereichs liegt+ Abbruch von Drag & Drop sowie Größenänderung von Spalten durch ESC im Designmodus hinzugefügt- Hervorhebung von Grid-Elementen beim Ziehen und Ändern der Spaltengröße korrigiert- Korrigiert: Zellenrahmen wird beim Scrollen des fokussierten Grids auf dem Kopfbereich angezeigt- Problem auf Linux behoben, bei dem die Bearbeitung nicht funktionierte, wenn der Editor durch Mausklick aktiviert wurde- Unterstützung für die Win64-Plattform korrigiert [Engine]+ Möglichkeit zur Datengruppierung in der tabellarischen Ansicht hinzugefügt+ Eigenschaft TfrSpinEdit.ValueType hinzugefügt; MinValue und MaxValue hängen nun von den entsprechenden Eigenschaften des an die SpinEdit-Spalte gebundenen Feldes ab- Fehler behoben, bei dem die maximale Länge des in eine Zelle eingegebenen Textes nicht der Größe des mit dieser Zelle verbundenen Datenfeldes entsprach- OnKeyPress-Ereignis für die Arbeit mit WideChar-Typ korrigiert; Probleme mit der Navigation über Zellen mit UTF8-Zeichen in Lazarus behoben- AV beim Schließen der Anwendung behoben, wenn ein eingebetteter Editor aktiv war, bevor Grid.Parent auf nil gesetzt wurde- Fehler behoben, bei dem viele Ausnahmen auftraten, wenn einer Spalte Image-Eigenschaften zugewiesen wurden und ungültige Daten enthalten waren [Exports]+ Möglichkeit hinzugefügt, gruppierte tabellarische Berichte aus FastGrid zu erstellen- Verbesserungen am Builder für tabellarische Berichte aus FastGrid Lazarus.FastGrid---------------[UI]+ Neuer Cursor zum Löschen von Spalten hinzugefügt+ Möglichkeit hinzugefügt, die Spaltenbreite zu ändern, wenn die rechte Spaltengrenze außerhalb des sichtbaren Bereichs liegt+ Abbruch von Drag & Drop sowie Größenänderung von Spalten durch ESC im Designmodus hinzugefügt- Hervorhebung von Grid-Elementen beim Ziehen und Ändern der Spaltengröße korrigiert- Korrigiert: Zellenrahmen wird beim Scrollen des fokussierten Grids auf dem Kopfbereich angezeigt [Engine]+ Möglichkeit zur Datengruppierung in der tabellarischen Ansicht hinzugefügt+ Eigenschaft TfrSpinEdit.ValueType hinzugefügt; MinValue und MaxValue hängen nun von den entsprechenden Eigenschaften des an die SpinEdit-Spalte gebundenen Feldes ab- Fehler behoben, bei dem die maximale Länge des in eine Zelle eingegebenen Textes nicht der Größe des mit dieser Zelle verbundenen Datenfeldes entsprach- OnKeyPress-Ereignis für die Arbeit mit WideChar-Typ korrigiert; Probleme mit der Navigation über Zellen mit UTF8-Zeichen in Lazarus behoben- Problem auf Linux behoben, bei dem die Bearbeitung nicht funktionierte, wenn der Editor durch Mausklick aktiviert wurde- AV beim Schließen der Anwendung behoben, wenn ein eingebetteter Editor aktiv war, bevor Grid.Parent auf nil gesetzt wurde- Fehler behoben, bei dem viele Ausnahmen auftraten, wenn einer Spalte Image-Eigenschaften zugewiesen wurden und ungültige Daten enthalten waren  [Exports]+ Möglichkeit hinzugefügt, gruppierte tabellarische Berichte aus FastGrid zu erstellen- Verbesserungen am Builder für tabellarische Berichte aus FastGrid VCL.Transport---------------[Engine]+ Lesebestätigung für E-Mail-Transport (Indy) hinzugefügt VCL.FastEditors---------------[UI]+ Ereignis OnButtonCustomDraw zu TfrButtonEditProperties hinzugefügt+ Eigenschaft BorderSpacing für alle Editoren unter Lazarus hinzugefügt+ Möglichkeit hinzugefügt, den geänderten Wert eines Editors über die Eigenschaft Text in Lazarus auszulesen- Fehler behoben, der auftrat, wenn über eine leere Dropdown-Werteliste iteriert wurde- Falsche Hintergrunddarstellung in TfrCalendar korrigiert- Access Violation behoben, wenn TfrCalendar während einer Animation zerstört oder ausgeblendet wurde- Unterstützung für die Win64-Plattform korrigiert [Engine]+ Neue Komponente TfrCalendar hinzugefügt+ Neue Komponente TfrCurrencyEdit hinzugefügt+ Neue Komponente TfrBarcode hinzugefügt+ Neue Komponente TfrMaskEdit hinzugefügt Lazarus.FastEditors---------------[UI]+ Ereignis OnButtonCustomDraw zu TfrButtonEditProperties hinzugefügt+ Eigenschaft BorderSpacing für alle Editoren unter Lazarus hinzugefügt+ Möglichkeit hinzugefügt, den geänderten Wert eines Editors über die Eigenschaft Text in Lazarus auszulesen- Fehler behoben, der auftrat, wenn über eine leere Dropdown-Werteliste iteriert wurde- Falsche Hintergrunddarstellung in TfrCalendar korrigiert- Access Violation behoben, wenn TfrCalendar während einer Animation zerstört oder ausgeblendet wurde- Unterstützung für die Win64-Plattform korrigiert [Engine]+ Neue Komponente TfrCalendar hinzugefügt+ Neue Komponente TfrCurrencyEdit hinzugefügt+ Neue Komponente TfrBarcode hinzugefügt+ Neue Komponente TfrMaskEdit hinzugefügt 9. April 2026 Version 2026.2 jetzt für FastReport .NET verfügbar In Version 2026.2 von FastReport .NET wurde die Unterstützung für .NET 10 für alle Bibliotheken hinzugefügt. Zu den wichtigsten Neuerungen gehören: die Möglichkeit, das Erscheinungsbild (9 Varianten) sowie den Drehwinkel von QR‑Code‑Modulen anzupassen, das Verschieben von Bands im Designer per Drag & Drop, ein Plugin für die Anbindung an Google Sheets, die Option zur Einbettung von Schriftarten beim Export nach MS Word sowie ein verbesserter Export nach PDF (mit Unterstützung für ZUGFeRD) und nach MS Excel. Darüber hinaus wurde die Architektur von WebReport optimiert. Neue Funktionen Unterstützung für .NET 10 Die Unterstützung für .NET 10 wurde für FastReport .NET, FastReport.Core, FastReport.Core.Skia, FastReport.WPF, FastReport.Avalonia sowie FastReport.Web, FastReport.Web.Skia und FastReport.Blazor.Wasm hinzugefügt. Diese Plattform steigert die Anwendungsleistung und bietet zahlreiche neue Möglichkeiten für Ihre Projekte. Die Änderungen können Sie in unserem Artikel unter diesem Link nachlesen. Lesen Sie den Artikel Änderung der Form von QR-Code-Modulen Ein QR-Code besteht aus Punkten, die als Module bezeichnet werden. Gemäß dem Standard haben sie die Form eines Quadrats. Ab Version 2026.2 kann die Form der Module geändert und angepasst werden. Neben dem Quadrat stehen nun neun neue Modulformen zur Verfügung: Kreis, Raute, abgerundetes Quadrat, horizontale Kapsel, vertikale Kapsel, Plus, Sechseck, Stern und Schneeflocke. Neben der Modulform kann jetzt auch deren Drehwinkel festgelegt werden (Eigenschaft Angle). Darüber hinaus kann der QR-Code weniger dicht gemacht werden, indem jedes Modul mit der Eigenschaft UseThinModules verkleinert wird. Die letztgenannte Eigenschaft betrifft nicht die Suchmuster (die großen Quadrate in den Ecken des QR-Codes), da diese den Scannern helfen, die Grenzen und die Größe des Codes zu bestimmen. Ein standardmäßiger QR-Code sieht wie folgt aus: Und hier der Code mit Modulen in Kreisform: Obwohl die neuen Module es ermöglichen, Codes abwechslungsreicher und interessanter zu gestalten, ist zu beachten, dass nicht alle Scanner solche QR-Codes gleich gut lesen können. Weitere Details zu den neuen Eigenschaften und deren Verwendung finden Sie in unserem Artikel. Lesen Sie den Artikel Verschieben von Bands im Designer In unseren Berichten kann es viele Arten von Bands mit unterschiedlichen Funktionen geben. Beispielsweise befindet sich der Berichtstitel immer am Anfang des Berichts. Ein weiteres Beispiel: Die Fußzeile befindet sich unten auf jeder Seite. Die relative Position solcher Bands zueinander kann nicht verändert werden. Es gibt jedoch Band-Typen, von denen mehrere vorhanden sein können und deren relative Position zueinander verändert werden kann. Beispielsweise kann ein Bericht drei Datenbänder enthalten. Bisher konnte ihre Position nur in einem speziellen Fenster für die Band-Einstellungen geändert werden: Jetzt können Bands direkt im Designer verschoben werden, einfach per Drag & Drop: Weitere Details zu den Besonderheiten und Einschränkungen dieses neuen Verschiebemechanismus finden Sie im Artikel. Lesen Sie den Artikel Anbindung an Google Sheets Mit diesem Update wurde ein neues Plugin hinzugefügt, das es ermöglicht, Informationen aus Google Tabellen als Datenquelle für Berichte zu verwenden. Google Tabellen ist eine Cloud-Anwendung für die Arbeit mit Tabellenkalkulationen. Dieses Plugin erlaubt es, Berichte direkt mit den angegebenen Tabellen zu verbinden und bietet so einen bequemen Zugriff auf die benötigten Daten. Google Tabellen (und eigentlich Tabellen im Allgemeinen) lassen sich hervorragend in das Konzept unserer Berichterstellung übertragen. Da es sich jedoch um eine Webanwendung handelt, weist sie im Vergleich zu Desktop-Lösungen einige Besonderheiten auf. Wie dieses neue Plugin angeschlossen wird, lesen Sie in unserem Artikel. Lesen Sie den Artikel Exportverbesserungen Schrifteinbettung beim Export nach Microsoft Word Unser Export von Berichten in Microsoft Word-Dokumente verfügt über eine neue Option „Eingebettete Schriftarten“: Die Option ermöglicht es, die Einbettung von Schriftarten beim Speichern des fertigen Berichts in eine DOCX-Datei ein- oder auszuschalten. Dabei werden alle im Bericht verwendeten Schriftarten in der fertigen Datei gespeichert. Dies gewährleistet, dass das Dokument auf jedem Computer gleich aussieht – selbst wenn die benötigten Schriftarten dort nicht installiert sind. Es ist jedoch zu beachten, dass die Dateigröße bei Verwendung dieser Option größer ist als beim normalen Export. Verbesserte ZUGFeRD-Unterstützung beim PDF-Export Der Export von PDF-Dateien mit ZUGFeRD-Unterstützung wurde erheblich überarbeitet und verbessert. Die Dateien entsprechen nun der aktuellen ZUGFeRD-Version und bestehen erfolgreich die Validierung. Zahlreiche Fehler beim Export solcher Dateien wurden behoben. Globale Verbesserung der Microsoft Word- und Microsoft Excel-Exporte Der Exportcode in die Dokumentformate DOCX und XLSX wurde optimiert und verbessert. Die Exporte arbeiten nun schneller und werden von den meisten Anwendungen geöffnet, nicht nur von Microsoft, sondern auch von Drittanbieter-Office-Anwendungen. Änderungen im WebReport Verbesserte Architektur der WebReport-Clientseite Im Rahmen der WebReport-Verbesserungen wurde die Clientseite refaktoriert: CSS und JavaScript wurden in statische Dateien überführt, wodurch vollständig auf Inline-Skripte verzichtet werden kann. Für die Arbeit mit WebReport sind nun keine Inline-Skripte in der Content Security Policy (CSP) mehr erforderlich, was die Produktsicherheit erhöht. Die Berichts-IDs wurden aus den CSS-Klassennamen entfernt, dies macht WebReport flexibler und anpassungsfreundlicher. Die Skripte wurden in Bundles zusammengefasst, was die Seitenladezeit erheblich beschleunigt. Vollständige Änderungsliste [Engine]+ Neuer Modus für die Eigenschaft TextObject.AutoShrink hinzugefügt: FitText+ Zusätzliche Eigenschaften hinzugefügt, die für die Anbindung von Drittanbieterdiensten an JSON-Daten erforderlich sind+ Eigenschaften für lineare Barcodes hinzugefügt: OneBarWidth, FitDevicePixels+ ToWords-Funktion für Chinesisch hinzugefügt- Fehler bei der Datenfilterung in Dialogsteuerelementen behoben- Fehler behoben, aufgrund dessen temporäre Dateien bei Verwendung von UseFileCache nicht gelöscht wurden- Doppelte Benennung der Datenquelle beim Erstellen einer JSON-Verbindung behoben- Fehler beim Import von DOCX-Dokumenten behoben [Designer]+ Unterstützung für die Strichkennung "Russische Post" für den Barcode Interleaved 2 of 5 (EN 801) hinzugefügt+ Möglichkeit hinzugefügt, die Form von QR-Code-Modulen zu ändern+ Möglichkeit hinzugefügt, Bands im Designer zu verschieben* Fehlermeldung bei ungültigen Namen in SQL-Abfragen ist jetzt informativer* Das Fenster des Verknüpfungseditors kann jetzt in der Größe verändert werden- Fehler bei der Sichtbarkeit der Ereignisse StartReport und FinishReport behoben- Fehler beim Hinzufügen der Report-Komponente zu einem Formular behoben- Fehler beim Wechseln zur FRX-Seite im Designer behoben- Fehler im Editor der DataSource-Eigenschaft behoben- Fehler im Fenster "Meldungen" im Designer für .NET 6.0 und höher behoben- Textüberlappungen im Abfragegenerator behoben- Fehler bei der Benennung von Feldern im Abfragegenerator für Postgres behoben- Farben der Legende für automatische Serien in MSChart behoben- Fehlerhaftes Drag-and-Drop-Verhalten im Matrix-Objekt behoben [Preview]+ Symbole zum Exportmenü für Punkte hinzugefügt, die zuvor keine hatten [Exports]+ Möglichkeit zur Verbesserung der Bildqualität beim Export nach Microsoft Word hinzugefügt+ PDF-Export mit ZUGFeRD-Unterstützung verbessert. Die Dateien entsprechen nun der aktuellen ZUGFeRD-Version und bestehen erfolgreich die Validierung+ Kompatibilität der DOCX- und XLSX-Exporte mit Drittanbieter-Office-Anwendungen verbessert+ Möglichkeit hinzugefügt, Seiten im Querformat nach ZPL zu exportieren+ Export von Bildern, die von anderen Objekten überlagert werden, ins XLSX-Format verbessert+ Möglichkeit zur Schrifteinbettung beim Export nach Microsoft Word hinzugefügt- Problem beim Öffnen bestimmter Dateien beim Export nach Microsoft Excel behoben- Fehler mit der Spaltenbreite beim Export nach Microsoft Word behoben- System.NullReferenceException beim Export nach Microsoft Word in den Modi ParagraphBased und MatrixBased behoben- Standard-Schriftgröße beim Export nach XLSX behoben- Export von Polygonen in Tabellenformate behoben- Fehler beim Export mehrerer Kopf- und Fußzeilen nach Microsoft Word behoben- Probleme mit der Farbe einiger Objekte beim Öffnen von DOCX-Dokumenten in OpenOffice behoben- Fehler mit verschwindenden Bildern behoben, wenn die WYSIWYG-Eigenschaft beim Export deaktiviert war- Überflüssige Leerzeichen im DOCX-Export bei Verwendung des HtmlTags-Renderings behoben- Fehler im PDF-Export behoben, bei dem die Datei im falschen Ordner erstellt wurde [WebReport]+ Option CentredAndWrapPages zum WebReport hinzugefügt- Höhe des WebReport für .NET Framework behoben [Common]+ Eigenschaftsfeld für Start-/Endzeichen in Codabar hinzugefügt- Fehler beim Drag-and-Drop von Bands in Avalonia und WPF behoben- Schema der JSON-Datenbankanbindung behoben [Demos]+ Symbole des Democenters aktualisiert- Fehler beim Starten der Demoanwendungen im Democenter behoben [Extras]+ Apache Ignite-Plugin für die Plattformen Avalonia, Core, OpenSource und WPF hinzugefügt+ Anbindung an Google Sheets hinzugefügt- Fehler in der Verbindung zu JSON-Datenbanken behoben  26. März 2026 FastReport-Produkte unterstützen die neueste Version von RAD Studio — 13.1 Florence Ab Version 2026.1.7 unterstützen FastReport-Produkte für Delphi die aktuellste Version der Entwicklungsumgebung — RAD Studio 13.1. Und bereits im April wird FastReport 2026.2 mit noch mehr Updates veröffentlicht! Warum ist die Unterstützung von RAD Studio 13.1 Florence wichtig? Die Entwickler haben die Unterstützung für neue Plattformen erweitert, die Stabilität verbessert und die Leistung der IDE erhöht. Die wichtigste Neuerung ist jedoch die Einführung der Unterstützung für Windows on ARM in Delphi. Delphi verfügt nun über einen nativen ARM-Compiler (Arm64EC). Anwendungen können direkt auf ARM-basierten Geräten ausgeführt werden, ohne Intel-Emulation. Das macht sie schneller und stabiler, ohne zusätzliche Zwischenschichten. FastReport VCL unterstützt jedoch nicht die Arm64EC-Plattform. Gleichzeitig sind nur minimale oder gar keine Codeänderungen erforderlich. Dieselben Projekte können für Win32, Win64 und ARM kompiliert werden. Im Grunde wird eine neue Plattform hinzugefügt, während der Entwicklungsprozess vertraut bleibt. Dadurch verändert dieses Update bestehende Arbeitsabläufe nicht — es erweitert sie. Sie können ein bestehendes Projekt einfach für die neue Architektur neu kompilieren und eine modernere und leistungsfähigere Anwendung erhalten. Sie können die neueste Version von FastReport für Delphi hier erwerben. 23. März 2026 Aktuelle FastReport-Version: Update mit 50 % Rabatt Vom 23. März bis zum 6. April 2026 gilt ein Sonderangebot für Kunden mit abgelaufenen FastReport-Lizenzen. In diesem Zeitraum können Sie die neuesten Versionen der Reportgeneratoren FastReport .NET und FastReport VCL mit 50 % Rabatt erwerben. Die Aktion gilt für FastReport .NET in den Editionen Ultimate, WEB, Avalonia, WPF, WinForms, Mono sowie für FastReport VCL in den Editionen Ultimate, Optimum, Reporting VCL, Reporting FMX, Reporting Lazarus, Analysis VCL. Das Angebot gilt für die Lizenztypen Single, Team, Business und Site und ermöglicht es Ihnen, zu Sonderkonditionen auf die aktuellen Produktversionen zu aktualisieren – auch wenn Ihre Lizenz bereits vor längerer Zeit abgelaufen ist. Durch das Update erhalten Sie Zugriff auf die neuesten FastReport-Funktionen, darunter neue Features, einen aktualisierten Report-Designer, technischen Support sowie eine verbesserte Performance. In den kommenden Monaten sind außerdem weitere Releases mit zusätzlicher Funktionalität geplant, die nur für Inhaber aktiver Lizenzen verfügbar sein werden. Nach Ende der Aktion kann der Aktionspreis bei Bedarf noch für weitere 7 Tage gesichert werden. Um das Angebot zu nutzen oder weitere Informationen zu erhalten, wenden Sie sich bitte an das Vertriebsteam unter sales@fast-report.com. info@fast-report.com Vertrieb sales@fast-report.com 800-985-8986 (Englisch, USA) +31 97 01025-8466 (Englisch, EU) +49 30 56837-3928 (Deutsch, DE) +55 19 98147-8148 (Portugiesisch, BR) Adresse Alexandria, VA 22314 66 Canal Plaza, Ste 505 Produkte Kaufen Demo Dokumentation Deinstallation Lizenzen Produkte Kaufen Demo Dokumentation Deinstallation Lizenzen Support SLA-Unterstützung Online-Support FAQ Anleitungsvideo Forum Artikel Nachrichen Support SLA-Unterstützung Online-Support FAQ Anleitungsvideo Forum Artikel Nachrichen Das Unternehmen Zum Unternehmen Identity Vertriebspartner Kontaktieren Sie uns Das Unternehmen Zum Unternehmen Identity Vertriebspartner Kontaktieren Sie uns Datenschutzbestimmungen Cookie-Bestimmungen © 1998-2026 Fast Reports Inc. Trustpilot Link erfolgreich kopiert ### Newsgroups (read only) URL: https://www.fast-report.com/de/support%2Fnewsgroup Summary: We provide the following newsgroups as a user-supported area to exchange information We provide the following newsgroups as a user-supported area to exchange information We provide the  following  newsgroups  as a user-supported area to exchange information, tips and techniques on the use of our products with the global community of Fast Reports customers. We encourage members of this community to assist each other with technical questions. Newsgroups list fast-reports.public.fastcube  - Technical questions relating to FastCube fast-reports.public.fastreport.4  - Technical questions relating to FastReport 4 fast-reports.public.fastreport.studio  - Technical questions relating to FastReport Studio fast-reports.public.fastreport.net  - Technical questions relating to FastReport.NET fast-reports.public.fastreport.clx  - Technical questions relating to FastReport CLX fast-reports.public.fastscript  - Technical questions relating to FastScript fast-reports.public.freereport  - Technical questions relating to FreeReport fast-reports.public.openquerybuilder  - Technical questions relating to OpenQueryBuilder fast-reports.public.non-technical  - Non-technical questions relating to any Fast Reports, Inc. product fast-reports.public.binaries  - Send attachments here ### Official launch of the FastReport Cloud service URL: https://www.fast-report.com/de/news/release-fastreport-cloud-2023.1 Summary: Wir freuen uns, Ihnen den offiziellen Start von FastReport Cloud-Verkauf mitteilen zu dürfen. FastReport Cloud ist ein Cloud-basierter Dienst zur Erstellung, Bearbeitung und Speicherung von Dokumenten! Wir freuen uns, Ihnen den offiziellen Start von FastReport Cloud-Verkauf mitteilen zu dürfen. FastReport Cloud ist ein Cloud-basierter Dienst zur Erstellung, Bearbeitung und Speicherung von Dokumenten! Wir freuen uns, Ihnen den offiziellen Start von FastReport Cloud-Verkauf mitteilen zu dürfen. FastReport Cloud ist ein Cloud-basierter Dienst zur Erstellung, Bearbeitung und Speicherung von Dokumenten! FastReport Cloud  ist ein bereits angepasstes System zur Erstellung von Berichten aus Ihren Daten in der Cloud. Zu seinen Vorteilen gehören: Direkt im Browser oder über API arbeiten Gemeinsames Arbeiten mit Rollenkonfiguration und Zugriffsebenen Universelle Lösung für jede Programmiersprache und jedes Framework Benutzerfreundliche Out-of-the-Box-Benutzeroberfläche Erstellen, Bearbeiten und Speichern von Dokumenten an einem Ort und mit nur einem Klick Sicherer Betrieb: von der Authentifizierung bis zum Schutz persönlicher Daten All dies auf der leistungsstarken FastReport-Engine mit Export in alle Formate und zeitlich gesteuerten Berichten. Testen Sie die Cloud-Dokumentenerstellung schon jetzt! ### Offizielle Veröffentlichung der FastReport Avalonia-Komponente URL: https://www.fast-report.com/de/news/release-fastreport-avalonia Summary: Veröffentlichung einer Komponente zur Berichterstellung bei der Entwicklung plattformübergreifender Avalonia FastReport-Anwendungen mit Avalonia UI. Veröffentlichung einer Komponente zur Berichterstellung bei der Entwicklung plattformübergreifender Avalonia FastReport-Anwendungen mit Avalonia UI. Wir freuen uns bekannt geben zu können, dass unsere erste Version von FastReport Avalonia , einer universellen Komponente zur Berichterstellung verfügbar ist. Entwickeln Sie Ihre Geschäftsanwendungen mit einer einzigen Benutzeroberfläche gleichzeitig unter macOS, Linux und Windows. Ein Codefragment für drei Plattformen! Unsere Komponente ist nicht nur mit den üblichen x64- und x86-Prozessorarchitekturen kompatibel, sondern läuft auch stabil auf arm64. Sie unterstützt Avalonia UI, .NET 6 und höher. Der Berichtsgenerator umfasst einen leistungsstarken Kern für die Erstellung von Berichten, einen benutzerfreundlichen Designer mit einer vertrauten Oberfläche und einen schnellen Viewer für die Anzeige von Berichten. FastReport Avalonia verwendet die SkiaSharp Grafik-Engine, um die Arbeit so angenehm wie möglich zu machen. Außerdem stehen Ihnen alle Exportformate des erstellten Berichts zur Verfügung: PDF, Excel, MS Word und viele andere. FastReport Avalonia ist Teil des vereinheitlichten FastReport Ökosystems in C#. In anderen Produkten erstellte Berichte funktionieren in FastReport Avalonia und umgekehrt. In der  FastReport Cloud  können Sie Ihre Vorlagen, Berichte und Datenquellen speichern und sie anschließend im Desktop-Designer verwenden.  Um diese Komponente in Ihr Projekt zu integrieren, müssen Sie das erforderliche Paket aus dem NuGet-Repository  installieren oder das Paket von unserer Website auf Ihren Computer herunterladen und die erforderlichen Bibliotheken zu Ihrem Projekt hinzufügen. Es sind keine zusätzlichen Module oder speziellen Erweiterungen erforderlich. ### Online Delphi courses bit Time Academy URL: https://www.fast-report.com/de/news/online-training-delphi-2015 Summary: Online Delphi courses bit Time Academy Online Delphi courses bit Time Academy Fast Reports is a proud media partner of bit Time Academy online in-depth ‪ Delphi ‬ training which will take place from 10th to 13th of February presented by bit Time Software . The training will help you improve productivity, quality, robustness and elegance of code. Read all about it and sign up at www.bittime.it/update_online/ ### Online Designer URL: https://www.fast-report.com/de/products/online-designer Summary: A visual designer for templates and reports, directly in your browser A visual designer for templates and reports, directly in your browser Eine leistungsstarke Software mit einer adaptiven Benutzeroberfläche zur Entwicklung von Berichten auf jedem Gerät, direkt im Browser. FastReport Online Designer Ein visueller Designer für Vorlagen und Berichte direkt in Ihrem Browser Kaufen Online-Vorführung Dokumentation Einfache Bedienung Alles, was Sie tun müssen, ist, Ihre Daten einzubinden, sie per Drag & Drop auf die Vorlagenseite zu ziehen, die Darstellung anzupassen und das Dokument zu speichern. Plattformübergreifende Kompatibilität Der Online Designer kann auf Android, iOS, macOS, Linux und Windows in jedem modernen Browser ausgeführt werden – egal ob auf Desktop-Rechnern, Tablets, Smartphones oder Smart-TVs. Unterstützung für .NET- und VCL-Plattformen Erstellen Sie Berichte oder öffnen Sie vorhandene Vorlagen der Formate .fr3 und .frx. Der Online Designer kann für eines der Formate mit dem entsprechenden Komponentensatz erstellt werden. Schneller Zugriff auf Berichte und Datenstruktur Über die Berichts- und Eigenschaftsbäume können Sie die Berichtsstruktur, Parameter, Filter sowie Datenquellen mit globalen Stilen bearbeiten. Drag-and-Drop Durch das Ziehen von Elementen mit der Maus können Sie diese bei der Vorlagenerstellung einfach hinzufügen und anpassen. Beispielsweise können Sie Felder aus Datenquellen in Komponenten ziehen. Berichtsvalidierung Ein Tool zur Analyse von Berichten auf Fehler, das während der Erstellung oder nach deren Abschluss arbeitet. Der Berichtsvalidator zeigt alle festgestellten Hinweise und Fehler im Bereich „Meldungen“ an. Unternehmensweite Stile Der Online Designer unterstützt Stile für Berichte. Erstellen Sie Ihre eigenen benutzerdefinierten Stile und wenden Sie sie in Vorlagen auf beliebige Komponenten an. Fertige Stile können in einer Stilsammlung zusammengefasst und für zukünftige Projekte gespeichert werden. Umfangreiche Auswahl an Komponenten Sie haben Zugriff auf über 40 Komponenten für .NET- und VCL-Plattformen: einfache Formen, Text, Bilder, komplexe Tabellen, Diagramme und Bands. Der Online Designer unterstützt zahlreiche Strichcodes, eingebettete Berichte, RichText, Karten und digitale Signaturen. Datenanbindung und Exporte Bei Verwendung von WebReport aus FastReport .NET oder FastReport VCL stehen Ihnen folgende Möglichkeiten zur Verfügung: Anbindung an Oracle, PostgreSQL, MS SQL, MongoDB, CSV, JSON, ADO-Connector (VCL) sowie Exporte in verschiedene Formate. Ein einziger Designer in Ultimate für alle Plattformen Ultimate .NET Ultimate VCL Installation FastReport Online Designer Dieser Artikel beschreibt, wie Sie FastReport Online Designer installieren, ein Werkzeug zum Erstellen und Bearbeiten von Berichten. Die Schritt-für-Schritt-Anleitung hilft Ihnen, schnell mit diesem System zu arbeiten. Dieser Artikel beschreibt, wie Sie FastReport Online Designer installieren, ein Werkzeug zum Erstellen und Bearbeiten von Berichten. How to update FastReport Online Designer to the latest version Step-by-step instructions for updating FastReport Online Designer to the latest version via the client panel. Step-by-step instructions for updating FastReport Online Designer to the latest version via the client panel. Konfigurieren einer API für das Build von FastReport Online Designer Wir sprechen über die Automatisierung des Erstellungsprozesses von FastReport Online Designer Builder über die API, wenn die Produktversion geändert wird. Wir sprechen über die Automatisierung des Erstellungsprozesses von FastReport Online Designer Builder über die API, wenn die Produktversion geändert wird. Haben Sie noch Fragen? Kontaktieren Sie uns ### Online Designer - FAQ URL: https://www.fast-report.com/de/faqs/online-designer Summary: Informieren Sie sich, wie Sie mit dem FastReport Online Designer schnell und effizient Berichte erstellen. Informieren Sie sich, wie Sie mit dem FastReport Online Designer schnell und effizient Berichte erstellen. Funktionieren nummerierte RichText-Listen im FastReport Online Designer? Nein, und sie werden nicht funktionieren. Derzeit unterstützt das Backend keine nummerierten Listen, es wandelt sie in html-Objekte ` ` um Funktioniert der FastReport Online Designer auch auf mobilen Geräten? Ja, erstellen, bearbeiten und betrachten Sie Ihre Berichte auf Tablets, mobilen Geräten und Desktop-Computern, ohne über Kompatibilität nachzudenken! Welche Exportfilter bietet der FastReport Online Designer? Die Exportfilter hängen von der FastReport.Web ab PDF: Versionen 1.5 und 1.7, PDF / A (1, 2, 3), PDF / X (3, 4); Office: RTF, Excel 2007, Excel 97, Word 2007, PowerPoint 2007, Open Office Calc, Open Office Writer, XML, XAML, LaTeX; Web: HTML, MHT; Graphics: BMP, PNG, GIF, JPEG, TIFF, EMF, SVG, DXF, PPML, PostScript; Data Base: CSV, DBF, Json; Sowie: Text , ZPL, XPS. Wo können Quellcodes nach dem Kauf abgerufen werden? Der FastReport Online Designer muss assembliert werden. Weitere Informationen finden Sie unter folgendem [Link](/blogs/update-online-designer/) Wie kann ich den FastReport Online Designer auf die neueste Version aktualisieren? Eine schrittweise Anleitung zum Aktualisieren eines Designers über Builder finden Sie in unserem [Artikel](/blogs/update-online-designer/) Wie kann ich den FastReport Online Designer mit FR.Core in einer einseitigen Vue.js Anwendung verwenden? Ausführliche Anleitung zum Online Designer in Vue.js ist **[in unserem Artikel enthalten.](/blogs/online-designer-knockout-app/)** Wie kann ich mehrere Objekte im Berichtsbaum und in den Tabellenzellen des FastReport Online Designers auswählen? Es wurde die Möglichkeit hinzugefügt, mehrere Objekte im Berichtsbaum auszuwählen, indem Sie die Umschalt- oder Strg-Taste gedrückt halten. Lesen Sie mehr in diesem [**Artikel** ](/blogs/functions-online-designer/) Wie kann ich die automatische Speicherung im FastReport Online Designer aktivieren? 1. Aktivieren Sie die automatische Speicherung in einem bereits erstellten Online Designer. 2. Legen Sie die entsprechende Option im Builder fest. Weitere Informationen zum automatischen Speichern finden Sie [**in diesem Artikel.**](/blogs/functions-online-designer/) Wie kann ich Eigenschaften zu meinen Favoriten im FastReport Online Designer hinzufügen? Um eine Eigenschaft zu Ihren Favoriten hinzuzufügen, klicken Sie mit der rechten Maustaste darauf und wählen Sie im Kontextmenü "Zu Favoriten hinzufügen" aus. Weitere Informationen zur Verwendung dieser Eigenschaft finden Sie in diesem **[Artikel](/blogs/functions-online-designer/)**. Wie kann ich meine benutzerdefinierten Schriftarten zum FastReport Online Designer hinzufügen? Um nicht standardmäßige Schriftarten zu verwenden, müssen Sie: - den Font-Server bereitstellen; - die Schrifteinstellungen mit CSS definieren; - die gewünschten Schriftarten und Konfigurationen zu FastReport WebReport hinzufügen; - den FastReport Online Designer im Builder konfigurieren. Das schrittweise Hinzufügen benutzerdefinierter Schriftarten wird[**in diesem Artikel beschrieben.**](/blogs/custom-fonts-online-designer/) Was muss getan werden, damit das Erstellen und Anzeigen von Berichten im FastReport Online Designer funktioniert? Für den FastReport Online Designer ist der Berichtsgenerator FastReport .NET, FastReport VCL oder FastReport Open Source erforderlich. Lesen Sie [in dem speziellen Artikel](/de/blogs/Migrate-FastReport-Open-Source-to-FastReport-Core), wie das Produkt einsatzbereit gemacht wird. Wie kann ich den FastReport Online Designer in einer React .NET Core Anwendung konfigurieren? Weitere Informationen zum Konfigurieren von Online Designer in React .NET Core finden **[Sie in diesem Artikel.](/blogs/designing-react-net-core/)** Kann ich mit MSChart im FastReport Online Designer arbeiten? Ja, dies ist ab [FastReport Online Designer 2023.2](/news/fastreport-online-designer-2023.2) verfügbar. Wie kann ich die Lokalisierung von FastReport Online Designer und WebReport konfigurieren? Eine Anleitung zur Lokalisierung von Online Designer finden **[Sie in diesem Artikel.](/blogs/localization-online-designer-webreport/)** Wie kann ich die FastReport Online Designer Symbole ändern? Eine schrittweise Anleitung zum Ändern der Symbole finden **[Sie in diesem Artikel.](/blogs/upload-report-online-designer-download/)** Wie kann ich den FastReport Online Designer in ASP .NET Core verwenden? Weitere Informationen zum Arbeiten mit ASP .NET Core in Online Designer finden **[Sie im Artikel.](/blogs/online-report-designer-asp-net-core/)** Wie konfiguriere ich die API, um den FastReport Online Designer zu erstellen? Die Benutzerautorisierung erfolgt über eine Schlüssel-API, die Sie im FastReport Online Designer Builder erstellen können. Um einen Schlüssel zu erstellen, benötigen Sie: - melden Sie sich mit Ihrem Konto an; - gehen Sie zum Menüpunkt API Keys. Eine detaillierte Anleitung wird [in diesem Artikel beschrieben.](/blogs/api-builder-online-designer/) Gibt es kostenpflichtige Erweiterungen der FastReport Online Designer Funktionen? Ja, auf vertraglicher Basis. Sie können an unseren technischen Support schreiben support@fast-report.com und unser Manager wird sich mit Ihnen in Verbindung setzen, um die Details zu klären. Wo kann ich die Demoanwendung von FastReport Online Designer herunterladen? Eine Demo von FastReport Online Designer ist über diesen [Link verfügbar.](https://www.fast-report.com:2015/razor/Home/Designer) Wie verwendet man den Online Designer in ASP .NET Core? In diesem [Artikel ](/blogs/online-report-designer-asp-net-core/)finden Sie eine schrittweise Anleitung. Wie kann ich den FastReport Online Designer in einer Mono-Webanwendung verwenden? Ausführliche Anweisungen zur Verwendung von Online Designer in der Mono-Webanwendung finden **[Sie in diesem Artikel.](/blogs/use-online-designer-mono/)** Mit welchen Datenbanken und Datenbankverwaltungssystemen kann ich über den FastReport Online Designer eine Verbindung herstellen? Die Verbindung zur Datenquelle wird auf der Backend-Seite von FastReport .NET hergestellt, Beispiele für verfügbare Datenbankverwaltungssysteme: - Cassandra - ClickHouse - Couchbase - ElasticSearch - Excel - Firebird - Json - Linter - MongoDB - MsSql - MySql - OracleODPCore - Postgres - RavenDB - SQLite Muss ich die FastReport Online Designer-Lizenzdatei meinem zu entwickelnden Produkt beifügen? Erläutern Sie bitte im Detail, worin der Unterschied zwischen den Hauptlizenztypen liegt? Laut unserer Lizenzvereinbarung bieten wir die folgenden Lizenzierungsoptionen an: **Die SCL Lizenz (Single Corporate License)** bietet das Recht zum Herunterladen und zur Nutzung einer Instanz der Software innerhalb der internen Infrastruktur des Benutzers auf einem internen Server (ist für ein Projekt und für eine unbegrenzte Anzahl von Entwicklern bestimmt). **Die SaaS Lizenz (Software as a Service)** bietet das Recht zum Herunterladen, um die Kompatibilität und die anschließende Nutzung der Software durch den Endbenutzer für ihren funktionalen Zweck zusammen mit der externen (Remote-)Anwendung des Benutzers zu gewährleisten (wird in die Cloud-Plattform integriert und für eine unbegrenzte Anzahl von Projekten verwendet). **Die OEM Lizenz** bietet das Recht zur Integration von FastReport Online Designer in eine einzelne Anwendung, die an andere Unternehmen weitergegeben wird (Die Anzahl der Projekte und der Entwickler ist unbegrenzt). **Die Unlimited Perpetual Distribution Lizenz (Lizenz für unbegrenzte unbefristete Weitergabe)** ist eine Lizenz mit unbegrenzter Anzahl der Endbenutzer in der Anwendung, in der der FastReport Online Designer als Komponente verwendet wird. Wie kann ich den FastReport Online Designer in einer Anwendung verwenden, die auf der knockout.js Bibliothek basiert? Zunächst benötigen Sie eine Knockout-Anwendungsvorlage für die Dotnet-Plattform. Sie müssen das NET Core 2.0 SDK oder MS Visual Studio 2017 installiert haben. Anweisungen zum Einbetten von Online Designer in Ihre Anwendung finden **[Sie in diesem Artikel.](/blogs/online-designer-knockout-app/)** Wie kann ich einen Bericht in den FastReport Online Designer hochladen und den bearbeiteten Bericht herunterladen? Eine schrittweise Anleitung zum Herunterladen eines Berichts finden **[Sie in diesem Artikel.](/blogs/upload-report-online-designer-download/)** Wie kann ich das Frontend von FastReport Online Designer und das Backend von FastReport .NET auf verschiedenen Servern hosten und verknüpfen? Oder wie kann ich eine andere Domain für die API verwenden? Um eine andere Domäne für die API zu verwenden, muss die Option "Use another domain for api" im Bildgeber aktiviert sein. Und geben Sie die URL des Beispielservers ein https://example.com/ Sie können auch eine host-API-Eigenschaft in window hinzufügen, bevor Sie den Online-Designer initialisieren ### Online Designer und neue Version von FastReport .NET URL: https://www.fast-report.com/de/news/fastreport-net-2015.4 Summary: Online Designer und neue Version von FastReport .NET Online Designer und neue Version von FastReport .NET Gute Nachrichten! FastReport Online Designer  ist jetzt zu einem getrennten Produkt geworden. Früher war die Beta-Version des Online Designers nur als Bestandteil von Fast Report .Net in der Redaktion "Professional" zugänglich. Jetzt kann man Fast Report Online Designer einzeln oder im Paket der Redaktion "Enterprise" von Fast Report kaufen. Äußern Sie bitte Ihre Meinung, wie das Program “Designer“ funktioniert. Die Autoren von inhaltsreichen und nützlichen Äußerungen bekommen kostenlos eine Lizenz für FastReport Online Designer, FastReport.Net oder das Tablett! Es wurde auch eine neue Version von Fast Report 2015.4 veröffentlicht. Unter den Hauptänderungen kann man die Optimierungsverbesserungen der Executegeschwindigkeit und des Gedächnisverbrauches betonen. Der Import der Schablone von DevExpress wurde auch hinzugefügt. Die Liste der Neuerungen: * new install * modified Main demo and report examples (\Demos\C#\Main) [Core] * improved speed of report prepare * reduced memory consumption * explained exception on invocation the events in script [Designer] + added import from DevExpress report template [Exports] + added export in FastReport Cloud + added font color tag parsing in RTF export + added property Excel2007Export.Seamless for export table without breaks + added exports in PPML (Personalized Print Markup Language) and PostScript - (classes PPMLExport, PSExport) + added EmbedPictures property in HTMLExport * rewrited saving in Excel 2007, Word 2007, Power Point 2007, XPS * reduced memory consumption in table based exports * increased speed of export in PDF, Excel 2007 - fixed bug with shadows in table-based exports [WebReport] + added property WebReport.XlsxSeamless for export table without breaks in Excel 2007 format + added property WebReport.EmbedPictures (embedding pictures in HTML) + added property WebReport.DesignerLocale (set locale for Online Report Designer) - fixed bug with rendering report with enabled property WebReport.SinglePage - fixed bug with default values of parameters - fixed bug with pictures with enabled property WebReport.SinglePage - fixed bug with multiline TextBox - fixed bug with Azure cookies [Online Report Designer] + added html5 manifest for off-line working (without iframe) + added dialogue controls TextBox, RadioButton, Label, CheckBox, ButtonControl + added support of dialogue forms + added double-tap for mobile devices + added hotkeys help on button "h" * optimization of report parser * changed the algorithm of selection of several objects - fixed bug with prefixes of connections - fixed bug with change the name of system variable - fixed bug with Font size for TextObject, - fixed bug with Padding after load - fixed bug with duplicate Dictionary in resulting report - fixed bug with copying of objects - fixed bug with move objects with hotkeys - fixed bug with lost connections in report on preview ### Online Designer, wofür und wie? URL: https://www.fast-report.com/de/blogs/online-designer-what-and-how Entwicklungsteam von FastReport .Net schenkt viel Aufmerksamkeit zu neuen Technologien und verbessert Report-Tools für Web. Solche Berichte können auf beliebigem Server platziert werden, dieser Server soll einfach html Technologie unterstützen. Warum gibt es solche Flexibilität? Weil diese Berichte schon in html exportiert sind. Dank ASP.Net stellt Entwicklungsteam zur Verfügung alle Tools, die die Anwender in einer lokalen .Net Anwendung verwenden. Das Produkt für problemlose Berichtserstellung in Web heißt Online Designer.  Was für eine Anwendung ist das? Diese Anwendung erstellt den Bericht, downloadet ihn vom lokalen Rechner oder vom Server, bearbeitet den Inhalt des Berichts und speichert ihn entweder auf dem Rechner oder auf dem Server. Online Designer hat fast ähnliche Funktionalität wie der Designer der Desktop-Anwendung. Jetzt ist es nicht notwendig das Paket mit FastReport.Net lokal zu installieren. Einfach öffnen Sie die Seite mit dem Online Designer in Ihrem Web Browser. Über Details der Arbeit des Designers lesen Sie den Artikel: «Verwendung des Online Designers in FastReport .NET». Wie herunterladen? Das Paket FastReport.Net Enterprise hat den OnlineDesigner. Im Kundepaneel gibt es einen speziellen Konstruktor dazu. In diesem Konstruktor definieren Sie bestimmte Eigenschaften des Designers. Blenden Sie die unnötige Funktionalität aus und sparen Sie viel Speicher-Platz. Oder beim Bedarf beschränken Sie das Interface für die Anwender. Nach der Konfiguration bekommen Sie d en Archive mit dem Designer. Wie verwenden? Zuerst brauchen Sie das Archive ins Ihr Projekt in einen getrennten Ordner zu extrahieren. Weiter aktiviert man im Objekt der Eigenschaft „DesignReport“ und für die Eigenschaft „DesignerPath definiert man den Ordner für den Designer. Und jetzt wird der Designer im WebReport angezeigt. Es ist möglich, den Designer im Code zu starten. Für Details lesen Sie mein Artikel: «Wie downloadet man den Bericht in den Online Designer und speichert die Neuerungen». Man speichert den Bericht auf dem lokalen Speicher mit der Taste „Speichern“ (Details im Artikel). Sie bearbeiten den Speichern-Event für Speichern auf dem Server. Demo liest man im Ordner FastReports\FastReport.Net\Demos\C#\Web\MvcRazor). Jetzt kann man auch die Konfiguration des Designers direkt im Code zu verändern. Das kann sehr nützlich sein, wenn Sie verschiedene Interfaces für Anwender organisieren. Dafür ist der Artikel «Wie ändert man die Konfiguration des Designers im Code der Anwendung » gewidmet. Es ist auch möglich, Fehler bei der Entwicklung eines Berichts in OnlineDesigner zu behandeln. Aktivieren Sie dazu die Debug-Eigenschaft des WebReport-Objekts und schreiben Sie den Fehlerbehandler in die Methode zum Speichern des Berichts. Die ausführliche Implementierung eines solchen Handlers wird in dem Artikel berücksichtigt: Fehler-Bearbeitung bei der Entwicklung des Berichts im Online Designer ist auch möglich. Dazu aktiviert man die Eigenschaft „debug“ im Objekt WebReport und schreiben einen Fehler-Bearbeiter in der Speichern-Methode des Berichts. Mehr Details im Artikel „Wie bearbeitet man Fehler beim Aufruf von WebReport“ In diesen kleinen Artikel erzählte ich Ihnen, was Online Designer ist, und habe ein Paar Artikeln gegeben, die Ihnen helfen können, über interessante Features von Online Designer zu erfahren. Tags: .NET, .NET, FastReport, FastReport, Online Designer, Online Designer ### Open Source revolution in Italy URL: https://www.fast-report.com/de/news/open-source-revolution-italy Summary: Open Source revolution in Italy Open Source revolution in Italy We encourage Open Source revolution in Italy and are ready to be published in Developers Italia Open Source catalogue any minute now. Stay tuned! https://medium.com/team-per-la-trasformazione-digitale/open-source-guidelines-for-acquisition-reuse-software-in-italian-public-administration-d6d5997d3e51 ### Optimum VCL URL: https://www.fast-report.com/de/products/optimum-vcl Summary: Extended set of components for building reports with instant processing of data arrays Extended set of components for building reports with instant processing of data arrays Erweiterter Komponentensatz zum Erstellen von Berichten mit sofortiger Verarbeitung von Datenarrays Optimum VCL bietet eine Berichts-Engine für VCL mit zusätzlichen Funktionen zum Analysieren und Exportieren von Daten in verschiedene Formate. Optimum VCL Erweiterter Komponentensatz zum Erstellen von Berichten mit sofortiger Verarbeitung von Datenarrays Kaufen Kostenlos testen Dokumentation Transports Speichern Sie vorbereitete Berichte mit wenigen Mausklicks in den Cloud-Speichern: Google Drive, Next Cloud, Box, Dropbox, um sie bequem an Ihre Kunden zu senden. OLAP-Analyse der empfangenen Daten Optimum VCL wird mit FastCube VCL geliefert: einer Bibliothek für die Online-Analyse. Es ermöglicht Ihnen, Übersichtstabellen (Datenscheiben) zu erhalten, Berichte und Grafiken zu erstellen. Kompatibilität und Integration Ultimate VCL ermöglicht den Aufbau des FastReport-Ökosystems auf Delphi. Berichte, die in allen Produkten des Ultimate-Pakets erstellt wurden, sind nahezu vollständig miteinander kompatibel Vollständige Kontrolle über die Entwicklung Dieser Satz von Tools wird mit dem Quellcode bereitgestellt. Der größte Komfort für Unternehmen, die den Code an ihre Bedürfnisse anpassen möchten Reibungsloser Übergang von anderen Lösungen Unser Berichtsgenerator konvertiert Ihre Berichte sofort von Schnellberichten, Berichtserstellern und Rave-Berichten in das FastReport-Format. Berichte über den Tellerrand Eine große Auswahl an Berichtsobjekten ermöglicht die Erstellung jeder Art von Dokumenten: Barcodes, Karten, Diagramme, Text und vieles mehr. Client-Server-Komponenten Detaillierter Überblick über die Funktionen der FastGrid-Bibliothek Benutzer von FastReport VCL Ultimate haben wahrscheinlich bereits bemerkt, dass im Installer zwei neue Einträge erschienen sind: FastEditors VCL und FastGrid VCL. Außerdem wurde im DemoCenter eine neue Demo hinzugefügt – FastGrid VCL Demo. Ein Überblick über die FastGrid-Bibliothek für VCL und Lazarus: Datenvisualisierung, -bearbeitung und -Strukturierung. Sortieren, Filtern, Gruppieren, komfortable Dateneditoren — alles in einem Artikel! Neues Berichtsvalidierungssystem in FastReport VCL Im technischen Support wurde uns oft der Wunsch nach einer automatischen Berichtsprüfung mitgeteilt – und mit dem Release 2026.2.0 haben wir dies umgesetzt. Im Menü „Datei“ des Berichtsdesigners sind nun die Punkte „Validate“ und „Einstellungen für Validierungsregeln“ (Validation Rule Settings) verfügbar. Damit können Berichte nicht nur geprüft, sondern auch der Satz an Regeln – einschließlich eigener Regeln – verwaltet werden. In diesem Artikel erklären wir, wie die Berichtsprüfung funktioniert, wie sie konfiguriert wird, wie Sie eigene Regeln anhand von Beispielen erstellen und geben Einblicke in interessante Neuerungen. In diesem Artikel erklären wir, wie die Berichtsprüfung funktioniert, wie sie konfiguriert wird, wie Sie eigene Regeln anhand von Beispielen erstellen und geben Einblicke in interessante Neuerungen. Verwendung von Wasserzeichen in FastReport VCL In den neuesten Versionen von FastReport VCL wurde eine Funktion zum Hinzufügen von Wasserzeichen implementiert. Ein Wasserzeichen ist eine Kennzeichnung, die in ein elektronisches Dokument, Bild, Video, Audio oder andere digitale Inhalte eingebettet wird. Sein Zweck ist es, die Urheberschaft zu bestätigen, vor unerlaubtem Kopieren zu schützen und die Verbreitung der Datei nachzuverfolgen. In diesem Artikel wird die Erstellung und Verwendung von Wasserzeichen in Berichten mit FastReport VCL ausführlich erläutert. Ein Beispiel zur Verwendung von Wasserzeichen befindet sich in der Demo, die mit FastReport VCL ausgeliefert wird. Der Artikel hat die Funktionalität zum Hinzufügen von Wasserzeichen in FastReport VCL ausführlich behandelt – sowohl über die visuelle Oberfläche als auch programmgesteuert mit Delphi-Code und in Berichtsskripten. Haben Sie noch Fragen? Kontaktieren Sie uns ### Our Halloween "Guess How Many?" game - results URL: https://www.fast-report.com/de/news/guess-how-many Summary: We offered you to guess how many jelly beans are in the jar to win a discount on FastReport for Delphi or .NET: powerful reporting tool that creates documents in any format We offered you to guess how many jelly beans are in the jar to win a discount on FastReport for Delphi or .NET: powerful reporting tool that creates documents in any format For Halloween, we offered you to guess how many jelly beans are in the jar to win a discount on a product of your choice. We took a little time to make sure that all our players placed their guesses correctly and are ready to announce the results: 337 jelly beans! We've contacted our winners and invite you to participate next year! ### Overview of new features of Online Designer in version 2018.2 URL: https://www.fast-report.com/de/blogs/features-online-designer-2018.2 The new version of Online Designer has acquired five innovations. These innovations have touched both usability and functionality. But first things first. 1. The possibility of horizontal band resizing has been added. This feature allows you to change the width of the band headers. When can it be necessary? If the band headers do not fit in the visible area, now you just stretch the title with the mouse. Hover your mouse over the darkened strip, as shown in the figure below. And pull it to the right. 2. Added offline work of the designer with service workers.  This is the most important innovation of version 2018.2. Now, thanks to the technology of service workers, you can work with Online Designer in networks with an unstable signal. That is, having lost connection to the Internet, you can continue working with the report and save it. In fact, the report will be saved to the remote server after the connection is restored. Thanks to the feature of Offline work with the report designer, the fault tolerance of the program has increased. 3. Added notifications online / offline.  In the continuation of the previous new functionality, there appeared notifications about the disruption and restoration of the Internet connection. This is how the connection loss looks like: And this is how restoring the connection to the Internet looks like. The notifications appear for a few seconds and will not be displayed permanently. 4. Added the Editable property for text objects and checkboxes.  This property appeared in FastReport.Net 2018.2. Now it is available in OnlineDesigner. The essence of the property is that it makes it possible to edit the text field or checkbox when viewing the report in the preview mode or the built report (including the Web report). To set the Editable property, select the text object or the checkbox object with the mouse. Open the Property inspector using the first icon on the sidebar. Find the Editable property and select the check box for it, as it shown in the figure. 5. Added the SimpleProgressGauge component.  This component is added to the existing Linear Gauge and Simple Gauge. The whole group of components is designed to indicate the state of something. The new component is meant to indicate the state of progress. And it looks like this: You can connect a data source to it, change the fill color, the font of the label, and so on. Tags: .NET, .NET, FastReport, FastReport ### Partners URL: https://www.fast-report.com/de/partners Summary: Erfahren Sie mehr über die globalen Vertriebspartner von FastReport. Finden Sie autorisierte Partner in Ihrer Region für Unterstützung und Vertrieb von FastReport-Produkten. Vertriebspartner Filter Kontinente Com&Lan 6/F, Tower A, Fenglin Xi'ao, Datun Road, Chaoyang District, Beijing 100101 P.R. Tel. +86-10-64844488 ext. 221 | Fax +86-10-64844477 ext. 221 comlan.com info@comlan.com The the Beijing Kunlun Unicom Technology Development Co., Ltd. is a comprehensive enterprise operating direction to provide operation and maintenance services of IT products and professional. The company was founded in 1998 on the development of technology-based service to the community, "the general direction from its inception. The entire company set hardware products, software products, sales and service in one, continue to adhere to the introduction of foreign advanced products and technologies, providing IT solutions and technical support services for corporate clients. CompuCom Systems 3414 25th Street NE, Calgary, Alberta  T1Y 6C1 Tel. +1 403-205-5619 compucom.com contacts CompuCom Canada is a national IT services and solutions company providing infrastructure management services, application services, systems integration and consulting services, as well as the procurement and management of hardware and software. With more than 20 years of IT experience, CompuCom employs thousands of highly skilled associates who have earned a nearly 100 thousand industry certifications company-wide. As experts in workplace services, CompuCom’s unique Integrated Infrastructure Management (IIM™) solution reduces costs, increases productivity and helps clients gain maximum value from information. HTK Pro s.r.o. Kutnohorská 55, Praha 10, 109 00 Tel. +420-810-100-810 | Fax +420-286-891-391 devshop.cz kadlecek@htkpro.cz Petr Zahradnik, Computer Laboratory Obvodova 740/14, CZ-40007 Usti nad Labem, Czech Republic Tel. +420-47-5500610 | Fax +420-47-5511338 clexpert.cz petr@zahradnik.cz Inteli Scape Ltd 22 Larnakos Avenue, 4th Floor, Aglantzia, Nicosia 2101, Cyprus Tel. +357-22448500 | Fax +357-22448511 inteliscape.com sales@inteliscape.com In addition to turn-key solutions, inteliscape provides custom project services - we have "the glove that fits your hand"! At inteliscape, customer satisfaction is driven by our people; people who understand e-business, people who think, people who do, people who get it. We have both undergone appropriate training and gained significance in delivering e-business solutions. All our services professionals are recognised for their excellence by IBM, Lotus, and Microsoft in all competencies we perform: Consultancy, Sales, Solution Architecture/Design, Implementation, Administration, Learning, and Support. HongDi Science & Technology Development co. Room 1113 Building B JinMao Square No.251 QiLiTing Road HuZhou, Zhejiang 313000  Tel. +86 572 2607144 | Mobile +86 (0) 13511221372 cookcode.net sales@cookcode.com HuZhou HongDi science & technology development co.,ltd., located in HuZhou, Zhejiang, China, specializes in selling and supporting expert programming components. we have selled our graphical components in global countries, and take a good effect to developers. Established in 2001 , provide components and software tools to the developer community, CookCode has expanded to become a leading of components supplier in China, USA, Europe, and provide thousands of components to developers, designers, IT Managers, Network Administrators, DBAs and Corporate Buyers. Katálogo Software Tel. +55 (11) 3581-4400 katalogo.com.br vendas@katalogo.com.br Fundada em 1997, a Katálogo Software tem como objetivo de atender as necessidades em software para desenvolvedores, profissionais de TI e empresas de todos os portes. A empresa tem sua matriz em São Paulo e filiais no Rio de Janeiro, Curitiba e Estados Unidos. A Katálogo Software hoje é referência no merdado de software, com vasta experiência na área de importação e exportação de softwares profissionais. Pan Yan Chongqing Science and Technology Yanghe Road, Jiangbei District, Chongqing, the 2nd international Tongchuang the 3rd Room 1904 Tel. 023 -67870900 componentcn.com sales@componentcn.com Software reusability is one of the key factors in the development of the software industry. To achieve the software " industrialized "and " software component " is the foundation for achieving this goal. Therefore, our long-term commitment to excellent control products at home and abroad to introduce the software development process, China's major software development companyto help improve the development efficiency and shorten the development cycle of the software product, to reduce the risk of the development of software projects, thereby enhancing software products in the market competitiveness. Barnsten B.V. Zijlstraat 47, 2011 TK Haarlem Tel. +31-23-542-2227 | Fax +31-84-755-5260 barnsten.com info@barnsten.com Leading the way with Innovative, Multi-Platform, Developer and Database Solutions Barnsten is dedicated to providing its customers with the industry’s broadest and deepest set of tools for enhancing the productivity of software developers and database professionals. Cogito Software Room 5003,Guang Yuan Da Sha, No.5 Guang Yuan Zha, Hai Dian District, Beijing China 100081 Tel. +86-010-68421378, 68421379 | Fax +86-010-68703469 cogitosoft.com sales@cogitosoft.com We corporate closely with over 2000 Reseller and we had established relationships with local retail outlets and online shops. We have over 40,000 users within mainland China, a large proportion of them are from government agencies, educational institutes and commercial departments. We have established business relationships with many of the world's top 500 enterprises, for instance: Motorala, Simens, Lucent-Alcate ,etc. Qast Software Group RM 3705, BM Business Center, No.100 Yutong Road, Shanghai, 200070, China Tel:+86-21-5240-0198  | Fax: +86-21-6211-9020 www.qast.com info@qast.com Qast Software Group is one of the largest software distribution companies in China. Our goals are to continuously bring global software and technologies to the growing Chinese market. QBS Software GmbH Grünwalder Weg 13a, 82008 Unterhaching, Germany Tel. +49 (0) 89 231 4142 0 https://www.qbssoftware.com/ info@qbssoftware.de WESTcom Logiciels et Services Tel. +33-2-97-88-07-44 westcom.fr infos@westcom.fr Westcom is an IT company established in 2000 specializes in publishing management software (accounting, production management and inventory, fixed assets, ...) and LIMS (Computerized Management Laboratory). DATAVENIR sarl 119, rue Vi De Chenaz, 74380 BONNE Tel. +33-0489-61-21-40 | Fax +33-0450-92-30-77 datavenir.com info@datavenir.com DATAVENIR undertakes to study and offer at any time solution that best suits your needs for your information system. (Business, Accounting, Management, Networking, Internet Technologies, Multimedia, Online Services, Training). IT Haimerl Datentechnik Kreuzacker 10, 94356 Kirchroth, Germany Tel. +49-9428-305324 | Fax +49-9428-305325 https://www.fast-report.de/ info@fast-report.biz Mitrasoft Infonet Kompleks Roxy Mas Blok E-2 No. 3 Jl. K.H. Hasyim Ashari No. 125-B Jakarta 10150 Tel. +62-21-632-6533 | Fax +62-21-632-6364 mitrasoft.co.id info@mitrasoft.co.id We provide a wide range of IT solutions and services; Hardware & System software Infrastructure, System Integration, Structured Cabling, LAN/WAN Design and Implementation, Financial Management System, Business Intelligence, Software Licensing, Outsourcing, Maintenance, Training, Consultingand Custom Application Development. In June 1996, PT. Mitrasoft Infonet was formed to focus on software's business. Mitrasoft's main business includes providing Software Licensing, System Integration Services, Outsourcing, Maintenance, Training, Business Solutions and custom application development. It is noteworthy that one thing about our companies that have not changed over the years is our vision of providing the best products and the best solutions for our customers and today our companies continue to serve our customers even better. Intcom Systems Pvt Ltd Office No 20, Rajasthan technical Centre, Grd Floor, Patanwala Estate, Near Shre, Ghatkopar West, Mumbai, MH 400086, India Tel. +91-022-41117777 intcomsystems.com sales@intcomsystems.com Intcom Systems Pvt. Ltd., incorporated in 1994, caters to all aspects of Software Products / licenses procurement. With domain knowledge in software licensing models and years of experience reselling software products from worlds foremost software publishers, we provide purchase option that assist you get a properly licensed and most economic software deal. Our services division caters to Infrastructure solutions like, Network & E-mail Security, Print management, Online meeting solutions & Infrastructure solution. Intcom Systems Pvt. Ltd. is managed by Mahendra Patil and a team of professionals. With a focus on serving the Software Development, Corporate Houses & SME Small & Medium Enterprise in INDIA, We have tied up at various levels with software publishers worldwide to provide Indian developers with cutting edge tools to assist them through various stages of software development process. Amazing (HK) Trading Ltd Tel. +852-6255 3802 | Fax +852-3011 6235 amazinghk.com.hk sales@amazinghk.com.hk Kvazar-Miro CEE Kft Gubacsi ut 6., Budapest 1097 - Hungary Tel. +361-880-4415 | Fax +361-880-4465 kvazar-micro.hu info@kvazar-micro.hu SoDiCe Kereskedelmi Kft. 1143, Budapest, körút 83, Hungária Tel. +36 1 881 6486 sodice.hu info@sodice.hu A SoDiCe Kereskedelmi Kft. azzal a céllal jött létre, hogy közvetlenül a gyártóktól vásárolt szoftvereket kínáljon a magyar piac részére. Fő célunk, hogy a szoftver kiadókkal együttműködve részt vegyünk egy nemzetközi IT megoldásokat kínáló hálózat kiépítésében, kapcsolataik megerősítésében és a meglévő értékesítési csatornáikat kiegészítve hozzájáruljunk eredményeik növeléséhez. Kínálatunk az informatika különböző területein használatos szoftverek széles választékát tartalmazza: - Biztonsági/Security termékek - Network Management - Webdesign - Üzleti Megoldások - E-Learning - Tudományos szoftverek - Kommunikációs és Multimédiás termékek R2 Data Technology SAC. Tel. 511 402 0622  / 529 8069 r2datatechnology.com ventas@r2datatechnology.com R2 Data Technology es un proveedor de herramientas de desarrollo de software para empresas, ingenieria, investigacion e instituciones educativas. Software Sources Ltd. 64B Hasharon St. P.O.Box 639 Ra'anana 43106 Tel. +972-9-7714578 | Fax +972-9-7712194 software-sources.co.il chen@software-sources.co.il Wintech Italia Srl Tel. +39-0523.1998395 | Fax +39-0523.014654 shop.wintech-italia.com info@wintech-italia.com Wintech Italia is a training and consulting company specialized on Delphi, with the unique contribution of Delphi's "guru" Marco Cantù. We offer onsite and public training classes, consulting and development support, mentoring and code review. The company also resells in Italy the licences of Delphi and some third party components. AG-TECH Corporation 6F, Daiwa Kandabashi Bldg. 1-17-5 Kanda Nishikicho Chiyoda-ku, Tokyo 101-0054 Japan Tel. +81-3-3293-5300 | Fax +81-3-3293-5270 agtech.co.jp ``` sales@agtech.co.jp ``` AG-TECH is a company with over 35 years of experience in localizing, selling and importing packaged software into the Japanese market. We are the exclusive distributors in Japan for fully localized into Japanese versions of the FastReports.NET and FastReports VCL product range. As well as fully localized products, with full Japanese language manuals, we have an experienced team of local support and sales engineers, able to offer Japanese report developers and standalone report users a fully featured complete reporting solution. For full details, please refer to our Japanese language Fast Reports home page Danysoft Internatioal S.L. Avda. de la industria 4, edif. 1, 3ª planta, Natea Business Park, 28108 Alcobendas, Madrid +34-916-638683 danysoft.com Contact Danysoft es el representante exclusivo de Embarcadero en la península ibérica, estando especializados en ayudar a la comunidad de Delphi y C++Builder en licencias, formación, libros y utilidades tan imprescindibles como Fast Reports Isah Business Software Droogdokkeneiland 11, 5026 SP Tilburg Tel. +31-88-4724-000 | Fax +31-88-4724-001 isah.com A stable, hi-tech software solution: that is what Isah offers you. That is not just a promise. It is a guarantee. The manufacturing industry is our core market. With extensive industry experience dating back to 1987, we know precisely what is needed to optimise business management processes and attain better results. Rambla Informаtica S.L. Paseo Roma Fabra, 12, 08320 El Masnou – Barcelona Tel. +34-93-306-34-47 ramblainf.com DevTools Inc. Tel. +82-2521-7900 | Fax +82-22297-7900 devtools.co.kr midmee@devtools.co.kr AccessSoft Inc. 3F.-5, No.86, Sec. 1, Zhongxiao E. Rd., Zhongzheng Dist., Taipei City 100, Tel. +886-2-23560269 | Fax +886-2-23956826 accesssoft.com.tw rachelwu@accesssoft.com.tw  |  elsalin@accesssoft.com.tw Qun Yu Co., Ltd. (AccessSoft) positioning of the "Your Brilliant Solutions Provider", software integration services to provide customers with professional information, and for many of the world's leading software partners in Taiwan, the Taiwan user has a faster, more professional, more The regional software services. Linksoft Inc. 6th Floor, New Taipei City and District No. 351, Sec 10 Tel. +886-2-2221-2155 | Fax +886-2-2221-9008 linksoft.com.tw anna@linksoft.com.tw Founded in 2007, Linksoft is a professional distributor and reseller in Taiwan and China. As a professional software provider, Linksoft cooperates with global outstanding IT industries, reselling thousands of software includes Statistical Analysis, Development Program, Database Management, Network Security, Design and Edit software. Linksoft cultivates its mature service along Commercial, Government, Academic and Home users, with more than 500,000 customers in Asia. Working for customer-oriented, Linksoft provides in time product information and decent first-line support to overcome the difficulties caused by long distance and different time zones. Sinter Information Corp Tel. +886-2-2577-7755 | Fax +886-4-2471-7448 sinter.com.tw service@sinter.com.tw eBIZINET Co., Ltd. 24/128 Soi 21 Yak 3, Chom Phon, Chatuchak, Bangkok 10900 Tel. +66-02-5125933 ebizinet.com info@ebizinet.com Invite Course to Web Learning & Training on Internet. BTG (Bilgi ve Teknoloji Grubu Ltd.) Ankara: Bilkent 5.Cadde No:4 Ofis:9, 06533 Bilkent. İstanbul: Büyükdere Cad. No:185 Kanyon Ofis Binası K:6, 34394 Levent Tel. +90+212-319-7722 btgrubu.com cozum@btgrubu.com BTG (Bilgi ve Teknoloji Grubu Ltd.), yazılım geliştirme süreçleri ve test aşamalarında Türkiye çapında çeşitli büyük kurumsal projelerde danışmanlık, eğitim ve destek hizmetleri veren uzman bir kadroya sahiptir. Instant Buy Tel. +34-959-10-11-80 | Fax +34-959-87-06-49 instantbuy.es info@instantbuy.es Netsync Network Solutions 2500 West Loop South, Ste 410, Houston, 77027 +1-713-218-5041 | +1-832-606-2131 Lola Charles lcharles@netsyncnetwork.com Netsync Network Solutions (Netsync),is a HUB certified, minority owned, Houston-based, Value-Added Reseller,who holds a variety of manufacturer and industry certifications while specializing in the areas of Networking, Servers, Storage, Wireless Devices, Security, Enterprise Computing, Datacenter and other IT-related disciplines. Xailer +34 902 955 144 www.xailer.com sales@xailer.com Xailer Inc. is one of the most important companies in the xBase world created almost 10 years ago. They have been active in the development of Harbour since its inception. Our flagship product, Xailer is a complete visual development environment for xBase using Harbour as its main compiler. bit Time Software Via di Prataporci ,185 - 00132 Roma | Via C. Menotti 2/A, 20129 Milano 06 20763518 | 02 87399401 bittime.it dir_comm@bittime.it Bit Time Software è una dinamica IT company che opera nel panorama italiano ed europeo dell’information technology dal 2002. Nata come software house focalizzata sulla fornitura di soluzioni informatiche per la gestione delle attività aziendali, la società ha progressivamente esteso e ampliato le sue competenze, abbracciando l’area della consulenza e della formazione IT. Shanghai Quweishi Software Co., Ltd. Room 1222, No.580, West Nanjing Rd., Shanghai, 200041 021 - 3211 0920 commuch.com sales@commuch.com Quweishi Software is a professional software service vendor. We focus on providing development solution ,tools, on-site service for help , training and outsourcing. We work with many components and tools software company all over the world and provide technical support for their local customers. SOS Software Unterer Talweg 40 86179 Augsburg 0821 25782 - 0 sos-software.com info@sos-software.com Die SOS Software Service GmbH wurde im Juli 1987 gegründet und ist spezialisiert auf die Distribution und den Vertrieb von Software, Softwarebeschaffung und Lizenzberatung. Wir vertreiben Software von über 1.000 Herstellern mit 70.000 Artikeln. Täglich erweitern wir unser Software-Portfolio, um Ihnen Software aller Hersteller aus einer Hand zu bieten. FireBase www.firebase.com.br fdd@firebase.com.br A FireBase é o maior portal brasileiro de informações sobre Firebird, oferecendo serviços de consultoria, suporte, cursos, desenvolvimento, além de gerenciar uma das mais movimentadas listas de discussão sobre Firebird de todo o mundo. Cadastre-se gratuitamente para ficar atualizado com as últimas notícias do mundo Firebird! 51Component China 24D, No 15 Jincheng Mansion, Xiangcheng Road, Pudong,Shanghai,China +86-(0)21-50318395 51component.com sales@51component.com Beijing TL-Chinasoft Technology Haidian District, Beijing Zhongguancun South Street, Building 718 52 010-62115400 pcsofttech.com yiyong.ji@pcsofttech.com Codiprof Rua 31 de Janeiro, 76 4470-553 MAIA 229424216 www.codiprof.pt info@codiprof.pt Devart 192a Klochkovskaya str., Kharkov, Ukraine, 61145 sales@devart.com devart.com Founded in 1997, Devart now has 18 years of experience in developing database tools and native data access solutions for different database servers with headquarters situated in Czech Republic and research and development center - in Ukraine. Comsoft 400 Avenue de Roumanille Green Side 1 Bât. 2, 06410 Biot 0 825 07 06 07 comsoft.fr infos@comsoft.fr Corporate Tech +55 (51) 4063 8011 corporatetech.com.br comercial@corporatetech.com.br A CORPORATE TECH Tecnologia – tem por tradição à atuação no mercado de tecnologia da informação desde 2010, ano que iniciou suas atividades na cidade de Porto Alegre com o objetivo de atender pequenas, médias empresas, profissionais da área de desenvolvimento e infraestrutura com produtos de software e licenciamento. Atualmente atuamos em todo território nacional, com base em Porto Alegre e escritório na cidade do Rio de Janeiro, atendendo clientes das mais diversas áreas e seguimentos, fornecendo softwares e consultoria gratuita na área de licenciamento. Nosso trabalho é focado sempre na atuação consultiva, buscando entender a necessidade do cliente para lhe oferecer o melhor licenciamento e o software adequado a sua real necessidade e orçamento. WSB Solutions B.V. Kade 30, 3371 EP Hardinxveld-Giessendam (0184) 61 88 37 www.wsb-solutions.nl info@wsb-solutions.nl Elmer İSTANBUL Rasimpaşa Mahallesi Tayyareci Sami Sokak Demirli İşhanı No:18 Kat:2  34716 Kadıköy İstanbul +90 216 577 64 71 www.elmer.com.tr ANKARA Kabil Cad. 1335. Sokak No:10/2 06450 Öveçler, Ankara +90 312 478 42 78 www.elmer.com.tr CiKa Software Schwalmtalstr. 18 34628 Willingshausen-Steina Deutschland 06691-929621 www.cika-software.de info@cika-software.de Login Infotech #63, 1st Main Road, Seshadripuram, Bangalore - 560 020 Karnataka +91-80-23349809 | 23563500-02 login2it.com sanjay@login2it.com LOGIN INFOTECH PVT LTD was incorporated in the year 1996 by a group of professionals with more than a decade of experience in the IT industry. Login started its business as a reseller company for Software and Hardware products and in a short span of time Login was recognized as one of the leading Value Added Partners for Microsoft. Login was also appointed as Partners for leading MNC brands like HP, COMPAQ, IBM, ACER and Wipro among Indian brands. Today with a turnover of over $8 million, Login is one of the preferred vendors for leading Corporate, Government and Banks & PSU's across the country. Login will be accredited with ISO 9002 Certification shortly. Targetware (55) (11) 3665 8550 targetware.com.br comercial@targetware.com.br DHorde Gengqian Information Technology Office Building 1-2198, Building A, Baguazhou Pioneering Park, No. 270 Lidao Road, Baguazhou Street, Qixia District, Nanjing +86 17558866126 dhorde.com sales@dhorde.com Nanjing Gengqian Information Technology Co., Ltd. ("Gengqian" for short), established in 2017, is a national high-tech enterprise specializing in providing global software and information technology services. The headquarter is located in Baguazhou Pioneering Park with a pleasant environment, and has branches in various regions of the country Evget +86 (23) 68661681 www.evget.com qiuyt@evget.com EXE +421-2-67 296 111 exe.sk Uznávame princípy, ktoré sme si stanovili pri samotnom vzniku firmy. Nadobudnuté skúsenosti nám dávajú zdravé sebavedomie a rešpekt pred potrebami zákazníkov. Svojich klientov nikdy nezavádzame a vždy vytvárame len také riešenia, ktorým sami dôverujeme. Symbionis Software Nussdorfer Strasse 64, Top 3b, 1090 Wien Tel. +43-1-7866496 | Fax +43-1-7866496-30 symbionis.at office@symbionis.at Wir vereinen die drei Hauptbereiche, Software, Skills und Technologies, in einem zentralen Knotenpunkt, um Ihnen optimale Lösungen für Ihre Projekte zur Verfügung zu stellen. Durch die Verknüpfung dieser drei Schwerpunkte können wir Ihnen maßgeschneiderte Angebote von der Entwicklung Ihrer Softwarekomponenten über geeignete Fachkräfte bis zu speziellen Datenbankservices machen. Ker-Soft Computing Szombathelyi tér 14. 1119 Budapest, Hungary +36(1) 206-2147 kersoft.hu info@kersoft.hu The company, gradually faced with a greater number of complex tasks was urged to take on with more professionals thus providing further technical expertise. In respose to growing customers needs, Ker-Soft developed its IT expert team. Similarly, we have built partnerships with the world’s leading IT suppliers -enriching our competency in solutions and products of Microsoft, CA. PT Interaktif Cipta Lestari Jl. Pualam I No. 49 Sumur Batu, Kemayoran, Jakarta Pusat +62 21 21477722 www.interaktif.solutions iwancs@interaktif.solutions PT Interaktif Cipta Lestari is an IT Company that provide the best, effective, and efficient solutions for companies needs. We provide many service in several area such as Custom Software Development, Original Software License, Technical Support, Data Entry Services, Network Infrastructure Consultation, and much more DEVGEAR 359, Sapyeong-daero (Banpo-dong, 3rd floor)Seocho-gu, Seoul, 06542 02 595 4288 www.devgear.co.kr DevGear is a company established in Korea through agreements with Embarcadero (acquired by IDERA) such as Delphi and C++ Builder. In line with the ever-increasing demand for Delphi and C++ Builder developers, DevGear provides products as well as related services (books, education, technical support, etc.) to the domestic market. AHA Computer Company Ltd. Tel. 02-2749-1909 https://www.ahasoft.com.tw sales@ahasoft.com.tw AHA Computer Company Ltd. was founded in 1990, specializing in the marketing and licensing of computer software all over the world. Serving the market with active minds over decades, we are proud to say that satisfaction and support from our business partners have clearly marked our excellent reputation. Pure Green Bulevar Arsenija Čarnojevića 140/2, Beograd +381 63 640 218 puregreen.rs info@puregreen.rs PureGreen is an IT-based company founded in 2015. Great vision inspires us to connect the real and digital world in a way to be the MVP partner for both our customers and suppliers. The base structure of our portfolio has a focus on software development, design and offering the best IT products and solutions. JSC Softex Baltic Sviliškių str. 10-46, Vilnius, Lithuania +370 683 77221 www.softex.lt info@softex.lt OSB Software Rua Vergueiro, 1421, Conj. 1309, Torre Sul. Paraíso – São Paulo/SP – 04101-000  Tel. +55 11 4280 6660 www.osbsoftware.com.br contato@osbs.com.br Não importa se o software que você procura está na América, Europa, Oceania, Ásia ou África. Na OSB Software você poderá encontrar os softwares de qualquer fabricante independentemente do país onde ele esteja. A OSB Software firmou contrato de parceria com mais de 2.000 fabricantes que expressam a AUTORIZAÇÃO de comercialização do software em todo território nacional, além de uma equipe experiente que é responsável pela busca constante de novas soluções para disponibilizar o que há de mais recente no mercado de TI. MicroWay Pty Ltd PO Box 84, Braeside, Victoria, 3195, Australia Tel. +61-1300-553-313 | Fax. +61-1300-132-709 microway.com.au sales@microway.com.au MicroWay is Australia's largest distributor of development products and software for IT Professionals. With over 3,000 products and over 20,000 customers throughout Australia and New Zealand, we've been helping IT Professionals for over 27 years. We assist developers, system administrators and other IT Professionals by encouraging the use of tried and tested, quality products. Software development products fit into many categories including the category of "don't reinvent the wheel"—if someone has already written code to do what you're trying to do, why not just buy that code? Products of this sort are usually fairly robust after having been sold on the world market. InchalBase Yongsan-gu, Seoul, Yongsan-dong 5-Yongsan Park Tower 103 No. 1503 Tel. +82-02-589-2900 | Fax +82-02-548-1123 ibmart.co.kr tkim@inchalbase.com 1995 inchael goal is to computer and Internet users to offer the best experience and satisfaction . Customers a variety of products based on the technology accumulated over 10 years in software solutions, ranging from the client to the server until you are offered to Recognized in the development of a Web system used worldwide by End to End testing and performance monitoring solutions and management solutions to our customers can offer. In the development of VoIP and IMS products, network services, such as installation to provide a solution that can verify the quality and performance during the whole life cycle of up to. Web, VoIP, NGN, and IMS based on numerous tests and has the expertise and knowledge gained from experience in inchael base the quality of service in real-time visualization by showing a variety of monitoring solutions. Accumulated technology and experience a wide variety of state-of-the-art techniques provides consulting and tuning services. inchael base and OneSight 's easier and safer position in the web system management plan have been provided for users and administrators Korea empirically Riggs and merger integration decisions by truly comprehensive solutions company that provides VoIP, Enterprise & Contact Center solutions, as well as the process of expansion and diversification of business and one more step to leap to. Orangean International Corp Address: 8F., No. 527, Huajiang 1st Rd., Banqiao Dist., New Taipei City 220, Taiwan (R.O.C.) orangean.com.tw info@orangean.com.tw Orangean International Corp. ,established in 2020, primarily serves as an authorized distributor for international software. We specialize in the sale of professional commercial software and offer services in enterprise IT system planning and implementation, information security management, and computer hardware sales. ComponentSource 650 Claremore Professional Way, Suite 100, Woodstock, GA 30188-5188, USA Tel. +1-770-250-6100 | Fax. +1-770-250-6199 componentsource.com sales@componentsource.com ComponentSource was established in 1995, to ensure Software Developers were supplied with the best software development products the world had to offer. Hitherto, inefficiencies imposed by the established, country-based, software distribution channels meant that only a small number of products made it to market. Consequently, ComponentSource pioneered the open market for reusable software components and tools, through innovative use of electronic software delivery (ESD). Today, ComponentSource offer the world's best collection of labor saving software through eCommerce Web Sites; carrying over 10,000 SKU's from 230+ Publishers. ComponentSource have offices in the USA, UK and Japan supporting over 100,000+ Customers, from 160 Countries. Aquion Suite 25, L3 357 Military Rd Mosman NSW 2088 1300-AQUION (278-466) www.aquion.com.au send mail Aquion - Taking Award Winning Vendors to Customers in Australia, New Zealand, Asia Pacific and IndiaAquion supplies quality software and solutions backed by extensive technical expertise from our vendors as well as inhouse to enterprise, business and government customers in the Region. Vendors benefit from our customer relationships, established channels, and local knowledge. Our partners benefit from our close relationship with vendors, product and licensing expertise and technical support. End user customers benefit from best of breed software, locally supplied and supported. QBS Software Ltd Tel. +44-020-8733-7101 qbssoftware.com sales@qbssoftware.com Established in 1987 to provide tools to the developer community, QBS Software has expanded to become a leading software supplier in Europe providing thousands of products to developers, designers, IT Managers, Network Administrators, DBAs and Corporate Buyers. Products range from IDEs to code tools, components to Installation tools as well as security, reporting, installation, web, database, help creation, system tools and application software. QBS has developed a keen expertise in product marketing and management alongside sophisticated in-house publishing and fulfilment. We have an extensive network of industry connections and commercial relationships with software publishers and vendors throughout the world, many of whom rely on QBS Software to build strong markets for them in the UK and Europe. QBS Software is an active participant in leading industry exhibitions, conferences and roadshows and works closely with various user groups. Prianto Barthstraße 18, 80339 München +49 89 416148 210 prianto.com kontakt@prianto.com Die Prianto GmbH wurde 2009 von William Geens und Oliver Roth gegründet und gehört inzwischen zu den führenden, auf Software spezialisierten Distributoren Deutschlands. Seit 2011 ist Prianto auch in Großbritannien,Österreich und in der Schweiz vertreten, 2012 folgten die BeneLux-Staaten. Wir setzen auf absolute Fachhandelstreue und beliefern ausschließlich Wiederverkäufer im Channel (VARs, Systemhäuser, Integratoren, Fachhändler, Service-Provider, etc.). Unser Ziel ist es, langfristige, vertrauensvolle und erfolgreiche Geschäftsbeziehungen mit Fachhändlern und Systemhäusern einzugehen. Dafür bieten wir margenstarke und innovative Software-Lösungen an und garantieren schnelle und fundierte Leistungen bei der Beschaffung von Softwarelizenzen. Akdatasoft Yazilim ve Bilgisayar Kazımiye Mahallesi Aşık Veysel Sokak Çamlık Sitesi B-Blok No.:10 Daire:14 P.K.59860 ÇORLU, TEKİRDAĞ +90-282-653-13-89 akdata.com info@akdata.com Since the year of 1995, our company has been serving with integrated/modular software programs as a reliable provider for production sector with the help of operational business experienced personnel. It is only possible to provide right and on-time service to customers during changing competition conditions is to monitor / control production and stock, and to establish cost-benefit balance by using computer aided technology and services. Also used technology should be ready for development depending on changing necessities, and be modular based, has integrated parts. The major factors that are keys to be successful company; continuous cooperation with customers, support after selling, and improving our products as all we mentioned above. Thus we would like you as precious companies dealing with production to know that we are ready to create every production management systems, data collection projects, product pursuing and cost analyzing systems, and also ready to serve continuously and free of problems. Chongqing Huidu Technology Tel. 023-66090381 fastreportcn.com sales@evget.com Huidu Technology was established in 2003, focusing on controls (components and middleware) industry and software industry development consulting, which is the largest control reseller and reusable technology consulting service provider. We have a wide range of partners all over the world, adding up to more than 200 partners including top control producers in the world. We are devoted to provide world-leading reusable technology and tools for software developer, medium-sized and big enterprises, universities and etc. aiming at promote the common development of state software industry in China. Codetalk 359, Sapyeong-daero (Banpo-dong, 3rd floor), Seocho-gu, Seoul, 06542 (+82) 02 595 4288 https://www.codetalk.co.kr/ Сodetalk selects high-quality software for software professionals and then supplies and spreads genuine software based on partner agreements with the manufacturer. AVIR s.r.o. Záhumenice 15, 902 01 Pezinok Tel. +421-905-859812 | Fax +421-33-6401895 avir.sk Firma AVIR sa už dlhší čas zaoberá šírením a registráciou shareware (voľne šíriteľných) programov. Výhodou registrácie shareware u nás je možnosť platby v Euro na účet v slovenskej banke, promptné zaslanie papierovej faktúry od firmy AVIR ako slovenského platcu DPH, rýchle jednanie, komunikácia v slovenskom jazyku a mnoho ďalších výhod. Ku každému nami ponúkanému programu nájdete krátky popis alebo recenziu, ako aj link na jeho stiahnutie. Na základe overenia funkčnosti skúšobnej verzie na Vašom počítači sa potom môžete po uplynutí autorom určenej skúšobnej doby rozhodnúť pre registráciu programu (objednanie registrácie je už ale záväzné a po dodávke tovaru nie je možné jeho navrátenie, keďže licenciu firma AVIR platí autorským firmám vopred a súčasne licencie sú menovite vystavené na meno zákazníka, nie je možné ich predať inému zákazníkovi). Registrácia shareware programov sa dá realizovať aj v prípade produktov, ktoré sa nenachádzajú na týchto stránkach - kontaktujte nás s Vašimi požiadavkami. Infomedia Systems Services 18 Boon Lay Way #03-104 TradeHub21 Singapore 609966 +65-6270-0121 infomedia.com.sg sales@infomedia.com.sg Established in 1996, Infomedia Systems Services Pte Ltd is today’s leading system integration company providing One Stop Solutions for a wide range of customers ranging from the Small-Medium Enterprises (SME) to the Multi-National Corporations (MNC), Government Linked Corporations (GLC) and Government Bodies. With the extensive technical knowledge we possessed, we are able to assist customers transform their legacy and time consuming work operations into effective cost-cutting IT solutions. At Infomedia, we strongly believe in customer satisfaction and are always striving to work towards this goal. We are committed to our projects and promised to satisfy our clients by delivering quality works and solutions. It is also with this believed that we are able to offer cutting edge technology to our customers in this internet era. We understand the problems encountered by our customers when they deal with multiple vendors and thus we aim to establish ourselves as the one-stop IT solutions provider for them. We are able to provide consultancy, design, implementation and even the maintenance of the entire IT infrastructure for our customers. By engaging us you can rest assured that your network is in the safe hands and concentrate on your core business. Knowing the problems and frustrations that are faced by our customers when the system is not working in the daily operations, we are always ready to provide fast and efficient services to them when called upon. Your call is important to us and it is one of our company policies to provide prompt services without compromising on the quality of work to be done. We do not have RED TAPES like big corporations on servicing and supporting, our flexibility allow us to attend to our customers’ calls promptly. Getting your system up and running is always our number one priority. With the fast-paced and ever-changing of IT, we strive to maximize the best strategies and techniques to our staff so that they are always fully and readily equipped with the most reliable and cost effective solutions to reach customers across multiple channels. Software Asli Harco Mas Mangga Dua, Lantai Dasar No 89 (Dekat Lift) Jakarta Pusat 10739 Tel. +91-021- 6230 1345 | Fax +91-021-6230 4562 softwareasli.com info@softwareasli.com PT Digital Asia Utama/Software-Asli.com is an Indonesian leading Distributor and Master Dealer of Original Software. List of Top Brands carried includes Microsoft, Adobe, Corel, Autodesk, Symantec, Kaspersky, McAfee, AVG, Bit Defender, Norman, Zone Alarm, Eset, ACDSee, NetOp, Farstone, Oracle, SPSS, Redhat, MYOB, ESRI, Business Objects, Borland, MapInfo, IBM, Magix, UltraEdit, Techsmith, and many more. PT Digital Asia Utama is Private Owned Limited Liability company, located at Mangga Dua Jakarta, Indonesia, where the central of Computer Business located. The company was founded at 2003. After years of efforts, we have developed reputation, trust and confidence among our customers and partners. During the years, we continue to expand and grow. PT Digital Asia Utama have been working with more than 300 Reseller, Retail shops, and Online shops across Indonesia, Which is considered as one of the Biggest, most complete and most active Software Distribution channel in Indonesia. Cheer Chain Enterprise +886 4 2386 3559 cheerchain.com.tw info@cheerchain.com.tw Cheer Chain Enterprise (CCE) is a leading technology company based in Taiwan.We use our vast experience to provide a wide range of software, consulting and training services to organizations looking for solutions to qualitative research ,mixed methods research,eLearning, scientific publishing and statistical analysis challenges. BSC Polska Sp. z o.o. ul. Schroegera 32, 01-822, Warszawa bsc.com.pl BSC Polska, founded in 1996, is a representative of carefully selected software vendors offering solutions for the whole process of software development - application lifecycle management, coding, software testing, quality assurance and application performance monitoring. Our company additionally offers tools for database tuning and maintenance. We also provide training and consulting services supporting all products from our portfolio. LOGON Software Asia LOGON International Limited Unit 19, 1/F, Cheung Wah Centre, 10-12 Shipyard Lane, Quarry Bay, Hong Kong Tel. +852 2512 8491 logon-int.com logonhk@logon-int.com LOGON International Limited has created this privacy statement in order to demonstrate our firm commitment to privacy. The following discloses our information gathering and dissemination practices for this website: LOGON Software Services. LOGON's WEB Site is an extension of its customer service and technical support organizations. Through this WEB site, we strive to provide information on our products and services to valuable customers like yourself. Through this WEB site you are able to request evaluation software, software catalogs, subscription to TechNews, a weekly technical newsletter and enjoy prompt technical support assistance. In order for us to offer you these services, we require that you offer us contact information like your name, telephone, email address. In order that we understand your technical environment and your requirements, we also require that you mention information like development tools used, operating systems being managed, nature of applications being built or managed and your functional role in IT. With this information, we deliver customised information on products, technical tips, suggestions, etc.. GEN Technologies 55 Khojaly Ave., AGA Center, 1025 Baku, Azerbaijan gentech.az sales@gentech.az +994 (12) 311 3066; +994 (50) 250 9196 GEN Technologies is a software distributor and value-added reseller providing software licensing and technology solutions to corporate, government, education, and enterprise customers. The company works with leading international software vendors and supports customers throughout the full licensing lifecycle, from product selection and procurement to renewals and ongoing support. GEN Technologies operates across Azerbaijan, the South Caucasus, Central Asia, and CIS markets. info@fast-report.com Vertrieb sales@fast-report.com 800-985-8986 (Englisch, USA) +31 97 01025-8466 (Englisch, EU) +49 30 56837-3928 (Deutsch, DE) +55 19 98147-8148 (Portugiesisch, BR) Adresse Alexandria, VA 22314 66 Canal Plaza, Ste 505 Produkte Kaufen Demo Dokumentation Deinstallation Lizenzen Produkte Kaufen Demo Dokumentation Deinstallation Lizenzen Support SLA-Unterstützung Online-Support FAQ Anleitungsvideo Forum Artikel Nachrichen Support SLA-Unterstützung Online-Support FAQ Anleitungsvideo Forum Artikel Nachrichen Das Unternehmen Zum Unternehmen Identity Vertriebspartner Kontaktieren Sie uns Das Unternehmen Zum Unternehmen Identity Vertriebspartner Kontaktieren Sie uns Datenschutzbestimmungen Cookie-Bestimmungen © 1998-2026 Fast Reports Inc. Trustpilot Link erfolgreich kopiert ### Passt eine große Daten Menge für kleinen Report? Und was passiert, wenn Excel als Daten Storage gewählt wird. URL: https://www.fast-report.com/de/blogs/covid-data-report-too-small Summary: Excel ist keine beste Lösung, um Ihre Daten zu speichern. Finden Sie heraus, was passieren kann und wie Sie es vermeiden können. Excel ist keine beste Lösung, um Ihre Daten zu speichern. Finden Sie heraus, was passieren kann und wie Sie es vermeiden können. Excel ist keine beste Lösung, um Ihre Daten zu speichern. Finden Sie heraus, was passieren kann und wie Sie es vermeiden können. Speichern Sie COVID-19 Test Ergebnisse in Excel? Kann der Report nicht alle Daten anzeigen. Folgen Sie dem Link  - https://uk.news.yahoo.com/missing-coronavirus-tests-glitch-large-excel-spreadsheet-file-095054235.html Um zu erfahren, dass man in der Vereinigten Königsreich fast 16 Tausend Covid-19 Infektion Fällen verloren hat — in der Excel Tabelle war das Rekord Limit übergegriffen. Wenn Sie bei Google faul sind, möchte ich Sie daran erinnern, dass das Limit einer Excel-Tabelle 65.000 Zeilen beträgt. Dies sind keine Einzelfälle! Die Menschen haben keine Ahnung, mit wie vielen Daten sie und ihre Kunden umgehen müssen und welche Funktionen die von ihnen verwendeten Tools bieten! Und dann erscheinen solche Artikel: https://www.techrepublic.com/article/10-things-you-should-never-do-in-excel/ Also was können wir tun? 1. Verwenden Sie Datenbanken zum Speichern von Daten! Es mag völlig verrückt klingen, aber immer und überall, wenn Sie sich entscheiden, eine Liste, eine Basis (es ist meine professionelle - ich verwende immer diesen Begriff), ein Datenspeichersystem - eine Datenbank abzurufen. Schätzen Sie die Datenmenge. Ihre Nachkommen werden dafür dankbar sein! In unserem Beispiel - in unserem CRM (unser CRM ist übrigens eines der ersten online - wir kannten diesen Begriff nicht einmal) gibt es Hunderttausende von Registrierungen, Kunden, Datensätzen und Partnerregistrierungen. Es klappt! Selbst jetzt, wenn Dutzende von Menschen aus der ganzen Welt gleichzeitig damit arbeiten, kann ich es nicht als „hoch geladenes System“ bezeichnen, da wir wissen, wie hoch geladene Systeme wirklich funktionieren und was Big Data tatsächlich ist. 2. Überprüfen Sie, ob Ihr Berichtssystem mit dieser Datenmenge zurechtkommt. Besonders in letzter Zeit sind oft interessante Kunden zu uns gekommen. Auftragnehmer, die ihre Projekte ein halbes Jahr lang an die Kunden übergeben haben, müssen das Berichtssystem bereits in schon implementierten und funktionierenden Projekten auf unser ändern. Sie nahmen das Projekt ernst, betrachteten das Toolkit und die Komponenten und verglichen sie nach verschiedenen Kriterien (vielleicht haben sie unser System nicht einmal in Betracht gezogen oder sie haben es getan, aber aus irgendeinem Grund hat FastReport es nicht ins Finale geschafft), aber dann das Projekt wurde mit echten Daten gefüllt, damit gearbeitet und… fiel. (Im besten Fall "Anzeigen der ersten 65.000 Datensätze", im schlimmsten Fall "Aufnehmen des gesamten zugewiesenen Speichers und Anzeigen von nichts"). Ich bin weit davon entfernt zu denken, dass moderne Entwickler dem kompetenten Design der Systemlast nicht genügend Aufmerksamkeit schenken. Darüber hinaus können alle anderen Elemente der Systeme diese Belastung bewältigen. Und dann fällt das System genau beim Schritt der Datenerfassung in den Reportsgenerator! Und echte Daten - es können Millionen von Datensätzen sein (dies ist natürlich nur ein Beispiel, nicht die gesamte Datenbank!), aus denen häufig Dokumente generiert werden müssen, beispielsweise für Abonnenten. Für mich war es eine Offenbarung, dass es auf diesem Markt ziemlich alte und bedeutende Akteure gibt, die diese Aufgabe nicht bewältigen können. Bestenfalls kann die Reporterstellung Stunden dauern oder sie stürzt einfach ab und erreicht überhaupt nicht die Erstellung eines Reports. Und heute, wenn ich gefragt werde: "Wie haben Sie es geschafft, dass die Banken, die Pensionskasse, die Sozialversicherungskasse, Hersteller von Hochlast-Unternehmenssystemen, die in Echtzeit abrechnen, Ihr Produkt FastReport verwenden?" - Ich habe keine andere Wahl, als zu antworten: "Eigentlich hatten sie keine andere Wahl." Ich möchte nicht nur und ausschließlich FastReport verwenden, aber ich rate Entwicklern dringend, alle Komponenten ihrer Systeme (wie wir) den strengsten Stresstests zu unterziehen, um Kunden nicht zu enttäuschen. Dies gilt insbesondere für Abrechnungssysteme, CRM, ERP - wo eine ständige Live-Arbeit mit Kunden stattfindet. 3. Messen Sie die Aussagekraft Ihres Reports. Ja, wir haben Textbeispiele für Reportw (die Millionen von Datensätzen enthalten), in denen wir die Qualität und die Geschwindigkeit der Erstellung der Dokumente bewerten (der Report enthält mehrere Zehntausende von Seiten, die dann ohne Qualitätsverlust in PDF konvertiert werden). Es war eine Herausforderung für uns selbst - wir waren mit der Geschwindigkeit der Reporterstellung nicht zufrieden und haben sie dreimal beschleunigt. Hier ist ein Link zu einem Beispiel für die Erstellung eines Reports aus BigData. Nun, das sind die BigData. Ich werde die Freude des Entdeckers "Wie funktioniert das bei anderen Reportgeneratoren?" den lieben Lesern überlassen Dies ist nicht schlecht, wenn beispielsweise Stromrechnungen für Einwohner von Megastädten erstellt werden. Wie informativ ist dieser Report selbst? Markieren Sie daher die wichtigsten Dinge, verwenden Sie Diagramme, damit die Daten nicht verloren gehen, sondern in die vom Auge abgedeckten Informationen umgewandelt werden.   Wie zum Beispiel einer der Gewinner unseres Wettbewerbs um den besten Report  - wie Sie sehen, werden Big Data zu COVID-19 in einem zuverlässigen und informativen Dokument zusammengefasst. FastReport-Produkte sind immer bereit, mit Ihren Daten jeder Größe schnell genaue Reporte zu erstellen. Oder Sie können uns einfach fragen – wir sind ziemlich gut mit allen gängigen Dokumentformaten und DBMS und können Ihnen sagen , wo genau „die Täuschung eines Formats“ auf Sie wartet. Tags: FastReport, Excel ### PDF Dokument aus der Text-Datei erstellen URL: https://www.fast-report.com/de/blogs/make-pdf-document-text-file Summary: Heute besprechen wir ein Problem, wenn wir eine PDF-Datei zu erstellen brauchen, aber kein Adobe Acrobat Tool haben. Wir haben nur eine Text Datei mit den Quelldaten und FastReport. Desktop. Heute besprechen wir ein Problem, wenn wir eine PDF-Datei zu erstellen brauchen, aber kein Adobe Acrobat Tool haben. Wir haben nur eine Text Datei mit den Quelldaten und FastReport. Desktop. Heute besprechen wir ein Problem, wenn wir eine PDF-Datei zu erstellen brauchen, aber kein Adobe Acrobat Tool haben.  Wir haben nur eine Text Datei mit den Quelldaten und FastReport. Desktop. Heute besprechen wir ein Problem, wenn wir eine PDF-Datei zu erstellen brauchen, aber kein Adobe Acrobat Tool haben.  Wir haben nur eine Text Datei mit den Quelldaten und FastReport. Desktop. Wir brauchen zuerst eine Datei mit dem Text, der in Absätze geteilt wurde.  In diesem Fall verwendet man Absätze, die als Datenzeilen dienen. Jetzt erstellen wir einen Bericht im Designer. Und erstellen eine Datenquelle: Merken Sie sich auf dem Feld „Separator“, in dem es möglich ist, ein Getrennt-Symbol zu verwenden, das nicht in Text steht. Mit solcher Eingabe wird jeder Absatz des Textes von anderen getrennt dargestellt. Weiter wählen wir die Spalte Field0: Im Datenfenster wird eine neue Datenquelle mit einzigen Feld dargestellt: Beim Drug-and-Drop ziehen wir dieses Feld auf den Band „Daten“ und passen es für ganze Breite des Bands an: Um den ganzen Text auf den Band zu platzieren, aktivieren wir die Eigenschaft CanGrow für hinzugefügtes Feld und für den Band „Daten“. Das macht man aus dem Kontext-Menü: Weiter aktivieren wir das Kontext-Menü für den Band mit dem Maus-Klick auf der rechten Taste. Und fügen den Titel hinzu: Und so sieht der Bericht im Vorschaufenster: Der Bericht hat jetzt Absätze. Ein Teil der Aufgabe ist schon erledigt. Zweiter Teil ist ein Export des Berichts ins PDF Format mit Hilfe von FR Desktop. Wir starten weiter das Tool „Configurator” und wählen von uns erstellter Bericht: Und aktivieren die Eigenschaft „Export as” und wählen PDF Format: Nächster Schritt  - die Wahl des Ordners fürs Speichern der PDF Datei. Dazu aktivieren wir die Eigenschaft „Save to“ und geben den Wert des Folders ein: Dazu klicken die Taste „Settings”. Die neue Konfiguration wird beim Klick der Taste „Save“ gespeichert. Die Konfiguration-Datei kann unmittelbar aufgeführt werden, wenn der Anwender auf die Taste „Run“ klickt. Zweite Variante – einen Aufführungsplan zu erstellen. Wir klicken „Run”: Und prüfen in Config den Ordner. Die Datei ist schon erstellt: Zum Schluß möchte ich sagen, es ist ganz einfach PDF aus Text-Datei mit Hilfe von FastReport zu erstellen. Tags: .NET, FastReport, Desktop, CSV, PDF ### PDF viewing settings when exporting from FastReport .NET URL: https://www.fast-report.com/de/blogs/configure-viewer-pdf-exporting-net Summary: Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. This can be Acrobat Reader or browser's built-in viewer (Edge, Chrome) or any other viewer. You'll find that some of the options are very useful. Here is the tab "View" window in PDF export settings: Consider all the options in order: Show print dialog - when you start pdf file will immediately show the print dialog; Hide toolbar - disables the toolbar menu at the viewer; With the menu: Without the toolbar menu: Hide menubar - includes a main menu in the viewer; With the main menu: Without the main menu: Hide window user interface - this option enables / disables the sidebar that displays document pages in miniature. Interface hidden: Fit window - it allows you to adjust the size of the document window so that the page of the document was placed in width. If the window is smaller than the width of the document page, it will be increased; Center window - this option allows you to center the Viewer window on the screen; Print scaling - allows you to compress the large pages. For example, the image on the entire page had fields (some printers may not print entirely on the entire sheet, they require field). If you select this option, in the print window of the PDF document you will see the selected item Shrink oversized pages.  Scale - the opportunity to ask the original display scale of the document. You can change it later, when viewing the document. For example, choose the size of the "Fit Page". The scale will be chosen so that the entire page is fully displayed on the screen: Outline - allows you to display report the plan as a PDF file. Here is a sample report with a built-up: And here is the document PDF, if for such a report to include the option Outline: On the left is displayed bookmarks toolbar, which contains the report plan. We have considered all the options for configuring the display of the document in the viewer. Which of them will be useful to you to judge. But it is obvious that you shouldn't ignore these settings if you want to create a document that is easy to read the end-user. Tags: .NET, Export, FastReport, Viewer, PDF ### PDF-Dokument im Bericht. Verwendung eines neuen TfrxPDFView-Objekts URL: https://www.fast-report.com/de/blogs/pdf-document-in-report-vcl Summary: Mit der Veröffentlichung von FastReport VCL 2021.3 wurde ein neues TfrxPDFView-Objekt hinzugefügt, mit dem Sie PDF-Dokumente in einem Bericht anzeigen können. Mit der Veröffentlichung von FastReport VCL 2021.3 wurde ein neues TfrxPDFView-Objekt hinzugefügt, mit dem Sie PDF-Dokumente in einem Bericht anzeigen können. Mit der Veröffentlichung von FastReport VCL 2021.3 wurde ein neues TfrxPDFView-Objekt hinzugefügt, mit dem Sie PDF-Dokumente in einem Bericht anzeigen können. FastReport VCL ist in erster Linie ein Berichtsgenerator. Auf dieser Grundlage können wir davon ausgehen, dass die Vorschau oder das Einbetten von Dokumenten anderer Formate in einen Bericht übermäßig ist. Nach den Anfragen unserer Kunden können wir aber auch die gegenteilige Meinung feststellen. Viele unserer Kunden müssen sich mit der Aufgabe auseinandersetzen alte Systeme mit den neuen zu integrieren. Ein solches System kann bereits vorbereitete Dokumente enthalten, die mit den neuen Berichten verknüpft werden müssen. Mit anderen Worten, ein Dokument in einem anderen Format in einen Bericht einbetten und anzeigen, indem neue Seiten oder Felder hinzugefügt werden.  Für solche Aufgaben haben wir in FastReport VCL 2021.3 ein neues TfrxPDFView Berichtsobjekt hinzugefügt. Dieses Objekt verwendet die Pdfium  Open-Source-Bibliothek und dient zur Anzeige von PDF-Dokumenten in einem Bericht. Sie können die Bibliothek selbst erstellen oder eine fertige Lösung aus unserem FastReport VCL Installationspaket verwenden (frx_pdfium.dll und frx_pdfium_64.dll im Bin-Ordner). Nach der manuellen Erstellung müssen Sie die Bibliothek in frx_pdfium.dll für 32-Bit-Systeme und in frx_pdfium_64.dll für 64-Bit-Systeme umbenennen. Um die Bibliothek manuell zu kompilieren, benötigen Sie Visual Studio und Google depot_tools. Weitere Informationen finden Sie  hier  und  hier . Wie oben geschrieben, müssen Sie Pdfium nicht selbst bauen, Sie können vorbereitete Bibliotheken aus dem FastReport VCL verwenden, aber wenn Ihre Firma eine Sicherheitsbeschränkung hat und erfordert, den gesamten Quellcode auf Ihrer Seite zu bauen, verwenden Sie die Links von oben. Das TfrxPDFView kann Dokumente sowohl auf einer als auch auf mehreren Berichtsseiten darstellen. Dabei wird die Fähigkeit der Report-Engine genutzt, um Objekte aufzuteilen. Schauen wir uns genauer an, wie man dieses Objekt verwendet und welche Möglichkeiten es bietet. Nach der Installation der neuesten FastReport VCL 2021.3 Version sollte diese Komponente in der Komponentenpalette von Delphi im Abschnitt FastReport VCL erscheinen. Fügen Sie einfach das TfrxPDFObject in das Anwendungsformular ein, um TfrxPDFView in Run-time zu verwenden. Wenn Sie ein neues Projekt erstellt haben, fügen Sie die TfrxReport-Komponente hinzu und doppelklicken Sie darauf, um den Berichtsdesigner aufzurufen. Klicken Sie dann auf das PDF-Objekt in der Symbolleiste des Designers und erstellen Sie auf dem Band ein neues Objekt im Bericht, genau wie jedes andere Berichtsobjekt. Das Objekt wurde erstellt. Danach sollte der Objekteditor erscheinen, der das Laden eines PDF-Dokuments ermöglicht. Das TfrxPDFView ermöglicht mehrseitige Dokumente darzustellen. Das Objekt hat dafür spezielle Einstellungen. Die DetailStretchMode Eigenschaft ist für die Anzeige des Inhaltes des Objekt-Containers verantwortlich und kann einen der folgenden Werte annehmen: pdOneToOneStrongStretch – die Seite wird immer anhand der Größe des Berichtsobjekts gestreckt. Das Seitenverhältnis wird nicht eingehalten. pdOneToOneNormalize – die Seite wird immer gestreckt und behält das Seitenverhältnis der Originalseite in einem PDF-Dokument bei. pdManyToOneNormalize – ermöglicht es, mehrere Seiten in den Objektbereich des Berichts einzupassen und das Seitenverhältnis der Originalseite in einem PDF-Dokument beizubehalten. Anzeige eines mehrseitigen PDF-Dokuments  Mit FastReport VCL können Sie ein PDF-Dokument als eine Seite des PDF-Dokuments, eine Seite im Bericht für jede Seite des PDF-Dokuments darstellen. Wir haben bereits ein PDF-Dokument erstellt und in das Band „Berichtskoprfzeile“ geladen. Dehnen Sie es nun auf die gesamte Seite der Berichtsvorlage aus, es sollte wie folgt aussehen: Wenn wir jetzt auf die Berichtsvorschau klicken, sehen wir nur eine Seite des geladenen PDF-Dokuments, auch wenn ein Dokument mehr als eine Seite hat. Um alle Seiten anzuzeigen, müssen wir eine Reihe von Schritten durchführen. Schritt 1. Aktivieren Sie die Eigenschaften AllowSplit und Stretched und setzen Sie sie auf True für das Band, in dem sich das TfrxPDFView-Objekt befindet. Somit wird das Band dehnen und aufteilen. Schritt 2. Setzen Sie die Eigenschaft StretchMode auf smActualHeight oder smMaxHeight für das TfrxPDFView-Objekt. Dieses Objekt kann jetzt gedehnt werden. Sie können den Bericht nun ausführen und das Ergebnis sehen. FastReport VCL zeigt alle Seiten des PDF-Dokuments jeweils auf die Berichtsseite an. Das TfrxPDFView-Objekt hat noch weitere Eigenschaften. Die Eigenschaft "Password" legt ein Kennwort für das PDF-Dokument fest. Die "DrawOptions"-Flags ermöglichen die Steuerung der Dokumentenanzeige. Außerdem können Sie einen Dateinamen als Quelle für ein TfrxPDFView-Objekt verwenden, indem Sie die FileLink Eigenschaft verwenden. Und das ist noch nicht alles! Mit der neuen DataLink-Eigenschaft ist es möglich, Dokumente auch über http- und https-Protokolle zu laden. FastReport VCL kann jetzt nicht nur PDF-Dokumente generieren, sondern diese auch innerhalb eines Berichts anzeigen! Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, PDF, PDF, Report, Report, Delphi, Delphi ### PDF/X, PDF/A, PDF/E: Wo ist der Unterschied? Warum gibt es so viele Formate? URL: https://www.fast-report.com/de/blogs/comparison-pdf-formats Summary: Lassen Sie uns versuchen, die Vielfalt der PDF-Formate zu verstehen und die Vor- und Nachteile von Standards für verschiedene Branchen und ihre Bedürfnisse zu vergleichen. Lassen Sie uns versuchen, die Vielfalt der PDF-Formate zu verstehen und die Vor- und Nachteile von Standards für verschiedene Branchen und ihre Bedürfnisse zu vergleichen. Lassen Sie uns versuchen, die Vielfalt der PDF-Formate zu verstehen und die Vor- und Nachteile von Standards für verschiedene Branchen und ihre Bedürfnisse zu vergleichen. PDF ist ein universelles Dateiformat, das es Benutzern ermöglicht, Dokumente unabhängig von Software, Hardware oder Betriebssystem zu präsentieren und auszutauschen. Im Laufe der Zeit wurden mehrere PDF- Unterarten entwickelt, um den unterschiedlichen Anforderungen der verschiedenen Branchen gerecht zu werden. Werfen wir einen Blick auf einige der beliebtesten Formate: PDF/X, PDF/A und PDF/E. 1. PDF/X PDF/X ist ein professioneller Standard für den Austausch von digitalen Druckvorlagen, der für Stabilität und Vorhersagbarkeit beim Drucken optimiert ist. Im Gegensatz zum herkömmlichen PDF, das beliebige Inhalte, einschließlich interaktiver Elemente und Mediendateien, enthalten kann, ist PDF/X auf bestimmte Datentypen beschränkt und eignet sich daher besonders für den Austausch druckfertiger Dateien. Hauptmerkmale von PDF/X: Farbmodell. Alle Farben in einem Dokument sollten in vordefinierten Farbräumen festgestellt werden, in der Regel CMYK- oder Spot-Farben. Dies beseitigt die Unsicherheiten bei der Interpretation von Farben beim Drucken. Eingebettete Ressourcen. Alle notwendigen Ressourcen wie Schriften und Bilder sollten in die Datei eingebettet werden. Dadurch wird sichergestellt, dass das Dokument auf jeder Hardware gleich aussieht. Keine interaktiven Elemente. Ausgeschlossen sind interaktive Elemente wie Kommentare, Formularfelder, Videos und JavaScript. Vorgegebenes Ausgabeformat. Das Dokument muss Informationen darüber enthalten, wie es beim Drucken aussieht, einschließlich bestimmter Anforderungen an Layout und Paginierung. PDF/X-Unterarten: PDF/X-1a: Basiert auf dem PDF 1.3-Standard Farben werden nur als CMYK- oder Spot-Farben definiert. Unterstützt nicht die Verwendung von ICC-Profilen. PDF/X-3: Unterstützt CMYK-, Spot-Farben und ICC- Profile. Ermöglicht die Verwendung verschiedener Farbräume in einem Dokument. PDF/X-4: Unterstützt die Ebenen, Transparenz und andere neue Funktionen, die in PDF 1.6 und höher verfügbar sind. Unterstützt mehrere Farbräume. 2. PDF/A PDF/A ist eine Teilmenge des PDF-Formats, die für die langfristige Speicherung elektronischer Dokumente entwickelt wurde. Im Gegensatz zu Standard-PDF eliminiert PDF/A Komponenten, die Probleme mit dem sich im Laufe der Zeit ändernden Erscheinungsbild von Dokumenten verursachen können, und ist daher ideal für die Archivierung geeignet. Hauptmerkmale von PDF/A: Eingebettete Ressourcen . Alle für die korrekte Darstellung des Dokuments erforderlichen Ressourcen (z. B. Schriftarten, Bilder) sollten in die Datei eingebettet werden. Keine Interaktivität . Interaktive Elemente wie JavaScript, Audio, Video und ausführbare Dateien sind verboten. Farbstabilität . Das Dokument sollte ein stabiles Farbmodell verwenden, um eine langfristige Anzeigekonsistenz sicherzustellen. Verbot von externen Abhängigkeiten . Es ist nicht zugelassen, auf externe Ressourcen zu verweisen, die sich im Laufe der Zeit ändern oder verschwinden können. PDF/A- Unterarten : PDF/A-1: Basiert auf dem PDF 1.4-Standard Wird in zwei Teile unterteilt: PDF/A-1a für vollständige Übereinstimmung einschließlich struktureller Tags für Barrierefreiheit und PDF/A-1b für grundlegende Übereinstimmung für visuelle Reproduzierbarkeit. PDF/A-2: Basiert auf dem PDF 1.7-Standard. Enthält verbesserte Unterstützung für Inline-Anmerkungen, Ebenen, Transparenz und Komprimierung. Lässt sich in Konformitätsstufen unterteilen: PDF/A-2a, PDF/A-2b, PDF/A-2u. PDF/A-3: Erweitert PDF/A-2, um die Einbettung beliebiger Dateiformate zu ermöglichen (einschließlich z. B. XML-, CSV- oder CAD-Dateien). Lässt sich in Konformitätsstufen unterteilen: PDF/A-3a, PDF/A-3b, PDF/A-3u. 3. PDF/E PDF/E ist eine Teilmenge des PDF-Formats, die speziell für Ingenieure, Architektur- und Baufachleute entwickelt wurde. Dieser Standard wurde entwickelt, um die Anforderungen für den Austausch, die Anzeige und den Druck dynamischer technischer Dokumente, einschließlich Schemata, Zeichnungen und 3D-Grafiken, zu erfüllen. Hauptmerkmale von PDF/E: Unterstützung für komplexe Grafiken . Einschließlich Ebenen, Transparenz, 3D-Modelle und interaktive Elemente. Metadaten . Erweiterte Metadaten für eine verbesserte Suche und Verwaltung von Dokumentinhalten. Präzise Geometrie . Für die genaue Wiedergabe von geometrischen Objekten wie Linien, Kurven und Flächen. Eingebettete Dateien . Möglichkeit, verknüpfte oder Quelldateien wie Spezifikationen oder CAD-Daten einzubinden. Warum gibt es so viele Formate? Verschiedene Branchen haben unterschiedliche Anforderungen. Durch die Erstellung spezieller PDF-Unterarten können diese Anforderungen erfüllt werden, ohne dass ein völlig neuer Standard entwickelt werden muss. Diese Profile bieten Standardisierung, Vorhersagbarkeit und Zuverlässigkeit für bestimmte Anwendungen. Sind diese Formate in FastReport .NET verfügbar? FastReport .NET verfügt über die meisten Exportformate, nur PDF/E fehlt. Diese Formate können sowohl im Designer als auch im Anwendungscode verwendet werden. Um das gewünschte Format im Designer auszuwählen, müssen Sie auf "Speichern" drücken und auf "PDF-Format" klicken. Danach gehen Sie auf die Registerkarte "Einstellungen" und wählen Sie das gewünschte Format aus. Als Ergebnis erhalten Sie die benötigte Datei im gewünschten Format. Um in ein bestimmtes Format zu exportieren, müssen Sie eine Anwendung erstellen, das FastReport-Paket verbinden und den erforderlichen Code schreiben. Nachfolgend finden Sie ein Beispiel für das Speichern einer PDF-Datei im PDF/A-Format. ``` Report report = new Report(); report.Load("PathToYourReport.frx"); // PDF-Exporteinstellungen  PDFExport pdfExport = new PDFExport(); // Für den Export in das PDF/A-Format pdfExport.PdfCompliance=PDFExport.PdfStandard.PdfA_2a; // Sie können den gewünschten Compliance-Level auswählen report.Prepare(); report.Export(pdfExport, "OutputPath.pdf"); ``` Schlussfolgerung  Es gibt zwar viele Unterarten von PDF-Dateien, aber jeder wurde für einen bestimmten Zweck entwickelt, um den Anforderungen einer bestimmten Branche gerecht zu werden. Es liegt ganz bei Ihnen, welches Format Sie für welchen Zweck benötigen. Tags: .NET, Export, FastReport, PDF ### Persischer Kalender im Bericht URL: https://www.fast-report.com/de/blogs/persian-calendar-document Summary: Coverting das Datumsformat für die persischen Benutzer. Coverting das Datumsformat für die persischen Benutzer. Coverting das Datumsformat für die persischen Benutzer. Haben Sie gewusst, dass verschiede Länder unterschiedliche Datumformate haben? Wenn Sie einen mehrsprachigen Bericht bzw. einen Bericht für das Land, in dem Persisch (Farsi) gesprochen wird, erstellen, ist es wichtig, die Daten im richtigen Format anzugeben. Als Standard-Einstellung wird im FastReport das europäische Datenformat eingesetzt, aber die .NET-Mittel ermöglichen es in andere Formate umzuwandeln. Wir haben also die Aufgabe das Datum ins persische Format umzuwandeln. Wir haben zum Beispiel im Bericht einen Ausdruck [Date], der das heutige Datum ausgibt: Der [Date] Ausdruck erhält das aktuelle Systemdatum im DateTime Format, aber der Wert des Textberichtes ist nach allen Verarbeitungen ein Zeichenkettenwert, d.h String. Erstellen wir eine neue Funktion im Bericht-Skript: ``` private void ConvertToPersianDate(object sender, EventArgs e) ``` Wir werden diese Funktion aus den Textobjekten aufrufen. Erstellen wir eine Zeitvariable, die den Objekttext ins DateTime umwandelt: ``` DateTime d = DateTime.Parse((sender as TextObject).Text); ``` “sender as TextObject” ist die Anfrage zu dem Objekt, das die Funktion aufgerufen hat. Wir können die Funktionen und Eigenschaften des Objekts nutzen, wenn wir es so aufrufen. Danach benötigen wir ein PersianCalendar-Objekt, das unser Datum in das persische Format umwandelt: ``` PersianCalendar pc = new PersianCalendar(); ``` Bemerken Sie, dass dieses Objekt in der System.Globalization Bibliothek enthalten ist und sie im Abschnitt using anzugeben ist. Danach müssen wir den Objekttext selbst ändern. Schauen wir uns diese Zeile genauer an: ``` (sender as TextObject).Text = string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d)); ``` Hier geben wir den Text unseres Objektes vor. Der Wert selbst ist im Format Jahr/Monat/Tag, da wir die Funktion PersianCalendar verwenden, die die entsprechenden Werte abruft. Der Codeabschnitt, in dem der Text angegeben wird, kann nach dem Wunsch bearbeitet werden. Beispielsweise sieht der Code für das Datum im Format Tag.Monat.Jahr wie folgt aus: ``` "{0}.{1}.{2}", pc.GetDayOfMonth(d), pc.GetMonth(d), pc.GetYear(d) ``` Wir haben also letztendlich die folgende Funktion erhalten: ``` using System.Globalization; namespace FastReport { public class ReportScript { private void ConvertToPersianDate(object sender, EventArgs e) { // Umwandlung im Format DateTime DateTime d = DateTime.Parse((sender as TextObject).Text);   // Objekterstellung für die Umwandlung PersianCalendar pc = new PersianCalendar();   // Erstellen einer Zeile mit PersianCalendar // Evtl. kann der Zeilenbaustein geändert werden (sender as TextObject).Text = string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d)); } } } ``` Fügen wir die Funktion zum AfterData-Ereignis des gewünschten Objekts hinzu. Und so sieht das Datum nun aus: Um die anderen zeitbezogenen Funktionen zu nutzen, können Sie die Daten der Tabelle entnehmen:  GetDayOfWeek(),  Wochentag  GetMonth(),  Monat  GetDayOfMonth(),  Monatstag  GetYear(),  Jahr  GetHour()  Stunde  GetMinute()  Minute  GetSecond()  Sekunde Jetzt wissen Sie, wie Sie die Datumsansicht in Ihrem Bericht ändern können. Dieser Artikel kann bei der Änderung der Ansicht helfen (Jahr, Monat, Tag). Es wird in Japan, China, Nordkorea, Südkorea, Taiwan, Ungarn, Litauen und Iran verwendet und gilt in einigen europäischen und asiatischen Ländern als sekundär.  Tags: .NET, .NET, FastReport, FastReport ### Please participate in our survey URL: https://www.fast-report.com/de/news/survey-training-fastreport-vcl Summary: Please participate in our survey Please participate in our survey Загрузка... ### Plugin zum Import von Daten aus .XLSX in FastReport .NET URL: https://www.fast-report.com/de/blogs/plugin-import-excel-dotnet Summary: Wir erweitern die Anzahl der Datenquellen für FastReport .NET 2022.2 mit einem Plugin, um Dateien im Format zu verbinden .XLSX. Wir erweitern die Anzahl der Datenquellen für FastReport .NET 2022.2 mit einem Plugin, um Dateien im Format zu verbinden .XLSX. Wir erweitern die Anzahl der Datenquellen für FastReport .NET 2022.2 mit einem Plugin, um Dateien im Format zu verbinden .XLSX. Mit der Veröffentlichung von FastReport .NET 2022.2 wurde ein Plugin hinzugefügt, um .XLSX-Dateien als Datenquelle zu verbinden. Um es zu verwenden, muss ein Projekt im Voraus erstellt werden: С:\Program Files (x86)\FastReports\FastReport.Net\Extras\Core\FastReport.Data\FastReport.Data.Excel Nach dem Erstellen des Projekts müssen Sie das Plugin zur Anwendung auf eine der beiden folgenden Weisen hinzufügen. 1. Verbinden des Plugins über den Designer: 2. Fügen Sie das Plugin beim Starten des Projekts als Abhängigkeit hinzu und registrieren Sie es im Code mit dem folgenden Befehl: FastReport.Utils.RegisteredObjects.AddConnection(typeof(ExcelDataConnection)); Um eine Verbindung zu Excel herzustellen, klicken Sie im Designer auf die Registerkarte "Daten" und wählen Sie "Datenquelle hinzufügen". In dem nun erscheinenden Fenster klicken Sie auf die Schaltfläche "Neue Verbindung". Um eine Verbindung herzustellen, ist der Pfad zur .XLSX-Datei erforderlich. Wenn beim Zugriff auf die Datei keine Probleme auftreten, wird nach dem Klicken auf die Schaltfläche "Weiter" eine Liste mit Tabellen angezeigt. Wenn Sie eine Tabelle verbinden, müssen Sie das Kästchen links neben dem Tabellennamen ankreuzen. Anschließend können Sie die Verbindung beenden. Sobald die Datenquelle verbunden ist, müssen Sie ein Band daran binden. Der endgültige Bericht wird die Daten aus der hergestellten Excel-Verbindung verwenden. Beispiel einer Excel-Verbindung aus dem Code: ``` // ExcelDataConnection-Objekt erstellen var connection = new ExcelDataConnection(); // Verbindungszeichenfolge festlegen connection.ConnectionString = @"C:\Matrix With Rows Only.xlsx"; // Alle Tabellen initialisieren connection.CreateAllTables(); // Verbindungsname festlegen connection.Name = "NewConnection"; // Report-Objekt erstellen var report = new Report(); // Verbindung zum Bericht hinzufügen report.Dictionary.Connections.Add(connection); // Verbindungsanzeige aktivieren connection.Enabled = true; // Alle Tabellen auswählen und mit dem Bericht verbinden foreach (TableDataSource table in connection.Tables) { table.Enabled = true; } ``` Als Ergebnis der Ausführung dieses Codes kann eine neue Verbindung mit Tabellen im Designer angezeigt werden. Dies wird in der Liste der verfügbaren Verbindungen widergespiegelt. Es ist bemerkenswert, dass "Blatt"-Namen als Tabellennamen und Spaltenamen als Feldnamen verwendet werden. Wie Sie sehen können, ist es nun möglich, eine Excel-Verbindung herzustellen und die dort hinterlegten Daten zu verwenden. Tags: .NET, .NET, FastReport, FastReport, Excel, Excel, Designer, Designer, Plugin, Plugin, XLSX, XLSX ### PostgreSQL Datenbankverbindung in der .NET Anwendung URL: https://www.fast-report.com/de/blogs/connect-PostgreSQL-database Summary: Erfahren Sie, wie Sie durch die Npsql-Bibliothek gehen.die DLL im Plugin verbindet PostgreSQL für Ihr Projekt in FastReport .NET ohne die populären Fehler Erfahren Sie, wie Sie durch die Npsql-Bibliothek gehen.die DLL im Plugin verbindet PostgreSQL für Ihr Projekt in FastReport .NET ohne die populären Fehler Erfahren Sie, wie Sie durch die Npsql-Bibliothek gehen.die DLL im Plugin verbindet PostgreSQL für Ihr Projekt in FastReport .NET ohne die populären Fehler Unsere FastReport .NET verfügt über umfangreiche Optionen und ein großes Funktionsspektrum. Heute betrachten wir die Herstellung einer Datenbankverbindung über das FastReport-Plugin für den Berichtsdesigner. Dieses Plugin basiert auf der Npsql.dll-Bibliothek. Dazu müssen wir uns zunächst klar machen, wie ein Plugin für die FastReport .NET korrekt erstellt wird. Danach erstellen wir unsere Datenbankverbindung zum Bericht. Zuerst müssen wir ein Plugin erstellen, um eine Verbindung zu PostgreSQL herzustellen. Wechseln Sie dazu in das Verzeichnis, in dem Sie die FastReport.NET installiert haben, und folgen Sie diesem Pfad: Extras\Core\FastReport.Data\FastReport.Data.Postgres . Als nächstes öffnen Sie das FastReport.Data.Postgres.сsproj Projekt. Beim ersten Öffnen treten oft folgende Fehler auf: Machen Sie sich keine Sorgen. Um diese Probleme zu lösen, müssen Sie nur das FastReport-Projekt aus den Abhängigkeiten entfernen. Fügen Sie stattdessen eine Verknüpfung zu FastReport.dll hinzu, die sich im Ordner mit der installierten FastReport .NET befindet. Schritt 1. Entfernen Sie die Projektabhängigkeit. Schritt 2. Gehen Sie auf die Registerkarte „Links hinzufügen“. Schritt 3. Klicken Sie auf "Durchsuchen..." und gehen Sie ins Verzeichnis, in dem die FastReport.NET bereits installiert ist. Schritt 4. Wählen Sie die FastReport.dll aus der Dateiliste.  Schritt 5. Bauen Sie das Projekt und stellen Sie fest, dass alle Fehler verschwunden sind. Nachdem wir nun erfolgreich einen Verbindungskonnektor zu PostgreSQL erstellt haben, können wir den Konnektor mit dem Berichtsdesigner verbinden. Dies wird nicht schwierig sein. Öffnen Sie den Berichtsdesigner selbst, gehen Sie zu den Einstellungen und verbinden Sie die dll-Datei, damit unser Konnektor korrekt funktioniert. Folgen Sie dann dem folgenden Pfad: Extras\Core\FastReport.Data\FastReport.Data.Postgres\bin\Debug\net452 und wählen Sie die FastReport.Data.Postgres.dll Datei, die dem Projekt hinzufügt wird. Starten Sie anschließend den Berichtsdesigner neu und wählen Sie auf der Registerkarte "Daten“ den Punkt "Neue Datenquelle" aus. Klicken Sie nun auf "Neue Verbindung" und wählen Sie den Verbindungstyp PostgreSQL aus. Geben Sie die Verbindungsdaten ein und sehen Sie, wie die Verbindung korrekt hergestellt wird. In diesem Artikel haben wir betrachtet, wie man eine PostgreSQL-Datenbank mit dem Berichtsdesigner verbindet. Wie Sie sehen können, ist es in FastReport .NET sehr einfach, verschiedene Konnektoren zu erstellen und mit mehreren Datenbanken zu verbinden.   Tags: .NET, FastReport, Data Source, Plugin ### Presse über uns URL: https://www.fast-report.com/de/press_about_us Summary: Press about us Fast Reports. Press about us Fast Reports. Press about us Fast Reports Press about us Fast Reports. Press about us Fast Reports. Press about us Fast Reports Report server for small business — Reporting For Info The manager of reports — Reporting For Info ### Presse über uns URL: https://www.fast-report.com/de/publications Presse über uns 14. März 2021 #Windows-macOS-Linux Generate Powerful Reports Instantly With FastReport On Windows, macOS, And Linux FastReport VCL & FMX – is an add-on component that allows your application to generate reports swiftly and efficiently. FastReport gives all the essential tools to develop reports, including a visual report designer, a reporting core, and a preview window. It can be utilized in the Delphi, C++Builder, and RAD Studio environments. К источнику 28. Januar 2021 #Delphi Berichte unter Delphi von Windows nach Linux migrieren Ein Zwischenschritt macht die Migration einfacher. К источнику 29. Juni 2020 #Unusual-report Neue Schachtel Mithilfe des Visual Report Designers von FastReport .NET entsteht ein ungewöhnlicher Bericht: eine Arzneiverpackung. К источнику 8. April 2020 #Print-on-toilet-paper Druck aufs Toilettenpapier Was machen Sie nur mit Ihren großen Vorräten an Klopapier? Ein Vorschlag. К источнику 16. Dezember 2019 #Open-Source Reporting à la Open Source Wie Sie die Reporting Engine unter verschiedenen Plattformen nutzen. К источнику 14. Juli 2017 #Reports Das ZUGFeRD für Rechnungen Es ist kein Geheimnis, dass in Deutschland immer noch viel mit Papierunterlagen gearbeitet wird. Diese Art von Informationsaustausch braucht viel Zeit und viel Papier. Das ist schlecht für die Arbeit, noch schlechter für die Umwelt. Ein Weg zu weniger gedruckten Dokumenten ist der elektronische Austausch von Rechnungen zwischen Ersteller und Empfänger mit FeRD. К источнику 4. Mai 2017 #easy-report Report – Is it easy? In this article I won’t be comparing which is reporting tool is better. But I will try to explain by a simple example how to use FastReport VCL. К источнику 3. Februar 2017 #Generating-reports Generating reports in SAP NetWeaver with FastReport (tutorial)- Part 1 “Fast Report Inc” is a world – known company producing very fast and scalable reporting components for different platforms. Two years ago “Fast Report” presented a solution for SAP NetWeaver AS ABAP based systems. The solution includes components for ABAP stack, SAP GUI for Windows and a dedicated server for report generation. In three parts of my blog I will demonstrate and examine the main development steps according to different scenarios. К источнику info@fast-report.com Vertrieb sales@fast-report.com 800-985-8986 (Englisch, USA) +31 97 01025-8466 (Englisch, EU) +49 30 56837-3928 (Deutsch, DE) +55 19 98147-8148 (Portugiesisch, BR) Adresse Alexandria, VA 22314 66 Canal Plaza, Ste 505 Produkte Kaufen Demo Dokumentation Deinstallation Lizenzen Produkte Kaufen Demo Dokumentation Deinstallation Lizenzen Support SLA-Unterstützung Online-Support FAQ Anleitungsvideo Forum Artikel Nachrichen Support SLA-Unterstützung Online-Support FAQ Anleitungsvideo Forum Artikel Nachrichen Das Unternehmen Zum Unternehmen Identity Vertriebspartner Kontaktieren Sie uns Das Unternehmen Zum Unternehmen Identity Vertriebspartner Kontaktieren Sie uns Datenschutzbestimmungen Cookie-Bestimmungen © 1998-2026 Fast Reports Inc. Trustpilot Link erfolgreich kopiert ### Price of FastReport 4 URL: https://www.fast-report.com/de/news/price-fastreport-4 Summary: Price of FastReport 4 Price of FastReport 4 FastReport 4 editions  Basic   $79 Standard   $179 Professional  $249 Enterprise   $349 Upgrade from FR3 (purchase date after May 1st, 2006 is a FREE upgrade  to the same FR4 edition) Upgrade Basic   $39 Upgrade Standard   $99 Upgrade Professional   $139 Upgrade Enterprise   $199 Basic to Standard   $99 Basic to Professional   $169 Basic to Enterprise   $269 Standard to Professional   $69 Standard to Enterprise   $169 Professional to Enterprise   $99 ### Privacy Policy Statement URL: https://www.fast-report.com/de/cloud-privacy PLEASE READ THIS DOCUMENT CAREFULLY. IT CONTAINS IMPORTANT INFORMATION THAT YOU SHOULD KNOW BEFORE USING THE WEBSITE OR SERVICES. BY USING THE WEBSITE OR SERVICES, YOU WILL BE DEEMED TO HAVE ACCEPTED FAST REPORTS’ PRIVACY POLICY. Your use of the Website and Services (as each of these terms are defined in this Privacy Policy), including any dispute concerning privacy, is subject to this Privacy Policy. By using the Website or Services, you accept the practices set forth in this Privacy Policy and the Terms of Service. Fast Reports Inc. reserves the right to modify this Privacy Policy at any time by posting such changes on this page. Please check the revision date below to determine if this Privacy Policy has been modified since you last reviewed it. Your continued use of any portion of the Website or Services following posting of the updated Privacy Policy will constitute your acceptance of the changes. This privacy statement was last updated on March 12, 2021. Fast Reports Inc. and its affiliates (collectively, “Fast Reports”) have created this privacy statement in order to disclose its information gathering and dissemination practices for its website located at  https://fastreport.cloud/  (“Website”) and the services offered and provided through the Website (“Services”). Table of Contents Background Information Word from Fast Reports A. Information We Collect Information We Collect Through the Website User Content Providing Information to Fast Reports User Account Third Party Websites Third Party Applications Information Relating to Children California Online Privacy Protection Act Notice Cookies and Web Beacons B. Use and Disclosure of Information How your Information is Used Disclosure of Information to Third Parties Change in Control Disclosure of Information to Other Users Securing the Transmission and Storage and Storage of Information C. Choices Available to You D. Rights of European Users under the GDPR Data Controller Data Processor Consent Legal Basis for Processing GDPR Rights: Right of Confirmation Right of Access Right to Rectification Right to Erasure Right of Restriction of Processing Right of Data Portability Right to Objection to Automated Decision Making Right to Objection Processing Retention Policy Cross Border Data Transfers Data Protection Officer E. Privacy-Related Inquiries and Complaints Background Information Upon reading this Privacy Policy, you will be informed of the following: description of the types of personally identifiable information (yours and that of third parties) collected through the Website and Services; how the collected personally identifiable information is used; with whom the collected personally identifiable information may be shared; the choices available to you regarding the collection, use, and distribution of such information; security procedures that are in place to protect against the loss, misuse, or alteration of personally identifiable information under Fast Reports’ control; and instructions how you can access and correct inaccuracies in the information collected about you. A note about the Website and Services: some of our Services, data centers, service providers, affiliates or operating partners and servers may be located in other countries. As such, the Website and Services may be subject to the laws of numerous countries and jurisdictions, some of which may require us to disclose certain information about our users. We are committed to keeping your information private, while still complying with all applicable laws in jurisdiction in which we operate. Should you have any concerns or believe that there are problems or issues relating to compliance with the policies outlined in this Privacy Policy, please notify us by e-mail at:  info@fast-report.com A Word from Fast Reports Fast Reports has a strong commitment to providing superior service to all of our customers and visitors and particularly respecting their concerns about privacy. We understand that you may have questions about how the Website and Services collect and use your information. Accordingly, we prepared this statement to inform you of the privacy principles that govern the Website and Services (the “Privacy Policy”). We will not sell or rent your personally identifiable information or a list of our customers to third parties. However, as described in more detail below, there are limited circumstances in which some of your information may be shared with third parties, under strict restrictions, so it is important for you to review this Privacy Policy. This Privacy Policy contains numerous general and technical details about the steps we take to respect your privacy. We have organized this Privacy Policy by major processes and areas so that you can quickly link to the information of most interest to you. The bottom line is that meeting your needs and expectations forms the foundation of everything we do, including protecting your privacy. Changes in Privacy Policy We want you to always be aware of what personal and other information we collect, how we use that information, and under what circumstances we may disclose it. All personal information that we collect will be handled according to the Privacy Policy in effect at the time the information is collected. If the Privacy Policy changes in any significant respect in the meantime, we will not (without your permission) use your personal data in a manner that is inconsistent with the Privacy Policy in effect at the time your information was collected. From time to time, we may find the need to make changes to this Privacy Policy. This Privacy Policy may be amended by Fast Reports upon notice given through the Website or via e-mail. Please check the Privacy Policy published on this Website regularly to ensure that you are aware of all terms governing your use of this Website. A. INFORMATION WE COLLECT Information We Collect Through the Website This Website does not collect personally identifiable information from your computer when you browse the Website and request pages from our servers. This means that, unless you voluntarily and knowingly provide us with personally identifiable information, we will not know your name, your e-mail address, or any other personally identifiable information. When you request a page from our Website, our servers log the information provided in the HTTP request header, JavaScript or similar technical tools, including the IP number, the time of the request, the URL of your request and other information. We collect this information in order to make our Website function correctly and provide you the functionality that you see on the Website, as our servers use this information to deliver to you the pages on this Website. We also use this information to better understand how visitors use our Website and how we can better tune our Website, its contents, and functionality to meet your needs. However, this information is not associated with any personally identifiable information of persons browsing the Website. When you use the Website, Fast Reports or trusted third parties authorized by Fast Reports may also collect certain technical and routing information about your computer (also known as environmental variables) to facilitate your use of the Website and the Services enabled thereby. When you browse the Internet, your Internet browser (such as Mozilla Firefox, Google Chrome, Safari, Edge, or Microsoft Internet Explorer) automatically transmits some information to Fast Reports every time you access content on one of our internet domains. Examples of such information include the URL of the particular Web page you visited, the IP (Internet Protocol) address of the computer you are using, or the browser version that you are using to access the Website. All of this information may be collected by Fast Reports and used to help improve our offerings to you. User Content User Account holders may be permitted to upload certain content onto the Website and Services (“User Content”). This information shall be private and, except in accordance with this Privacy Policy, will not be disclosed to third parties without your prior permission. Providing Your Information to Fast Reports You never have to provide personally identifiable information to Fast Reports. However, should you choose to withhold certain required information, Fast Reports may not be able to provide you with some or all of the Services. Some of the information we ask you to provide may be identified as mandatory or optional. If you do not provide the mandatory information with respect to a particular activity, you may not be able to engage in that activity or make such a purchase. Fast Reports will inform you of the mandatory or optional nature of the requested or required information. Fast Reports is the sole owner of the information it gathers on the Website and Services. Fast Reports will only share your information with outside parties in ways that are described in this privacy statement or if we are required to do so by law or in the good-faith belief that such action is necessary in order to conform to the edicts of the law, cooperate with law enforcement agencies, or comply with a legal process served on us and otherwise to comply with any current or future laws and regulations applicable to Fast Reports. You may be provided an opportunity on the Website to allow Fast Reports to contact you from time to time regarding company news and product or Services updates. In order to do so, you may be required to provide certain personally identifiable information to Fast Reports. Fast Reports will treat this information in accordance with the policies set forth in this Privacy Policy. When you submit personal information to Fast Reports through the Website, you understand and agree that this information may be transferred across national boundaries and may be stored and processed in any of the countries in which Fast Reports and its affiliates and subsidiaries maintain offices. You also acknowledge that in certain countries or with respect to certain activities, the collection, transferring, storage, and processing of your information may be undertaken by trusted vendors of Fast Reports. Such vendors are bound by contract not to use your personal information for their own purposes or provide it to any third parties. Fast Reports may establish relationships with various service providers whose services may become available to you from the Website or from other websites that are linked to the Website. Typically, these providers would offer services that Fast Reports customers might find useful, such as those that can be used in conjunction with the Website and Services. In order to use these services, you may be required to provide personal information to the services providers. Unless expressly provided to the contrary, personal information that you provide while you are visiting a provider's website will be subject to the privacy policy posted on such site, and personal information that you provide while on the Website in conjunction with a provider’s service will be subject to this Privacy Policy. For instance, credit card information entered as part of the filling out the purchase form or registration process is collected by the third-parties registration services and subject to their respective privacy policies. You should be aware that our agreements with these service providers often provide that they will share with Fast Reports personal information collected from you. In such instances, Fast Reports may use this information in a manner consistent with this Privacy Policy. User Account When registering for a User Account or otherwise contacting Fast Reports in connection with your interest in purchasing Fast Reports products or services, Fast Reports may ask you to provide certain information. Such information may include your name, e-mail, and other personally identifiable information. It is completely optional for you to register for a User Account or engage in activities requiring a User Account or provide any personal identifiable information. However, certain information and proper identification may be required in order for you to engage in a business relationship with Fast Reports. Once you create a User Account, you will be deemed a Registered User. You may also request to change information associated with you User Account by contacting us at  info@fast-report.com . If you wish to deactivate your User Account, you may contact us at  info@fast-report.com . When you deactivate your personal account, all information stored and maintained as part of your account may be retained for archival, backup and record purposes. Third Party Websites The Website may contain links to websites owned and operated by third parties. These links are presented for your convenience and information. Fast Reports does not control these third-party websites and is not responsible for their privacy practices or content. Fast Reports does not control the information collection and distribution policies on such websites other than those that are under the control of Fast Reports itself. Content on third party websites may not reflect products, services, and/or information provided by Fast Reports. Third parties may also set their own cookies and/or use web beacons, which may be used to identify some of your preferences or to recognize you if you have previously had contact these third parties. Fast Reports does not control the use of such technology by third parties, the information they collect, or how they use such information. You should direct all concerns regarding any third-party website to the site administrator or webmaster of such website. Third Party Applications Fast Reports may make third party applications available to you through the Website or Services. The information collected by Fast Reports when you enable a third-party application is processed under this Privacy Policy. Information collected by the third-party application provider is governed by the provider’s privacy policies. Information Relating to Children The Children's Online Privacy Protection Act (COPPA) was passed by the U.S. Congress in November 1998. COPPA provides parents with specific rights regarding their children's privacy. For additional information and resources on COPPA, please visit the Federal Trade Commission Web site at  http://www.ftc.gov/ . The Fast Reports Website and any Software or Services available on that site are not directed at children under 13 years of age and, therefore, COPPA does not apply. However, we recognize that children under the age of 13 may potentially access this Website and subscribe to the newsletter, purchase Software and Services, or download software programs. The collection of information is covered above. Parents and Legal Guardians may request from us to review, delete or stop the collection of the personally identifiable information of their child. You may do so by contacting us by email at:  info@fast-report.com . California Online Privacy Protection Act Notice Fast Reports does not track users over time and across third party websites to provide targeted advertising and therefore does use do not track (DNT) signals. However, some third-party sites may keep track of your browsing activities when they serve you content, which enables them to tailor what they present to you. If you are visiting such sites, your web browser may allow you to set the DNT signal on your browser so that third parties (particularly advertisers) know you do not want to be tracked. Fast Reports does not authorize the collection of personally identifiable information by third parties and third parties cannot collect this information unless you provide it to them directly. Cookies and Web Beacons The Website uses “cookie” and “web beacon” technology. “Cookies” are short pieces of data generated by a web server that a website stores on a user’s computer. Certain pages on our Website may require the use of a cookie for purposes of keeping information you enter on multiple pages together. Cookies also enable us to customize our Website and offerings to your needs and provide you with a better online experience with us. In addition, cookies are used to: measure usage of various pages on our Website to help us make our information; more pertinent to your needs and easy for you to access; identify and categorized the internet webpages from which the visitor came to the Website and observe the browsing patterns; and provide functionality such as online orders, Fast Reports services and other functionality that we believe would be of interest and value to you. The types of cookies that we use are referred to as “session” cookies and “persistent” cookies. Session cookies are temporary and are automatically deleted once you leave the Website. Persistent cookies remain on your computer hard drive until you delete them. We do not use cookies to gather information concerning your visits to other websites, nor ascertain any personally identifiable information about you apart from what you voluntarily provide us in your dealings with Fast Reports. Cookies do not, under ordinary circumstances, corrupt or damage your computer, programs, or computer files. In addition, the service providers we use to serve and host our advertisements, and/or deliver our e-mails use session and persistent cookies, to track the number of times the Website is accessed and whether the site was accessed from an advertisement. There are no cookies in the advertisements or e-mails. A cookie is placed on your computer only if and when you click on an advertisement or open the e-mail. The cookie generated from the advertisement or e-mail does not contain any personally identifiable information and will remain on your hard drive until you delete it. You may set your browser to block cookies (consult the instructions for your particular browser on how to do this), although doing so may adversely affect your ability to perform certain transactions, use certain functionality and access certain content on our Website. Web beacons are used in combination with cookies to help website operators understand how visitors interact with their websites. A web beacon is typically a transparent graphic image (usually 1 pixel x 1 pixel) that is placed on a site. As opposed to cookies, which are stored on a user’s computer hard drive, web beacons are embedded invisibly on Web pages and are about the size of the period at the end of this sentence. These web beacons are not tied to personally identifiable information. The use of a web beacons allows the site to measure the actions of the visitor opening the page that contains the web beacon. It makes it easier to follow and record the activities of a recognized browser, such as the path of pages visited at a website. Fast Reports uses the information provided by web beacons to develop a better understanding of how the Website’s visitors use the Website, and to facilitate those visitors' interactions with the Website. Fast Reports may make the aggregate data obtained from web analytics (including from our third-party analytics providers, if applicable) publicly available. If this data is made available, none of the information will be personally identifying information or potentially-personally identifying information. B. USE AND DISCLOSURE OF INFORMATION How Your Personal Information is Used Fast Reports collects information from you in order to record and support your participation in the activities provided by Fast Reports We may use your e-mail address to send a confirmation e-mail when you sign up for a User Account and, if necessary, may use other information you provide to contact you for help to process the purchase or service you have selected. Your personal information also may be used to keep you informed about new services, service upgrades, special offers, and other Services. As described above, Fast Reports may collect information about your use of the Website and Services. This information is collected in aggregate form, without identifying any user individually. Fast Reports may use this aggregate, non-identifying statistical data for statistical analysis, marketing, or similar promotional purposes. Fast Reports recognizes and appreciates the importance of responsible use of information collected on this Website. Without your consent, Fast Reports will not communicate any information to you regarding the Website, Services, or special offers available from Fast Reports or its affiliates, although we may find it necessary to communicate with you regarding your use of the Website, or Services in certain limited circumstances. Except in the particular circumstances described in this Privacy Policy, Fast Reports will not provide your name to other companies or organizations without your consent. Disclosure of Information to Third Parties Although we will always strive to guard your identity, we may disclose your personally identifiable information without your permission in limited circumstances. We will only do so if we have a good-faith belief that disclosure is reasonably necessary to (1) comply with laws, regulations, or government requests or (2) to investigate or protect against harmful activities to our guests, visitors, associates, or property (including the Website or Services), or to others. If we are required by law enforcement or judicial authorities to provide your personally identifiable information, we will only do so upon receipt of appropriate documentation. We may also disclose your information to investigate violation of and enforce our Terms of Service. Please know that we do not take this responsibility lightly. Your privacy is of paramount importance to us. Fast Reports does use the services of third parties, such as e-mail service providers, purchase, shipping and order processing merchants and marketing companies that act as independent contractors on behalf of Fast Reports. These parties are contractually prohibited from using personally identifiable information for any purpose other than for the purpose Fast Reports specifies. We do provide non-personally identifiable information to certain service providers for their use on an aggregated basis for the purpose of performing their contractual obligations to us. We prohibit the sale or transfer of personal information to entities outside of the Fast Reports’ affiliates for their use without your approval. Change of Control In the event that all or substantially all of Fast Reports’ stock and/or all or substantially all assets are transferred or sold to another entity, Fast Reports may transfer personally identifiable information to the acquiring entity. If, as a result of such a business transition, your personally identifiable information will be used in a materially different manner, you will be given choice consistent with our policy regarding notification of changes. Securing the Transmission and Storage of Information Fast Reports operates secure data networks protected by industry standard firewall and password protection systems. Our security and privacy policies are periodically reviewed and enhanced as necessary, and only authorized individuals have access to the information provided by our users. Fast Reports takes steps to ensure that your information is treated securely and in accordance with this Privacy Policy. Unfortunately, no data transmission over the Internet can be guaranteed secure. As a result, while we strive to protect your personal information, we cannot guarantee the security of any information you transmit to us or from the Website or Services. Your use of the Website and Services is at your own risk. We treat the information you provide to us as confidential information; it is, accordingly, subject to our company’s security procedures and corporate policies regarding protection and use of confidential information. After personally identifiable information reaches Fast Reports, it is stored on a server with physical and electronic security features as customary in the industry, including utilization of login/password procedures and electronic firewalls designed to block unauthorized access from outside of Fast Reports. Because laws applicable to personal information vary by country, our offices or other business operations may put in place additional measures that vary depending on the applicable legal requirements. Information collected on the sites covered by this Privacy Policy is processed and stored in the United States and possibly other jurisdictions and also in other countries where Fast Reports and its service providers conduct business. All Fast Reports employees are aware of our privacy and security policies. Your information is only accessible to those employees who need it in order to perform their jobs. C. CHOICES AVAILABLE TO YOU You can always choose whether or not to disclose personally identifiable information and that choice will not prevent you from using the Website. Please note, however, if you should choose to withhold requested information, we may not be able to provide you with some of the Services dependent upon the collection of this information and you will be given an opportunity to “opt-in” and make your preference choices for any items that are optional and which are not prerequisite for our rendering such Services. You can choose at any time to opt-out of receiving emails from Fast Reports by clicking the unsubscribe link at the bottom of any email you receive from Fast Reports or by contacting Fast Reports directly at  info@fast-report.com . If you elect to opt-out, we will not, as applicable, share your personal information with third parties or send you emails. However, we may continue to use your personal information for internal purposes, to enhance your user experience or as necessary to administer the site or comply with applicable law. We reserve the right to send a one-time registration confirmation email, and infrequent service alert messages to users to inform you of specific changes that may impact your ability to use a service that you have previously signed up for, regardless of email contact opt-in status. We also reserve the right to contact you if compelled to do so as part of a legal proceeding or if there has been a violation of any applicable licensing, warranty and purchase agreements. Fast Reports is retaining these rights because in limited cases we feel that we may need the right to contact you as a matter of law or regarding matters that will be important to you. These rights do not allow us to contact you to market a new or existing Service if you have asked us not to do so, and issuance of these types of communications is rare. If you wish to opt out of receiving emails, the sharing or retention of any personal identification information, or otherwise change your personal preferences, you must contact Fast Reports at  info@fast-report.com To ensure that your request is honored, you must provide Fast Reports with information sufficient for us to accurately identify and access your records. The information we require is your full name, address and the email address you provided to Fast Reports when you requested Services or Software. Fast Reports reserves the right to contact you to verify that we have accurately identified your record. D. RIGHTS OF EUROPEAN USERS UNDER THE GDPR Fast Reports complies with the principles of Regulation (EU) 2016/679 of the European Parliament and of the Council “ On the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation)  (“GDPR”). If you are a natural person (“Qualified Individual”) of the European Union within the meaning of the GDPR, you are afforded certain additional rights by the GDPR as further described within this section. Data Controller When and if Fast Reports receives your personal information directly from you through its Website, it performs the functions of a Data Controller, as defined by the GDPR, and has the ability to determine how personal data is collected, for what purposes, and how this data is to be processed. As the controller, Fast Reports has implemented many technical and operational measures to ensure the most complete protection of personal data processed through its Website, and Services. Contact information for the Data Protection Officer can be found below. Data Processor Fast Reports processes your data in accordance with this Privacy Policy. Fast Reports uses industry standard safe guards to secure your information. Consent If you are a Qualified Individual, consents concerning your personal information are handled in compliance with the GDPR. Where and if consent requirements under this Privacy Policy conflict with the GDPR, the GDPR prevails if the regulation applies to you. Legal Basis for Processing Art. 6(1) a. of the GDPR serves as the legal basis for processing operations for which we obtain consent for a processing purpose. If the processing of personal data is necessary for the performance of a contract to which you are a party, as is the case, for example, when processing operations are necessary to provide a service, the processing is based on Article 6(1) b. The same applies to such processing operations which are necessary for carrying out pre-contractual measures, for example in the case of inquiries concerning our products or services. If our company is subject to a legal obligation by which processing of personal data is required, such as for the fulfillment of tax obligations, the processing is based on Art. 6(1) c. If the processing of personal data may be necessary to protect your vital interests or of another natural person, then the processing is based on Art. 6(1) d. Finally, processing operations could be based on Article 6(1) f., if processing is necessary for the purposes of the legitimate interests pursued by our company or by a third party, except where such interests are overridden by your fundamental rights and freedoms under the GDPR. GDPR Rights: 1. Right of Confirmation You may obtain confirmation of whether or not your personal data is being processed. If you wish to exercise your right of confirmation, you may contact Fast Reports and/or its Data Protection Officer. 2. Right of Access You may obtain from information about your stored personal data at any time and a copy of this information. If you wish to exercise your right of access, you may contact Fast Reports, and/or its respective Data Protection Officer. 3. Right to Rectification You may request the rectification of inaccurate personal data. Taking into account the purposes of the processing, you have the right to have incomplete personal data completed, by means of providing a supplementary statement. If you wish to exercise your right of rectification, you may contact Fast Reports and/or its respective Data Protection Officer. 4. Right to Erasure (Right to be Forgotten) You may request the erasure of your personal information by contacting Fast Reports and/or its respective Data Protection Officer. Furthermore, you may delete your User Account information by accessing your User Account settings page on the Applications. Please note that while any changes you make will be reflected in active user databases within a reasonable time, we may retain all information you submit for the prevention of fraud and abuse, analytics, satisfaction of legal obligations, or where we otherwise reasonably believe that we have a legitimate reason to do so, such as for archiving purposes within the public interest. 5. Right of Restriction of Processing You have the right to restrict processing where one of the following applies: The accuracy of the personal data is contested by the data subject, for a period enabling the Controller to verify the accuracy of the personal data. The processing is unlawful and the data subject opposes the erasure of the personal data and requests instead the restriction of their use instead. The controller no longer needs the personal data for the purposes of the processing, but they are required by the data subject for the establishment, exercise or defense of legal claims. The data subject has objected to processing pending the verification whether the legitimate grounds of the controller override those of the data subject. 6. Right to Data Portability You may request to receive your personal data in a structured, commonly used and machine-readable format. You have the right to transmit this data to another controller without interference. Furthermore, you may have the personal data transmitted directly from one controller to another, where technically feasible and does not adversely affect the rights and freedoms of others. 7. Right to Object to Automated Decision Making You may object to decisions based solely on automated processing, including profiling, which produces legal effects or similarly significantly affects you, as long as the decision is not is necessary for entering into, or performance of, a contract between you and Fast Reports; or is not authorized by European Union or Member State law to which you are subject; or is not based on the data subject’s explicit consent. 8. Right to Objection to Processing You may object to the processing of your personal data, unless there are legitimate grounds for the processing within the public interest, or for the establishment, exercise or defense of legal claims. If Fast Reports processes personal data for direct marketing purposes, you shall have the right to object at any time to the processing of your personal data for such marketing. This applies to profiling to the extent that it is related to such direct marketing. If you object to Fast Reports to the processing for direct marketing purposes, then we will no longer process the personal data for these purposes. Retention Policy We only retain the personally identifiable information about you for as long as your User Account remains active or for a limited period of time as long as we need it to provide you with services or otherwise fulfill the purposes for which we have initially collected it, unless otherwise required by law. We will retain and use information as necessary to comply with our legal obligations, archival purposes, resolve disputes, and enforce our agreements. Cross Border Data Transfers If and when sharing of information involves cross-border data transfers, for instance to the United States of America and other jurisdictions. Where the Applications allow for users to be located in the European Union, their personal information is transferred to countries outside of the EU. We use EU Standard Contract Clauses or other suitable safeguards to permit data transfers from the EU to other countries. The Standard Contractual Clauses commit companies transferring and receiving your personal information to protecting the privacy and security of your data. E. PRIVACY RELATED INQUIRIES AND COMPLAINTS Fast Reports takes and addresses its users’ privacy concerns with utmost respect and attention. If you believe that there was an instance of non-compliance with this Privacy Policy with regard to your personal information or you have other related inquiries or concerns, you may write or contact Fast Reports at email:  info@fast-report.com In your message, please describe in as much detail as possible the nature of your inquiry or the ways in which you believe that the Fast Reports Online Privacy Policy has not been complied with. We will investigate your inquiry or complaint promptly. If you are a Qualified Individual, you may lodge a complaint with the data protection supervisory authority in the country where you live if you are unsatisfied with how your complaint is handled by Fast Reports. Please note that if you provide Fast Reports with inconsistent privacy preferences (for example, by indicating on one occasion that third parties may contact you with marketing offers and indicating on another occasion that they may not), Fast Reports cannot guarantee that your most recent privacy preference will be honored. Copyright © 2021 Fast Reports Inc. All rights reserved. The Website, Services, and all documentation are the copyrighted property of Fast Reports Inc. and/or its licensors and protected by copyright laws and international intellectual property treaties. FastReport® and related logo, and all related Product and service names, design marks and slogans are the trademarks and/or registered trademarks of Fast Reports Inc. and/or its affiliates. All other product and service marks contained herein are the trademarks of their respective owners. Any use of the Fast Reports Inc. or third-party trademarks or logos without the prior written consent of Fast Reports Inc. or the applicable trademark owner is strictly prohibited. ### Privater NuGet-Server von Fast Reports URL: https://www.fast-report.com/de/blogs/private-nuget-server Summary: Wir sprechen über unseren eigenen NuGet-Paketspeicher, einen Fast Reports-Server, der über verschiedene Quellen verbunden ist. Wir sprechen über unseren eigenen NuGet-Paketspeicher, einen Fast Reports-Server, der über verschiedene Quellen verbunden ist. Wir sprechen über unseren eigenen NuGet-Paketspeicher, einen Fast Reports-Server, der über verschiedene Quellen verbunden ist. Im Artikel über den Umgang mit NuGet-Paketen haben wir alle Besonderheiten bei der Verwendung  der Fast Reports-Software erläutert. Eine der häufigsten Fragen unserer Kunden lautet:  Wie können wir Ihre Lizenzpakete in unserem Produkt unter Linux, MacOS oder Windows installieren. Müssten wir gleichzeitig die neueste Version der FastReport-Produkte nicht manuell mit einem von der Webseite heruntergeladenen Installationsprogramm installieren, das nur unter Windows funktioniert?  Wir würden gerne dafür eine universelle Lösung in Form vom unseren privaten Fast Reports NuGet-Server anbieten. Was ist das und wozu? Fast alle Pakete, die Sie in Ihren Projekten verwenden, befinden sich im öffentlichen Package Registry -  NuGet Gallery ( nuget.org ). Dort finden Sie auch verschiedene Demoversionen unserer Pakete, aber es gibt dort keine von unseren Paketen ohne Demo-Einschränkungen. Deswegen haben wir die Entscheidung getroffen, ein eigenes Package Registry zu erstellen, das nur für Fast Reports-Kunden verfügbar ist. Um darauf zuzugreifen, müssen Sie dementsprechend über ein Fast Reports-Konto verfügen (mit diesem Konto können Sie auf  cpanel.fast-report.com  zugreifen, um das Produkt- Installationsprogramm herunterzuladen). Hinzufügen einer Quelle Wir werden uns verschiedene Optionen für das Hinzufügen unseres NuGet-Servers ansehen: .NET CLI Visual Studio Visual Studio for Mac Rider nuget.exe CLI NuGet.Config Docker Doch zunächst sollte man die Unterschiede zwischen globalen und lokalen NuGet-Konfigurationen erläutern. Global und local NuGet.Config Betrachten wir, wie in Ihrem Projekt verwendete Pakete wiederhergestellt werden: 1) NuGet sucht im Cache nach den benötigten Paketen 2) NuGet sucht nach den erforderlichen Paketen in allen Quellen, die der NuGet.Config-Datei hinzugefügt wurden, wobei: a) NuGet greift auf die lokale NuGet.Config-Datei zu b) NuGet greift auf die globale NuGet.Config-Datei zu Die lokale NuGet.Config-Datei befindet sich neben Ihrem Projekt. Die dort hinzugefügten Quellen werden daher nur für die Wiederherstellung dieses Projekts verwendet. Die globale NuGet.Config wird dagegen für alle Projekte auf diesem Computer verwendet. Dies ist jedoch nicht bei allen Projekten erforderlich. Speicherort der globalen NuGet.Config: Windows: "C:\Users\{Benutzername}\AppData\Roaming\NuGet\NuGet.Config" MacOS: "~/.config/NuGet/NuGet.Config" Linux: “~/.config/NuGet/NuGet.Config” Dementsprechend sollten der Servername und -adresse und Ihre Angaben (E-Mail mit Passwort für diesen Server) gemäß der NuGet-Spezifikation in die NuGet.Config-Datei (oder nuget.config) eingetragen werden, die sich an einem für Sie günstigen Ort befindet. Speichern des Passworts in verschlüsselter und unverschlüsselter Form Die NuGet.Config-Datei kann das Quellpasswort sowohl in verschlüsselter Form als auch im ClearTextPassword-Format speichern. In den meisten Fällen wird empfohlen, das Passwort in verschlüsselter Form zu speichern, wobei die Verschlüsselung über externe Umgebungseinstellungen (Betriebssystem, Computerkonfiguration usw.) erfolgt. Wenn Sie also diese Konfigurationsdatei auf einen anderen Rechner übertragen, kann das angegebene Passwort nicht entschlüsselt werden, und Sie erhalten keinen Zugriff auf die Quelle. Dies muss bei der Entscheidung, wie die Quelle hinzugefügt oder aktualisiert werden soll, berücksichtigt werden. Als Nächstes sehen wir uns die wichtigsten Möglichkeiten zum Hinzufügen unserer Quelle zu NuGet an und geben das Betriebssystem an, das mit dieser Methode kompatibel ist. Wir werden uns auch die verfügbaren Konfigurationstypen und das Format zum Speichern des Quellpassworts ansehen. .NET CLI: (jedes Betriebssystem, jede Konfiguration, jede Art der Passwortspeicherung) Für diese Methode muss das .NET Core SDK 3.1.200 und höher (einschließlich .NET SDK 5 und höher) installiert sein. Geben Sie in der Befehlszeile folgendes ein: dotnet nuget add source https://nuget.fast-report.com/api/v3/index.json --name [Wählen Sie einen Quellennamen ohne Leerzeichen, z. B.: fr_nuget] --username [Email-Adresse Ihres Fast Reports-Kontos] --password [Passwort für Ihr Fast Reports-Konto] Standardmäßig fügt dieser Befehl die Quelle zur globalen NuGet.Config hinzu, aber Sie können den Speicherort der Konfigurationsdatei auswählen und sie mit dem Parameter --configfile [Pfad zur Konfigurationsdatei] lokal machen. Das Quellpasswort ist standardmäßig verschlüsselt, und um das Passwort in unverschlüsselter Form zu speichern, müssen Sie den Parameter--store-password-in-clear-text verwenden. Beispiel: ``` dotnet nuget add source https://nuget.fast-report.com/api/v3/index.json --name fr_nuget --username myaccount@fast-report.com --password 1234Password5678 ``` Weitere Informationen zu dieser Methode zum Hinzufügen einer Quelle finden Sie auf der Microsoft-Website. Microsoft Visual Studio: (Windows, globale Konfiguration, verschlüsseltes Passwort) Betrachten wir das Hinzufügen eines NuGet-Servers am Beispiel von Microsoft Visual Studio 2022. Es ist wichtig zu beachten, dass diese Methode ab Visual Studio 2017 funktioniert . Wählen Sie im Menü "Tools", dann "NuGet Package Manager" aus und öffnen Sie das Fenster ‘Package Manager Settings’. Wählen Sie dann links ‘Package Sources’ aus und drücken Sie auf die Schaltfläche + (add). Geben Sie in das Feld ‘Name’ den Quellennamen ohne Leerzeichen (z.B. FastReport-NuGet) und in das Feld ‘Source’ die Quelladresse https://nuget.fast-report.com/api/v3/index.json ein. Klicken Sie auf die Schaltfläche ‘ОК’ und gehen Sie dann zum Fenster zum Hinzufügen von Paketen. Wählen Sie aus dem Dropdown-Menü ‘Package source’ die soeben hinzugefügte Quelle aus. Geben Sie dann Ihre Fast Reports-Kontodaten in das Dialogfeld ein und klicken Sie auf “Mein Passwort speichern”. Microsoft Visual Studio for Mac: (macOS, globale Konfiguration, verschlüsseltes Passwort) Nehmen wir Microsoft Visual Studio for Mac 2019 als Beispiel. Wählen Sie ‘Project’ im Menü aus und öffnen Sie das Fenster ‘Manage NuGet Packages…’. Wählen Sie unten im Dropdown-Menü ‘Package source’ den Punkt ‘Configure Sources…’ aus. Klicken Sie auf Add und geben Sie in das Fenster folgende Daten ein: - Name: Quellenname ohne Leerzeichen (z.B. FastReport-Nuget); - Location: https://nuget.fast-report.com/api/v3/index.json ; - Username: Email-Adresse des Fast Reports-Kontos; - Password: Passwort für das Fast Reports-Konto. Bestätigen Sie das Hinzufügen der Quelle mit der Schaltfläche ‘Add Source’. JetBrains Rider: (jedes Betriebssystem, globale Konfiguration, verschlüsseltes Passwort) Nehmen wir Rider 2021.3 auf Linux Ubuntu 18.04 als Beispiel. Gehen Sie zum Menü ‘Tools’, ‘NuGet’ und wählen Sie ‘Show NuGet Sources’ aus. Klicken Sie im NuGet-Fenster unter ‘Sources’ neben ‘New feed’ auf +. Geben Sie die notwendigen Daten ein: - Name - Quellenname ohne Leerzeichen (z.B. FastReport-Nuget); - URL - https://nuget.fast-report.com/api/v3/index.json ; - User - Email-Adresse des Fast Reports-Kontos; - Password - Passwort für das Fast Reports-Konto. Nuget.exe CLI: (jedes Betriebssystem (macOS/Linux benötigt Mono 4.4.2 oder höher), jede Konfiguration, jede Art von Passwortspeicherung) Die Installation von nuget.exe  ist auf der Microsoft-Webseite ausführlich beschrieben. Im Folgenden werden nur die wichtigsten Punkte behandelt. nuget sources add -name [Wählen Sie einen Quellennamen ohne Leerzeichen, z. B.: fr_nuget] -source “https://nuget.fast-report.com/api/v3/index.json” -username [Email-Adresse Ihres Fast Reports-Kontos] -password [Passwort für Ihr Fast Reports-Konto] Standardmäßig fügt dieser Befehl die Quelle der globalen NuGet.Config hinzu, Sie können jedoch den Speicherort der Konfigurationsdatei auswählen und sie mit dem Parameter -ConfigFile (Pfad zur Konfigurationsdatei) lokal machen. Grundsätzlich wird das Quellenpasswort verschlüsselt, um das Passwort in unverschlüsselter Form zu speichern, verwenden Sie den Parameter -StorePasswordInClearText Beispiel: ``` nuget sources add -name fr_nuget -source “https://nuget.fast-report.com/api/v3/index.json” -username myaccount@fast-report.com -password 1234Password5678 ``` Weitere Informationen zu dieser Methode zum Hinzufügen einer Quelle finden Sie auf der Microsoft-Website. Edit NuGet.Config: (jedes Betriebssystem, jede Konfiguration, unverschlüsseltes Passwort) Wichtig! Mit dieser Methode können Sie Passwort für Ihr Fast Reports-Konto nur in unverschlüsselter Form angeben , weil die Konfigurationsdatei eine einfache XML-Datei ist. Sie kann mit jedem Texteditor geöffnet oder erstellt werden. Im ‘packageSources’ Block müssen Sie unsere Ressource mit dem gewählten Namen hinzufügen (Leerzeichen sind unerwünscht), z.B.: ``` ``` Fügen Sie Ihre Email-Adresse zum ‘packageSourceCredentials’ Block und das Passwort für das Fast Reports-Konto zum Block mit dem gleichen key hinzu: ``` ``` Am Ende sollten Sie eine ähnliche Konfigurationsdatei erhalten (andere Quellen sind aus dem Beispiel entfernt): ``` ``` Docker:  (jedes Betriebssystem, jede Konfiguration, unverschlüsseltes Passwort) In Dockerfile müssen Sie bei der Erstellung eines Docker-Images eine Quelle entweder mit der.NET CLI hinzufügen oder die vorgefertigte NuGet.Config-Datei in den Docker-Container verschieben. Verwenden wir als Beispiel die .NET-CLI in einer Dockerfile, um die Quelle hinzuzufügen. ``` FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build ARG username ARG pass RUN dotnet nuget add source https://nuget.fast-report.com/api/v3/index.json --name fr_nuget --username $username --password $pass --store-password-in-clear-text ``` Wenn Sie nun den Befehl docker build ausführen, übergeben Sie einfach die erforderlichen Parameter: ``` docker build -f "./DockerTestProject/Dockerfile" --force-rm --build-arg username=myaccount@fast-report.com --build-arg pass=1234Password5678 -t dockertest:latest ``` Achtung! Diese Methode der Weitergabe von geheimen Schlüsseln und Passwörtern ist nicht sicher. Über die korrektere Übergabe von Passwörtern als Docker-Build-Argumente können Sie  im zugehörigen Material lesen. Login/Passwort aktualisieren Wenn sich Ihre Kontodaten geändert haben, müssen Sie sie auch in der NuGet-Konfigurationsdatei aktualisieren. Betrachten wir die folgenden Möglichkeiten: .NET CLI; nuget.exe CLI; NuGet.Config. In JetBrains Rider und Microsoft Visual Studio for Mac erfolgt die Änderung von Benutzerdaten ähnlich wie das Hinzufügen , mit dem einzigen Unterschied, dass Sie die bereits hinzugefügte Quelle aktualisieren müssen. Wenn die Verbindung über Docker nach der oben genannten Methode des Hinzufügens erfolgt, müssen Sie nur die Benutzerdaten beim Erstellen des Containers aus Dockerfile ändern. .NET CLI: (jedes Betriebssystem, jede Konfiguration, jede Art von Passwortspeicherung) Für diese Methode muss das .NET Core SDK 3.1.200 und höher (einschließlich .NET 5 und höher) installiert sein. Geben Sie in der Befehlszeile folgendes ein: dotnet nuget update source [Name der zuvor hinzugefügten Quelle, z.B.: fr_nuget] --username [Email-Adresse Ihres Fast Reports-Kontos] --password [Passwort für Ihr Fast Reports-Konto] Es wird davon ausgegangen, dass dieser Befehl die Quelle ändert, die zur globalen NuGet.Config hinzugefügt wird. Sie können jedoch den Speicherort der Konfigurationsdatei mit dem Parameter –configfile (Pfad zur Konfigurationsdatei) auswählen. Standardmäßig wird das Quellpasswort verschlüsselt, um das Passwort unverschlüsselt zu speichern, verwenden Sie den Parameter --store-password-in-clear-text. Weitere Informationen zu dieser Methode zur Aktualisierung der Quelle finden Sie auf der Microsoft-Website . Nuget.exe CLI: (jedes Betriebssystem (macOS/Linux benötigt Mono 4.4.2 oder höher), jede Konfiguration, jede Art von Passwortspeicherung) Die Installation von nuget.exe  ist bereits ausführlich beschrieben worden. Es lohnt sich nur, einen Blick auf die Schlüsselpunkte zu werfen. nuget sources update -name [Name der zuvor hinzugefügten Quelle, z.B: fr_nuget] -username [Email-Adresse Ihres Fast Reports-Kontos] -password [Passwort für Ihr Fast Reports-Konto] Grundsätzlich ändert dieser Befehl die Quelle, die zur globalen NuGet.Config hinzugefügt wird. Sie können jedoch den Speicherort der Konfigurationsdatei mit dem Parameter -ConfigFile (Pfad zur Konfigurationsdatei) auswählen. Standardmäßig wird das Quellpasswort verschlüsselt, um das Passwort unverschlüsselt zu speichern, verwenden Sie den Parameter -StorePasswordInClearText. Weitere Informationen zu dieser Methode zur Aktualisierung der Quelle finden Sie auf der Microsoft-Website . Edit NuGet.Config: (jedes Betriebssystem, jede Konfiguration, unverschlüsseltes Passwort) Öffnen Sie die erforderliche NuGet.Config-Datei mit einem beliebigen Texteditor. Ändern Sie im Block ‘packageSourceCredentials’ mit dem Namen der zuvor hinzugefügten Quelle die Werte von “Username” und “ClearTextPassword” auf erforderliche Werte. Wenn Sie den Block "Password" anstelle von "ClearTextPassword" haben, ersetzen Sie ihn einfach durch “ClearTextPassword”. Am Ende soll es so aussehen: ``` ``` Weitere Informationen zum Herunterladen von Paketen Standardmäßig sehen Sie in der Schnittstelle Ihrer IDE alle Pakete, die in der privaten NuGet-Quelle von Fast Reports heruntergeladen sind. Um das ausgewählte Paket herunterzuladen, müssen Sie jedoch die folgende Bedingung erfüllen: Wenn das Paket nicht öffentlich verfügbar ist (wie FastReport.Compat, Demoversionen von FastReport.Core, FastReport.Net.Demo usw.), müssen Sie über das erforderliche Abonnement verfügen, um die neuesten Versionen dieser Pakete herunterladen zu können. Um beispielsweise FastReport.Core herunterzuladen, müssen Sie mindestens ein FastReport .NET Standard (einschließlich Professional, Enterprise oder Ultimate) Abonnement haben, um FastCube.Core herunterzuladen, müssen Sie mindestens ein FastCube .NET Standard (einschließlich Professional oder Ultimate) Abonnement haben, usw. Wiederherstellung von Paketen bei abgelaufenen Abonnements  Wenn Ihr Abonnement abläuft, können Sie die Fast Reports-Paketquelle weiterhin nutzen, haben aber keinen Zugriff auf die neueste Paketversion. Also wird die letzte verfügbare Paketversion durch die folgende Bedingung bestimmt: Veröffentlichungsdatum der ausgewählten Version < Ablaufdatum des berechtigten Abonnements Wichtig! Wenn Sie versuchen, ein Paket herunterzuladen, dessen Veröffentlichungsdatum nach dem Ablaufdatum Ihres berechtigten Abonnements liegt, gibt Ihnen der Fast Reports NuGet-Server die letzte verfügbare Version des Pakets entsprechend Ihrem Abonnement. Wir raten jedoch davon ab, auf eine nicht verfügbare Paketversion zu verlinken, da dies zu einer Warnung bei der Wiederherstellung des Projekts führt und den Download des Pakets verzögert. Tags: .NET, MacOS, FastReport, Upload, NuGet ### Proud to hire with Jooble! URL: https://www.fast-report.com/de/news/hiring-with-jooble Summary: Proud to hire with Jooble! Proud to hire with Jooble! Knowing FastReport and being able to work with reporting and DB is an essential skill on the job market for business software developers. We are determined to ensure that using FastReport solutions will always guarantee finding a job easily. The quintessential purpose of Jooble is to connect those who seek jobs with those who offer it. Being "Google" in a job search industry Jooble manages to aggregate all the vacancies from open sources into one compact user-friendly interface that gives access to jobs that are not yet listed on popular platforms or hidden behind the corporate websites. Another important thing is that Jooble does not claim jobs for its own. It is necessary to go to employers' website in order to apply which is crucial for driving additional traffic and reducing hiring process time. Jooble's initiative to help people find jobs all over the world fits well with our own aim to bring reporting to another level. Thus we are glad to announce our partnership with Jooble to help increase awareness about this area of programming and boost the quality level of specialists looking for data visualisation jobs . ### Publisher: perfekte Lösung für kleine und mittlere Unternehmen URL: https://www.fast-report.com/de/blogs/publisher-solution-for-business Summary: In diesem Artikel sehen wir uns detailliert an, wie diese Dienste zur Lösung verschiedener Benutzeranforderungen beitragen, damit Sie die passende Lösung für Ihre Bedürfnisse auswählen können. In diesem Artikel sehen wir uns detailliert an, wie diese Dienste zur Lösung verschiedener Benutzeranforderungen beitragen, damit Sie die passende Lösung für Ihre Bedürfnisse auswählen können. Die FastReports Lösungen zur Erstellung, Speicherung und Übertragung von Dokumenten wurden um eine Neuentwicklung erweitert. Ab Mai 2025 wurden sie um neue Produkte wie die Cloud, der Corporate Server und der Publisher erweitert. In diesem Artikel sehen wir uns detailliert an, wie diese Dienste zur Lösung verschiedener Benutzeranforderungen beitragen, damit Sie die passende Lösung für Ihre Bedürfnisse auswählen können. Die FastReports Lösungen zur Erstellung, Speicherung und Übertragung von Dokumenten wurden um eine Neuentwicklung erweitert. Ab Mai 2025 wurden sie um neue Produkte wie die Cloud, der Corporate Server und der Publisher erweitert. In diesem Artikel sehen wir uns detailliert an, wie diese Dienste zur Lösung verschiedener Benutzeranforderungen beitragen, damit Sie die passende Lösung für Ihre Bedürfnisse auswählen können.  FastReport Cloud Die FastReport Cloud bietet eine Reihe von Diensten zur Erstellung verschiedener Dokumente und Berichte aus Textvorlagen und Datenquellen (Postgres, MS SQL, Firebird, XML, CSV und andere) für die anschließende Bearbeitung. Es wird als SaaS verteilt, d.h. der Benutzer muss sich nicht um die Zuweisung von Computerressourcen, die Bereitstellung der Lösung und den weiteren Support kümmern. Es genügt, einen Arbeitsbereich einzurichten, und Sie können sich wichtigeren Aufgaben und zwar der Erstellung von Geschäftsberichten widmen.  Sie können die FastReport Cloud mit Ihren Anwendungen oder Diensten integrieren, unabhängig davon, welche Programmiersprache bei der Entwicklung verwendet wird. Sie können eine Verbindung von einem Projekt aus in den folgenden Sprachen herstellen: C#, Java, Kotlin, PHP, JavaScript, Angular, Python, Go, Cpp.  Unter diesem Link  können Sie eine kostenlose Version herunterladen und mit der Nutzung der Cloud beginnen.  Viele große Unternehmen bevorzugen es jedoch, die volle Kontrolle über alle Prozesse zu haben und benötigen einen Berichtsserver vor Ort. Dies ist auf Sicherheitsanforderungen, Datenspeicherung und eine große Anzahl von Endbenutzern (oder Integration mit ihren Lösungen) zurückzuführen. In solchen Fällen ist der Einsatz eines Corporate Servers die richtige Lösung. FastReport Corporate Server Es handelt sich um einen skalierbaren dedizierten Server zum Erstellen und Speichern von Dokumenten. Er unterstützt die Zusammenarbeit: Sie können mehrere Benutzer hinzufügen, und jeder kann auf den Arbeitsbereich zugreifen: Vorlagen, Berichte, Datenquellen und andere Ressourcen.  Mit dem Berechtigungssystem des Corporate Servers können Sie verschiedene Zugriffsebenen für Team- oder Gruppenmitglieder festlegen. Während eine Benutzergruppe neue Dokumentvorlagen erstellt, erstellt eine andere Gruppe Berichte aus Vorlagen im PDF-Format. Der FastReport Corporate Server enthält alle Werkzeuge für sicheres Arbeiten: private Dateierstellung und -speicherung, sichere Anmeldung, Zugriffskontrolle und OpenID-Authentifizierung. Gleichzeitig befindet sich die gesamte Infrastruktur in der Client-Schleife. Sie können die Erstellung von Dokumenten und Berichten flexibel verwalten und dabei die Sicherheitsrichtlinien des Unternehmens berücksichtigen. Mit erweitertem Support helfen unsere Experten Ihnen, den FastReport Corporate Server schnell und effizient in Ihrem System einzurichten und vollständig in Betrieb zu nehmen. So können Sie in kürzester Zeit mit der Berichterstellung beginnen! Im Falle von Ausfällen bieten wir auch die Unterstützung bei der Wiederherstellung der Funktionalität. Geben Sie Ihre Daten unter diesem Link  ein und unser Team wird sich mit Ihnen in Verbindung setzen, um ein maßgeschneidertes Angebot zu erstellen, das vollständig auf Ihre spezifischen Bedürfnisse zugeschnitten ist.  Wenn die Anforderungen für die Bereitstellung aller Softwarelösungen in einer eigenen Schleife beibehalten werden, die Anzahl der Benutzer jedoch gering ist und es keine Notwendigkeit besteht, einen Cluster zur Verarbeitung einer großen Anzahl von Dokumenten zu erstellen, können Sie die dritte Lösung und zwar den Publisher auswählen. FastReport Publisher Der FastReport Publisher besteht aus einer Web-Schnittstelle für den Umgang mit Berichten, einem Online-Designer und den grundlegenden FastReport Funktionen. Der Publisher kann mit anderen Unternehmenssystemen (CRM oder ERP) integriert werden, um Berichte automatisch zu erstellen und zu verteilen. Außerdem stehen Ihnen Funktionen zur Verwaltung von Zugriffsrechten zur Verfügung. Dies macht den Publisher zu einem nützlichen Werkzeug für Unternehmen, die ein zentrales Berichtsverwaltungssystem über eine einzige Schnittstelle benötigen. Auf dieser Seite können Sie eine Testversion erhalten, unser Team stellt Ihnen alle notwendigen Zugriffe zur Verfügung.  Publisher oder Corporate Server – wo liegt der Unterschied? Der FastReport Publisher ist eine schlankere und kostengünstigere Version des Corporate Servers, die die meisten notwendigen Funktionen beibehält und die Möglichkeit bietet, bei Bedarf nahtlos auf die ältere Version des Produkts umzustellen. Die Unterschiede zwischen dem Publisher und dem Corporate Server finden Sie in der Tabelle unter diesem Link. Der Publisher ist zudem einfach zu installieren und erfordert keine Kenntnisse im Umgang mit Orchestratoren (Kubernetes). Er wird mit einem Installationsassistenten mitgeliefert, der dabei hilft, die Konfiguration Schritt für Schritt für die weitere Arbeit einzurichten und die Lösung in der Docker-Compose-Umgebung mit einem Mausklick zu starten. Publisher Corporate Server Preis ab 1.990 € ab 9.650 € Starten mit Docker Ja Ja Web-Schnittstelle Ja Ja Rest-Schnittstelle (web api) Ja Ja Möglichkeit zum Erstellen und Anzeigen von Berichten Ja Ja Online-Designer (Möglichkeit, den Designer innerhalb der Web-Schnittstelle zu verwenden) Ja Ja Möglichkeit, eine Verbindung über den Desktop-Designer herzustellen  Ja Ja Planungsprogramm, Fähigkeit, Aufgaben planmäßig auszuführen Nein Ja Zugriff auf den Bericht über einen Link gewähren Nein Ja Starten in Kubernetes Nein Ja Skalierbarkeit (Fähigkeit des Systems, steigende Belastungen zu bewältigen, wenn Ressourcen hinzugefügt werden) Nein Ja OpenID-Authentifizierung Nein Ja Benutzergruppen (Differenzierung der Zugriffe und Berechtigungen) Ja* Ja Anzahl der Arbeitsbereiche 1 2 (nachkaufbar) Anzahl der Datenquellen 3 Unbegrenzte Anzahl  Anzahl der Benutzer 15 Unbegrenzte Anzahl  Anzahl der Systemadministratoren 1 3 (nachkaufbar) *Es sind nur voreingestellte Gruppen verfügbar: Eigentümer, Alle Benutzer, Anonyme Benutzer. Neue Gruppen können nicht erstellt werden. Detaillierte Anweisungen zur Verwendung dieser Produkte finden Sie  in unserer Dokumentation. Schlussbemerkung FastReports Produkte sind vorgefertigte Dienste, Client-Server-Systeme und Softwaren zur schnellen Datenvisualisierung und automatischen Ausführung von Informationsverarbeitungsaufgaben. Wählen Sie die Lösung, die zu Ihrem Unternehmen passt: Erstellen Sie Berichte auf externen Servern oder in Ihren eigenen geschlossenen Schleifen. Für diejenigen, die sich nicht mit Orchestratoren auseinandersetzen und schnell eine vorgefertigte Lösung haben möchten, empfehlen wir den FastReport Publisher .  Um die richtige Lösung für Sie zu finden, kontaktieren Sie bitte unser Vertriebsteam unter sales@fast-report.com . Unser Team hilft Ihnen gerne jederzeit weiter! Tags: FastReport, Cloud, Publisher, Corporate Server ### QR-Code mit einem Bild in FastReport .NET erstellen URL: https://www.fast-report.com/de/blogs/net-qrcode-image Summary: Der Artikel hat herausgefunden, wie man ein Bild in den QR-Code des Berichtsdesigners FastReport .NET in nur wenigen Klicks einfügt. Der Artikel hat herausgefunden, wie man ein Bild in den QR-Code des Berichtsdesigners FastReport .NET in nur wenigen Klicks einfügt. QR-Codes werden immer beliebter, um Informationen zu speichern und weiterzugeben. In Berichten und Dokumenten können sie für den schnellen Zugriff auf Websites, Kontakte, Produktdaten und mehr verwendet werden. QR-Codes werden immer beliebter, um Informationen zu speichern und weiterzugeben. In Berichten und Dokumenten können sie für den schnellen Zugriff auf Websites, Kontakte, Produktdaten und mehr verwendet werden.  FastReport .NET ist eine leistungsstarke Bibliothek zum Erstellen von Berichten in .NET-Anwendungen. Damit können Sie nicht nur Text- und Grafikberichte erstellen, sondern auch dynamische Elemente wie QR-Codes integrieren. In diesem Artikel wird beschrieben, wie man einen QR-Code mit einem Bild in FastReport .NET erstellt, um die visuelle Darstellung von Berichten zu verbessern und ihre Funktionalität zu erhöhen. Zunächst müssen Sie einen normalen QR-Code im Designer erstellen. Gehen Sie dazu zur Werkzeugpalette Elemente und wählen Sie „Strichcode“ > „2D“ > „QR Code“. Nachdem Sie den QR-Code platziert haben, gehen Sie zu seinen Eigenschaften und setzen Sie die Eigenschaft ErrorCorrection auf H. Mit dieser Eigenschaft werden Fehler mithilfe des Reed-Solomon-Codes behoben. Sie kann die folgenden Werte annehmen: L (low – 7%), M (medium – 15%), Q (25%), H (high – 30%). Der Standardwert ist L. Die Redundanz (Fehlerkorrektur) ist zum korrekten Lesen der Daten erforderlich, wenn das Codebild teilweise beschädigt ist oder ein Bild darüber aufgebracht wird. Als nächstes erstellen Sie ein PictureObject , in dem Sie das Bild mit dem Logo platzieren. Jetzt können Sie Ihr Bild auf dem QR-Code selbst platzieren. Der QR-Code wird richtig gelesen. Wir haben also herausgefunden, wie Sie ein Bild in Ihren QR-Code einfügen können. Mit dem FastReport Berichtsdesigner ist es mit ein paar Klicks möglich. Beispielsweise können Sie einen QR-Code mit dem Bild einsetzen, um auf einem Smartphone eine offizielle Webseite schnell zu öffnen. Wenn Sie Fragen haben, wenden Sie sich bitte an unser Support-Team . Viel Spaß bei der Nutzung! Tags: .NET, FastReport, Barcode, Designer, QR Code ### Quick look on minimal FastReport.NET report URL: https://www.fast-report.com/de/blogs/quick-look-minimal-net Have you ever noticed how a report template transformed to the prepared report? Let's look onto code of a very simple report: The single page. The single band on the single page. The single text field on the single band. Let's story it to the report template file: ```   ```  So we have minimal report with single text string on the gray background. Let's do preview of this report And source code of prepared report: ```   ``` Report template stored in prepared report within section . All constant attributes are taken from the section by transforming references via section . For example, refers to the same element in section . An attribute  "name" of element of section is set to value "Page0". By some reason we need increment a number within page name. Now we have name of element within section - it is "Page1". Therefore we link the element in section with the element in section by matching the property "name". Tags: .NET, .NET, FastReport, FastReport ### RAD Studio Reporting with Fast Reports URL: https://www.fast-report.com/de/news/webinar-studio-reporting-2014 Summary: RAD Studio Reporting with Fast Reports RAD Studio Reporting with Fast Reports RAD Studio Reporting with Fast Reports See what’s new with FastReport and FastCube VCL and FMX You’re invited to join Embarcadero with Fast Reports’ Michael Philippenko and Den Zubov for two new webinars on reporting for RAD Studio, Delphi and C++Builder developers. Webinar 1: New Report Generator for Delphi FastReport VCL 5 Thursday, May 22, 2014 6AM San Francisco / 9AM New York / 2PM London / 3PM Milan 11AM San Francisco / 2PM New York / 7PM London / 8PM Milan 5PM San Francisco / 23-May 9AM Tokyo / 23-May 10AM Sydney FastReport VCL is a modern solution for integrating Business Intelligence in your software. Topics covered in this webinar include: What is new and how to use it in FastReport VCL 5 New kinds of report interactivity News in objects and properties Changes in web-reporting and more! Webinar 2: FastCube VCL 2 and New FastCube FMX - OLAP Components for your Software! Tuesday, June 3, 2014 6AM San Francisco / 9AM New York / 2PM London / 3PM Milan 11AM San Francisco / 2PM New York / 7PM London / 8PM Milan 5PM San Francisco / 4-June 9AM Tokyo / 4-June 10AM Sydney FastCube enables you to analyze data and to build summary tables (data cut-offs) as well as create a variety of reports and graphs both easily and instantly. In this webinar you will learn: What is new in FastCube VCL 2 What the difference in VCL and FMX versions How to estimate performance of FastCube on your own data and application ### RAD Studio Reporting with FastReport URL: https://www.fast-report.com/de/news/webinar-rad-studio-2012 Summary: RAD Studio Reporting with FastReport RAD Studio Reporting with FastReport Join  our webinar! Topics covered will include:  • FastReport RAD Edition - what i t i s and how to use it  • Migration of reports from QuickReport and Rave Reports to FastReport  • Introduction to data analysis and presentation with FastCube.  All registered Delphi, C++Builder and RAD Studio XE2 users who attend the webinar will get a free copy of FastCube Embarcadero Edition! (if you have n’t already receive d it from an earlier promotion) . Webinar's language - English . ### RAD Studio-Berichterstellung mit schnellen Berichten - Fragen und Antworten - Teil I URL: https://www.fast-report.com/de/blogs/rad-studio-fastreport-fmx-vcl Thanks a lot all attendees of our webinar with Embarcadero Technologies. We hope than you are got new useful information and as usually publishing questions and answers from this event. Q: Can an Excel report include formulas? A: Not yet, but we're planning to implement such feature. Q: A program may have many responsibilities, many steps, report-generation being only one of them. After generating the report, the program should be able to continue on immediately with its remaining responsibilities, with no left-over impact on the program's available memory and CPU time. So, is it possible to detach a report from the program that generated it? A: You can create reports in threads. Q: Can you force FastReport 5 to respect XLS/XLSX worksheet cell boundaries (e.g., EVERY cell in column B has exactly the same width), so that each (non-empty) worksheet cell contains exactly one value of the appropriate type (number, text, date, etc.), and each worksheet column is sized to fit? A: Sorry, not clearly understand what do you mean. Q: Can you design a report to fit cleanly into Excel cells, one value per cell, without page boundaries? A: Yes, we have matrix export to excel so each object will be in separate cell. Q: is there an upgrade path for EDN version to pro? A: Delete Embarcadero Edition. And setup Pro one Q: Question for David. When do we expect XE7 ???? A: When it's done. ;-) Q: will all these exports be available with the XE6 version of Fast Reports? A: Do you mean Embarcadero edition ? Q: Question for David. When do we expect XE7 ???? A: https://edn.embarcadero.com/article/43677 Check out the roadmap. Q: Yes the embarcadero Edition not Pro A: No, XE6 uses FR4 version. We're planning to deploy FR5 starts from XE7. Q: I assume the code and events are not available with the Embarcadero version? A: Yes, the script is not available in EDN version. You can always look at differences between editions here Q: I have an issue with Barcodes ... when I try to print a Barcode type Code 39 trough FR4 and when I assign a short number like a 1 .. I can't read with a barcode scanner ... do you know why happen this ? A: This can be because of printer resolution. You can try to set Zoom property or BarWideRatio property. Q: Oops... part 2. The web-report needs to export to pdf A:  Live Demo is available on our web-site - with export to pdf:  Q: Can you please show us how to incorporate a FR report into a Windows Service application. The application is multi-threaded so the report must be thread-safe. A: Not just now :) Anyway you need Enterprise Edition for web-reporting Q: Are there example reports included with FR4? Learn by example, easier to modify a report that almost does what I want, would make it easier to get into. A: Yes, the main demo has a lot of report. You don't need even to install components to try them. You can find compiled demo with reports here  Q: Where in XE5 or 6 is FR demo reports (actual srce reports, not compiled). A: If you need an examples about how to use Fast Report from code you can find them in Demo folder after install components. But if you need only to see report , the main demo will work. It has a designer and report templates, so you can always open any template and see how it works. Q: Where in XE5 or 6 is FR demo reports (actual srce reports, not compiled). A: FR4 install can be found in the registered user download area via EDN downloads menu Q: I'm still a bit confused. What exactly comes withe XE6? Is the VCL version FR4? Is the FMX version the same as the FMX 2 they show on their web site, or is it an older version? What exactly comes free with XE6? A: FR4 VCL & FMX comes with XE6 Q: I realize you are showing the VCL version. Does the FMX version work pretty much the same way? Important differences? A: Just another good question :) Here you can see comparison table of different Fast Reports - FMX and VCL More over: compare possibilities of FastReport FMX for different OS So difference is present. Q: Upgrade or new license when you update from the free be in XE6 to FR5? A: You can compare prices on the FastReport site - to move to FR5. Q: I see the prices for the products as you've shown them, but the real question is "Is there an upgrade price to move from Embarcadero to the FR5, or do you essentially get a new license with Fast Reports?" A: It is really new license Q: Can we use C++ script in FR5? A: Yes, there are 4 types of script languages C++/pascal/Basic/JavaScript. Q: Are there any restrictions on the use FastReport 5 in C++ Builder compared with Delphi? We Thanks. A: Absolutely the same. Q: Will you be offering a "Distinct Count" function in a group section ? A: No such function - you can do this at the SQL statement level. Q: How about my Distinct Count question from above ? A: Added to ours TODO list. Q: Crystal Report has distinct count A: Thanks Q: Along with SUM AVG COUNT A: Thanks Q: Are you planning to include Logfont? A: No plans for now. Q: Currently when I tried to declare Logfont: TLogFont; it raised an error "Unknown type TLogFont". Are there plans to support TLogFont? A: Do you mean in Fast Script ? Fast Script unfortunately doesnt support structures. Q: yes in FastReport events coding A: Unfortunately you can't. Structures arent supported in Fast Script yet. Q: Is there a difference between the FastReport included with Rad Studio and the paid versions from FastReport? A: Yes, compare Q: why is fast report designer so different from fast report.net A: Because there are two absolutely different products :) Q: I thought fast Reprot will now have something like Fast Report .NET but so i dont think so , i would rather enjoy working on fastreport.net A: There are two different products. With vary possibilities, platform, etc. Many customers waited these features. Q: i meant highlighting by condition Q: is the highlight feature restricted to cell only or can they be extended to row as well A: Are you mean interactive of highlighting by conditions? Q: but you said its intended for those who have used fast report and do you really think they are so naive A: There are many changes which you can see in examples only :) Interactivity, web, etc. We think that our customers - professional developers who really can estimate new features :) Q: I licensed the XE4 FR but am moving to FMX for new stuff - why not include both like EMB does? A: FR4 comes with XE6 Q: did I miss the comparison with MS-SQL Reports - I heard it asked but not answered A: We have not direct comparison with VCL, but there are something like Q: I there a limitation to use with Interbase Togo Embedded ? Use one or two connexion ? A: IBLite is only for mobile and limited to one connection. IBToGo is not limited on # of connections. Q: If use Fast Report into a Database Rad Studio application, Fast Report share the connection or need is separate connection ? A: It can share. Q: Which version are coming with XE7? A: Fast Report 5 Q: Can the VCL and FMX version coexist? A: Yes Q: Is there a way to convert existing FastReport 4 reports to version 5? A: You do not need convertor. There are converting on a fly - when you opening in FR VCL 5 Q: FastReport has a upgrade for embarcadero edition to full edition? A: No, Embarcadero edition is free version for RAD Studio users. We don't have any upgrades from this version. Q: FastReport has a upgrade for embarcadero edition to full edition? A: There are no any discount for Embarcadero Edition customers. Q: web-reporting is datasnap reporting??? A: No, its an internal components. Q: Can you show an example using a dialog page with object tfrxDBLookupComboBox ? A: Not ready just now. Remind us - we will prepare it and may be place to our demo and on our youtube also Q: Can Report Builder reports be converted? A: Yes, we have a module ConverterRB2FR.pas you need to include it in uses section of your application. And after that you can use LoadFromFile method in TfrxReport component to load Rave report. Q: what about a .NET version? A: All is good with .Net version :) You are welcome Q: Can FR4 & FR5 coexist? A: No Q: I have a bunch of Rave Reports embedded into applications (not used the form designer). How easy is it going to be to convert these? A: We have a module ConverterRR2FR.pas you need to include it in uses section of your application. And after that you can use LoadFromFile method in TfrxReport component to load Rave report. Q: Thanks on the RAve Reports question A: :D Q: can we see crystal converter in action A: You can download on web-site :) By the way wait for 5.1 version soon - it will improved Q: Is FR5 in RAD Pro XE6 and or Delphi XE6 Pro? A: FR5 Embarcadero Edition will come with XE7. Q: Is FR5 in RAD Pro XE6 and or Delphi XE6 Pro? A: Yes, It supports starts From Delphi 7 and up to XE6. Q: It seems the webinar is for people already using fastreport, but around 50% of the audience never used fastreport. How about some getting started information... A: Yes, we didnt expect such many new people. The video is for people who already using FR4 and shows the differences between versions. There are will be enough to place FRXReport component on your application form and doubleclick - very easy to start and create first report. It takes about ten minutes. I can offer just now our Youtube channel with short lessons  Anyway we will prepare soon something like "FastReport - getting started" Q: Can you supply some links to getting started information, examples and the likes? Or will there be another webinar for beginners? A: Of corse you can take a look at our youtube chanel  Q: Does the conversion happen based on file extension or an internal version number? Is there a new default extension for FR5 reports? A: FR5 uses old file extensions and determinate version by internal version number. Q: I just tried to run the Crystal Converter and it hangs on open - never even shows anything... A: Not all the versions of CR supports now Q: When you announced a updated designer for FR5, I expected a litte bit more face lift of the gui. But it seems that it still has XP style. A: It still supports D7 - that is why Q: Will XE7 be supported by FR4? A: No. Q: Can the end user of our software create it's own reports? (run time report builder) A: Yes, there are report designer for end-users - you can provide it to your customer Q: does it also work in C++. If yes, is the scripting also in C++ ? A: Yes, it is compatible with C++Builder. You can setup it to C++Builder. It is supported as well with full functionality Q: Can the end user of our software create it's own reports? (run time report builder) A: Yes - you can use a runtime report designer and call if from your application. This lets users to create reports. Also as developer you can set restrictions for what the customer/user can do in the reports you deliver with your app. Developers have custom control for their users. Q: what about Active Report Converter ? A: We don't have such convertor , yet. But this version works with not all the CR versions yet, will be updated with FastReport 5.1 Q: What should be the minimum XE version in order to use FastReport? A: Did you mean FastReport Embarcadero Edition? - it comes with every XE*. And also all other editions of FastReport support all Delphi XE* (from XE to XE6) Q: I'm using Delphi XE with QuickReport. Can I migrate to Fast Reports on Delphi XE or I need to upgrade to a newer version? A: QuickReport and FastReport are not compatible.  You can convert visual part of the report by using ConverterQR2FR.pas module. Just add it in uses section and use LoadFromFile method of TfrxReport component. But we do not know - what kind of reports did you use, not all possible to convert. Anyway you will need convert reports and remake some parts of the reports manually(Like script and expressions). We recommend use new component (FastReport) in new projects. Q: Is it possible to automatically convert Fastreport.VCL => Fastreport.NET reports? A: Conversion is possible. Same layout. Code/logic is not converted. Q: From my experience, converters aren't really an option for automatic conversion. It should be done manually. A: Yes, some parts like expressions or scripts should be converted manually. Converters can convert only visual parts. Q: What is the user experience developing reports in Fast Reports .NET compared to Fast Reports VCL. Is it similar or there are significant differences? A: If you mean "architecture" - there are absolutely different, but we are trying to make them as close as possible. Q: Fast Reports is really good reporting tool. Too bad it wasn't the part of Delphi in earlier versions. It would save us much time :-). A: :D Q: how much does it cost to upgrade from fr4? A: This depends on your edition. Go to the customer page and you'll see the upgrade price./info Q: It's ok for me that you think about building a FMX version. But can I be sure that the main focus still stay on VCL? This is very important form me! A: We are working on VCL as well as on FMX. Updates coming soon Q: Are there some changes in FR5 that belongs to UniCode. I have some applications that also use unicode (Chinese etc.). Sometimes I had problems, that not all windows fonts are supported well... A: Starts from Delphi 2010(first unicode Delphi version) Fast Report completely supports unicode. Q: Are there any issues when creating reports in threads... A: Yes, you can find more information in Fast Report Programmers manual. Part «1.22 Multithreading». Q: Charts are not working here too. Recompile will not bring the success... I use the newest fast reports enterprise and the newest teechart vcl components (including source)... A: Can you write to support@fast-report.com with discription of the error ? Q: Using the recompile wizard only provide TeeChart 4 to TeeChart 9 the actual version is TeeChart 2014. What should I select? Is TeeChart 2014 supported? A: Tee Chart 9 Q: Why are Denis not join DDD in Germany? A: We should code, make updates, fixes, answer support questions. Denis coming to Be-Delphi in Antwerp, Belgium, DDD Piacenza, Italy and DDD  Amsterdam, Netherlands at 10th-12th of June. (Done) Q: Tred to install, trial but too little disk space for it :-( A: Ok - thanks Alf. Time for a 4TB hard drive :) We're planning to change our installation tool soon, so 3+TB problem will be fixed Q: Do new Fastreport run on Delphi 2006 or only last versions of Delphi? A: Yes, FastReport VCL supports Delphi 2006 also Q: THis is perfect timing as I am converting reports from Qucik Report to Fast Report now. A: Great! Q: A reliable way to convert even simple Rave reports is a major requirement - if we had that now we would move to fast Reports today! A: Yes, you can use ConverterRR2FR.pas module. just include it in app uses section. And use LoadFromFile method of TfrxReport component. Q: ConverterRR2FR didn't even convert simple Rave reports I'm afraid A: We will reconstruct it soon. There are some problems with it. Q: Migration courses would be great. A: We will prepare. Q: The webinar seems to be concentrating on the new features in the product rather than how a new user can set up a basic report. Is this how the webinar will continue? A: Yes, this webinar is showing features of the new version. We didnt expect so many people not familiar with Fast Report. Q: Is there a reliable way to convert Rave reports to Fast Reports? A: Yes, you can use ConverterRR2FR.pas module. just include it in app uses section. And use LoadFromFile method of TfrxReport component. Q: As I said before ConverterRR2FR does not work on even simple Rave reports. Please let me know when a reliable conversion program will be available. A: We will fix it in FastReport VCL 5.1 very soon. Q: OK - youtube channel looks interesting and yes a basic reporting webinar would be good. A: Ok. Q: Are there any training courses available in Europe? A: Yes. We will run training day in Belgium 10th of June on Be-Delphi basis and with Be-Delphi help. See on Be-Delphi.com web-site. Q: Will the training in Belgium be in English? A: Yes, English Q: As I said before ConverterRR2FR does not work on even simple Rave reports. Please let me know when a reliable conversion program will be available. A: Can you send some of the Rave reports you have to us on support@fast-report.com ? Maybe you have different version of Rave report. We will chuck what we can do. Q: I can send some of our Rave reports but I have sent questions to the email you supplied before and I never got an answer to any of them. Can you provide a specific name and email address please? A: You can write directly to me at den@fast-report.com Q: There is an opportunity to gain many customers, like us, who are using other reporting tools. We need reliable converters and basic training - can you please provide both? A: Well. We will make some "migration courses" Q: Fast report is a great product, i use it a lot. Can you add a new little feature in the designer, i want to be able to focus the tool box when i press the enter key on a component. This will speed up when i need to change component name. Thanks A: Thank you for idea Q: Sorry, question to david i, can i have a grouping and ungrouped object feature like the one in Fast Report Designer :D A: (Y) :) Q: Are there published rules for manual conversion A: Not yet Q: I just noticed that FR5 report files also have the .fr3 extension; so, how can we tell what's using the new format and what is not (for downward compatibility with FR4.X)? A: We have a version number stored in the report file. Q: Do reports written in FR4.x need to be converted? A: No, all old FR4 reports will be converted on the fly when load old report file. Q: Is there limitations for converting Report Builder ? A: You can convert visual part only. Q: I have 3 computers I use for programming: my office pc, home pc and a laptop. It is needless to say that I don't use all computers at the same time; only one at any given point in time. Having said that, can I buy a single license and install it on all three of my computers. I'm sure you know that RAD Studio allows you to do that (I think on up to 5 computers). A: The same situation with FastReport Q: It is FR5 VCL stable enough to use it in real applications? :) A: Yes, more over. Soon we will run v.5.1 with some fixes. Q: is there an updated version of Fast Reports for the version that came with XE5. I have problems with charts not working. the last comment I got on forum was a new version has fix. So how do I update the XE5 embarcadero fastreport version? Thanks! A: FrxChart object has source codes you can always recompile it manually. But yes, we'are panning to update EDN versions this week , because it has some new fixes. Q: I have not used fast reports. How can you add this to a delphi App? A: Just add TfrxReport component from Fast Report components palette on the form and after you can call report designer by double clicking on the component. Q: I have not used fast reports. How can you add this to a delphi App? A: Just place "FRxreport" component to your application form and doubleclick it :) Q: is there a converter from Report Builder to Fasr Report? A: Yes, you can use ConverterRB2FR.pas module. just include it in app uses section. And use LoadFromFile method of TfrxReport component. Q: where is this converter? A: You can find it in Fast report LibDXX folder. Q: We need fastreport on IOS and ANDROID when will get? its so important... A: We are still considering support of IOS, but we faced some issues when started migration. But it's still possible that we make Ios version of Fast Report FMX. Thanks a lot for good questions! Anyway you can write us anytime. Tags: VCL, FireMonkey, FMX, FastReport ### Ratschläge zur Beschleunigung der Berichterstellung URL: https://www.fast-report.com/de/blogs/advices-accelerating-report-creation Summary: Erhalten Sie nützliche Tipps zur Beschleunigung der Berichterstellung in FastReport. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Erhalten Sie nützliche Tipps zur Beschleunigung der Berichterstellung in FastReport. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Erhalten Sie nützliche Tipps zur Beschleunigung der Berichterstellung in FastReport. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Today I would like to talk about some of the techniques to accelerate the development of the report. We are all accustomed to the drag & drop technology. Most often in such a way, the developers adds controls and field from the tables to the reports page. But you forget that you can drag more than one object, but several. For example, the fields of the table. Click on the desired field, and then, holding the Ctrl key mark the other. As a result, you have a few selected data fields. Now you can drag them pulling any of the selected fields. Also, instead of Ctrl, you can use the Shift key. This selects all elements located between the first marked field and second. Considered way for adding data to a report page is actual for any element from the "Data" window: the data, functions, variables, results. For example, let's drag and drop some fields from the table Emploee to the "Data" band: And now. Add a dialog form into the report . You can rapidly create filters on the fields of the table. For this "drag" on the shape of the field from the data tree. For example HireDate. We got control DateTimePeacker related with field HireDate. Now the data will be automatically filtered for the selected date. We add in the same way another filter -  the field FirstName: In this case, we can choose the type of the added components: • TextBox; • MaskedTextBox; • ComboBox; • CheckedListBox; • ListBox; • DataSelector. Any of these components can perform a role of a filter. You can enter the name manually in the TextBox. Or choose from a drop-down list. A DataSelector or CheckedListBox allow to select multiple names. By the way, if you change the ListBox SelectionMode property to MultiSimple, it is also possible to select multiple items to filter. Added filter can be changed to suit your needs. FilterOperation field allows you to select the type of filtering. It can be full compliance with the selected item from the list, or do not match, and others. These simple tips can help you to speed up work on the creation of reports, as well as a simplified manual labor. Tags: .NET, FastReport, Desktop, Designer ### Rave convertor URL: https://www.fast-report.com/de/blogs/rave-to-fastreport-convertor As you know, Embarcadero RAD Studio XE2 is coming with the special edition of FR4. Many people have been asking us: is it possible to convert Rave reports (.rav files) to Fast reports (.fr3 files)? It is possible, because we have developed a convertor from Rave reports for this purpose. How to convert a .rav file From a user's point of view, to convert a .rav file no special actions needed: just click File > Open in the main menu of the designer and then choose a .rav file. If you are a developer and want to know how to enable the ability to import .rav files, then consider this code: Code ``` program RaveImport;   uses frxClass, frxDesgn, ConverterRR2FR;   begin TfrxReport.Create(nil).DesignReport; end. ``` Once this program is launched, the report designer appears and its File > Open dialog will offer to open .rav files as well as .fr3 files. Note, that in order to compile this program, you need to have Rave installed, or just have its .pas or .dcu files available to the compiler. What Rave reports can be imported The convertor supports the most of components that can appear in a Rave report, including database connections. Those Rave components that have no direct representation in Fast Reports, are converted to components with the closest behaviour. Here is an example of a complex Rave report converted to an .fr3 file: The process of importing When you click the File > Open menu item and choose a .rav file, the convertor at first checks how many reports are inside the file. If there are several reports inside the file - Rave allows to have multiple reports in a single file - then each report will be converted to a fr3 file and the convertor will ask to choose a folder where all these .fr3 files can be saved: After that the convertor will start processing each report and during this stage, which can be quite long for big .rav files with numerous reports inside, the following progress bar will be shown: When all reports converted, the last created .fr3 file is shown in the designer: Notes Some old versions of Rave have certain issues with loading numerous big SQL queries, which may result in memory corruption and undefined behaviour of the convertor. To avoid such problems, the convertor provides the property LoadQueries which can be disabled in order to skip loading SQL queries. However, if the convertor is compiled with newer Rave sources, no problems should occur. Links This topic is discussed on our forum in this topic. There you can also find a test app that can convert .rav files. As you know, Embarcadero RAD Studio XE2 is coming with the special edition of FR4. Many people have been asking us: is it possible to convert Rave reports (.rav files) to Fast reports (.fr3 files)? It is possible, because we have developed a convertor from Rave reports for this purpose. How to convert a .rav file From a user's point of view, to convert a .rav file no special actions needed: just click File > Open in the main menu of the designer and then choose a .rav file. If you are a developer and want to know how to enable the ability to import .rav files, then consider this code: Code Tags: VCL, FastReport, Converter ### RDL import in FastReport .NET URL: https://www.fast-report.com/de/blogs/rdl-import-fastreport-net What is the RDL import RDL  report it's a report template in format of  Report Definition Language . The format used in  Microsoft Reporting Services . Reports can be generated in  Microsoft Visual Studio  and  Microsoft Report Builder , and in some third-party editors. Reports are stored in files with extension  rdl  or  rdlc .  RDL  import it's a tool that allows you to open  RDL  report in  FastReport. NET  designer. Users who have previously used the  RDL  reports and went to  FastReport. NET  can use old templates. Reports can be quickly and easily imported to FastReport .NET.  Importing RDL report It's simple operation. You should to go to the  File  menu in  FastReport .NET  desinger and select  Open... . In the window that appears, select the filter  RDL files (*. rdl; *. rdlc) . The selected file will be automatically converted to a FastReport. NET  template and opened in the designer.  On the two following pictures you can see  RDL  report (left) and the same report converted to  FastReport. NET  format. Tags: .NET, .NET, FastReport, FastReport ### Rebranding of FastReport Studio and release of FastReport for COM/ActiveX v.4.9 URL: https://www.fast-report.com/de/news/fastreport-business Summary: Rebranding of FastReport Studio and release of FastReport for COM/ActiveX v.4.9 Rebranding of FastReport Studio and release of FastReport for COM/ActiveX v.4.9 1. From the version 4.9 FastReport Studio has new name. From now FastReport Studio Developer Edition names FastReport for COM/ActiveX, FastReport Studio Business Edition - FastReport for Business. These names more storng describe targets of products. 2. 11 of July FastReport for COM/ActiveX and FastReport for Business v.4.9 released What news? + pictures format in all exports switched to PNG It gives possibilities to use all the preferences of the PNG-formats, like quality, alpha-channels, size (in BIFF and HTML). Also it solves problems with preview on Apple-devices. + added export to DBF format - it can be use for data exchange of modules of different business applications + added new property ExpandDrillDown to IfrxReport interface - it allows control DrillDown reports programmatically Version 4.9 ------- - fixed bug in the PDF export in rotating texts 90, 180 and 270 degrees - fixed bug in the ODF export in processing of headers and footers - fixed bug in the Text export in computing object bounds - fixed bug in the ODF export in UTF8 encoding - fixed hiding gridlines around nonempty cells in the BIFF export + added property TfrxODFExport.SingleSheet + added property TfrxSimpleTextExport.DeleteEmptyColumns - fixed images bluring when exporting + optimised merging cells in the BIFF export - fixed word wrapping in the Excel XML export - fixed bug in XML export with the ShowProgress property - fixed bug in RTF export with font size in empty cells - fixed bug in ODF export with UTF8 encoding of the Creator field - fixed bug in XML export with processing special characters in strings - fixed bug in ODF export with properties table:number-columns-spanned, table:number-rows-spanned - fixed bug in ODF export with the background clNone color - fixed bug in ODF export with a style of table:covered-table-cell - fixed bug in ODF export with table:covered-table-cell duplicates - fixed bug in ODF export with excessive text:p inside table:covered-table-cell - fixed bug in ODF export with language styles - fixed bug in ODF export with spaces and tab symbols - fixed bug in ODF export with styles of number cells - fixed bug in ODF export with the background picture - fixed bug in ODF export with charspacing - fixed bug in ODF export with number formatting - fixed bug in ODF export with table-row tag - fixed bug in XLS(OLE) export with numbers formatting - fixed bug in RTF export with processing RTF fields - fixed bug with processing special symbols in HTML Export - fixed bug with UTF8 encoding in ODF export - fixed bug in PDF export with underlined, struck-out and rotated texts ### Recursion in MS SQL URL: https://www.fast-report.com/de/blogs/recursion-mssql Sometimes, a stored procedure or function is required to use the results of a sample several times. In such cases, we often use temporary tables. However, it is worth considering some advantages and disadvantages of temporary tables. Advantages: Temporary tables are full tables. Therefore, you can create indexes and statistics for them. This can significantly speed up work with them. Disadvantages: Filling in a temporary table associated with the movement of data. Although it is a simple Insert operation, there is still a load on the disks with large amounts of data; There is a risk of increased query execution time. Temporary tables are created in the tempdb database. And the load on this base is substantial. Considering the risks of using temporary tables, the use of a generic table expression looks much more attractive. Generic table expression Common Table Expression (CTE) is an expression with a common table that can be used many times in a query. The CTE does not save data, but creates something like a temporary view. Some may say that a CTE is a subquery that precedes the main query. But this is not entirely true, because the subquery cannot be used several times, however, CTE can. In which cases is it better to use a generic table expression? 1. To create recursive queries, with which you can get data in a hierarchical form; 2. With multiple references to the data set within the same query; 3. In order to replace views, temporary tables, table variables. The advantages of CTE include: recursion, high speed query, concise query. And the disadvantages can be only in the limited use. A CTE can only be used for the query to which it belongs. You cannot use it in other queries. In this case, you will have to use temporary tables or table variables. Generic table expressions are simple and recursive. Simple ones do not include references to theirselves, and recursive respectively include. Recursive CTEs are used to return hierarchical data. Consider an example of a simple CTE statement: ``` WITH CTEQuery (Field1, Field2) AS ( SELECT (Field1, Field2) FROM TABLE ) SELECT * FROM CTEQuery ```  Here CTEQuery is the name of the CTE;                 Field1, Field2 – field names of the request;                 Table – some table from which data is selected for use in the main query. In this example, it is possible and not to explicitly specify the selection fields, since we select all the fields from the TestTable table: ``` WITH CTEQuery AS ( SELECT * FROM Table ) SELECT * FROM CTEQuery ```  With the help of CTE, you can optimize the main query if you take out part of the logic in the CTE. The fact is that CTE allows you to create several expressions (queries) at once. So you can split a complex query into several preliminary “views” using the CTE, and then link them in a common query:  ``` WITH CTEQuery1 (Field1, Field2) AS ( SELECT Field1 AS ID, Field2 FROM Table1 WHERE Field2 >= 1000 ), CTEQuery2 (Field3, Field4) AS ( SELECT Field3 AS ID, Field4 FROM Table2 WHERE Field4 = 'Москва' )   SELECT * FROM CTEQuery1 INNER JOIN CTEQuery2 ON CTEQuery2.ID = CTEQuery1.ID ```  As mentioned above, the main purpose of the CTE is recursion. A typical task for recursion is a tree traversal. So we can build a tree with the help of “with”. The recursive query structure first appeared in SQL Server 2005. Take a look at the WITH statement:  ``` WITH RecursiveQuery AS ( {Anchor} UNION ALL {Joined TO RecursiveQuery} ) SELECT * FROM RecursiveQuery ```  {Anchor} - anchor, a query that defines the initial element of the tree (hierarchical list). Usually in anchor there is a WHERE clause that defines specific rows of the table. After UNION ALL, the target table is followed from JOIN to the CTE expression. {Joined to RecursiveQuery}- SELECT from target table. This is usually the same table used in the anchor. But in this query, it is connected to the CTE expression, forming recursion. The condition of this connection determines the parent-child relationship. It depends on whether you go to the upper levels of the tree or to the lower ones. Let's look at a recursive query that returns a list of organizational units. Prepare data for this request: ``` CREATE TABLE Department ( ID INT, ParentID INT, Name VARCHAR(50) )   INSERT INTO Department ( ID, ParentID, Name ) VALUES (1, 0, 'Finance Director') INSERT INTO Department ( ID, ParentID, Name ) VALUES (2, 1, 'Deputy Finance Director') INSERT INTO Department ( ID, ParentID, Name ) VALUES (3, 1, 'Assistance Finance Director') INSERT INTO Department ( ID, ParentID, Name ) VALUES (4, 3, 'Executive Bodget Office') INSERT INTO Department ( ID, ParentID, Name ) VALUES (5, 3, 'Comptroller') INSERT INTO Department ( ID, ParentID, Name ) VALUES (6, 3, 'Purchasing') INSERT INTO Department ( ID, ParentID, Name ) VALUES (7, 3, 'Debt Management') INSERT INTO Department ( ID, ParentID, Name ) VALUES (8, 3, 'Risk Management') INSERT INTO Department ( ID, ParentID, Name ) VALUES (9, 2, 'Public Relations') INSERT INTO Department ( ID, ParentID, Name ) VALUES (10, 2, 'Finance Personnel') INSERT INTO Department ( ID, ParentID, Name ) VALUES (11, 2, 'Finance Accounting') INSERT INTO Department ( ID, ParentID, Name ) VALUES (12, 2, 'Liasion to Boards and Commissions') ```  It is already clear that the structure of the divisions in the organization is hierarchical. Our task is to get a list of departments subordinate to the assistant of the financial director. If we talk in the context of a hierarchical tree, then we must find a branch and its leaves. But first, let's see the whole list of divisions: ID ParentID Name 1 0 Finance Director 2 1 Deputy Finance Director 3 1 Assistance Finance Director 4 3 Executive Bodget Office 5 3 Comptroller 6 3 Purchasing 7 3 Debt Management 8 3 Risk Management 9 2 Public Relations 10 2 Finance Personnel 11 2 Finance Accounting 12 2 Liasion to Boards and Commissions  At the head there is the financial director, the deputy and the assistant report to him. Each of them has a group of units in its jurisdiction. The ParentID field indicates the "host" identifier. Thus, we have a ready-made master-slave connection. Let's write a recursive query using WITH. ``` WITH RecursiveQuery (ID, ParentID, Name) AS ( SELECT ID, ParentID, Name FROM Department dep WHERE dep.ID = 3 UNION ALL SELECT dep.ID, dep.ParentID, dep.Name FROM Department dep JOIN RecursiveQuery rec ON dep.ParentID = rec.ID ) SELECT ID, ParentID, Name FROM RecursiveQuery ```  In this example, the names of the fields that are to be selected in the CTE are clearly indicated. However, internal queries have the same fields. So you can simply remove this listing along with the brackets. Inside the CTE, we have two similar queries. The first one selects the root element of the tree that we are building. The second is all subsequent subordinate elements, due to the connection with the CTE itself. "Recursion" in SQL is not really a recursion, but an iteration. You need to submit a query with a JOIN as a loop, and then everything will be immediately clear. In each iteration, we know the value of the previous sample and get the subordinate elements. In the next step, we get the subordinate elements for the previous sample. That is, each iteration is a transition down a tree, or up, depending on the communication condition. The result of the above query is: ID ParentID Name 3 1 Assistance Finance Director 4 3 Executive Bodget Office 5 3 Comptroller 6 3 Purchasing 7 3 Debt Management 8 3 Risk Management  But what would this query look like without using CTE: ``` DECLARE @Department TABLE (ID INT, ParentID INT, Name VARCHAR(50), Status INT DEFAULT 0) -- First, we select the anchor in the table variable - the initial element from which we build the tree. INSERT @Department SELECT ID, ParentID, Name, 0 FROM Department dep WHERE dep.ID = 3   DECLARE @rowsAdded INT = @@ROWCOUNT -- We are going through a cycle until new departments are added in the previous step. WHILE @rowsAdded > 0 BEGIN -- Mark entries in a table variable as ready for processing UPDATE @Department SET Status = 1 WHERE Status = 0 -- Select child records for the previous record INSERT @Department SELECT dep.ID, dep.ParentID, dep.Name, 0 FROM Department dep JOIN @Department rec ON dep.ParentID = rec.ID AND rec.Status = 1 SET @rowsAdded = @@ROWCOUNT -- Mark entries found in the current step as processed UPDATE @Department SET Status = 2 WHERE Status = 1 END SELECT * FROM @Department ```  Such a cycle runs much slower than the CTE expression. And besides, it requires the creation of a table variable. And the amount of code doubled. Thus, CTE expressions are the best solution for a recursive tree traversal in MS SQL. Tags: SQL, SQL ### Register Json data in FastReport.NET URL: https://www.fast-report.com/de/blogs/register-json-net If you need to register Json as data source in FastReport.NET, this can be done through the registration of business objects. For parsing json you need to describe the data scheme in the C# classes, for example: ``` public class Product { public string Name { get; set; } public double UnitPrice { get; set; } }   public class Category { public string Name { get; set; } public string Description { get; set; } public List Products { get; set; } }   string json = "..."; // your json   List categories = JsonConvert.DeserializeObject>(json); // using the Newtonsoft.Json library for deserialization   Report report = new Report(); report.Load(@"C:\report.frx"); report.RegisterData(categories, "Categories"); ``` If you do not know the scheme or if it is changing during the work of the program, it can be generated dynamically. For this we use the library JSON C# Class Generator, you can download it from https://jsonclassgenerator.codeplex.com . Code to generate C# classes: ``` string json = "..."; // your json   if (json.StartsWith("[")) // if json is an array, then it would be better if we name it ``` ``` { json = "{\"Data\":" + json + "}"; // Under this name the data will be displayed in designer, so you can add multiple data sources ``` ``` }   JsonClassGenerator gen = new JsonClassGenerator() { Example = json, UseProperties = true, Namespace = "__JSON__", MainClass = "__JSON__", };   string source = ""; using (StringWriter sw = new StringWriter()) { gen.OutputStream = sw; gen.GenerateClasses(); sw.Flush(); source = sw.ToString(); } ``` ``` As a result we obtain the generated classes in a string. Now we need to access them from the code; in order to do this compile them using CSharpCodeProvider and get Type: ``` ``` Type type = null; using (CSharpCodeProvider compiler = new CSharpCodeProvider()) { CompilerParameters parameters = new CompilerParameters() { GenerateInMemory = true, }; CompilerResults results = compiler.CompileAssemblyFromSource(parameters, source); type = results.CompiledAssembly.GetType("__JSON__.__JSON__"); } ``` Note: This example shows a compilation in the current AppDomain. This means that it can not be unloaded from memory, and each compilation will eat off memory. To avoid this, you can use CSharpCodeProvider in another AppDomain. Deserialize json using the generated classes. The easiest way to do this is to use the library Newtonsoft.Json; You can get it through NuGet with the command "Install-Package Newtonsoft.Json". ``` object obj = JsonConvert.DeserializeObject(json, type); ``` ``` Now we have objects, so let's register them in FastReport.NET: ``` ``` PropertyInfo[] properties = type.GetProperties();   Report report = new Report(); report.Load(@"C:\report.frx");   foreach (var prop in properties) { report.RegisterData((IList)prop.GetValue(obj, null), prop.Name); } ``` So now you can run designer and see the results. Tags: .NET, .NET, FastReport, FastReport ### Registration der Datenquellen vor die Erstellung des neuen Berichts URL: https://www.fast-report.com/de/blogs/pre-register-data-sources Für die Übertragung der Datenquelle in den Bericht braucht man diese Datenquelle zuerst zu registrieren. Weiter soll man im Bericht eine verfügbare Datenquelle aus der Liste wählen und dann die Arbeit beginnen. Es wäre schön, wenn die Datenquelle beim Start des Designers sofort verfügbar wird. Und es wäre auch schöner, wenn diese Datenquelle im Berichtsdesigner schon gewählt wird. Man kann unverzüglich ohne Sorgen um die Daten die Berichtserstellung starten. Das hilft viele Routine bei der Erstellung von mehreren Berichten vermeiden. Es ist nicht so schwer, eine Datenquelle zu registrieren und sie automatisch beim Start vom Designer auszuwählen. Das Hauptproblem hier – eine registrierte Datenquelle bei der Erstellung vom neunen Bericht mit Hilfe vom Menü „File“ zu speichern.   Die Lösung, die ich präsentiere, besteht im Abfangen des Erstellungsprozesses vom neuen Bericht bei der Verwendung vom „File“-Menü. Also, betrachten wir jetzt ein Beispiel. Erstellen wir eine Anwendung mit Form und eine Taste. Für die Arbeit brauchen wir Bibliotheken:  ``` using FastReport; using FastReport.Utils; using FastReport.Data; using FastReport.Design; using FastReport.Wizards; ```  Erklären wir eine Datenquelle und erstellen sie: ``` private DataSet FDataSet;   private void CreateDataSource() { FDataSet = new DataSet(); FDataSet.ReadXml(Environment.CurrentDirectory + "//nwind.xml"); } ``` In diesem Fall wurde eine XML Datenbank von der FastReport .Net Lieferung verwendet. Erstellen wir eine Methode der Registration einer Datenquelle: ``` private void RegisterData(Report FReport) { FReport.RegisterData(FDataSet, "NorthWind");   // activate all data sources by default foreach (DataSourceBase source in FReport.Dictionary.DataSources) { source.Enabled = true; } } ```  Hier interessiert uns der Zyklus, der einen Umgang für alle Datenquelle macht. Diese Datenquelle sind im Bericht registriert und der Zyklus aktiviert sie. Auf diese Weise werden diese Datenquelle im Datenfenster sofort verfügbar. Rufen wir den Eventbearbeiter vom Start des Berichtsdesigners auf:  ``` private void DesignerSettings_DesignerLoaded(object sender, EventArgs e) { (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction); } ```  Fügen wir einen Benutzers Eventsbearbeiter für die Erstellung vom neuen Bericht durch das „File“-Menü hinzu. Jetzt brauchen wir diesen Eventsbearbeiter zu erstellen. Er erstellt einen leeren Bericht mit der schon hinzugefügten Datenquelle: ``` void cmdNew_CustomAction(object sender, EventArgs e) { Designer designer = sender as Designer;   //StandardReportWizard wizard = new StandardReportWizard(); // you can use any wizard form package BlankReportWizard wizard = new BlankReportWizard(); wizard.Run(designer);   RegisterData(designer.Report); // refresh data tree view designer.SetModified(this, "EditData"); } ```  Hier erstellen wir zur Wahl entweder ein Exemplar vom leeren Bericht, oder starten wir den „Designer der Erstellung vom standardisierten Bericht“. Weiter eröffnen wir einen neuen Bericht im Designer. Registrieren wir noch einmal die Datenquelle und erneuen wir die Liste im Datenbaum. Jetzt schreiben wir einen Eventsbearbeiter für Tastenklick:        ``` private void button1_Click(object sender, EventArgs e) { Report FReport = new Report(); Config.DesignerSettings.DesignerLoaded += DesignerSettings_DesignerLoaded; CreateDataSource();   // FReport.Load("myreport.frx"); // load report RegisterData(FReport); // register data before design FReport.Design(); } ```  Erstellen wir einen Bericht. Setzen wir unseren selbst gemachten Eventsbearbeiter für Berichtsdownload statt standardisierten. Erstellen wir eine Datenquelle. Jetzt kann man den Bericht herunterladen, aber das man nicht braucht. Nach der Erstellung wird leerer Bericht gemacht. Unverzüglich registrieren wir die Daten vor dem Designers Aufruf. Jetzt werden die Datentabellen beim Start des Designers im Fenster „Daten“ angezeigt. Auch wird die Datenquelle bei der Erstellung durch Menü „File“ hinzugefügt. In diesem Artikel zeigte ich, wie man die Erstellung vom neunen Bericht durch Menü „File“ macht. Mit diesem Prinzip kann man andere Handlungen vom Designer zum Beispiel „Save“ abfangen.  Tags: .NET, .NET, FastReport, FastReport, Data Source, Data Source, Report, Report ### Registration der Datenquellen vor die Erstellung des neuen Berichts URL: https://www.fast-report.com/de/blogs/pre-registration-data-sources Für die Übertragung der Datenquelle in den Bericht braucht man diese Datenquelle zuerst zu registrieren. Weiter soll man im Bericht eine verfügbare Datenquelle aus der Liste wählen und dann die Arbeit beginnen. Es wäre schön, wenn die Datenquelle beim Start des Designers sofort verfügbar wird. Und es wäre auch schöner, wenn diese Datenquelle im Berichtsdesigner schon gewählt wird. Man kann unverzüglich ohne Sorgen um die Daten die Berichtserstellung starten. Das hilft viele Routine bei der Erstellung von mehreren Berichten vermeiden. Es ist nicht so schwer, eine Datenquelle zu registrieren und sie automatisch beim Start vom Designer auszuwählen. Das Hauptproblem hier – eine registrierte Datenquelle bei der Erstellung vom neunen Bericht mit Hilfe vom Menü „File“ zu speichern.     Die Lösung, die ich präsentiere, besteht im Abfangen des Erstellungsprozesses vom neuen Bericht bei der Verwendung vom „File“-Menü. Also, betrachten wir jetzt ein Beispiel. Erstellen wir eine Anwendung mit Form und eine Taste. Für die Arbeit brauchen wir Bibliotheken: ``` using FastReport; using FastReport.Utils; using FastReport.Data; using FastReport.Design; using FastReport.Wizards; ``` Erklären wir eine Datenquelle und erstellen sie: ``` private DataSet FDataSet; private void CreateDataSource() { FDataSet = new DataSet(); FDataSet.ReadXml(Environment.CurrentDirectory + "//nwind.xml"); } ``` In diesem Fall wurde eine XML Datenbank von der FastReport .Net Lieferung verwendet. Erstellen wir eine Methode der Registration einer Datenquelle: ``` private void RegisterData(Report FReport) { FReport.RegisterData(FDataSet, "NorthWind");   // activate all data sources by default foreach (DataSourceBase source in FReport.Dictionary.DataSources) { source.Enabled = true; } } ``` Hier interessiert uns der Zyklus, der einen Umgang für alle Datenquelle macht. Diese Datenquelle sind im Bericht registriert und der Zyklus aktiviert sie. Auf diese Weise werden diese Datenquelle im Datenfenster sofort verfügbar. Rufen wir den Eventbearbeiter vom Start des Berichtsdesigners auf: ``` private void DesignerSettings_DesignerLoaded(object sender, EventArgs e) { (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction); } ``` Fügen wir einen Benutzers Eventsbearbeiter für die Erstellung vom neuen Bericht durch das „File“-Menü hinzu. Jetzt brauchen wir diesen Eventsbearbeiter zu erstellen. Er erstellt einen leeren Bericht mit der schon hinzugefügten Datenquelle:  ``` void cmdNew_CustomAction(object sender, EventArgs e) { Designer designer = sender as Designer;   //StandardReportWizard wizard = new StandardReportWizard(); // you can use any wizard form package BlankReportWizard wizard = new BlankReportWizard(); wizard.Run(designer);   RegisterData(designer.Report); // refresh data tree view designer.SetModified(this, "EditData"); } ``` Hier erstellen wir zur Wahl entweder ein Exemplar vom leeren Bericht, oder starten wir den „Designer der Erstellung vom standardisierten Bericht“. Weiter eröffnen wir einen neuen Bericht im Designer. Registrieren wir noch einmal die Datenquelle und erneuen wir die Liste im Datenbaum. Jetzt schreiben wir einen Eventsbearbeiter für Tastenklick:  ``` private void button1_Click(object sender, EventArgs e) { Report FReport = new Report(); Config.DesignerSettings.DesignerLoaded += DesignerSettings_DesignerLoaded; CreateDataSource();   // FReport.Load("myreport.frx"); // load report RegisterData(FReport); // register data before design FReport.Design(); } ``` Erstellen wir einen Bericht. Setzen wir unseren selbst gemachten Eventsbearbeiter für Berichtsdownload statt standardisierten. Erstellen wir eine Datenquelle. Jetzt kann man den Bericht herunterladen, aber das man nicht braucht. Nach der Erstellung wird leerer Bericht gemacht. Unverzüglich registrieren wir die Daten vor dem Designers Aufruf. Jetzt werden die Datentabellen beim Start des Designers im Fenster „Daten“ angezeigt. Auch wird die Datenquelle bei der Erstellung durch Menü „File“ hinzugefügt. Tags: .NET, .NET, FastReport, FastReport ### Release der Version 2026.2 für den FastReport Online Designer URL: https://www.fast-report.com/de/news/release-fastreport-online-designer-2026.2 Summary: In der neuen Version des FastReport Online Designer (2026.2) wurden die Benutzeroberfläche erheblich verbessert und das Theming-System überarbeitet. In der neuen Version des FastReport Online Designer (2026.2) wurden die Benutzeroberfläche erheblich verbessert und das Theming-System überarbeitet. In der neuen Version des  FastReport Online Designer (2026.2) wurden die Benutzeroberfläche erheblich verbessert und das Theming-System überarbeitet. Hinzu kommen eine neue Berichtsarbeitsfläche sowie eine beträchtliche Menge an neuen Funktionen. Zu den wichtigsten Änderungen gehören ein vollständig überarbeitetes Theme im Stil von FastReport .NET Avalonia, ein neuer Docking-Manager zur flexiblen Anpassung der Panels, Pop-up-Einstellungen für den Designer, ein verbessertes Undo/Redo-System und vieles mehr. Neue Funktionen Theme von FastReport .NET Avalonia In Version 2026.2 wurde das Erscheinungsbild des Online Designer komplett überarbeitet – ein neues Theme im Stil von FastReport .NET Avalonia wurde hinzugefügt. Die Stile aller Steuerelemente, Panels, Pop-ups und Symbolleisten wurden aktualisiert. Das Theme ist responsiv und wird auf Bildschirmen verschiedener Größen korrekt dargestellt. Eigenschaftenpanel überarbeitet Das Eigenschaftenpanel erhielt ein aktualisiertes Design in Form einer Eigenschaftstabelle. Das Eigenschaftenpanel wurde nun mit dem Ereignispanel in einer einheitlichen Benutzeroberfläche zusammengeführt – genau wie in der Desktop-Version von FastReport. Das Umschalten zwischen Eigenschaften und Ereignissen einer Komponente erfolgt über eine Symbolleiste innerhalb des Panels, sodass Sie die Ereignisse nicht mehr in einem separaten Fenster suchen müssen. Docking-Manager Ein neuer Docking-Manager wurde implementiert, der es dem Benutzer ermöglicht, die Anordnung der Panels in der Designer-Oberfläche flexibel anzupassen. Die Panels können per Drag & Drop verschoben, an verschiedenen Bildschirmseiten angedockt und in ihrer Größe verändert werden. Neue Arbeitsfläche: Lineale, Hilfslinien, Band-Überschriften Die Arbeitsfläche des Designers wurde vollständig überarbeitet. Die Lineale und Hilfslinien wurden aktualisiert – sie spiegeln jetzt die Position der Komponenten auf der Seite genauer wider und sind bei jedem Zoomfaktor verfügbar. Die Band-Überschriften wurden in eine separate Ebene ausgelagert. Darüber hinaus wurde die Unterstützung für ein alternatives Raster bei gedrückter Alt-Taste hinzugefügt – Komponenten können mit reduzierter Schrittweite verschoben und skaliert werden, um eine präzise Positionierung zu ermöglichen. Symbolleisten der Panels „Daten“ und „Berichtsbaum“ Die Panels „Daten“ und „Berichtsbaum“ erhielten Symbolleisten mit Funktionen aus FastReport .NET. Sie können Knoten ein- und ausklappen, Dropdown-Listen verwenden und neue Verknüpfungen erstellen. Die Panels unterstützen das rekursive Ein- und Ausklappen von Knoten sowie das automatische Umschalten auf das benachbarte Element beim Löschen eines Knotens. Einstellungsfenster des Designers Ein einheitliches Einstellungsfenster des Designers wurde hinzugefügt, das die Konfiguration des Erscheinungsbilds, die Objektparameter und die Interaktionsmöglichkeiten mit der Anwendung vereint. Folgende Bereiche stehen zur Verfügung: Oberfläche . Einstellungen für Tastenkürzel und Auto-Save. Berichtsseite . Einstellungen für Raster und Maßeinheiten. Objekt-Erscheinungsbild . Stile und Darstellung der Komponenten. Registerkarte „Code“ . Einstellungen für die Codepage. Registerkarte „FRX“ . Einstellungen für die FRX-Vorlagenbearbeitungsseite. Die Einstellungen werden beim Schließen des Designers gespeichert und beim nächsten Öffnen wiederhergestellt. Bearbeitungsfenster für Barcodes Ein eigenes Fenster zur Konfiguration der Barcode-Komponente wurde implementiert – als Ersatz für den universellen Ausdruckseditor. Das Fenster enthält separate Registerkarten für jeden Barcode-Typ mit den entsprechenden Konfigurationsfeldern, einschließlich Swiss QR. Bearbeitungsfenster für Schriftarten Das Fenster zur Schriftartkonfiguration wurde überarbeitet – Erscheinungsbild und Struktur wurden an das Design von FastReport .NET angepasst. Das Fenster ersetzt die bisherige vereinfachte Version und bietet Zugriff auf den vollständigen Satz an Schriftartparametern. FRX-Vorlageneditor Ein eingebetteter Editor für das XML-Berichtsvorlage (FRX) wurde hinzugefügt. Der Editor mit Syntaxhervorhebung ermöglicht es, die XML-Struktur des Berichts direkt anzuzeigen und zu bearbeiten. Es werden Undo/Redo sowie die Synchronisierung mit der Hauptansicht des Designers unterstützt. Formatkopieren von Komponenten Sie können jetzt Stile zwischen Komponenten kopieren und einfügen. Dies ist das Äquivalent zum Werkzeug „Format übertragen“ aus der Desktop-Version und ist über die Symbolleiste verfügbar. Diese Funktion ermöglicht es, die Einstellungen für Schriftarten, Farben, Rahmen und andere Eigenschaften schnell auf verschiedene Berichtskomponenten anzuwenden. Neue Logik beim Zeichnen von Formen Die Logik des Zeichnens der Komponenten PolyLine, Polygon und Linien wurde überarbeitet. In dieser Version erfolgt das Zeichnen interaktiv, ohne dass zwischen verschiedenen Werkzeugen umgeschaltet werden muss. In der Komponentenleiste wurden Presets hinzugefügt, um typische Formen schnell einfügen zu können. Neue Logik beim Hinzufügen von Komponenten auf die Seite Der Mechanismus zum Hinzufügen von Komponenten wurde nach dem Vorbild der Desktop-Version von FastReport .NET überarbeitet. Die Komponente wird nun durch einen Klick auf die Komponentenleiste hinzugefügt – danach wechselt der Cursor in den Platzierungsmodus, und unter dem Cursor wird eine Vorschau der zukünftigen Komponente angezeigt. Ein erneuter Klick auf die Seite erstellt die Komponente an der Position der Vorschau. Funktionen „Bericht öffnen“ und „Bericht speichern“ Es gibt nun die Funktionalität zum Öffnen und Speichern von Berichten. Sie können jetzt einen Bericht direkt aus dem Dateisystem im WebReport öffnen, ohne ihn vorher auf den Server laden zu müssen. Außerdem können Sie einen fertigen Bericht in Ihrem eigenen Dateisystem speichern. Bitte beachten Sie: Vor der Verwendung dieser Funktionen müssen die Datenquellen im WebReport angebunden werden. Verbesserungen Undo/Redo: benannte Aktionen und Gruppenrückgängigmachung Das Undo/Redo-System wurde auf den Code-Editor und den FRX-Vorlageneditor ausgeweitet. Jeder Aktion in der Anwendung wurde eine Textbeschreibung zugewiesen, sodass es in der Änderungshistorie keine anonymen Einträge mehr gibt. Sie können visuell mehrere Aktionen auswählen und mit einem einzigen Klick rückgängig machen. Überarbeitung des Code-Editors Im Skript-Editor des Berichts wurde eine konfigurierbare Tabulierung hinzugefügt. Die Einzugsgröße wird nun in den Einstellungen der Code-Editor-Seite festgelegt. Anpassungsfähigkeit der Benutzeroberfläche Die Designer-Oberfläche wurde an Bildschirme verschiedener Größen angepasst – sowohl im Avalonia- als auch im klassischen Theme. Die Elemente skalieren und ordnen sich bei Größenänderung des Browserfensters neu an. Überarbeitung der Seitenleiste Die Seitenleiste wurde um die Möglichkeit erweitert, Seiten und Dialogseiten zu erstellen. Bei Klick auf die Schaltfläche „+“ mit der linken Maustaste wird eine Seite erstellt. Bei Klick mit der rechten Maustaste öffnet sich ein Kontextmenü mit der Möglichkeit, entweder eine Dialogseite oder eine normale Berichtsseite zu erstellen. Neues UI-Element für die Datenquellenauswahl Ein neues Steuerelement zur Auswahl einer Datenquelle wurde hinzugefügt – analog zur Desktop-Version von FastReport .NET. Anstatt den Tabellen- oder Feldnamen manuell in ein Textfeld einzugeben, wird nun ein Baum mit Verbindungen, Datenquellen und Spalten angezeigt – die Auswahl erfolgt mit einem einzigen Klick. Das Steuerelement wird in zwei Modi verwendet: Auswahl einer Datenquelle für ein Band. Im Band-Editor (Registerkarte „Datenquelle“) sind nur Tabellen zur Auswahl verfügbar. Auswahl eines Datenfelds für eine Komponente. Beispielsweise auf der Registerkarte „Datenfeld“ des Picture-Editors: Im Baum werden Tabellen und deren Spalten angezeigt; Sie können ein bestimmtes Feld auswählen oder den Wert auf None zurücksetzen. Möglichkeit zur Bearbeitung einer Verbindung Es wurde die Möglichkeit hinzugefügt, eine zuvor erstellte Datenquellenverbindung zu bearbeiten – die Parameter der Verbindungszeichenfolge zu öffnen, zu ändern und zu speichern, ohne die Verbindung von Grund auf neu erstellen zu müssen. Aus Sicherheitsgründen wird die Verbindungszeichenfolge nicht im Bericht selbst gespeichert und verbleibt nur im Browserspeicher innerhalb der aktuellen Designer-Sitzung. Daher ist die Bearbeitung nur unter folgenden Bedingungen möglich: Die Verbindung wurde in der aktuellen Sitzung erstellt, und die Designer-Seite wurde seitdem nicht neu geladen. Der Bericht wurde nach dem Erstellen der Verbindung nicht erneut geöffnet. Nach einem Neuladen der Seite oder erneutem Öffnen des Berichts verliert der Designer die Verbindungszeichenfolge, und die Bearbeitung ist nicht mehr möglich – in diesem Fall muss die Verbindung neu erstellt werden. Fehlerkorrekturen Probleme beim Speichern von kyrillischen Zeichen im Skriptcode behoben (VCL) Ein Fehler wurde behoben, bei dem kyrillische Zeichen im Skriptcode in VCL-Berichten nicht korrekt gespeichert wurden. Eigenschaft VisibleExpression korrigiert (.NET) Das Problem, bei dem die Eigenschaft VisibleExpression im Eigenschaftenpanel einer Textkomponente fehlte, wurde behoben. Die Eigenschaft wird nun korrekt angezeigt. Fehler bei Verwendung einer Füllung bei ShapeObj behoben (.NET) Ein Fehler, der auftrat, wenn versucht wurde, eine Füllung auf eine ShapeObj-Komponente anzuwenden, wurde behoben. Die Füllungseinstellung funktioniert nun korrekt. Korrigiert: Identische Tabellennamen bei JSON-Verbindungen (.NET) Das Problem, bei dem bei der Erstellung mehrerer JSON-Verbindungen alle Tabellen denselben Namen erhielten, wurde behoben. Jede Verbindung erhält nun einen eindeutigen Tabellennamen. Fehler beim Öffnen eines Berichts mit erweiterter Matrix behoben (.NET) Ein Fehler, der beim Öffnen eines Berichts mit einer stark gefüllten erweiterten Matrix (AdvMatrix) auftrat, wurde behoben. Bei einer großen Anzahl von Feldern öffnet sich der Bericht nun fehlerfrei. Korrigiert: Textfarbe verschwand beim erneuten Öffnen des Berichts (.NET) Das Problem, bei dem die geänderte Textfarbe in einem TextObject zwar korrekt gespeichert wurde, aber nach dem Neuladen der Seite im Designmodus nicht angezeigt wurde, wurde behoben. Die Textfarbe wird nun korrekt gespeichert und wiederhergestellt. Fehler bei Verwendung des Achsenformats in MsChart behoben (.NET) Zwei Probleme bei der Arbeit mit der MsChart-Komponente wurden behoben: Das Format der Y-Achsenbeschriftungen wurde beim Neuladen des Berichts nicht gespeichert, und beim Versuch, einen Bericht mit neu festgelegtem Format vorzubereiten, erhielt der Benutzer einen Fehler. Korrigiert: Undo/Redo-Buttons waren bis zum Hinzufügen des ersten Objekts nicht verfügbar (.NET, VCL) Das Problem, bei dem die Undo- und Redo-Buttons nach dem Laden eines Berichts inaktiv blieben, selbst wenn der Benutzer Bänder änderte oder vorhandene Objekte verschob, wurde behoben. Die Buttons wurden erst nach dem Hinzufügen eines neuen Objekts auf die Seite aktiviert. Die Änderungshistorie wird nun ab der ersten Aktion korrekt nachverfolgt. Fehler beim Kopieren einer Seite mit AdvMatrix/Matrix/Table behoben (.NET) Ein Fehler, der beim Versuch auftrat, eine Berichtsseite mit den Komponenten AdvMatrix, Matrix oder Table zu kopieren, wurde behoben. Korrigiert: Layout des Berichts wurde beim Speichern zerstört (.NET) Ein kritischer Fehler wurde behoben, der beim Speichern von Berichten auftrat, die Tabellen für das Layout verwendeten. Beim Speichern kam es zu einem inkorrekten Beschneiden der Tabellenbreite, wodurch das Berichtslayout zerstört wurde. Korrigiert: Währungsformat fehlte in der Lokalisierung (.NET) Das Problem, bei dem im Dialog zur Formatierung von numerischen Daten das Währungsformat fehlte, wurde behoben. Korrigiert: Eingebaute Funktion PadLeft funktionierte nicht (.NET) Das Problem, bei dem die Funktion PadLeft in der Desktop-Version korrekt ausgeführt wurde, aber im Online Designer bei der Berichtsvorbereitung über WebReport nicht funktionierte, wurde behoben. Fehler bei der Vorbereitung eines Berichts mit DataType="System.Guid" behoben (.NET) Ein Fehler, der beim Versuch auftrat, einen Bericht mit einem Feld des Datentyps System.Guid vorzubereiten, wurde behoben. Probleme bei der Erstellung einer Postgres-Datenquelle behoben (.NET) Eine Reihe von Problemen bei der Arbeit mit PostgreSQL-Verbindungen wurden behoben: Korrekte Konvertierung von Anführungszeichen in XML für TableName und SelectCommand wurde hinzugefügt, Duplizierung von Prozeduren beim Hinzufügen eines Parameters wurde behoben, Verlust des Parametertyps beim Wechsel in die Vorschau wurde behoben. Korrigiert: Im Stileditor konnte der Stilname nicht geändert werden (.NET) Ein Fehler wurde behoben, bei dem die Änderung des Stilnamens im Stileditor nicht gespeichert wurde. Nach dem Schließen und erneuten Öffnen des Popup-Fensters wurde der Stil weiterhin mit dem ursprünglichen Namen (z. B. „Style1“) angezeigt. Ersetzung von Methoden im Skript korrigiert (VCL) Ein Fehler wurde behoben, bei dem die aufeinanderfolgende Erstellung mehrerer Ereignishandler für dieselbe Komponente dazu führte, dass der neue Handler den vorherigen überschrieb. Beispielsweise löschte die Erstellung von OnAfterPrint nach OnAfterData den Code des ersten Handlers. Sortierung von Bändern korrigiert (VCL) Ein Fehler wurde behoben, bei dem die Sortierung von Bändern in VCL-Lösungen nicht korrekt funktionierte. Funktionalität der Dialoge „Datenformat“ und der bedingten Formatierung korrigiert (VCL) Eine Reihe von Problemen bei der Arbeit mit der Textkomponente in VCL wurde behoben: Der Dialog „Datenformat“ war nicht bearbeitbar, wenn der Text kein Ausdruck war. Die fehlerhafte Logik der Textpositionierung in der mehrzeiligen Komponente wurde korrigiert. Verhalten von Undo/Redo beim Hinzufügen von Komponenten auf ein Band korrigiert (VCL) Ein Fehler wurde behoben: Beim Hinzufügen einer Komponente auf ein schmales Band (das automatisch erweitert wurde) entfernte das Drücken von Undo die Komponente, stellte jedoch nicht die ursprüngliche Größe des Bands wieder her. Ein anschließendes Drücken von Redo führte zu keinem Ergebnis. Korrigiert: Registerkarte „Felder“ bei untergeordneter Tabelle im „Verbindungseditor“ öffnete sich nicht (.NET) Das Problem, bei dem sich beim Erstellen von Verknüpfungen zwischen MS SQL-Tabellenverbindungen die Registerkarte „Felder“ bei der untergeordneten Tabelle im „Verbindungseditor“ nicht öffnete, wurde behoben. Leere Dropdown-Liste der Eigenschaft BreakTo korrigiert (.NET) Das Problem, bei dem die Dropdown-Liste der Eigenschaft BreakTo im Eigenschaftenpanel eines TextObject leer war und keine Auswahl eines Werts ermöglichte, wurde behoben. Vollständige Liste der Änderungen Neue Funktionen + FastReport .NET Avalonia-Theme + Neues Eigenschaftenpanel + Docking-Manager für alle Panels + Neue Arbeitsfläche: Lineale, Hilfslinien und Band-Überschriften überarbeitet + Symbolleisten für die Panels „Daten“ und „Berichtsbaum“ + Popup-Einstellungen des Designers (Erscheinungsbild, Objekte, Interaktion) + Popup zur Barcode-Bearbeitung + Popup zur Schriftartbearbeitung + Editor für FRX-Berichtsvorlagen + Formatkopieren von Komponenten + Neue Logik zum Zeichnen von Formen (PolyLine, Polygon, Linien) sowie Presets + Neue Logik zum Hinzufügen von Komponenten mit Vorschau + Funktionen „Bericht öffnen“ und „Bericht speichern“ Verbesserungen + Undo/Redo mit benannten Aktionen für den Code- und FRX-Editor + Konfigurierbare Tabulierung im Code-Editor + Anpassungsfähigkeit der Benutzeroberfläche für alle Bildschirmgrößen (beide Themes) + Überarbeitung der Seitenleiste + Neue Steuerung zur Auswahl von Datenquellen in den Editoren für Bänder und Komponenten (Datenquellenbaum wie im Desktop) + Bearbeitung einer zuvor erstellten Datenquellenverbindung (innerhalb der aktuellen Browsersitzung) Fehlerkorrekturen - Probleme beim Speichern von kyrillischen Zeichen im Skriptcode behoben (VCL) - Eigenschaft VisibleExpression korrigiert (.NET) - Fehler bei Verwendung einer Füllung bei ShapeObj behoben (.NET) - Identische Tabellennamen bei JSON-Verbindungen korrigiert (.NET) - Fehler beim Öffnen eines Berichts mit erweiterter Matrix behoben (.NET) - Fehler behoben, bei dem die Textfarbe beim erneuten Öffnen des Berichts verschwand (.NET) - Fehler bei Verwendung des Achsenformats in MsChart behoben (.NET) - Fehler behoben, bei dem die Undo/Redo-Buttons bis zum Hinzufügen des ersten Objekts nicht verfügbar waren (.NET, VCL) - Fehler beim Kopieren einer Seite mit AdvMatrix/Matrix/Table behoben (.NET) - Problem behoben, bei dem das Berichtslayout beim Speichern zerstört wurde (.NET) - Fehlendes Währungsformat in der Lokalisierung korrigiert (.NET) - Problem behoben, bei dem die eingebaute Funktion PadLeft nicht funktionierte (.NET) - Fehler bei der Vorbereitung eines Berichts mit DataType="System.Guid" behoben (.NET) - Probleme bei der Erstellung einer Postgres-Datenquelle behoben (.NET) - Verhalten behoben, bei dem der Stilname im Stileditor nicht geändert werden konnte (.NET) - Ersetzung von Methoden im Skript korrigiert (VCL) - Sortierung von Bändern korrigiert (VCL) - Funktionalität der Dialoge „Datenformat“ und der bedingten Formatierung korrigiert (VCL) - Verhalten von Undo/Redo beim Hinzufügen von Komponenten auf ein Band korrigiert (VCL) - Fehler behoben, bei dem sich die Registerkarte „Felder“ bei untergeordneten Tabellen im „Verbindungseditor“ nicht öffnete (.NET) - Leere Dropdown-Liste der Eigenschaft BreakTo korrigiert (.NET) ### Release FastReport Online Designer 2022.1 URL: https://www.fast-report.com/de/news/fastreport-online-designer-2022.1 Summary: Mit dem Update 2022.1 wurden in FastReport Online Designer neue Objekte und Funktionen eingeführt, die die Erstellung und Optimierung Ihrer Berichte beschleunigen. Mit dem Update 2022.1 wurden in FastReport Online Designer neue Objekte und Funktionen eingeführt, die die Erstellung und Optimierung Ihrer Berichte beschleunigen. Ab der 2022.1 Version verfügt FastReport Online Designer über viele neue Objekte und Funktionen, die den Prozess der Erstellung und Optimierung Ihrer Berichte erheblich beschleunigen. Neue Objekte Es wurden neue Objekte "Polylinie" und "Polygon" hinzugefügt: Polylinien werden am häufigsten verwendet, um Logos oder andere Formen zu entwerfen, die aus fließenden Linien bestehen. Mit dem Objekt "Polylinie" können Sie eine Kurve aus vorgegebenen Punkten bauen: Die grauen Linien in der Abbildung veranschaulichen, wie das Objekt aussehen wird, wenn ein neuer Punkt hinzugefügt wird. Neue Punkte können zu einer bereits erstellten Kurve hinzugefügt werden: Drücken Sie die Escape-Taste, damit keine weiteren Punkte hinzugefügt werden können. Die Linie kann gekrümmt werden: Mit dem Objekt „Polygon“ können Sie aus vorgegebenen Punkten eine Figur bauen: Sie können die Anzahl der Ecken eines bereits erstellten Polygons ändern, indem Sie neue Punkte hinzufügen: Die Kanten eines Polygons können gekrümmt werden: Sie können auch ein Polygon mit voreingestellten Punkten erstellen: Es wurde ein neues Objekt "AdvMatrix" hinzugefügt: Anmerkung: Diese Komponente befindet sich in der Entwicklung. Aktuell werden die Nacharbeitsaktivitäten intensiv durchgeführt, um die Benutzerfreundlichkeit zu verbessern und Fehler zu beheben. Das ist ein Objekt, das der erweiterten Matrix in der Desktop-Version des Designers ähnlich ist, mit dem Sie Pivot-Tabellen-Berichte erstellen können. Sie finden es in der Objektleiste: Die Daten werden per Drag-and-Drop in die Matrix übertragen: Sie können den Gesamtwert in der Kopfzelle festlegen: Die Zellen können Sie farbig markieren: Doppelklicken Sie auf die Kopfzelle, um das Bearbeitungsfenster zu öffnen. Der Ausdruck einer Kopfzelle kann manuell vorgegeben werden: Sie können auch den Text vorgeben, der in der Kopfzelle angezeigt werden soll: Die Kopfzellen können sortiert werden: In der Kopfzelle können Filterbedingungen festgelegt werden: In der Kopfzelle kann eine Top-N-Gruppierung erfolgen: Sie können die Sichtbarkeit einer Kopfzelle ändern - entweder manuell oder mithilfe einer Bedingung: Sie können auch die Anzeigeeigenschaften ändern: Zum Beispiel für diese Matrixvorlage: Der nachfolgende Bericht wird erstellt: Neue Optionen Es wurde die Option hinzugefügt, das Berichtsseitenfenster einzublenden bzw. auszublenden  Durch Klicken auf die Schaltfläche wird das Fenster ein- bzw. ausgeblendet: Es wurde die Option hinzugefügt, verschachtelte Datenquellen zu verwenden   Beispielsweise hat eine JSON-Struktur eine Sammlung. Bisher war es nicht möglich, sie als Datenquelle zu verwenden. Sammlungen sind jetzt als Datenquelle definiert: Es wurde die Option hinzugefügt, Datenquellen alphabetisch zu sortieren Dies geschieht über die Schaltfläche Sortieren: Es wurde die Option hinzugefügt, alle Datenquellen einzublenden bzw. auszublenden  Um Datenquellen einzublenden, klicken Sie auf die Schaltfläche "+". Um Datenquellen auszublenden, klicken Sie auf die Schaltfläche "-". Es wurde die Berichtsbaumsuche implementiert: Um das gewünschte Element im Berichtsbaum zu finden, können Sie das Suchfeld auf der Registerkarte "Berichtsbaum" verwenden und den Namen der Komponente eingeben: Es wurde die Option implementiert, Objekteigenschaften als Favoriten zu markieren  Um die gewünschte Eigenschaft zu den „Favoriten“ hinzuzufügen, können Sie im Eigenschaftsfenster mit der rechten Maustaste darauf klicken und das entsprechende Element auswählen: Danach werden die ausgewählten Eigenschaften als Favoriten markiert: Jeder Objekttyp kann seinen eigenen Satz von Favoriteneigenschaften haben. Jeder Satz von Favoriteneigenschaften wird zur späteren Verwendung in anderen Berichtsvorlagen gespeichert. Automatisches Speichern von Berichtsvorlagen wurde implementiert  Die Berichtsvorlage wird nun alle zwei Minuten automatisch gespeichert. Das Speicherintervall kann derzeit noch nicht eingestellt werden, wird aber in Zukunft verfügbar sein. Modales Fenster der Berichtsvorschau wurde durch eine separate Registerkarte ersetzt Die Größenänderung des Berichtscode-Editorfensters wurde hinzugefügt  Das Feld für den Berichtscode ändert nun automatisch die Höhe je nach der Anzahl von Zeilen: Vollständige Liste der Änderungen 2022.1 -------------- + Es wurde das Polylinie-Objekt hinzugefügt; + Es wurde das Polygon-Objekt hinzugefügt; + Es wurde das AdvMatrix-Objekt hinzugefügt (die Funktionen der Desktop-Version des Designers sind nicht vollständig implementiert); + Automatisches Speichern einer Berichtsvorlage wurde hinzugefügt; + Es wurde die Option hinzugefügt, verschachtelte Datenquellen zu verwenden; + Es wurde eine separate Registerkarte für die Berichtvorschau hinzugefügt; + Es wurde die Option hinzugefügt, das Berichtsseitenfenster einzublenden bzw. auszublenden; + Automatische Änderung der Höhe des Berichtscode-Editor-Fensters; + Es wurde die Schaltfläche zum Sortieren von Datenquellen hinzugefügt; + Es wurden die Schaltflächen zum Ein- bzw. Ausblenden von Datenquellen hinzugefügt; + Es wurde die Berichtsbaumsuche implementiert; + Es wurde die Option hinzugefügt, Eigenschaften zu den „Favoriten“ hinzuzufügen; - Es wurde das Einfügen von Objekten nach Kopieren oder Ausschneiden korrigiert; * Die Lokalisierung wurde ergänzt; * Diverse Optimierungen. ### Report generator in Visual Studio Express Edition URL: https://www.fast-report.com/de/news/report-generator-visual-studio Summary: Report generator with visual designer in Visual Studio Express Edition Report generator with visual designer in Visual Studio Express Edition Visual Studio Express Edition by Microsoft is a popular software development enveronment. It is popular also because it is free. By the way this tool as all that is free has some lacks. In particular complexities with using some add-onces, third party components. For example many popular component-packs for .NET have reporting tools in set. Often they use developers environment of Visual Studio (fully or partially) as the visual report development environment. But such way is impossible in Express Edition. FastReport .NET uses another approach. There are own fully independent report designer which can be called from application (from Winforms Edition and higher). That is Visual Studioàs envirinment does not need for visual design of reports.  read more... ### Report generator with visual designer in Visual Studio Express Edition URL: https://www.fast-report.com/de/blogs/report-generator-visual-designer  Visual Studio Express Edition by Microsoft is a popular software development enveronment. It is popular also because it is free. By the way this tool as all that is free has some lacks. In particular complexities with using some add-onces, third party components. For example many popular component-packs for .Net have reporting tools in set. Often they use developers environment of Visual Studio (fully or partially) as the visual report development environment. But such way is impossible in Express Edition. FastReport.Net uses another approach. There are own fully independent report designer which can be called from application (from Winforms Edition and higher). That is Visual Studioàs envirinment does not need for visual design of reports. So - let's setup FastReport.Net to Visual Studio Express Edition: 1. Create new project in Visual Studio. 2. Right mouse click somewhere on the blank place on Toolbox. 3. Select "Add tab" in context menu. 4. Give the name for new tab, for example FastReports Components. 5. Right mouse click on blank place of our new tab . 6. Select Choose Items in the context menu. 7. Press button "Browse..." Find and set FastReport.dll. It placed at the root folder of FastReport .NET. 8. Components will be shown on tab .NET Framework Components. Ypu can sort them by Namespace. All the components of FastReport .NET are placed on namespace FastReport. Check all needed components and press OK. Run report designer. Examle on C# Report report = new Report(); report.Design(); This is it. Tags: .NET, .NET, Visual Studio, Visual Studio, Express Edition, Express Edition, FastReport, FastReport ### Reporting FMX URL: https://www.fast-report.com/de/products/reporting-fmx Summary: A cross-platform set of FMX components for creating documents based on Embarcadero FireMonkey A cross-platform set of FMX components for creating documents based on Embarcadero FireMonkey Ein plattformübergreifender Satz von FMX-Komponenten zum Erstellen von Berichten und Dokumenten basierend auf der Embarcadero FireMonkey-Entwicklungsumgebung. Reporting FMX Ein plattformübergreifender Satz von FMX-Komponenten zum Erstellen von Dokumenten basierend auf Embarcadero FireMonkey Kaufen Kostenlos testen Dokumentation Lots of components A variety of elements are available for building reports in the designer: from text and images to mathematical formulas and 3D diagrams. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Safety Protect your templates and reports with strong data encryption. Adapt all source codes to suit your solutions. Source code This set of components includes FastReport source codes. Maximum convenience for companies wishing to adapt the code to their needs. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. Graphics core For creating graphical elements, rendering text, and managing graphic images, GDI+, D2D, and, of course, Quartz can be used. Ultimate VCL Learn more about Ultimate VCL Bericht mit zwei Datenebenen (master-detail) in Delphi/Lazarus am Beispiel von FastReport VCL / FMX Die leistungsstarke FastReport-Funktion "Multi-Level-Berichte" ermöglicht es Ihnen, Berichte aus mehreren Tabellen zu sammeln. Mit "mehrstufigen Berichten" können Sie Berichte aus mehreren Tabellen sammeln. FastReport unterstützt die Verschachtelung von bis zu 6 Ebenen mit dem Objekt "Unterbericht" Installieren und Verwenden von FastReport FMX 2.8 für FmxLinux So installieren und verwenden Sie FastReport FMX 2.8 für FmxLinux. Kurzanleitung. So installieren und verwenden Sie FastReport FMX 2.8 für FmxLinux. Kurzanleitung. Die FastReport Familie der Reportgeneratoren - kurze Overview Beschreibung des FastReport .NET-Generators, seiner Funktionen und Vorteile. Beschreibung des FastReport .NET-Generators, seiner Funktionen und Vorteile. Haben Sie noch Fragen? Kontaktieren Sie uns ### Reporting FMX - FAQ URL: https://www.fast-report.com/de/faqs/reporting-fmx Summary: Explore reporting solutions in FMX with FastReport and get tips on how to enhance your reports. Explore reporting solutions in FMX with FastReport and get tips on how to enhance your reports. Ist das Produkt mit dem UniGUI-Framework kompatibel? Ja, unser Produkt ist mit dem UniGUI-Framework kompatibel Wird macOS unterstützt? Ja, Windows, macOS und Linux werden unterstützt Welche IDE-Versionen werden von FastReport FMX unterstützt? Ab der Delphi XE2 Version bis zur aktuellen Version. Wird Lazarus unterstützt? Das FMX Framework unterstützt Lazarus nicht. Wenn Sie Berichte in Lazarus erstellen müssen, ist unsere FastReport VCL als Paket **[Reporting Lazarus](https://www.fast-report.com/de/products/reporting-lazarus)** perfekt für Sie. Wird Linux unterstützt? Die Unterstützung ist mit dem FMXLinux-Framework verfügbar. Weitere Details finden Sie in dem Artikel **[Installation und Verwendung von FastReport FMX 2.8 für FmxLinux ](https://www.fast-report.com/de/blogs/install-fmx-linux)** Ist das Produkt mit dem FMXLinux-Framework kompatibel? Das FastReport FMX-Produkt unterstützt das FMXLinux-Framework. https://www.fast-report.com/de/blogs/install-fmx-linux ### Reporting Lazarus URL: https://www.fast-report.com/de/products/reporting-lazarus Summary: A universal LCL set of components with source codes for generating reports and documents on Lazarus for Linux and Windows A universal LCL set of components with source codes for generating reports and documents on Lazarus for Linux and Windows Ein universelles LCL-Set von Komponenten mit Quellcodes zum Generieren von Berichten und Dokumenten unter Lazarus für Linux und Windows. Reporting Lazarus Ein universelles LCL-Komponentenset mit Quellcodes zum Generieren von Berichten und Dokumenten unter Lazarus für Linux und Windows Kaufen Kostenlos testen Dokumentation Lots of components A variety of elements are available for building reports in the designer: from text and images to tables and interactive maps. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Safety Protect your templates and reports with strong data encryption. Adapt all source codes to suit your solutions. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. Graphics core GDI and GTK are used to create graphic elements, render text, and manage graphics. Source code This set of components includes FastReport source codes. Maximum convenience for companies wishing to adapt the code to their needs. Ultimate VCL Learn more about Ultimate VCL Lokalisierung und Ändern von Sprachen in FastReport VCL In FastReport VCL wurde ab Version 2023.2 die Lokalisierung erheblich verbessert – jetzt ist keine Neukompilierung mehr erforderlich, um Sprachen in FastReport zu ändern. Das Lokalisierungspaket ist in allen Lieferumfängen von FastReport VCL enthalten. FastReport VCL unterstützt 40 Sprachen für die Schnittstellenlokalisierung und ermöglicht es Ihnen, die Sprache im laufenden Betrieb über Menüs oder Code ohne Neukompilierung zu ändern. WSL 2 Anpassung an FastReport und FastCube In diesem Artikel werden wir versuchen, gemeinsam herauszufinden, wie man WSL 2 konfiguriert, um mit FastReport und FastCube Komponenten in Lazarus für Linux zu arbeiten. In diesem Artikel werden wir versuchen, gemeinsam herauszufinden, wie man WSL 2 konfiguriert, um mit FastReport und FastCube Komponenten in Lazarus für Linux zu arbeiten. Neuer S3 (Amazon) Transport in FastReport VCL In diesem Artikel werden wir uns den neuen Transport in S3 (Amazon) für FastReport VCL ansehen, bei dem es sich um einen Objektspeicher für Dateien und Buckets handelt. In diesem Artikel werden wir uns den neuen Transport in S3 (Amazon) für FastReport VCL ansehen, bei dem es sich um einen Objektspeicher für Dateien und Buckets handelt. Haben Sie noch Fragen? Kontaktieren Sie uns ### Reporting VCL URL: https://www.fast-report.com/de/products/reporting-vcl Summary: A set of VCL components with full source codes for creating reports and documents A set of VCL components with full source codes for creating reports and documents Eine Reihe von VCL-Komponenten mit vollständigen Quellcodes zum Erstellen von Berichten aus einem visuellen Designer mit Export in verschiedene Datenformate. Reporting VCL A set of VCL components with full source codes for creating reports and documents Kaufen Kostenlos testen Dokumentation Lots of components A variety of elements are available for building reports in the designer: from text and images to mathematical formulas and 3D diagrams. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Compatibility and integration Reporting VCL is part of the unified FastReport ecosystem on Delphi. Reports created in the Lazarus solution will work in the Reporting VCL and vice versa. Smooth transition from other solutions Our report generator instantly converts your reports from Quick Report, Report Builder, and Rave Reports in FastReport format. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. System.Drawing (GDI) The familiar System.Drawing with GDI graphics functions is used to create graphical elements, render text, and manage graphic images. Ultimate VCL Learn more about Ultimate VCL Detaillierter Überblick über die Funktionen der FastGrid-Bibliothek Benutzer von FastReport VCL Ultimate haben wahrscheinlich bereits bemerkt, dass im Installer zwei neue Einträge erschienen sind: FastEditors VCL und FastGrid VCL. Außerdem wurde im DemoCenter eine neue Demo hinzugefügt – FastGrid VCL Demo. Ein Überblick über die FastGrid-Bibliothek für VCL und Lazarus: Datenvisualisierung, -bearbeitung und -Strukturierung. Sortieren, Filtern, Gruppieren, komfortable Dateneditoren — alles in einem Artikel! Neues Berichtsvalidierungssystem in FastReport VCL Im technischen Support wurde uns oft der Wunsch nach einer automatischen Berichtsprüfung mitgeteilt – und mit dem Release 2026.2.0 haben wir dies umgesetzt. Im Menü „Datei“ des Berichtsdesigners sind nun die Punkte „Validate“ und „Einstellungen für Validierungsregeln“ (Validation Rule Settings) verfügbar. Damit können Berichte nicht nur geprüft, sondern auch der Satz an Regeln – einschließlich eigener Regeln – verwaltet werden. In diesem Artikel erklären wir, wie die Berichtsprüfung funktioniert, wie sie konfiguriert wird, wie Sie eigene Regeln anhand von Beispielen erstellen und geben Einblicke in interessante Neuerungen. In diesem Artikel erklären wir, wie die Berichtsprüfung funktioniert, wie sie konfiguriert wird, wie Sie eigene Regeln anhand von Beispielen erstellen und geben Einblicke in interessante Neuerungen. Verwendung von Wasserzeichen in FastReport VCL In den neuesten Versionen von FastReport VCL wurde eine Funktion zum Hinzufügen von Wasserzeichen implementiert. Ein Wasserzeichen ist eine Kennzeichnung, die in ein elektronisches Dokument, Bild, Video, Audio oder andere digitale Inhalte eingebettet wird. Sein Zweck ist es, die Urheberschaft zu bestätigen, vor unerlaubtem Kopieren zu schützen und die Verbreitung der Datei nachzuverfolgen. In diesem Artikel wird die Erstellung und Verwendung von Wasserzeichen in Berichten mit FastReport VCL ausführlich erläutert. Ein Beispiel zur Verwendung von Wasserzeichen befindet sich in der Demo, die mit FastReport VCL ausgeliefert wird. Der Artikel hat die Funktionalität zum Hinzufügen von Wasserzeichen in FastReport VCL ausführlich behandelt – sowohl über die visuelle Oberfläche als auch programmgesteuert mit Delphi-Code und in Berichtsskripten. Haben Sie noch Fragen? Kontaktieren Sie uns ### Results of Embarcadero's webinar URL: https://www.fast-report.com/de/news/results-webinar-2012 Summary: Results of Embarcadero's webinar Results of Embarcadero's webinar As you know, on 7 F ebruary there was a webinar which was devoted to RAD Studio Reporting with FastReport.  Thank you everyone for participating! You can find a video from the webinar o n our Youtube channel . Go and subscribe to our  channel . Y ou can see a post ing about this webinar in Michael Philippenko ’s blog. ### Roslyn features in Visual Studio 2015 Preview URL: https://www.fast-report.com/de/blogs/roslyn-features-visual-studio Introduction Release of Visual Studio 2015 Preview includes new version of C# and VB.NET compilers called "Roslyn". Roslyn is a complete rewrite of C# and VB.NET compilers; if previously they were written in C++, now C# compiler is written in C#, and VB.NET compiler - in VB.NET respectively. Also Roslyn is fully open sourced and available on GitHub. When using the previous compiler, developer couldn't affect the compilation process. New compiler follows the idea of Compiler-as-a-Service: now it's a platform with API that allows the developers taking part in the compilation process. Benefits Refactoring becomes much easier. Developers of Visual Studio extensions can use the infrastructure of Roslyn to not waste their time on writing parsers and analyzers. Roslyn can be used in .NET applications to compile and execute dynamically generated code. Roslyn can greatly help in translating C# code to another programming language. New features based on Roslyn in VS 2015 Unused «using» directives are highlighted by gray color. Ctrl+. now contains the preview window that allows developers evaluating the result of the command. The menu Ctrl +. collected new commands to solve problems with the code and refactoring commands. Added new commands for refactoring: Inline temporary variable and Introduce local . Preview is available in renaming interface and it shows messages about possible errors. Tags: Visual Studio, Visual Studio ### Rückblick auf 2024 und Pläne für 2025 URL: https://www.fast-report.com/de/news/recap2024-plans2025 Summary: Wichtige Erfolge und Veränderungen im Jahr 2024: Einführung neuer Produkte, Unterstützung moderner Technologien und mehr. Wichtige Erfolge und Veränderungen im Jahr 2024: Einführung neuer Produkte, Unterstützung moderner Technologien und mehr. Liebe Freunde, das vergangene Jahr war für uns sehr erlebnisreich und produktiv! 📌 Hauptleistungen Neue Produkte: Wir haben FastReport Avalonia auf den Markt eingeführt - ein Tool für die plattformübergreifende Arbeit an Berichten für Windows, MacOS und Linux. Änderungen in der Produktgestaltung: Wir haben den Produktinhalt so aufgeteilt, dass Sie keine unnötigen Funktionen kaufen müssen. Was hat sich bei unseren Produkten geändert? Für Delphi und Lazarus: Die Arbeit mit hierarchischen Daten in FastReport für Delphi und Lazarus wurde durch das Hinzufügen der TfrTreeView Komponente verbessert. Die Unterstützung der GeoJSON- und TopoJSON-Formate bietet nun zusätzliche Möglichkeiten für die Arbeit mit Karten. Es wurden digitale Signaturen verbessert, eine unendliche Tabellenbreite hinzugefügt, die Barcode-Fähigkeiten erweitert und die Anzeigegenauigkeit und Kompatibilität der PDF-, HTML5-, SVG-, DOCX- und XLSX-Exportfilter verbessert. In der neuesten Version haben wir die Möglichkeiten der Arbeit mit Berichten in komplexen Szenarien erweitert und ein höheres Maß an Integration mit modernen Entwicklungsumgebungen, einschließlich RAD Studio 12.2, bereitgestellt. Für das nächste Jahr planen wir neue Komponenten, Unterstützung für RFID-Tag EPC in ZPL, neue Transporte, verbesserte Exportfilter und vieles mehr. Für .NET: Wir haben den veralteten .NET Standard 2.0 - 3.1 und die .NET 5 Kompatibilitätsschicht in unseren Bibliotheken aufgegeben. Die minimal unterstützte .NET Version ist nun .NET 6, und das minimal unterstützte Framework ist .NET Framework 4.6.2. Mit der neuesten Version der FastReport .NET Bibliothek unterstützen FastReport Business Graphics .NET und FastCube .NET nun auch .NET 9. Dafür haben wir die binäre Serialisierung (BinaryFormatter) aufgegeben. In diesem Jahr wurde FastCube .NET , eine Bibliothek für die Arbeit mit OLAP-Würfeln und die operative Analyse von Big Data, neu aufgelegt. FastCube.Core.Web unterstützt inzwischen auch Linux und MacOS. Damit eröffnet sich die Möglichkeit, Webanwendungen mit OLAP-Funktionalität auf jedem Server zu entwickeln. Eine der wichtigsten Änderungen im FastCube .NET 2025.1 Release war die vollständige Entfernung der Abhängigkeit von der System.Drawing.Common Bibliothek im FastCube.Core Modul. Dies wurde getan, um die Kompatibilität der Bibliothek mit verschiedenen Plattformen zu erhöhen und die Leistung zu verbessern. Der FastReport Online Designer  - der visuelle Vorlagendesigner -  hat sich auch geändert. Im Jahr 2024 wurde ein neues „SparkGraphic“-Objekt hinzugefügt, es ist nun möglich, Leitlinien auf der Seite zu erstellen und auch ein neues Komponentenmenü wurde implementiert. Bei der Bearbeitung des Berichtscodes wurde die Intellisense-Funktionalität hinzugefügt, die eine automatische Code-Vervollständigung und Syntax-Hinweise bietet, so dass die Benutzer den Code schneller und genauer direkt in der Web-Oberfläche schreiben können. Für das Jahr 2025 planen wir ein neues Plugin hinzuzufügen, mit dem Sie Kundenberichte von MS Word nach .frx konvertieren werden können. Darüber hinaus wird in Zukunft eine Verbindung zu Google Sheets implementiert werden. FastScript .NET für die Ausführung von Skripten wird in der ersten Jahreshälfte veröffentlicht werden. Die neue Bibliothek wird über eine Kompilierungstechnologie verfügen, die es Ihnen ermöglicht, Zwischencode in Maschinencode für eine bestimmte Plattform zu konvertieren (Native AOT). Wir haben vor, ein komplettes Ökosystem von Produkten für verschiedene Plattformen zu schaffen, daher werden wir im nächsten Jahr auch an ihrer Integration untereinander arbeiten. Für Service-Lösungen: In FastReport Cloud haben wir das System zur automatischen Ausführung von Aufgaben verbessert, das Drucken über den Browser hinzugefügt, eine Schriftenspeicherung entwickelt und das SDK fertiggestellt. Die Benutzerfreundlichkeit und Geschwindigkeit der API wurde verbessert Es wurden neue API-Methoden für die Arbeit mit der Cloud hinzugefügt, die es Ihnen ermöglichen, vertraute Operationen schneller und bequemer durchzuführen: Massenkopieren, Löschen und Verschieben von Dateien; eine neue Upload-Methode, die es Ihnen ermöglicht, große Dateien hochzuladen und weniger Ressourcen zu verwenden; Methoden, um die Zugriffsrechte des aktuellen Benutzers auf Dateien, Gruppen, Aufgaben und Datenquellen zu erhalten; Hinzufügen der Möglichkeit, Berichtsparameter zu empfangen und zu bearbeiten, ohne den Bericht selbst zur Bearbeitung zu öffnen. Das Benutzerpanel wurde komfortabler gestaltet IDie Arbeit mit dem Online Designer wurde verbessert: es wurde eine Richtext-Vorschau und Stilvorlagen für ChartObject hinzugefügt. Wir haben die Möglichkeit eingeführt, den Avatar des Benutzers zu bearbeiten, haben einen neuen Papierkorb zum Löschen von Dateien erstellt, die Seite „Aufgaben“ verbessert und die Datenquellen überarbeitet, so dass gespeicherte Prozeduren verwendet und benutzerdefinierte Tabellen aus SQL hinzugefügt werden können. Für das Jahr 2025 planen wir die Veröffentlichung eines neuen Produkts und das Hinzufügen der Parameterübergabe zur StaticPreview UI. Wir bedanken uns herzlich bei Ihnen für Ihr Vertrauen im Jahr 2024. Lassen Sie uns gemeinsam weitergehen und die Zukunft gestalten! Wir wünschen Ihnen frohe Weihnachten und einen guten Rutsch ins neue Jahr! ### Save $100 on PASS tickets in November! URL: https://www.fast-report.com/de/news/fastreport-economy-november-2019 Summary: Save $100 on PASS tickets in November! Save $100 on PASS tickets in November! We are excited to be a part of PASS Summit 2019 . Use promocode  PASSExhibitor  during registration to save $100 on your ticket. See you on November 5-8 in Seattle! ### Save the original image quality when exporting to PDF URL: https://www.fast-report.com/de/blogs/save-original-image-quality-pdf In PDF export report there is a new option - "Original Resolution". It allows you to save images in full resolution. Sometimes it is important to transfer an image with the original quality. Using this new option, you will be able to get the image from a PDF document without any quality loss. Here there is one restriction - you cannot rotate the image in the report because it will require a change of the image. However, FastReport has a special protection on the odd chance that you have rotated the image. PDF export will get the original picture. What if you find an image of not a desired angle in your PDF report? In this case, you should check the export options to make sure that the "Original Resolution" option is enabled. If it is necessary, you can scale the image. Let us take a look at the following example.  First, create a simple report. Add an object "Picture" to the report page. Double click on the added object "Picture". After this, a picture editor will open: Use the "Load" button and select the image on the local disk. Click "OK". Here, scaling of the object "Picture" is optional: Run the report in preview mode. Select «Save» -> «Adobe Acrobat» In the PDF export settings select the "Options" tab: Click "OK" and save the export file: Now change the report template. Establish the "Angle property" of the object "Picture" to 90 degrees. Take into account, that you should make export to PDF with the enabled "Original resolution": As you can see, the image has not been rotated by 90 degrees. Let us make another export to PDF, but with a disabled option "Original resolution": In this case, we get an image, rotated by 90 degrees. But what happened to the "original" image? The quality is lost. It is seen from the size of the file: In the last export, we have disabled the option "Original Resolution" and got the file size of 93 KB instead of 14 703 KB. You can stretch the image if you open your PDF file in the editor. In first two exports the picture with high resolution will retain quality: In the third one you will see a terrible pixelation: Summing up, in the article we have illustrated a method, that helps you to send documents, retaining the original image quality. Tags: .NET, .NET, FastReport, FastReport, PDF, PDF ### Saving FastReport .NET template to RDL file URL: https://www.fast-report.com/de/blogs/saving-net-template-rdl Why is it necessary Possibility to save FRX report to RDL is needed for some users. Unfortunately, some objects of FRX report will be lost, because there is no relevant in the RDL . Saving the report to RDL format To do this go to the File menu in designer and select Save As... . On next window select the filter RDL file (*. rdl) and enter the file name. The designer saves report template in the RDL file. The next pictures shows FRX report (left) and the same report saved in RDL (right). Tags: .NET, .NET, FastReport, FastReport ### Scale management when printing in Excel URL: https://www.fast-report.com/de/blogs/scale-management-printing-excel FastReport .NET 2018.4 version brought quite a few innovations. One of them is the ability to set the scale of the Excel page of the document when printing in the Excel export settings. You can export the report to Excel in preview mode or from the code of the user application. Let's consider both options. Export to Excel 2007 from pre-view. For example, I will take a report with a large number of rows and columns - a matrix of 100 by 100. Let’s open the export menu in Excel 2007: At the bottom of the form is the “Print Scaling” option. The default setting is “Actual Size” (No Scaling). Let's make an export and see the Excel document in the view mode when printing: As you can see, the report did not fit one printing page. It will take 6 pages for our matrix. Let's export the report again. But now, for Print Scaling, we select Fit Sheet on One Page. What will we see in the print mode of an Excel document? The scale of the document is reduced so that it fits entirely one page. Well, this is a very valuable option. Often we need to print the entire report on one page. It is necessary to select the scale by trial and error. Let's move on to the next value of the “Print Scaling” option - “Fit All Columns on One Page”. In this case, our example with the matrix will not be the most indicative. As far as you understood, this option allows you to place all data columns on one printing page. In this case, the lines may not fit one page and another one will be generated. But, since our matrix is square, both the columns and the rows will fit on the same printing page. Therefore, I will generate another 30-by-100 matrix. Let's export it to Excel with the value "Fit All Columns on One Page” of the" Print Scaling "option. Let's see how it looks like in print mode in Excel: The scale of the document was chosen so that all columns fit in the width of one page. But the lines did not fit, but this is not important for us, because we chose "All columns on one page." Another value of the option "Scaling when printing" - "All lines on one page." In this case, it is important for us to put all the lines on one page, and whether the columns fit in is not of interest to us. Let's make export to Excel of our matrix 100 by 100. Let's see what happened: All requirements are met - the lines fit on one page. And only 56 columns fit. For the rest, a second print page was created. So, we consider 4 document scales when exporting a report to Excel 2007. Now let's see how to use the considered option in the code of the user application: ``` Report report = new Report(); FastReport.Export.OoXML.Excel2007Export exp = new FastReport.Export.OoXML.Excel2007Export(); exp.PrintFit = FastReport.Export.OoXML.Excel2007Export.PrintFitMode.FitAllColumsOnOnePage; report.Export(exp, @"C:\result.html"); ```  4 values available for PrintMode: NoScaling, FitSheetOnOnePage, FitAllColumsOnOnePage, FitAllRowsOnOnePage. And for the web report, only one mode of scaling Excel document is available - Place on one page: ``` webReport.XlsxPrintFitPage = true; webReport.ExportExcel2007(); ```  Thus, we have at our disposal another useful option. Tags: .NET, .NET, FastReport, FastReport ### Schnelle Erstellung vom Druck-Befehl des Berichts in MVC URL: https://www.fast-report.com/de/blogs/sending-print-reports-mvc Viele Kunden schalten das Menü vom Objekt WebReport, wenn dieses Panel zum Stil der Seite nicht eignet. In diesem Fall verliert der Anwender eine Möglichkeit, Druck und Export Features von diesem Panel zu verwenden. Aber wenn Sie den Bericht gerade auf der Seite vom Browser zu drucken brauchen, können Sie eine spezielle Taste für den Druck erstellen. Beim Klick darauf aktiviert der Anwender das Fenster vom Druckdialog. Jetzt zeige ich Ihnen, wie man das Fenster vom Druckdialog im MVC Web Projekt aufrufen kann. Am Anfang fügen wir die Taste auf view hinzu. Ich erstelle die auf Home Seite meiner Demo Anwendung. Finden wir jetzt im Browser die Datei Index.cshtml: Fügen wir jetzt in den gewünschten Platz die Taste hinzu: ``` @using (Html.BeginForm("Print", "Home")) { } ``` Hier Print ist der Name des Bearbeiters im Controller, der einen Namen Home hat. Jetzt zum Ordner Controllers. Die Datei HomeController.cs: In den Code der Klasse fügen wir folgende Methode hinzu: ``` public void Print() { WebReport webReport = new WebReport(); System.Data.DataSet dataSet = new System.Data.DataSet(); dataSet.ReadXml("C://Program Files (x86)//FastReports//FastReport.Net//Demos//Reports//nwind.xml"); webReport.Report.RegisterData(dataSet, "NorthWind"); webReport.Report.Load("C://Program Files (x86)//FastReports//FastReport.Net//Demos//Reports//Simple List.frx"); webReport.EmbedPictures = true; webReport.PrintHtml(); } ``` Wie Sie sehen, ist diese Methode wie Print genannt, gleich der Methode für die hinzugefügte Taste. Kommentieren wir jetzt dieses Codestück.  In der ersten Zeile erstellten wir ein Examplar des Objekts WebReport. Weiter erstellten wir DataSet für die Arbeit mit den Daten. DataSet funktioniert mit den xml Datalagern. Eigentlich setze ich in der Zeile 3 den Weg zu diesem Datenlager ein.  Mit Hilfe von der Methode RegisterData registrieren wir eine Datenquelle im Objekt Bericht. Weiter laden wir die Berichts Schablone ins Objekt. Es befindet sich im Ordner mit der Datenbank. Die Eigenschaft EmbedPictures gibt eine Möglichkeit, Bilder in die html Datei zu integrieren. Und die letzte Zeile startet den Druck des Berichts im Browser.      Wenn Sie den Bericht im PDF speichern wollen, dann wird es genug, letzte Zeile durch folgende eine erstetzen: ``` webReport.PrintPdf(); ``` Auch kann man die Eigenschaften von PDF Erstellung verwenden. Zum Beispiel: ``` webReport.PdfPrintOptimized = true; ``` Beim Aktivieren dieser Eigenschaft wird die Qualität der Bilder für den Druck verbessert.   Jetzt ist es notwendig, den Bearbeiter in Web.config hinzuzufügen: ``` ``` Jetzt starten wir die Anwendung. So sieht die Taste auf der Web Seite aus: Klicken wir die. Und wir bekommen die Seite mit dem Bericht und dem Druckdialog: Und so sieht PDF Speichern aus: Auf dieser Weise kann man den Dialog beim Tasten Klick aufrufen und kein Instrumenten Panel vom Objekt WebReport verwenden. Das kann nützlich sein, wenn Sie neue Führungselemente vom Bericht ins Design der Web Seite integrieren. In diesem Beispiel fügten wir kein Objekt auf die Web Seite hinzu. Der Bericht wird auf neuner Seite direkt vor dem Druck erstellt. Es ist bequem, wenn es nicht notwendig ist, den Bericht auf der Web Seite zu zeigen. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC, WebReport, WebReport, Printing, Printing ### Schwarzer Freitag Rabatt 2013 URL: https://www.fast-report.com/de/news/black-friday-discount-2013 Summary: Schwarzer Freitag Rabatt 2013 Schwarzer Freitag Rabatt 2013 Wir freuen uns, Sie über Black Friday-Rabatte auf alle Fast Reports-Produkte zu informieren. Aktion beginnt 29 November und wird bis zum Datum fortgesetzt 3 Dezember 2013. ### Seitenbeschreibungssprache - ZPL URL: https://www.fast-report.com/de/blogs/zpl-language Summary: Erfahren Sie mehr über die ZPL-Sprache zum Drucken. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Erfahren Sie mehr über die ZPL-Sprache zum Drucken. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Erfahren Sie mehr über die ZPL-Sprache zum Drucken. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. ZPL - Zebra Programming Language - the language of description of printed pages, also known as PDL (Page Description Language). There are many PDLs. Almost every printer manufacturer has its own page description language. This language allows you to describe the page by high-level commands, which will be interpreted by the printer in low-level ones. The most famous PDL is PostScript from Adobe. The PDL allows to describe page objects. There is something, that makes the program be independent from a particular hardware platform of a printer. The printer receives commands for printing a square, a symbol or a line and we do not care how it will be realized. The printer itself knows how to do this. This is the main advantage of the PDL. American company "Zebra Technologies" has developed the ZPL mainly for creating and printing of labels. Labels can contain a text, barcodes and simple graphics. Such labels are printed with special Zebra printers, which are used in the trade for printing receipts and checks. There are two standards: ZPL and ZPL ll. Differences The main reason for development of ZPL II was a significant reduction of the time when a printer starts to receive data and when the first character goes to be printed. This was made primarily by changing the way of how ZPL programs are written. The ZPL II standard is not 100% compatible with the ZPL standard. But the differences between are minimal. All programs on the ZPL can easily be modified to the level of ZPL ll. There is a backward compatibility. That is, you can write programs on the ZPL ll for ZPL printers, of course, taking into account the old syntax. So, here are two main differences between ZPL ll and ZPL: 1. In ZPL II the data is formatted immediately as received. And in the ZPL standart, the formatting does not start until you get the command to complete the process formatting ^ XZ. 2. ZPL ll has a lot of new commands. Syntax Considering a programming language without examples makes no sense. Therefore, the program code for printing a simple label is given to allow to look at the syntax. ``` ^XA   ^FX Top section with company logo, name and address. ^CF0,60 ^FO55,55^GC100^FS ^FO75,55^GC100^FS ^FO75,75^GC100^FS ^FO55,75^GC100^FS ^FO88,88^GC50,50^FS ^FO220,50^FDLorem Ipsum, Inc.^FS ^CF0,40 ^FO220,100^FD1000 Shipping Lane^FS ^FO220,135^FDShelbyville TN 38102^FS ^FO220,170^FDEURO UNION (EU)^FS ^FO50,250^GB700,1,3^FS   ^FX Second section with recipient address and permit information. ^CFA,30 ^FO50,300^FDKarl Marks^FS ^FO50,340^FD100 Main Street^FS ^FO50,380^FDEURO UNION (EU)^FS ^CFA,15 ^FO50,450^GB700,1,3^FS   ^FX Third section with barcode. ^BY5,2,120 ^FO175,500^BC^FD1234567890^FS   ^FX Fourth section (the two boxes on the bottom). ^FO50,700^GB700,250,3^FS ^FO400,700^GB1,250,3^FS ^CF0,40 ^FO100,760^FDShipping Ctr. Y74H-1^FS ^FO100,800^FDREF1 F99L17^FS ^FO100,840^FDREF2 YUH88^FS ^CF0,190 ^FO485,765^FDAA^FS   ^XZ ```  Now, we get the ticket for the shipping control: As you can see, the code begins with the tag (command) ^ XA and ends with the tag ^ XZ. The code is divided by the comments into four sections for convenience of consideration. 1)  The first section displays the company logo and its legal data: ``` ^FX Top section with company logo, name and address. ^CF0,60 ^FO55,55^GC100^FS ^FO75,55^GC100^FS ^FO75,75^GC100^FS ^FO55,75^GC100^FS ^FO88,88^GC50,50^FS ^FO220,50^FDLorem Ipsum, Inc.^FS ^CF0,40 ^FO220,100^FD1000 Shipping Lane^FS ^FO220,135^FDShelbyville TN 38102^FS ^FO220,170^FDEURO UNION (EU)^FS ^FO50,250^GB700,1,3^FS ```  It is clear that tag ^ FX means a comment. ^CF x, y, z – Default font settings: font, height and width. ^FO x,y  - left and top indentation. ^FS  – end of line. Next, draw a logo from four circles: ^GC x,y – draw a circle. Diameter – x, line thickness – y. Legal data: ^FD – data field. 2)  In the second section we will not see new tags. 3)  In the third section we add a barcode: ``` ^FX Third section with barcode. ^BY5,2,120 ^FO175,500^BC^FD1234567890^FS ```  Here: ^BY x,y,z – width, width of bar, height. 4) In the fourth section another tag appeares: ^GB x,y,z – rectangle (box). Width, height, thickness of the frame. By using a small set of tags, we described the entire printed page. The process is rather simple. You only need to set the distance in points. All the measurements are in points. Summing up, in this article we have considered a part of the ZPL commands to meet a user with the main point of the language. As on the Internet there are many online interpreters of the ZPL code, you can always test it visually. Tags: ZPL ### Seminar Firebird and FastReport, Prague, 9. November 2007 URL: https://www.fast-report.com/de/news/seminar-firebird-prague-2007 Summary: Seminar Firebird and FastReport, Prague, 9. November 2007 Seminar Firebird and FastReport, Prague, 9. November 2007 Seminar Firebird and FastReport, Prague, 9. November 2007 We cordially invite you to a one-day seminar on The Firebird and FastReport database systems, which will be held in patek 9. November in Prague hotel Angelo na Smichove (Radlicka 1g, Prague 5, metro station Andel). Preface: Dmitry Yemanov, chief developer of Firebird Pavel Cisar, IBPhoenix and Firebird QA Mikhail Phillipenko, CEO of FastReport Dmitry Kuzmenko, CEO of IBSurgeon and IBPhoenix expert on data optimization and data recovery. The topic of the seminar will be news in Firebird, security, data protection and optimization, business intelligence and reporting with fastreport and Firebird products. You will not miss the chance to meet members of the developing Firebird team and the opportunity to get prime answers to your questions at the round table! Lectures will be presented in Czech and English. Admission to the seminar is free. However, the number of mist is limited, so register as soon as possible! Seminar programme: 1. Introduction 2. New features of Firebird (English, Dmitry Yemanov) 3. Fastreport kits (English, Mikhail Phillipenko) 4. Protection against damage or loss of data (English, Dmitry Kuzmenko) 5. Firebird Internals by Dmitry Yemanov 6. Business intelligence with FastCube (English, Mikhail Phillipenko) 7. Firebird and security (Czech, Pavel Cisar) 8. Optimization (English, Dmitry Kuzmenko) 9. Round table (English and Czech, all lecturers) http://ibphoenix.fr/spip.php?article80 ### Seminar in Warsaw URL: https://www.fast-report.com/de/news/seminar-warsaw-2007 Summary: Seminar in Warsaw Seminar in Warsaw On behalf of Fast Reports Inc. and Firebird we are pleased to invite you to a seminar devoted to new functionalities of the Fast Report and Firebird programmes. The seminar will take place on 07.12.2007 at Hotel Lord in Warsaw, Al. Krakowskie 218.    Fast Reports Inc company has been operating on the IT market since 1998 and its main objective is to develop report-generating software.  The aim of the seminar is to present new functionalities and features of Fast Report and Firebird, as well as other tools.  All the advantages and functionalities of the programmes will be presented by: Fast Reports' BI solutions for developers and end-users, Michael Philippenko, CEO Fast Reports Fighting database corruptions, Dmitry Kuzmenko, CEO IBSurgeon Fast Reports' new products and new features, Michael Philippenko, CEO Fast Reports Optimization of Firebird databases, Dmitry Kuzmenko, CEO IBSurgeon  Participation in the seminar is free of change.   All the interested persons are asked to contact us by phone: 022 885-43-21 or by writing to the e-mail address:  info@softkey.pl  in order to receive an application form.  The number of participants is limited. We invite you to take part in our seminar! ### Sending report from Delphi program via MAPI protocol URL: https://www.fast-report.com/de/blogs/send-report-delphi-mapi-protocol Just copy following code for sending the report from your own application: ``` procedure TForm1.Button2Click(Sender: TObject); var mail: TfrxMailExport; txt: TfrxTXTExport; begin txt := TfrxTXTExport.Create(nil); mail := TfrxMailExport.Create(nil); mail.UseMAPI := MAPI; mail.Address:='Recepient Name '; mail.ExportFilter:=txt; mail.FilterDesc:='TXT per E-Mail'; mail.FromMail:='Sender Name '; mail.Login := ''; mail.Password := ''; mail.Subject:='Subject-Text here'; mail.Lines.Add('Hi there, ' + #13#10#13#10+ 'heres comes an email with attached file'); frxReport1.Export(mail); mail.Destroy; end; ``` There are two important issues for this example:  The recepient address must be written in canonical form Name . Simple forms  - user@host.net will be rejected by some mail clients. For example, Microsoft Outlook require a  canonical form of the recepient address. You must set fields Login and Password  with empty values. Tags: VCL, VCL, MAPI, MAPI, FastReport, FastReport, Delphi, Delphi ### Sending reports by E-mail via MAPI protocol URL: https://www.fast-report.com/de/blogs/sending-reports-email-mapi FastReport.VCL with the very first version uses the original realization of SMTP protocol, written for sending generated reports via email. Excellent implementation, which is used by many users. These days some providers of postal services have demanded secure authentication to send mail, therefore some users have difficulty in sending reports. Customers of .NET version of the report generator does not run into this problem, because the implementation of sending reports in FastReport.NET based on MAPI protocol. In this case, the report generator uses an external mail program for sending the reports. Due to numerous requests the support of MAPI protocol was included in VCL version. We apologize to all users who are prematurely get informed of readiness MAPI - our implementation had contained some errors that did not allow to send mail when using the report generator with modern versions Delphi with Unicode support. We are pleased to report that MAPI error corrected now. All comments, bug reports and suggestions regarding sending reports via MAPI protocol in FastReport.VCL you can write into this blog. Tags: VCL, VCL, MAPI, MAPI, FastReport, FastReport, Email, Email ### Service Solutions Update to Version 2026.1 URL: https://www.fast-report.com/de/news/release-service-2026.1 Summary: In the 2026.1 release of our service solutions lineup, we focused on improving usability, security, and expanding capabilities. In the 2026.1 release of our service solutions lineup, we focused on improving usability, security, and expanding capabilities. In the 2026.1 release of our service solutions lineup ( FastReport Cloud , FastReport Publisher , FastReport Corporate Server ), we focused on improving usability, security, and expanding capabilities. The update includes dozens of improvements to the interface, integration mechanisms, user tools, and increased stability. Saving Documents to S3-Compatible Storage A component for working with Amazon S3-compatible storage has been added. This allows saving templates, reports, and finished documents in various formats (pdf, docx, xlsx, etc.) to S3. One use case is creating an annual report (by passing start and end dates as report parameters), exporting it to PDF, and saving it to S3-compatible storage, where it will be available for viewing and downloading.  For more details on saving to S3  and its programmatic use , please refer to the documentation. Sending Documents to Telegram Telegram Bot API support has been added. Similar to saving to S3, documents and report templates can now be sent to Telegram. Sending to channels, direct messages with the chatbot, and group chats is supported. To send, use the unique identifier or name of the public channel or group where the bot has been added. More information on Telegram bots and their creation can be found on  the official Telegram website .  Additionally, the most convenient way to send documents to Telegram is by using an export task followed by sending. To do this, select the previously created Telegram sending task from the dropdown list in the export task settings. Hotkey Hints Added to Context Menus Interface usability has been improved: hotkey hints now appear in context menus. These allow for faster interaction with the user panel interface. Enhanced API Security: CORS Support and Trusted Domain Management We have updated the API request protection mechanism in accordance with modern web security standards. Now, authorized API requests require explicitly specifying trusted domains—this enables correct handling of CORS (Cross-Origin Resource Sharing) and preflight requests in modern browsers. Browsers block cross-domain requests without explicit permission—this protects users from CSRF (Cross-Site Request Forgery) and other attacks. The previously used approach stopped working after security policy updates in Chrome, Firefox, and other browsers. Workspace administrators can configure the list of allowed domains in the “Settings → Workspace” section. Only requests from these domains will have authorized access to the API. This enhances security without compromising convenience—integrations continue to function, but now reliably and according to standards. Added Script Autocompletion Support for FastReport Online Designer Online Designer now includes support for autocompletion hints (similar to IntelliSense), which increases the speed and accuracy of template development. For other new features of the Online Designer, please refer to the 2026.1 release news .  New Template and Report Preview Modes Added The preview component has received additional modes. The following are now available: Static preview (a lightweight mode that displays/renders templates and reports in SVG format); WASM Static Preview—a more accurate, but also resource-intensive component, written in Blazor; Interactive WASM Preview—the most accurate and powerful mode, allowing interactive reports to be run. The appropriate mode can be selected before opening a template or report.  It is also possible to set a default mode in the user settings. Nested Parameters Added to Static Preview Static Preview now supports parameters of any nesting level. This improves work with complex templates and allows parameters to be grouped by topic. Global File Search Added to API The ability to perform a global search for files and folders via API has been added.  This allows you to find a template, report, or any document by its name, even without knowing which folder it is located in. Additional Changes for FastReport Corporate Server and FastReport Publisher Below are additions that apply only to the on-premise products in the lineup. Docker Image Repository Builds are now distributed via Docker Registry. Documentation has been added and updated, and related docker-compose scripts have been fixed. This simplifies product updates and deployments. Separate Sign-In Form A separate sign-in form has been introduced, fully supported by Gateway mechanisms. Old settings (SignInPagePath, DisabledPath) have been removed—they are now replaced by the built-in system. The authorization process has become simpler and requires less traffic. As of the 2026.1 release, this functionality is used for logging into the administrator panel. Support for other services will be added in future releases. Information on Active Users and Subscriptions on the Audit Page The administrator panel has gained additional functionality: the “Audit” page now displays the IDs of active users and subscriptions for a specified time interval. This allows for more effective system usage control and better user understanding. Font Management in the Administrator Panel A dedicated font management page has been added to the administrative panel. Corporate Server and Publisher Installation Wizard The installation wizard has received a major update: Added the option to install FerretDB and PostgreSQL as databases. Users can now choose to install either Publisher or Corporate Server. Added the option to select a demo version for installation. Improved configuration file creation. Reworked interface and bug fixes. Documentation The documentation has been significantly revised and expanded: Documentation for Cloud, Corporate Server, and Publisher is now unified into a single build. Added guides for working with S3, FerretDB, and Docker Registry. Added an article on integrating static preview via iframe. Corrected errors and typos. Added canonical tags and current version to the online documentation. Full list of changes [Frontend] + added font interface to workspace information page + added export parameters to localstorage + added virtualization to users page + added s3 component to user panel + added hotkey hints to various context menus + added telegram task component * added support for alternative uid / pwd keys in MySQL connection dialog (now it will also parse “user id” and “password”) * added new components for font limit designation * added S3 and FTP tasks to workspace information page - fixed product purchase link - fixed automatic connection string parsing in data source setup dialog for MS SQL - fixed file renaming with F2 - fixed export to docx in paragraph breaking mode [Admin Panel] + added more links to entities in the admin panel + added information about active users and subscriptions to the audit page in the admin panel + added a new page in the admin panel for fonts + added checks for duplicate file names and incorrect user IDs in analytics * fixed an error with parameters in the admin panel - fixed visual errors when loading fonts in the admin panel - fixed a bug where the problem solver returned an error when analytics found font problems - fixed a bug where the check for unlinked documents marked all font description models as unlinked (belonging to a non-existent workspace) [Docs] + added documentation on how to use FerretDB instead of MongoDB + added documentation for S3 + added an article to the documentation on integrating staticpreview via iframe + added canonical tag for documentation pages * added current version to online documentation * updated documentation for working with docker registry * fixed some typos in the documentation * unified documentation into one [Online Designer] * disabled html5 notifications in Online Designer * changed the preview generation mechanism for Online Designer; now the temporary template file is deleted after creation [Backend] + added S3 upload task + added Telegram sending task + added domain permissions; now, to execute authenticated requests, a list of allowed domains must be specified in the workspace; previously, due to the new browser security system, this functionality was inoperable + added IntelliSense support for Online Designer + added global file search to API * improved font caching mechanism in the worker service * added search by subscription plan to audits * replaced the view model for the request for space occupied by fonts. Now it is not the same model as for files - fixed an error where many parallel requests led to memory leak and caused an error - fixed data types of returned view models in the task controller - fixed a bug where font space calculations accounted for all workspaces - fixed a bug where OpenID users did not display any useful information in the workspace user list - fixed a bug where nested transport had a null subscription ID [Tasks] - fixed an error where a task could sometimes enter an infinite loop and hang the entire system [Preview] + added new preview modes + added localization switching logic for wasmpreview, identical to staticpreview + added nested parameters to static preview [Installer] + added FerretDB installation option + added Publisher installation capability + added Docker-related text to the final page + added demo version license keys • changed behavior: the “Next” button will now be disabled if a license key is not specified • changed behavior: the installer now creates an extended configuration file - fixed a bug where the installer crashed when clicking to show the RabbitMQ password [Demos] + added WPF demo application for FastReport .NET + Cloud [Common] + added a new AllowLocalSignUp property for Auth, which allows enabling and disabling user registration + added a new FaviconLink property for Server, which allows setting the favicon link for a white-label license * assembly download is now available via Docker Registry instead of ZIP * changed the API test cleanup method * the gateway now handles the sign-in form; sign-in is simplified and requires less traffic - fixed an error where license restrictions erroneously prevented the use of OpenID (OIDC) - removed SignInPagePath property from Gateway config; it is replaced by the built-in sign-in mechanism - removed DisabledPath property from Gateway config; it is replaced by the built-in mechanism - fixed docker-compose script for installation files, updated RabbitMQ version [Font Server] - fixed a bug where some TTF files failed to load ### Session: Generating document templates using machine learning in Azure URL: https://www.fast-report.com/de/news/generating-document-azure Summary: Session: Generating document templates using machine learning in Azure Session: Generating document templates using machine learning in Azure On September 26 lead developer of Fast Reports Viacheslav Shamshin will hold a session on generating document templates using machine learning in Azure during Basta! conference in Mainz. The session discusses the current MS Azure cloud possibilities focused on artificial intelligence and machine learning technologies for automatical creation of reports and document forms. In addition, the speaker presents a new approach for report generation using machine learning for data blocks recognizing. Models for templates deploying of databases and report generators based on cloud structure finalize the session. Buy your tickets for Basta! conference here:  https://basta.net/tickets/ ### Several reports in the same object WebReport - Working with tabs URL: https://www.fast-report.com/de/blogs/several-reports-same-object-webreport Web Reports direction actively develops in FastReport.Net. A new feature - bookmarks, you can create a bookmark to a web report toolbar. These tabs allow you to open other reports in the same window. Such a decision may be convenient to display a series of reports similar subjects or reports related by the context. It looks like this: Tabs are presented in the form of buttons. By selecting a tab, we run the report in the same window. Now there is no need to display each report in individual object WebReport. This will help to save space on the page and to avoid congestion of the site. Let's look at the implementation of this function in the example. I used the MVC web project. Add FastReport libraries to the project: FastReport.dll; FastReport.Web.dll. They can be found in the folder FastReport.Net application. Create in the controller Home: instances of report objects, data source, tabs. In general, all the logic here. Declare the libraries: ``` using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using FastReport.Web; using System.Web.UI.WebControls; ```  For Index method write the following code: ``` public ActionResult Index() { string report_path = "C:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; //Report path System.Data.DataSet dataSet = new System.Data.DataSet(); //Create DataSet instance dataSet.ReadXml(report_path + "nwind.xml"); //Read XML databse WebReport webReport = new WebReport(); //Create webReport instance webReport.Width = Unit.Percentage(100); //Set the webReport object width 100% webReport.Height = Unit.Percentage(100); //Set the webReport object heigh 100% webReport.SinglePage = true; //Enable SinglePage mode webReport.Report.RegisterData(dataSet, "NorthWind"); //Register data source in the webReport object webReport.Report.Load(report_path + "Simple List.frx"); //Load a report into the webReport object webReport.CurrentTab.Name = "Simple List"; //Set the current tab name Report report2 = new Report(); //Create a Report instance which will be displayed in the second tab report2.RegisterData(dataSet, "NorthWind"); //Register data source in the report object report2.Load(report_path + "Labels.frx"); //Load a report into the report object webReport.AddTab(report2, "Labels").Properties.SinglePage=true; //Add web tab in the webReport object. Pass as parameters report object and tab name. Enable SinglePage mode for the tab. Report report3 = new Report(); //Create a Report instance which will be displayed in the third tab report3.RegisterData(dataSet, "NorthWind");//Register data source in the report object report3.Load(report_path + "Master-Detail.frx");//Load a report into the report object webReport.AddTab(report3, "Master-Detail");//Add web tab in the webReport object. Pass as parameters report object and tab name. webReport.TabPosition = TabPosition.InsideToolbar;//Set the property TabPosition ViewBag.WebReport = webReport; //Set the ViewBag as webReport return View(); } ```  There is another interesting property: webReport.ShowTabCloseButton If it is set to true, the tabs will have an "X" to close the tab. This option may be useful in interactive reports, where tabs will be dynamically created and contain detailed reports. If a report is not needed, you can close the tab. Then, if necessary, it will be possible again to generate its tab. Above we have looked at how to create a tab, send them reports. We used: ``` public ReportTab AddTab(Report report, string name); ```  As parameters we pass the report object and the name of the tab. However, you can do one parameter: ``` public ReportTab AddTab(Report report); ```  Pass a report object. This tab name will be generated automatically. This will be the serial number of a tab. It is possible to pass the already built report to bookmark of a Web report: ``` public ReportTab AddTab(Report report, string name, bool reportDone); ```  Here, we pass: report, name for the tab and the property that indicates whether the report is to be pre-built. You can upload a file of already prepared report into the report object, and the last parameter specify as true. Then the report will be loaded from the specified file fpx. It might look like this: ``` Report report2 = new Report(); //Create a Report instance which will be displayed in the second tab report2.RegisterData(dataSet, "NorthWind"); //Register data source in the report object report2.Load(report_path + "Labels.frx"); //Load a report into the report object report2.Prepare();//Prepare the report string s = this.Server.MapPath("~/App_Data/Prepared.fpx");//Set the location to save prepared report report2.SavePrepared(s);//Save prepared report   Report firstReport = new Report();//Create instance of Report object firstReport.LoadPrepared(s);//Upload prepared report to the Report object webReport.AddTab(firstReport, "First tab", true);//Add the tab to the WebReport toolbar ```  I showed how to keep the prepared report to a file, and then download it and use it in a web report tab. Go to the view. In the folder Views-> Home open the file Index.cshtml. All page code consists of four lines: ``` @{ ViewBag.Title = "Home Page"; } @ViewBag.WebReport.GetHtml() ```  In the last line of the report output. Home controller sends a report to the page. Add scripts for the web report in the initialization of view _Layout.cshtml (in Views-> Shared folder): ``` … @WebReportGlobals.Scripts() @WebReportGlobals.Styles() … ```  Edit the Web.config, which is located in the Views folder Add the namespace: ``` … ```  Edit the Web.config, which is located in the project root. Add the handler: ``` … ``` Undoubtedly, the new feature of the addition of tabs in the Web report will be useful and in demand. Features of web reports is gradually expanding. It seems that in the near future, web reports nothing will not yield to the desktop reports. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### Shape-Eigenschaft von PictureObject in FastReport .NET URL: https://www.fast-report.com/de/blogs/shape-property-dotnet Summary: Für das PictureObject-Element wurde die Version 2024.1 um eine neue Shape-Eigenschaft erweiter, mit der Sie die Form des Bildes ändern können. Für das PictureObject-Element wurde die Version 2024.1 um eine neue Shape-Eigenschaft erweiter, mit der Sie die Form des Bildes ändern können. Für das PictureObject-Element wurde die Version 2024.1 um eine neue Shape-Eigenschaft erweiter, mit der Sie die Form des Bildes ändern können. Für das PictureObject-Element wurde die Version 2024.1 um eine neue Shape-Eigenschaft erweiter, mit der Sie die Form des Bildes ändern können. Für die Shape-Eigenschaft stehen folgende Formen zur Verfügung: Rectangle (Rechteck). RoundRecangle (Rechteck mit abgerundeten Kanten). Ellipse (Kreis). Triangle (Dreieck). Diamond (Raute). Im Designer selbst sehen sie wie folgt aus: Es ist zu beachten, dass die Form nicht an das Bild, sondern an das PictureObject selbst gebunden ist. Für einen korrekten Export in das PDF-Format müssen Sie außerdem die Einstellung „Originalauflösung“ deaktivieren, da der Export sonst fehlerhaft sein kann.  Tags: .NET, .NET, FastReport, FastReport, Designer, Designer ### Sicherheit des Berichtsskripts URL: https://www.fast-report.com/de/blogs/report-script-security Summary: Reden über die speziellen tools für den Schutz Ihres Skripts auf FastReport .NET, FastReport .NET Core, FastReport Mono-und FastReport Open Source Reden über die speziellen tools für den Schutz Ihres Skripts auf FastReport .NET, FastReport .NET Core, FastReport Mono-und FastReport Open Source Reden über die speziellen tools für den Schutz Ihres Skripts auf FastReport .NET, FastReport .NET Core, FastReport Mono-und FastReport Open Source FastReport .NET  unterstützt die Berechnung von Ausdrücken für die Anzeige von Werten in der gewünschten Form oder von beliebigen Objektsichtbarkeitsbedingungen. Es ist auch möglich, Ereignisse für jedes Objekt des Berichtes zu verarbeiten, z.B. vor dem Drucken. Ereignisbehandler werden in einem Berichtsskript platziert, das die Programmiersprachen C# und VB.NET unterstützt. Zusätzlich zur Ereignisverarbeitung kann das Skript fast alle Berechnungen oder Aktionen enthalten, die die erforderlichen Daten erzeugen oder das Verhalten des Berichts ändern können, wie es vom Entwickler der Berichtsvorlage gefordert wird. Bevor das Programm in der Berichtsskriptsprache erstellt wird, berücksichtigt der Berichtsgenerator alle Ausdrücke, Funktionen und Aufrufe von Parametern im Bericht. Dann wird das Programm mit dem Skript kombiniert, das der Entwickler der Berichtsvorlage geschrieben hatte. Das resultierende Skript wird kompiliert und als Bibliothek in die Anwendung geladen, die mit dem Berichtsgenerator arbeitet. Wenn Sie Berichte in Webanwendungen ausführen, können Sie sie mit dem Online Designer  bearbeiten. Die Bearbeitung erfolgt über einen Browser, der bearbeitete Report wird an den Server gesendet und kann dort erstellt werden.  Während Berichte von vertrauenswürdigen Entwicklern bearbeitet und in einer isolierten Umgebung ausgeführt werden, gibt Ihnen die Möglichkeit, Skripte in Berichten zu verwenden, Flexibilität und nahezu unbegrenzte Möglichkeiten zur Datenverarbeitung und Visualisierung. Die Bearbeitung und Ausführung ist unter Kontrolle. Sobald die Möglichkeit eines allgemeinen Zugriffs auf die Bearbeitung von Berichten über den Browser und den Online-Designer erscheint, stellt sich die Frage nach der Sicherheit der Gebäudeberichte auf dem Server. Es wird möglich, bösartigen Code in Skript- und Berichtsausdrücke einzufügen. Um die Ausführung von schädlichem Code in den Skript- und Reportausdrücken bei der Arbeit im Web zu verhindern, wurden in FastReport.NET 2020.3.22 spezielle Sicherheitsfunktionen hinzugefügt. Die Änderungen betreffen FastReport .NET, FastReport .NET Core, FastReport Mono und FastReport Open Source. Sicherheitsfunktionen sind standardmäßig aktiv, aber Entwickler können sie nach Bedarf in ihren Anwendungen ändern oder deaktivieren. Neue Eigenschaften und Methoden: bool FastReport.Utils.Config. EnableScriptSecurity – aktiviert oder deaktiviert die Überprüfung des Berichtsskripts. Funktioniert nur, wenn Berichte in Webanwendungen ausgeführt werden.  (FastReport.Utils.Config.WebMode == true). Diese Eigenschaft ist standardmäßig auf True gesetzt. (enabled). event FastReport.Utils.Config. OnEnableScriptSecurityChanged – das Ereignis wird ausgelöst, wenn EnableScriptSecurity geändert wurde. Kann für zusätzliche Sicherheitskontrollen verwendet werden. FastReport.Web.WebReport. SetScriptSecurity (IScriptChecker scriptChecker) - Installiert eine benutzerdefinierte Implementierung einer Verifizierungsmethode, die die integrierten Sicherheitskontrollen außer Kraft setzt. ScriptSecurityProperties FastReport.Utils.Config. ScriptSecurityProps - Parameter zum Konfigurieren der Skript-Sicherheitsprüfung. Wird auf NULL gesetzt, wenn eine Nicht-Web-Anwendung läuft. (FastReport.Utils.Config.WebMode == false). bool FastReport.Utils.Config.ScriptSecurityProps. AddStubClasses – aktiviert oder deaktiviert das Hinzufügen von Stub-Klassen für das Skript. Diese Eigenschaft ist standardmäßig auf True gesetzt (enabled). Nicht durch Setzen eines eigenen SetScriptSecurity-Handlers überschrieben (see above). event FastReport.Utils.Config.ScriptSecurityProps. OnStopListChanged – das Ereignis wird aufgerufen, wenn die StopList geändert wurde. Kann für zusätzliche Sicherheitskontrollen verwendet werden. string[] FastReport.Utils.Config.ScriptSecurityProps. StopList - eine Liste von Schlüsselwörtern, die im Berichtsskript nicht verwendet werden sollten. Enthält eine Standardliste von Wörtern. FastReport.Utils.Config.ScriptSecurityProps. SetDefaultStopList() - setzt den Standardwert der StopList (discards changes). Der entwickelte Berichtsskript-Schutzkomplex ermöglicht es, die Gefahr der Injektion von bösartigem Code und dessen Ausführung auf der Serverseite zu minimalisieren. Es muss daran erinnert werden, dass selbst die Verwendung von integrierten Sicherheitskontrollen für Berichtsskripte keinen hundertprozentigen Schutz gegen die Injektion von bösartigem Code in die gespeicherten Vorlagen bietet. Daher empfehlen wir dringend, Zugriffsprotokolle in Webanwendungen zu führen und einer begrenzten Anzahl von privilegierten Benutzern die Bearbeitung von Berichtsvorlagen zu erlauben.  Tags: .NET, .NET, Core, Core, Open Source, Open Source, Script, Script ### Sichern Sie sich FastReport WPF mit bis zu 50% Rabatt URL: https://www.fast-report.com/de/news/sale-wpf-2023 Summary: Leistungsstarke Berichts- und Dokumenterstellungsbibliothek für WPF mit bis zu 50 % Rabatt, sparen Sie beim Kauf einer leistungsstarken Bibliothek. Leistungsstarke Berichts- und Dokumenterstellungsbibliothek für WPF mit bis zu 50 % Rabatt, sparen Sie beim Kauf einer leistungsstarken Bibliothek. Hochleistungsfähige Berichtsbibliothek und Dokumente für WPF mit bis zu 50% Rabatt ist nun erhältlich!  Sparen Sie beim Kauf einer leistungsfähigen Berichtsbibliothek zwischen dem 4. und 15. Dezember. 50%  Rabatt ist vorhanden, in dem Fall, dass Sie schon ein Abonnement für eines der .NET Produkte haben (FastReport .NET, FastCube .NET, FastReport Business Graphics .NET, FastReport Mono, MyReports Desktop). Sie erhalten  30%  Rabatt, wenn Ihr .NET Produktabonnement abgelaufen ist. FastReport WPF  ermöglicht Ihnen die Erstellung von Berichten und Dokumenten mit allen Vorteilen der Windows Presentation Foundation (WPF). Entwickeln Sie Ihre Geschäftsanwendungen, um Ihre Unternehmensanforderungen auf Desktop- und WEB-Plattformen zu erfüllen. Unterstützt .NET Framework, .NET 7 und .NET 8. Der Rabatt gilt für alle Produkteditionen außer der Ultimate Edition (FastReport WPF ist in dieser Edition bereits enthalten). Sie können das Angebot nutzen, indem Sie sich mit unseren Managern unter  sales@fast-report.com  oder per Chat auf unserer Website in Verbindung setzen. ### Sie können FastReport über PayPal kaufen URL: https://www.fast-report.com/de/news/fastreport-buy-paypal Summary: Wir freuen uns, PayPal als neue Kundenzahlungsmethode bekannt zu geben. Wir freuen uns, PayPal als neue Kundenzahlungsmethode bekannt zu geben. Wir freuen uns, PayPal als neue Kundenzahlungsmethode bekannt zu geben. PayPal-Zahlungen können jetzt über die RegNow-Einkaufswagen akzeptiert werden. Es reicht aus, auf der Registrierungsseite " Zahlungsmethode: PayPal " auszuwählen. Links zum Kauf über PayPal: Schnellbericht 3: ### So arbeiten Sie mit Karten im SHP-Format in Delphi / Lazarus / С ++ Builder URL: https://www.fast-report.com/de/blogs/shp-maps-delphi-vcl Summary: Wir erzählen, was für eine Datei ShapeFile ist, und welche Vorteile und Nachteile das Format für die Arbeit mit Karten in den Report mit Delphi-Code hat. Wir erzählen, was für eine Datei ShapeFile ist, und welche Vorteile und Nachteile das Format für die Arbeit mit Karten in den Report mit Delphi-Code hat. Wir erzählen, was für eine Datei ShapeFile ist, und welche Vorteile und Nachteile das Format für die Arbeit mit Karten in den Report mit Delphi-Code hat. ShapeFile, sie sind auch "Shapes" (englische Form - Shape) sind eine Form oder eine Reihe von komplexen Formen, die möglicherweise nicht miteinander verbunden sind. Formen können eine Struktur von Punkten, Polylinien oder Polygonen haben. Es ist auch erwähnenswert, dass zusammen mit der Formatdatei "* .shp" eine Datei im Format "* .dbf" generiert wird, in der die Header-Informationen zu unseren Formen gespeichert werden. Es ist wichtig, dass die Datei "* .dbf" denselben Namen haben wie die Datei ".shp" hat. Die .shp-Hauptdatei speichert geometrische Daten, die in der .shx-Datei (Index) indiziert und mit Attributen und deren Werten in einer dBASE-Datenbank (.dbf) erweitert sind. Veröffentlichung ESRI verfügt über eine vollständige Spezifikation des "Shapefile" -Formats (.shp, .shx, .dbf) und nutzt die vollständige Unterstützung einer Reihe von GIS- und CAD-Systemen. Es wird häufig zur Darstellung aller Arten von Karten und kartografischen Diagrammen verwendet. Wenn eine der festgelegten Dateien verloren geht, können die Daten beschädigt werden oder das Projekt geht insgesamt verloren. ArcGIS ist ein Geoinformationssystem (GIS) für die Arbeit mit Karten und Geoinformationen. Es wird zum Erstellen und Verwenden von Karten, zum Zusammenstellen von geografischen Daten, zur Analyse, zu den Austauschen und Erkennen von geografischen Daten sowie zum Verwenden von Karten und geografischen Informationen von einer Reihe der Anwendungen und Verwaltungen für geografische Informationen in einer Datenbank verwendet.  Mehr über ArcGIS Technologie .  Im Kontext von GIS sind Vektordatenformate (oder tatsächlich Vektordatenspeichermodelle) eine der Möglichkeiten, Objekte in der realen Welt anzuzeigen. Sie können SHP-Dateien mit den folgenden Programmen öffnen: CADE Pro, Parallels, Tools Center, AutoCAD, ArcExplorer von ESRI, Free File Viewer Pro. Vorteile der ShapeFiles Beim Exportieren von Daten zur Verwendung mit Softwareanwendungen von Drittanbietern (Nicht-Esri) Beim Exportieren von Daten zur Verwendung in ArcView GIS 3 oder ArcInfo Workstation Wenn Sie schnell einfache Funktionen und Attribute erfassen sollen, z. B. für Geoverarbeitungsdienste (beachten Sie jedoch die unten beschriebenen Einschränkungen.) Nachteile der ShapeFiles Shapefiles eignen sich zum Speichern einfacher Geometrie für Features. Es gibt jedoch ernsthafte Probleme bei der Speicherung von Attributen. Sie können beispielsweise keine Zahlen runden, Unicode-Zeichen nur eingeschränkt unterstützen, keine Felder mit Namen, die mehr als 10 Zeichen haben, speichern und keine Möglichkeit haben, Datum und Uhrzeit in einem einzigen Feld zu konsolidieren. Dies sind nur die Hauptbeschränkungen. Darüber hinaus unterstützen sie nicht die Funktionen von Geodatabases, z. B. das Arbeiten mit Domänen und Subtypen. Daher sollten Sie keine ShapeFiles verwenden, wenn Sie komplexe Attribute speichern und die Funktionen von Geodatabases nutzen sollen. Geometrie-Beschränkungen der ShapeFiles Jede Komponente der ShapeFile darf nicht größer als 2 GB sein, was ungefähr 70 Millionen Punktmerkmalen entspricht, da 4-Byte-Nummern für Referenzen in der Datei verwendet werden. Die Anzahl der Linien- oder Polygon-Features, die in einer ShapeFile enthalten sein können, hängt von der Anzahl der Scheitelpunkte dieser Features ab (ein Scheitelpunkt entspricht einem Punkt). Toleranzwerte (x; y) werden direkt in Geodatabase-Feature-Classes gespeichert, aber ShapeFiles speichern diese Werte jedoch auf ganz andere Weise: die (x; y) -Toleranz ist der Mindestabstand zwischen Koordinaten, näher an dem sie als identisch betrachtet werden. Zwischen Features derselben Feature-Class oder zwischen Features mehrerer verschiedenen Feature-Classes wird bei der Bewertung von Beziehungen dieselbe Toleranz verwendet. Es wird auch aktiv beim Bearbeiten von Objekten verwendet. Wenn Sie Operationen und Werkzeuge wie Überlagern, Ausschneiden, Ebene nach Ort auswählen oder ein Tool verwenden, das zwei oder mehr Feature-Classes als Eingabe verwendet, ist es besser, anstelle von den ShapeFiles die Geodatabase-Feature-Class zu verwenden. Ein ShapeFile kann drei- bis fünfmal mehr Speicherplatz anfordern als eine Datei-Geodatabase oder SDE, da es unterschiedliche Komprimierungsmethoden verwendet. ShapeFiles unterstützen Multipatch-Funktionen, jedoch nicht die folgenden Multipatch-Funktionen: Koordinaten von Texturen Texturen und Teilfarben Beleuchtungsnormen Der räumliche Index einer ShapeFile ist im Vergleich zu einem Geodatabase-Feature-Class-Index unwirksam. Räumliche Abfragen wie das Auswählen von Features innerhalb eines Polygons dauern länger als dieselbe Feature-Class in einer Geodatabase. Dieser Nachteil wird nur bei einer großen Anzahl von räumlichen Objekten beobachtet. Parametrisch definierte Kurven (auch als Bogensegmentkurven bezeichnet) werden in den ShapeFiles nicht unterstützt. Parametrische Kurven können durch Bearbeiten einer Geodatabase-Feature-Class erstellt werden. Zur Darstellung der Kurven werden mathematische Formeln verwendet. Wenn Sie eine Geodatabase-Feature-Class, die parametrische Kurven enthält, in eine ShapeFile exportieren, werden die Kurven in einfache Linien-Features mit sehr nahe beieinanderliegenden Scheitelpunkten umgewandelt, um eine konsistente Form beizubehalten. Im Gegensatz zu anderen Formaten speichert eine ShapeFile numerische Attribute im Zeichenformat und nicht im Binärformat. Bei reellen numerischen Werten (z. B. mit Dezimalstellen) kann dies zu Rundungsfehlern führen. Diese Einschränkung gilt nur für Attribute und nicht fürs Speichern von Koordinaten. Mehr informationen über ShapeFile lesen Sie hier Und hier über die Besonderheiten der Arbeit mit diesen Dateien Wie die Datei im SHP im Code erstellen Wir haben über das Format selbst diskutiert. Und wie kann man die fertigen Dateien öffnen, wenn man in Delphi arbeitet? Es gibt drei Möglichkeiten: Verwenden von  GDAL .  Das ist eine Bibliothek vom Transformiren der Raster- und Vektor-Geodatenformate, die unter der Open Source Geospatial Foundation-Lizenz im X / MIT-Stil lizenziert sind. Die Bibliothek präsentiert die aufrufende Anwendung der abstrakten Rasterdaten- und Vektordatenmodelle für alle unterstützten Formate. Es enthält außerdem verschiedene nützliche Befehlszeilenprogramme zum Übersetzen und Bearbeiten von Daten.  Verwenden von MapWindow GIS — ein OpenSource Projekt mit GIS Code, der eine Menge der im Programm steuernden Bibliotheken hat. Es wird vom GeoSpatial Software Lab der University in Idaho entwickelt. Die Anwendung läuft nur unter dem Windows-Betriebssystem, es gibt keine Unterstützung unter Linux. Erstens ist dieses Projekt für Entwickler sehr interessant, weil der Kern dieser Anwendung ist in C ++ geschrieben und besteht aus einer ActiveX-Bibliothek, die separat von MapWindow verwendet werden kann und eigene Anwendungen zur Visualisierung und Verarbeitung von Geodaten hat (das Tool funktioniert in allen Entwicklungsumgebungen, die den Import von ActiveX-Komponenten unterstützen).  Ein Beispiel der Arbeit mit dieser Bibliothek . Github. Und die beste Variante FastReport zu verwenden! Warum? Die Tatsache ist, dass es schon einsatzbereit ist! Nehmen Sie es und laden Sie es sofort - und, wunderbar, er zeigt Ihnen bereits alles! Ohne Beschränkungen! Sie sollen nicht eine Woche lang manipulieren, wir haben alles für Sie vorbereitet! Probieren Sie einfach!  Wir erstellen eine Datei mit der Karte im SHP Format Gehen Sie zu FR Designer. Suchen Sie das Objekt "Map" und fügen Sie es dem Dokument hinzu. Ein Karteneditor sollte erscheinen. Die erste Registerkarte enthält allgemeine Informationen. Karte - Wir geben den Namen unserer Karte an. Außerdem werden hier die Ebenen der Karte angezeigt, die mit den Pfeilen verschoben werden können. Hinzufügen - Laden Sie eine Datei im Format shp, osm oder gpx hoch (in unserem Fall SHP). Löschen - Löscht eine Kartenebene. Seitenverhältnis beibehalten - Behalten Sie das Seitenverhältnis der Karte bei. Mercator Projection  – Verwenden der Marcator Projektion. Um eine neue Ebene hinzuzufügen, klicken Sie auf die Schaltfläche "Hinzufügen ...". Das folgende Fenster wird angezeigt: In diesem Schritt sollen Sie den Layertyp auswählen: - Karte aus der Datei (.shp / .dbf, .osm, .gpx). Dies ist ein der am häufigste verwendeten Kartentypen. Sie können beispielsweise eine Weltkarte drucken und die Länder hervorheben, in denen der Umsatz über einem bestimmten Wert lag. - eine leere Ebene mit vom Programm bereitgestellten Geodaten. Ihre Anwendung sollte geografische Koordinaten (ein Wertepaar - Längen- und Breitengrad) enthalten, die als Punkt auf der Karte angezeigt werden. Der Punkt kann signiert werden und je nach Daten auch unterschiedliche Größen und / oder Farben haben. In der Praxis wird dieser Kartentyp als zweite Ebene verwendet (die erste Ebene, die Basisebene, wird aus der Kartendatei entnommen). Auf der Basisebene wird beispielsweise eine Karte eines Landes angezeigt, und auf der zweiten Ebene werden Punkte mit den Namen der Städte angezeigt, in denen Verkäufe getätigt wurden. Die Größe und die Farbe des Punktes kann so angepasst werden, dass das Umsatzniveau in einer bestimmten Stadt klar ist. Wenn Sie einen Layer basierend auf einer Kartendatei ausgewählt haben, geben Sie zusätzlich an, wie die Kartendaten gespeichert werden sollen: - Die Daten sind in die Reportdatei eingebettet. In diesem Fall kann der Report erheblich größer werden. - Die Reportdatei bezieht sich auf die Kartendatei. Es erfolgt keine Einbettung. Dieser Modus ist nützlich, wenn Sie mehrere Reporte mit denselben Karten haben. Große Karten (mehr als 30 MB) oder eine große Anzahl von Polygonen (mehr als 20.000) verlangsamen den Report erheblich. Wenn Sie auf Füllen klicken, gelangen wir in den Fülleditor. Die Registerkarte Pinsel hat 3 Eigenschaften: Der Pinselstil verfügt über mehrere vordefinierte Formatierungsoptionen: Fest - mit einer einzigen Farbe füllen; Klar - klarer Hintergrund ohne Farbe; Horizontal - horizontale Linien für den gesamten Hintergrund; Vertikal - vertikale Linien für den gesamten Hintergrund; Vorwärtsdiagonale - diagonale Linien für den gesamten Hintergrund; Rückwärtsdiagonale - Rückwärtsdiagonallinien für den gesamten Hintergrund; Cross-Linien für den gesamten Hintergrund; Diagonales Kreuz - diagonale Kreuzlinien für den gesamten Hintergrund; Die Hintergrundfarbe sowie die Vordergrundfarbe können aus einer vorgefertigten Farbpalette ausgewählt oder durch Klicken auf Andere die gewünschte Farbe angepasst werden. Auf der zweiten Registerkarte haben wir die Verlaufseinstellungen für den Hintergrund. Der Verlaufsstil kann horizontal, vertikal, oval, rechteckig, vertikal mit einem Übergang zu einer anderen Farbe in der Mitte und horizontal mit einem Übergang zu einer anderen Farbe in der Mitte sein. Die Start- und Endfarbe kann aus einer vorgefertigten Farbpalette ausgewählt werden oder Sie können die gewünschte Farbe anpassen, indem Sie auf Andere klicken. In der dritten Registerkarte sind die Glasfüllungseinstellungen. Sie haben eine Wahl zwischen verschiedenen Ausrichtungen: vertikaler, horizontaler, vertikaler und horizontaler Spiegel. Sie können eine Farbe aus einer vorgefertigten Palette auswählen oder die gewünschte Farbe anpassen, indem Sie auf Andere klicken. Mischen - Farbmischungsverhältnis (im Screenshot ist es 0,5). Schraffur anzeigen - Schraffur anzeigen. Kehren wir zum Karteneditor zurück und suchen den Frame-Editor bereits. Linienblock: Sie können einen Stil aus den bereitgestellten Optionen auswählen, die Linienbreite festlegen und eine Farbe auswählen. Rahmenblock: In der Mitte befindet sich ein Beispielrahmen. Wählen Sie aus, auf welche Seiten der Linienstil durch das Beispiel angewendet werden soll, oder verwenden Sie die Schaltflächen (Ränder auf allen Seiten, ohne Ränder oder Seiten separat). Durch Hinzufügen eines Schattens können wir auch die Breite und Farbe angeben. Schauen wir uns nun die zweite Registerkarte im Karteneditor an - Farbskala. Die Rahmenfarbe kann durch Einstellen der Rahmenbreite aus der vorgefertigten Farbpalette ausgewählt werden. Wir legen die Position der Waage fest. Zum Beispiel haben wir die Position in der unteren rechten Ecke. Geben Sie den Namen der Skala in das Feld Text ein und legen Sie mit Schriftart ... die Schriftart und ihre Größe fest. Die Registerkarte "Skalierungsgröße" unterscheidet sich im Erscheinungsbild nicht von den Skalierungsfarben. Nachdem Sie das erhaltene Ergebnis gespeichert haben, wechseln Sie zur Registerkarte Vorschau und sehen Sie das fertige Ergebnis. Unsere Karte ist nicht statisch, Sie können sie dennoch überall skalieren. Wenn Sie mit der Maus über ein bestimmtes Gebiet (in unserem Fall ein beliebiges Land) bewegen, wird das gesamte Fragment hervorgehoben. So erstellen Sie eine Karte im SHP-Format mit dem Code Speichern Sie in SHP ``` procedure TForm1.FormCreate(Sender: TObject); var page: TfrxReportPage; map: TfrxMapView; layer: TfrxMapFileLayer; applayer: TfrxApplicationLayer; begin page := TfrxReportPage(frxReport1.FindObject('Page1')); map := TfrxMapView.Create(page); with map do begin CreateUniqueName(); SetBounds(0, 0, 700, 800); MaxZoom := 50; MinZoom := 1; KeepAspectRatio := True; MercatorProjection := True; with ColorScale do begin Visible := True; BorderColor := 0; BorderWidth := 1; Dock := sdBottomRight; FillColor := 16777215; ValueFormat := '%1.0f'; with Font do begin Charset := 1; Color := -16777208; Height := -13; Name := 'Tahoma'; Style := []; end; with TitleFont do begin Charset := 1; Color := -16777208; Height := -13; Name := 'Tahoma'; Style := []; end; end; with SizeScale do begin Visible := True; BorderColor := 0; BorderWidth := 1; Dock := sdTopLeft; FillColor := 16777215; ValueFormat := '%1.0f'; with Font do begin Charset := 1; Color := -16777208; Height := -13; Name := 'Tahoma'; Style := []; end; with TitleFont do begin Charset := 1; Color := -16777208; Height := -13; Name := 'Tahoma'; Style := []; end; end; end; layer := TfrxMapFileLayer.Create(map); with layer do begin CreateUniqueName(); MapFileName := 'C:\Program Files (x86)\FastReport 6 VCL Enterprise\Demos\Main\Maps\world.shp'; DataSet := MapOrderDetailsDS; LabelColumn := 'NAME'; SpatialColumn := 'NAME'; ZoomPolygon := 'Germany'; LabelKind := mlName; MapPalette := mpNone; MapAccuracy := 0; PixelAccuracy := 0; HighlightColor := 65280; Operation := opSum; ValueFormat := '%1.0f'; PointLabelsVisibleAtZoom := 1; with ColorRanges do begin RangeFactor := rfValue; RangeCount := 0; Visible := True; StartColor := 255; MiddleColor := 65535; EndColor := 32768; end; with SizeRanges do begin RangeFactor := rfValue; {uses frxMapRanges} RangeCount := 0; Visible := True; StartSize := 4; EndSize := 20; end; end; applayer := TfrxApplicationLayer.Create(map); applayer.CreateUniqueName(); with applayer do begin DataSet := MapOrderDetailsDS; AnalyticalValue := ' * * (1 - )'; Filter := ' = ''Germany'''; HighlightColor := 65280; Operation := opSum; ValueFormat := '%1.0f'; LabelKind := mlName; MapPalette := mpNone; PointLabelsVisibleAtZoom := 1; LabelValue := ''; LatitudeValue := ''; LongitudeValue := ''; SizeRanges.RangeFactor := rfValue; SizeRanges.RangeCount := 3; SizeRanges.Visible := True; SizeRanges.StartSize := 8; SizeRanges.EndSize := 20; ColorRanges.RangeFactor := rfValue; ColorRanges.RangeCount := 3; ColorRanges.Visible := True; ColorRanges.StartColor := 255; ColorRanges.MiddleColor := 65535; ColorRanges.EndColor := 32768; end; frxReport1.ShowReport; end; ``` Die Form ist bei weiterem nicht das einzige Format für die Arbeit mit Karten. Es gibt auch OpenStreetMap (OSM) und GPS eXchange Format, aber ich werde in anderen Artikeln darüber sprechen. Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, Delphi, Delphi, Map, Map ### So bearbeiten Sie einen Bericht im Vorschaumodus in FastReport VCL URL: https://www.fast-report.com/de/blogs/edit-report-preview-mode-vcl Summary: Sehen wir uns genauer an, wie Sie einen Bericht im Vorschaumodus in Fast Report VCL 6 bearbeiten. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Sehen wir uns genauer an, wie Sie einen Bericht im Vorschaumodus in Fast Report VCL 6 bearbeiten. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Sehen wir uns genauer an, wie Sie einen Bericht im Vorschaumodus in Fast Report VCL 6 bearbeiten. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Es ist möglich, einige Objekte des schon vorbereiteten Reports (.fp3 Datei) in Report Viewer von FR VCL6 zu bearbeiten. Nach der Veränderung kann der Report im Vorschau-Format gespeichert oder in andere Formate exportiert werden. Wann kann das nützlich sein? Zum Beispiel, Sie haben keine Schablone für den Report, aber es gibt nur fp3 Datei von Preview. Sie verändern den Titel des Reports oder berabeiten das Diagramm und drucken den Report.  Und noch ein Beispiel aus dem Alltagsleben - Fragebogen zu erfüllen. Welche Objekte können hinzugefügt werden? Natürlich, wir brauchen den Text zu bearbeiten, weshalb besitzt das "Text"-Objekt den ersten Platz in der Liste mit den verfügbaren Objekten. Das zweite Objekt ist "Chart". Im Fall, wenn das Object hat mehr als eine "Serie", können Sie wählen, welche "Serie" in diesem Moment gezeigt wird. Das "CheckBox"-Object. Wenn Sie einen Fragebogen haben, verwenden Sie die "Flügel", um die Fragen zu antworten. Nach dem Erfüllen wird der Fragebogen per Email gesendet.  Noch zwei Objekte "Gauge" und "Interval Gauge" zeigen die Werte, die früher irgenwie gemessen wurden.  Editing des Objekts "Text" Es gibt zwei Möglichkeiten, Text in Preview zu bearbeiten: 1) Halten Sie die Alt-Taste gedruckt und klicken aufs Text-Objekt. Der Text wird mit der Farbe hervorgehoben. Um die Änderungen zu speichern, klicken wir außer das Text-Feld.  Achten Sie bitte darauf, dass die Bearbeitung des Objekts beendet wird, wenn Sie außer das Objekt klicken. 2) Das neue Icon   ist auf dem Toolbar von Report Viewer erschienen - Text bearbeiten. wir clicken darauf und alle Text-Objekte werden auf der Seite mit blauer Farbe hervorgehoben: Beim Click auf dem Objekt, das weiter zu bearbeiten ist, wird die Bearbeitung gestartet und nach dem Click außer die Grenze des Objekts beendet.  Es gibt auch eine Möglichkeit, die Bearbeitung des Objekts zu verbieten. Dazu aktivieren wir die Einstellung “DontEditInPreview” für das "Text"-Objekt in der Eigenschaft "Restrictions". Beim Klick auf das Icon   werden alle verfügbare Text-Felder hervorgehoben. Das Objekt "Chart" bearbeiten Fürs Diagramm können folgende Eigenschaften geändert werden: Drehen, Regime/Serie wechseln, die Regime von 2D / 3D mode umschalten, die Transformation abbrechen. Auf meiner Sicht ist das Wechseln der "Serie" sehr interessant. Einfach platzieren Sie auf dem Diagramm den Maus-Zeiger und erscheint die Wahl der "Serie" auf dem Bildschirm: In diesem Beispiel sehen wir, dass es 5 "Series" verfügbar sind. Default alle "Serien" werden gezeigt. Aber das ist nicht oft bequem. Und um in Preview durch Umschalten von Radio Button die "Serien" zu wechseln, sollen alle außer eine von Radio Buttons beim Erstellen des Reports deaktiviert werden: Dies kann oben vom rechten Teil des Fensters der "Serie"-Wahl gemacht werden. Weiter besprechen wir das Verhalten des Icons  . In Preview beim Klick auf dieses Icon kann das Diagramm die Demension wechseln. Aber das funktioniert nur dann, wenn zuerst das Diagramm nicht gedreht war: Drehen des Diagramms macht man mit der linken Maus-Taste: So habe ich den Speigel fürs Diagramm gemacht: Wenn Sie aufs Icon   klicken, kehrt das Diagramm zu seinem Anfangszustand zurück (auch in 2D mode). Klicken Sie diese Taste noch einmal um die Transformationen abzubrechen. Die Objekte "Gauge" und "Interval Gauge" bearbeiten Es gibt zwei neue Objekte in Fast Report VCL. Diese Objekte zeigen die Werte der Abmessungen und simulieren elektronische Geräte. Gauge zeigt einen einigen Wert und Interval Gauge - die Intervalle zwischen zwei Werten. Für beide Objekte gibt es drei Typen: horizontal, vertical und zirkulär: Gauges haben verschiedene Features: Scala-Darstellungen, Größen und Farben.  Gauges können auch in Preview bearbeitet werden. Beim Verwenden von Report-Script Sie können einen genauen Wert in einem Text-Feld anzeigen Dazu fügen wir einen Event "OnContentChanged" hinzu: ``` procedure Gauge1OnContentChanged(Sender: TfrxComponent; ModifyObjects: TList; var Refresh: Boolean);   var   List: TList;   View: TfrxMemoView;   i: Integer;   begin   View := nil;   List := PreviewPages.Page[PreviewPages.CurPage].AllObjects;   for i := 0 to List.Count - 1 do   if (List[i] is TfrxView) then   begin   if (TfrxView(List[i]).TagStr = 'Gauge1') then   View := TfrxMemoView(List[i]);   if (View <> nil) then Break;   end;   if View <> nil then   begin   TfrxMemoView(View).Text := FloatToStr(Round(TfrxGaugeView(Sender).Gauge.CurrentValue));   ModifyObjects.Add(View);   end;   // refresh preview   Refresh := True;   end; ``` In diesem Script suchen wir unter allen Report-Objekten einen genauen, der einen Wert von TagStr für Gauge1 hat. Weiter setzen wir der Text-Eigenschaft den Wert dieses gefundenen Wertes und klicken Renew und starten Preview noch einmal. Bei der Bewegung des Sliders bekommen wir einen genauen Wert des Indikatoren im Text-Feld unten. Auf diese Weise, dieser Trick kann nützlich beim Rechnern, Filtern oder Anfragen der Daten sein.  Zum Schluss möchte ich sagen, dass es möglich ist, Reports in Preview ohne Rebuilding zu bearbeiten. Diese Bearbeitung ist ganz einfach und bracuht keine Erfahrungen der Arbeit mit dem Report Designer. Tags: VCL, FastReport, Report, Preview ### So betten Sie ein Bild in einen Bericht ein URL: https://www.fast-report.com/de/blogs/embed-picture-frx-fpx Summary: Schauen wir uns genauer an, wie Sie ein Bild in einen FastReport .NET-Bericht einfügen. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, wie Sie ein Bild in einen FastReport .NET-Bericht einfügen. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, wie Sie ein Bild in einen FastReport .NET-Bericht einfügen. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. In our previous entry you have already seen an example of a simple report and now it is time to create a little more complicated report with embedded picture. We created single band, then put PictureObject on it and load picture into it. After that we have added two memo fields: еру first one for header text and the second one for semi-transparent label on the picure. So we got following template: The table you see on the screenshot above is a PNG-image which is embedded into report template. When we save this template to the FRX file, we will receive following XML. ```   ``` Please note that this XML is an incorrect sample - I removed lot of data from the Image property of PictureObject. Real picture from my template consists of a line with 184770 characters. Original picture takes 138499 bytes. So the size of embedded picture grows for about 33%. The following picture explains these sizes - eve 180% zoom keep qulity of embedded picture. The size of the prepared report is a bit smaller than its template because of the gzip. Here is source of prepared report.  Note that bitmap data is shrinked from this example to keep a smaller size of this article: ```   ``` Let's carefully look into this sample. We have a static template with the entire data embedded into it. That's why the section does not store any real data but store refrences.  Refferenced objects are  defined in other sections, so we have a single page with single band with picture and two memo fields as XML code above defines. We are using dictionary for getting the object properties via references. For example, reference to picture object encoded by element. Btw, only the picture object of this sample has attribute. To getting picture properties, we looking in section for same element -  Here is trick of reference encoding - reference to template object is encoded in "name" attribute as string with two names shared by dot. Here is simple rule - name after dot refers to an object with same name in section within the page, which name generated as "second" page, F.e,  Page0 refer to Page1 , Page1 refer to Page2 , Page2 refer to Page3 , and so on. Now it is time to look onto . Did you note that the Image attribute disappear in prepared report? This property not disappear. It is transformed to ImageIndex attribute of object within section. Bitmap image data are moved to section into element as "Stream" attribute,. Value of ImagweIndex elemet is position  of element whitin section. So this article describes base principles of report formats. Stay tuned for continuation of the topic. In the next article we will look into some report element properties. Tags: .NET, FastReport ### So erhalten Sie einen Bericht aus mehreren Datenbanken in Delphi / Lazarus / C ++ Builder URL: https://www.fast-report.com/de/blogs/report-delphi-data-source Summary: Abrufen eines Reports aus mehreren Datenbanken mit FastReport VCL. Abrufen eines Reports aus mehreren Datenbanken mit FastReport VCL. Abrufen eines Reports aus mehreren Datenbanken mit FastReport VCL. Ich werde demütig bemerken, dass FastReport VCL eine der bequemsten Komponenten zum Generieren von Reporten jeglicher Komplexität ist. Schließlich können wir hier nicht nur verschiedene Arten von DBMS verwenden, sondern auch Schweizer Codes, Karten, Tabellen, Grafiken und viele andere. Sehr oft werden wir gefragt, wie man aus mehreren Reporten einen macht. Ja einfach! Also los! Zu diesem Zweck verfügt FastReport über eine Funktion, mit der zusätzlich zum ersten abgeschlossenen Report ein neuer Report erstellt werden kann. Die TfrxReport.PrepareReport-Methode verfügt über einen optionalen ClearLastReport: Boolean-Parameter. Standardmäßig ist dies True. Dieser Parameter bestimmt, ob die Seiten des zuvor erstellten Reports gelöscht werden sollen. Es gibt eine leichte Subtilität. Beim Erstellen des ersten Reports wird ein DataSet aus einer Datenbank verwendet, während das zweite - aus einer anderen. Ein Beispiel für die Erstellung eines kombinierten Reports: Pascal: ``` frxReport1.LoadFromFile('1.fr3'); frxReport1.PrepareReport; frxReport1.LoadFromFile('2.fr3'); frxReport1.PrepareReport(False); frxReport1.ShowPreparedReport; ``` C++: ``` frxReport1->LoadFromFile("1.fr3"); frxReport1->PrepareReport(true); frxReport1->LoadFromFile("2.fr3"); frxReport1->PrepareReport(false); frxReport1->ShowPreparedReport(); ``` Wir laden den ersten Report und erstellen ihn ohne Anzeige auf dem Bildschirm. Dann laden wir das zweite in dasselbe TfrxReport-Objekt und erstellen es mit dem Parameter ClearLastReport = False. Dadurch wird der Report zu dem zuvor abgeschlossenen hinzugefügt. Die vorletzten zwei Zeilen können wiederholt werden, um immer mehr Reporte hinzuzufügen. Diese Option ist nur mit Code möglich. Nachdem wir mit den Datenbanken fertig sind, können Sie die resultierende Vorschau sehen. Sie können es sofort an jedem Ort und in jedem Format speichern - PDF, SVG, Textdatei usw. ohne Schwierigkeiten. Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, Data Source, Data Source, Delphi, Delphi ### So erstellen Sie ein berechnetes Feld in einer Matrix aus einem Berichtsskript FastReport .NET URL: https://www.fast-report.com/de/blogs/create-calculated-field-matrix-net Summary: Sehen wir uns genauer an, wie man aus einem FastReport .NET-Bericht ein berechnetes Feld in einer Matrix erstellt. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Sehen wir uns genauer an, wie man aus einem FastReport .NET-Bericht ein berechnetes Feld in einer Matrix erstellt. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Sehen wir uns genauer an, wie man aus einem FastReport .NET-Bericht ein berechnetes Feld in einer Matrix erstellt. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Matrix reports are very popular. Typically, the matrix, or otherwise summary tables are used in the accounting and statistical reporting. Let's determine what a summary table is. A summary table is a software tool that allows you to reorganize and summarize the selected columns and rows of data in a table to obtain the required report. The summary table is especially useful for a large amount of data. For example, you are running a small business like stationery store. You would like to know what products have the best selling rate, or what are the sales leaders this month. Having a lot of statistical data is quite laborious to analyze them. Here on the help comes a summary table, which combines data for a certain period in one table. The main operation in the processing of data for creating a summary table is the summation. But, sometimes, you may need your own function to calculate some columns, such as totals. Let's have a look at the example of the way to add a calculated field to a matrix using the report script . Create a report and add the matrix object to the "Data" band. As you remember, to create a column, a drain or a cell, you need to drag the expression to the corresponding area. The expression can be: data field, function, variable, total. In general, any object from the data panel. If you are going to fill the matrix from the report's script, then add any expression to the matrix, and then open it for editing and clean it, or enter a number. This is the template of the matrix: To add fields to the matrix programmatically, you need to create an AfterData event handler for the matrix. Let's move on to the report script. In the generated handler, add the columns to the matrix: ``` Matrix1.AddValue(new Object[] { "Accruals", "Salary" }, new Object[] { "1" }, new Object[] { 1000}); Matrix1.AddValue(new Object[] { "Accruals", "Bonus" }, new Object[] { "1" }, new Object[] { 500}); Matrix1.AddValue(new Object[] { "Accruals", "Penalty" }, new Object[] { "1" }, new Object[] { 200}); Matrix1.AddValue(new Object[] { "Accruals", "Total" }, new Object[] { "1" }, new Object[] { 0});   Matrix1.AddValue(new Object[] { "Accruals", "Salary" }, new Object[] { "2" }, new Object[] { 500}); Matrix1.AddValue(new Object[] { "Accruals", "Bonus" }, new Object[] { "2" }, new Object[] { 300}); Matrix1.AddValue(new Object[] { "Accruals", " Penalty" }, new Object[] { "2" }, new Object[] { 250}); Matrix1.AddValue(new Object[] { "Accruals", "Total" }, new Object[] { "2" }, new Object[] { 0}); ```  Note that the structure of column headers is given by enumeration of names - "Charges", "Salary". In our case, the general header "Charges" has 4 subheadings (). Next, we create a row with heading 1. The third parameter is the value of the data cell new Object [] {1000}. We added two rows of data. The Total field has a value of zero. Now we need to set a value for it. We pass through all rows of the matrix in a loop and set the value for the result: ``` int[] rowIndices = Matrix1.Data.Rows.GetTerminalIndices(); for (int i = 0; i < rowIndices.Length; i++) { rowIndex = rowIndices[i]; SetValue("Accruals;Total", GetValue("Accruals;Salary") + GetValue("Accruals;Bonus") - GetValue("Accruals;Penalty")); } ```  Add the rowindex variable to the class: private int rowIndex; Note the SetValue and GetValue methods. Add them to the class: ``` private void SetValue(string complexValue, float value) { int columnIndex = Matrix1.Data.Columns.Find(complexValue.Split(';')); Matrix1.Data.SetValue(columnIndex, rowIndex, value); }   private float GetValue(string complexValue) { int columnIndex = Matrix1.Data.Columns.Find(complexValue.Split(';')); return new Variant(Matrix1.Data.GetValue(columnIndex, rowIndex, 0)); } ```  From the headings it is clear that one method is to get the value of a cell, and the second is to change. Run the report: So we calculated the total for each row of data. Tags: .NET, FastReport, Script, Report ### So erstellen Sie ein interaktives PDF-Formular in Delphi und Lazarus URL: https://www.fast-report.com/de/blogs/interactive-forms-in-pdf-delphi-lazarus Summary: Die neue Version von FastReport VCL 6.9 bietet die Möglichkeit, Reporte im PDF-Format mit Unterstützung für interaktive Formulare zu exportieren Die neue Version von FastReport VCL 6.9 bietet die Möglichkeit, Reporte im PDF-Format mit Unterstützung für interaktive Formulare zu exportieren Die neue Version von FastReport VCL 6.9 bietet die Möglichkeit, Reporte im PDF-Format mit Unterstützung für interaktive Formulare zu exportieren Vielleicht weiß es jemand nicht, aber mit dem PDF-Standard können Sie ausfüllbare Formulare erstellen. Das heißt, das fertige Dokument kann direkt vom Viewer aus bearbeitet werden. Dies wird am häufigsten für Fragebögen und verschiedene Formen verwendet. Der Benutzer füllt die Felder aus und sendet das Dokument per E-Mail oder druckt. Heute werden wir uns ansehen, wie ein interaktives PDF-Formular zur Auswertung von HR-Interviews in Delphi und Lazarus erstellt wird. Die neue Version von FastReport VCL 6.9 bietet eine Möglichkeit, Reporte im PDF-Format mit Unterstützung für interaktive Formulare zu exportieren. Die Eigenschaften InteractiveForms und InteractiveFormsFontSubset wurden zu den Exporteinstellungen hinzugefügt. Mit der zweiten Eigenschaft, dem Zeichenfolgenausdruck, können Sie einen Schriftzeichensatz für ein interaktives Formularobjekt mit der in der Datei enthaltenen Schriftart erstellen. Anwendungsbeispiel: A-Z, a-z, 0-9, # 43- # 47,! @ # $ Unterstützung für drei Objekte hinzugefügt: Text (TfrxMemoView) gibt sowohl einfach als auch HTML über EMF aus (die Formatierung geht beim Bearbeiten in PDF verloren). CheckBox (TfrxCheckBoxView) als Vektor und über EMF (unter Verwendung einer Schriftart); Bild (TfrxPictureView). Kann nicht in allen Viewern geladen werden, funktioniert in Adobe Acrobat Reader. Alle diese Objekte haben eine neue Eigenschaft - Editor - mit einer Reihe von Flags, die das Bearbeiten beim Anzeigen und / oder Exportieren ermöglichen. Der Designer hat beispielsweise eine Reportsvorlage zur Bewertung von HR-Interviews erstellt, die ausfüllbare Felder, Kontrollkästchen und die Möglichkeit zum Hochladen Ihres Logos enthält. Sie können die Werte dieser ausfüllbaren Felder auch im FastReport-Vorschaumodus ändern, indem Sie die Alt-Taste gedrückt halten, während Sie auf dieses Feld klicken. Nach dem Export in PDF mit den entsprechenden Flags können Sie diese Felder in Viewern wie Adobe Acrobat Reader problemlos bearbeiten. Daher kann die Funktion zum Bearbeiten des Reports im Vorschaumodus für Formulare und Fragebögen verwendet werden, in unserem Fall für das Bewertungsformular für HR-Interviews. Sie können den Report im .fp3-Format speichern und verteilen. Benutzer füllen den Bericht wie PDF-Formulare aus. Oder Sie exportieren den Report sofort als PDF und verteilen die Datei ebenfalls. Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, PDF, PDF, Interactivity, Interactivity, Delphi, Delphi ### So erstellen Sie eine ZPL Datei in Delphi / C ++ Builder / Lazarus URL: https://www.fast-report.com/de/blogs/create-ZPL-file-in-Delphi-CBuilder-Lazarus Summary: Lassen Sie uns über die Zebra-Programmiersprache ZPL sprechen, die zum Drucken von Etiketten entwickelt wurde und im Handel aktiv eingesetzt wird. Lassen Sie uns über die Zebra-Programmiersprache ZPL sprechen, die zum Drucken von Etiketten entwickelt wurde und im Handel aktiv eingesetzt wird. Lassen Sie uns über die Zebra-Programmiersprache ZPL sprechen, die zum Drucken von Etiketten entwickelt wurde und im Handel aktiv eingesetzt wird. Was ist ZPL? Im Allgemeinen steht ZPL für Zebra Programmierung Sprache. Teams haben die Möglichkeit, das gewünschte Druckdesign zu erstellen, egal, ob es ein Etikett oder eine Seite ist. Dies macht das Etikett unabhängig von der spezifischen Druckvorrichtung. Der Drucker erhält Befehle zum Erstellen von Formen, Rahmen, Symbolen und mehr und weiß, wie dies selbst zu tun ist. Dies ist der Hauptunterschied zwischen der ZPL! Zebra Technologies  hat die ZPL ursprünglich erstellt, um Etiketten (mit Barcodes, Grafiken und Text) zu erstellen und zu drucken, die hauptsächlich für kommerzielle Aktivitäten verwendet werden. Ein wenig über die Stadien der Bildung einer ZPL: Zuerst werden Daten über das Gerät (PCs oder Terminals, die Informationen sammeln) an den Drucker gesendet, dann verarbeitet der Zebra-Druckerprozessor die empfangenen Informationen und druckt das Ergebnis. Ein Paar Wörtern über das Verfassen von ZPL-Code: Druckmessungen werden in Punkten durchgeführt, da es ohne einen genauen Wert ziemlich schwierig ist, etwas zu tun, ohne Fehler und Ausfälle zu erhalten. Sie sollten die Dokumentation der Druckausrüstung studieren und herausfinden, wie hoch ihre Punktdichte (DPI) ist. Das Design selbst wird mit den folgenden Befehlen erstellt: 1. Der Code muss mit dem Tag ^ XA beginnen und mit ^ XZ enden. 2. Das ^ FX-Tag steht jedoch vor den Kommentaren. 3. ^ CF x, y, z - Standardschriftarteneinstellungen: die Schriftart selbst, Höhe und Breite; 4. ^ FO x, y - linker und oberer Einzug; 5. ^ FS - Zeilenende; 6. Sie können die Daten mit den angepassten Werten wie folgt anzeigen: FD Textblock: FB , , , , : L - linksbündig, R - rechter Rand, C - in der Mitte, J - Dehnen Sie den Text auf die Breite des Feldes. Rechtecke erstellen: GB , , , , Linienfarbe: B (schwarz) oder W (weiß) Eckenrundungen werden durch einen Wert von 0 bis 8 angezeigt. 7. Barcode (und ZPL und Zebra-Drucker - direkt für Barcodes erstellt!) Bestehend aus drei Befehlen: Barcode-Abmessungen (BY , , ); seine Einstellungen: BC , , , , - N - normale Orientierung; R - 90 Grad im Uhrzeigersinn; I - 180 Grad; B - 270 Grad; , - Y (Ja) oder N (Nein) Werte; - Standard N. 8. Die Ausgabe des Barcodes zum Drucken erfolgt über den Befehl - FD Tatsächlich ist nicht alles so einfach, aber im Allgemeinen vermittelt es eine Vorstellung von der ZPL-Sprache. Erstellung vom ZPL Code in Delphi / C++Builder / Lazarus Sofort eine Frage - ist es möglich, nur ein normales Bild oder ein Dokument, das auf das Etikett zugeschnitten ist, aus einem Texteditor zu senden? Ja, einfach „auf Leinwand zeichnen und an den Drucker senden - der Treiber wird es selbst herausfinden“? Sie können senden, es wird gedruckt, es sieht oft sogar wie ein echtes aus. Das einzige Problem besteht darin, dass ZPL- und Zebra-Drucker in erster Linie dafür ausgelegt sind, maschinenlesbare, vektorskalierte Etiketten zu erstellen. Dies ist häufig der Fall, da die Schritte zur Rasterung und Bildskalierung im Programm und im Treiber nicht ausgeführt und vom Barcode-Scanner verstanden werden. Wenn Ihre Barcodes vom Scanner nicht erkannt werden, haben Sie meistens ein Problem mit einem gerasterten und skalierten Bild. Lassen Sie uns die ZPL aus unserer Delphi-Anwendung oder Lazarus-Anwendung richtig machen! Wir verwenden FastReport VCL, das einen Report sofort im erforderlichen Format (Zebra Programming Language) gespeichert wird. Wir können jedoch mehr Möglichkeiten nutzen - Bilder, Tabellen und Barcodes zu Etiketten hinzufügen (und dies sind korrekte, maschinenlesbare Barcodes!). Es ist klar, dass es keinen Sinn macht, Fotos von Landschaften an einen „Zebradrucker“ zu senden, aber hier ist ein Bild wie das am Anfang des Artikels - warum nicht, wenn es auf unseren Etiketten angebracht ist!) Es gibt zwei Möglichkeiten, den generierten Report zu speichern. Der erste wird über das Vorschaufenster gespeichert, der zweite direkt über den Pascal-Code. Betrachten wir beide Optionen. Wir setzen nicht nur die Komponenten aufs Formular, die wir benötigen, um einen Report zu erstellen, Datenquellen zu verbinden, sondern auch eine Komponente für den ZPL-Export! Speichern Sie ZPL aus Delphi / RAD Studio Lazarus mit Vorschau Der Vorteil der Methode ist, dass wir sehen, dass wir speichern, wir haben die Möglichkeit, in der Vorschau mit dem Ergebnis in der ZPL zu vergleichen. Und wir debuggen es auf unserem Computer und nicht des Kunden auf seiner Ausrüstung, wenn das Projekt fertig zu sein scheint. Wir erstellen das gewünschte Dokument. Vor dem Speichern schauen wir in die Vorschau und korrigieren alles, was uns nicht gefallen hat. Klicken Sie auf den Punkt "Speichern". Wählen Sie "ZPL-Datei". Ich mache diesen Artikel mit fast allen angeschlossenen Exportfiltern. In Ihrem Fall (wenn Sie NUR den ZPL-Exportfilter angeschlossen haben) enthält dieses Menü keine weiteren Elemente (außer "Vorbereiteter Report"). Wir haben ein Fenster mit den Exporteinstellungen für unsere Datei markiert. Wir konfigurieren alles nach Bedarf und klicken auf "OK". Weitere Informationen zu den Einstellungen: Seitenbereich - Seitenspeicherbereich; Exporteinstellungen: - Als Bitmap drucken - Als Matrixbild drucken (NICHT für Barcodes tun); - Linien brechen - Linien brechen; - Auflösung (dpi) - Auflösung von 152 bis 600 dpi (tatsächlich gibt es eine Reihe von voreingestellten Werten, begrenzte Formate - wir können sie auswählen - sie sind unten im Code aufgeführt); Speichern unter - Speichern als Datei auf einem PC, Senden per E-Mail oder im Cloud-Speicher; Nach dem Export öffnen - nach dem Speichern öffnen. Speichern von ZPL aus Delphi / C ++ Builder / Lazarus-Code. Export in ZPL: ``` procedure TForm1.Button18Click(Sender: TObject); begin {Wir erstellen einen Report. Vor dem Export soll der Report erstellt werden} frxReport1.PrepareReport(); {Wir bestimmen die Intervalle der exportierten Seiten. By Default werden alle Seiten des erstellten Reports exportiert.} frxZPLExport1.PageNumbers := '2-3'; {Wir stellen fest, soll der Report als eine Abbildung exportiert werden} frxZPLExport1.PrintAsBitmap := True; {Wir stellen fest, brauchen wir die Folge die Symbolen am Ende jeder Seite oder nicht} frxZPLExport1.BreakLines := True; {Wir bestimmen die Auflösung. Mögliche Werte: d6_dpmm_152_dpi, d8_dpmm_203_dpi, d12_dpmm_300_dpi, d24_dpmm_600_dpi, test1to1} frxZPLExport1.ZplDensity := d6_dpmm_152_dpi; {Wir definieren, ob das Ergebnis nach dem Export geöffnet werden soll} frxZPLExport1.OpenAfterExport := False; {Wir bestimmen, ob die Progress Skala angezeigt wird (Anschauen die Nummer der exportierten Seite)} frxZPLExport1.ShowProgress := False; {Wir bestimmen, ob die Dialog Fenster mit Export Einstellungen angezeigt wird } frxZPLExport1.ShowDialog := False; {Wir definieren den Namen der Ergebnis-Datei. Merken Sie sich, dass wenn wir keinen Datei Namen bestimmen und die Anschau der Dialog Fenster deaktivieren, wird die Wahl des Datei Namen trotzdem angezeigt  frxZPLExport1.FileName := 'C:\Output\test.zpl';  {Wir exportieren den Report} frxReport1.Export(frxZPLExport1); end; ``` Wie Sie sehen können, ist das Erstellen und Drucken von Zebra-Etiketten in Delphi (in Windows-Anwendungen) und in Lazarus (Linux-Anwendungen) sehr einfach. Diese Methode wird in Millionen von Einzelhandelsgeschäften auf der ganzen Welt eingesetzt. Tags: VCL, Export, Lazarus, FastReport, ZPL, Delphi ### So erstellen Sie einen neuen Cube in FastCube .NET URL: https://www.fast-report.com/de/blogs/create-new-cube-fastcube-net Summary: Schauen wir uns genauer an, wie man einen neuen Cube in FastCube .NET erstellt. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, wie man einen neuen Cube in FastCube .NET erstellt. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, wie man einen neuen Cube in FastCube .NET erstellt. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. In this article, we'll look at how to create a cube in FastCube .NET using code in a custom application. This question will appear to you right away, when you start working with this library. Well, I hope today we will clarify this issue. The cube file can contain both data and its’ representation. Let's look at the whole chain of the cube creation. Create a Windows Forms project. In References, you need to add links to the libraries: FastReport, FastReport.Bars, FastReport.Olap. Add the following controls to the form from the toolbar: dataSource, dtDataSet, cube, slice, sliceGrid, button. In the dataSource1 properties, we find the DataSet and select the available dtDataSet1 for it. In the properties of the cube1 control, we select the value dataSource1 for the DataSource. And for the SoutceType property, the value is DataSource In the slice1 properties, select the cube1 value for the Cube property. Adjust the size of sliceGrid1. In its properties, select the slice1 value for Slice. Now go to the form code. First of all, let's add libraries to the Using section: ``` using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Windows.Forms; using FastReport.Olap.Slice; ```  Add the following variables and objects to the class: ``` const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; //symbol set private Random rnd = new Random(); //randomizer private DataTable dataTable = null; //data table object private int Dims = 4; //dimensions count private int Uniques = 500; //count of unique random values private int Measures = 4; //measures count private int Records = 10000; //table records count ```  Here it is necessary to clarify that we will fill the table with fake data, just to demonstrate the possibility of software data generation. In addition to the DataTable, we can use a database or stream to retrieve data. Create a DataTable and fill it with random data: ``` // The method of a random string generation private string GetNewStr(int len) { len = 1 + rnd.Next(len - 1); char[] resChars = new char[len]; for (int i = 0; i < resChars.Length; i++) { resChars[i] = chars[rnd.Next(chars.Length)]; } return new string(resChars); }   // The method of adding fields to a table private DataTable CreateDS() { DataTable dt = new DataTable("Test"); for (int i = 0; i < Dims; i++) dt.Columns.Add("Dimension" + (i + 1), typeof(string)); for (int i = 0; i < Measures; i++) dt.Columns.Add("Measure" + (i + 1), typeof(int)); return dt; }   // Method of filling the table with data private DataTable BuildDS() { DataTable dt = CreateDS();   int maxUniques = Uniques; SortedSet randomStrings = new SortedSet(); // Generating Unique Values while (randomStrings.Count < maxUniques) { randomStrings.Add(GetNewStr(10)); }   int dimCount = Dims; int mesCount = Measures;   object[] values = new object[dimCount + mesCount]; // Filling a table with data for (int i = 0; i < Records; i++) { for (int j = 0; j < dimCount; j++) { if (i < maxUniques) values[j] = randomStrings.ElementAt(i); else values[j] = randomStrings.ElementAt(rnd.Next(dimCount)); } for (int j = 0; j < mesCount; j++) { values[j + dimCount] = rnd.Next(255); } dt.Rows.Add(values); } return dt; } ```  So, we have prepared a data source. I'll remind you that you can use a table or view from the database, or a data stream. Add fields to the slice. Now, create the OnClick event handler for our only button on the form. And write the following code: ``` private void button1_Click(object sender, EventArgs e) { // Add the generated table with the data in the DataSet cube1.Close(); DataTable dt = BuildDS(); if (dataTable != null) { dataTable.Dispose(); dataTable = null; } dataTable = dt;   dtDataSet1.DataTable = dataTable; dataSource1.DeleteFields(); cube1.Open(); dtDataSet1.DataTable = null; //Update slice slice1.BeginUpdate(); //Add fields into the containers for (int i = 0; i < Dims; i++) { slice1.YAxisContainer.AddSliceField(slice1.SliceFields.GetFieldByIndex(i)); } //Add empty measures container onto X-axis slice1.XAxisContainer.AddMeasuresField(); //Add measures into the measures container for (int i = 0; i < Measures; i++) { slice1.MeasuresContainer.AddMeasure(new MeasureField( slice1, FastReport.Olap.Types.AggregateFunction.Sum, slice1.SliceFields.GetFieldByIndex(i + Dims), null, null, "Measure" + (i + 1), "Measure" + (i + 1), false )); }   slice1.EndUpdate(); //Save cube into a file cube1.Save("J:/Program Files (x86)/FastReports/FastCube.Net Professional/Demos/C#/test.mdc"); } ```  That's all. Dimensions and measures are stored in separate containers. First we filled the YAxisContainer with dimensions. Then, an empty list of measures was added to XAxisContainer. And only then began to fill it with measures. This order is important for the correct display of data. To make it clearer wherewith we fill out the list of measures, I'll give the signature of the constructor of the class MeasureField: public MeasureField(Slice slice, AggregateFunction aggregateFunction, SliceField baseSliceField, SliceField distinctSliceField, SliceField extraSliceField, string name, string caption, bool distinct); In the final line of our code, we store the cube in the specified file. Now start the application and create a new cube using the buttons: As you can see, it's quite easy to create a cube in the application code. It is more difficult to prepare data for it. But we'll talk about the data for the cube in another article. Tags: .NET, FastCube ### So erstellen Sie mit Delphi einen ITF-Barcode (Interleaved, Industrial, Matrix) URL: https://www.fast-report.com/de/blogs/itf-barcode-in-delphi-lazarus Summary: In dem Artikel haben wir über den Barcode ITF (interleaved, industrial, matrix), seine Funktionen, Einstellungen und zeigte, wie man aus dem Code mit Delphi / Lazarus / C++ Builder erstellen In dem Artikel haben wir über den Barcode ITF (interleaved, industrial, matrix), seine Funktionen, Einstellungen und zeigte, wie man aus dem Code mit Delphi / Lazarus / C++ Builder erstellen In dem Artikel haben wir über den Barcode ITF (interleaved, industrial, matrix), seine Funktionen, Einstellungen und zeigte, wie man aus dem Code mit Delphi / Lazarus / C++ Builder erstellen Barcodes. Ein Paar Infos. Es ist schwer, sich unser Leben ohne Barcodes vorzustellen, besonders jetzt, wenn wir sie bei jedem Schritt treffen. Wir gehen ins Kino und unser Ticket enthält diese „Schwarz-Weiß-Zeichnung von Linien“, wir gehen in den Supermarkt und jedes Produkt hat Informationen darüber in Form eines Barcodes. Man kann sich jetzt nur vorstellen, wie die Warteschlangen aussehen würden, wenn der Kassierer die Produktkennungen manuell eingibt und keinen Scanner verwendet. Darüber hinaus besteht ein hohes Fehlerrisiko bei der Eingabe einer Zahlenfolge. Heute werden wir einen kleinen Teil aller Arten von Barcodes betrachten. ITF-Barcode (Interleaved Two of Five) ist ein zweizeiliger numerischer Code, d.h. ein Code mit hoher Dichte, der nur Zahlenpaare codieren kann (der Barcode muss eine gerade Anzahl von Ziffern haben!). Jeder dieser Barcoden codiert eine ungerade Ziffer mit einer dunklen Linie und eine gerade Ziffer mit einem Leerzeichen dazwischen. Um eine ungerade Anzahl von Ziffern zu codieren, müssen Sie die am weitesten links stehende (höchstwertige) Ziffer mit einer Null auffüllen. Barcodes können von variabler Länge sein und verwenden normalerweise keine Prüfsumme, obwohl in einigen Situationen ein Modul 10-Validierungszeichen verwendet wird. Teilweises Scannen ist möglich, da ein 2 von 5 verschachtelter Barcode nicht selbstvalidierend ist und häufig Datenfelder mit fester Länge verwendet werden. Zusamenfassend: - Es können nur Zahlen codiert werden. - Die Länge ist variabel, muss jedoch eine gerade Anzahl von Ziffern haben. - Prüfsumme ist optional. Da ITF ein Barcode mit sehr hoher Datendichte ist, weist er die folgenden Eigenschaften auf: Die Größe des Etiketts ist möglicherweise kleiner als bei anderen Codes mit denselben Nummern. Das Drucken kleiner Barcodes ist effizienter. Bei gleicher Etikettengröße können im Vergleich zu anderen Codes mehr Daten enthalten sein. (Die Anzahl der Stellen kann erhöht werden.) Es ist möglich, breitere Streifen zu verwenden, wenn die Größe des Etiketts und die Anzahl der Ziffern gleich sind. Da die Bandbreite größer ist, kann der Barcodeleser Daten auch aus großer Entfernung leichter lesen. Wenn man die Länge des Codes auf Binärebene mit CODE 39 und Codabar vergleicht, kann man die Besonderheit von ITF feststellen, nämlich seine offensichtlich geringe Länge. Während ITF viele Vorteile hat, hat sie aufgrund ihrer Struktur auch einen Nachteil mögliches "Sprunglesens", d.h. Lesen Überspringen. Ein Barcode, der "3852" darstellt, wird möglicherweise nicht korrekt als "38" gelesen, da einige Ziffern fehlen. Sowohl ITF-14 als auch GTIN-14 werden unter Verwendung eines verschachtelten 2 von 5-Barcodes erzeugt. Dieser Barcode wird für Versandbehälter verwendet und basiert auf dem UPC-Code. In der Regel wird Interleaved auf Wellpappenkartons gedruckt, die Waren zur Lieferung enthalten und folgende Struktur aufweisen: 1970 wurde Industrial von Identicon Corp. entwickelt 1970 und in industriellen Anwendungen eingesetzt, wird jedoch derzeit nicht verwendet (mit Ausnahme einiger logistischer Anwendungen). Industrial "2 of 5" sieht so aus und verwendet 5 Streifen, um ein Zeichen darzustellen. Da dieser Code nur Spalten und keine Leerzeichen zuweist, weist er eine sehr geringe Datendichte auf. Matrix 2 von 5 ist ein Mitglied der 2 von 5-Codefamilie, die erstmals 1968 entwickelt wurde. Es wurde hauptsächlich zum Sortieren von Materialien und zum Veredeln von Fotos verwendet. Der Name "2 von 5" kommt von der Tatsache, dass von den fünf Elementen (Balken und Leerzeichen), die zum Codieren jedes Zeichens verwendet werden, zwei breit und drei schmal sind. Tüchtige Einstellungen vom Druck der Barcode in Delphi и Lazarus Mit FastReport VCL können Sie alle drei Arten von Barcodes verwenden. Mal sehen, wie man sie benutzt. Fügen Sie im FastReport VCL-Designer die obCatBarcode-Komponente zum Report hinzu und wählen Sie den Typ aus der vorgeschlagenen Liste aus: Weiter gehen wir in den Barcodes Editor: Code - Bereich zum Schreiben des numerischen Werts des Barcodes; Bar-Typ - Der Barcode-Typ kann sofort im Editor geändert werden, ohne dass dem Bericht eine neue obCatBarcode-Komponente hinzugefügt werden muss. CalcCheckSum ist eine Prüfsumme. Alle linearen Barcodes haben diese Eigenschaft. Erinnern Sie sich daran, das Lesen übersprungen zu haben? Wir müssen das irgendwie bekämpfen! Die Eigenschaft bestimmt, ob die Prüfsumme automatisch berechnet werden soll. Wenn es deaktiviert ist, muss die Prüfsumme im Objekttext vorhanden sein. Zoom - Llegt die Skalierung des Barcodes fest und wird nur in Verbindung mit der Eigenschaft "Autosize" verwendet. Text ist ein Text unter dem Barcode. Drehung - Mit dieser Option können Sie die Drehung des Objekts auf einen der festen Winkel einstellen - 0, 90, 180, 270 Grad. Wir überprüfen die Richtigkeit des generierten Barcodes (zum Glück sind die Kamera und das Programm zum Scannen von Barcodes jetzt in allen modernen Smartphones verfügbar). Erstellung einen Barcode aus dem Code in Delphi/Lazarus ``` uses frxBarcod; procedure TForm1.Button1Click(Sender: TObject); var bc: TfrxBarcodeView; begin bc := TfrxBarcodeView(frxReport1.FindObject('BarCode1')); {Barcodes Typ bestimmen} bc.BarType := bcCode_2_5_interleaved; {Fixierten Wert vom Barcode einsetzen} bc.Text := '123456'; {Kalkulierten Wert vom Barcode einsetzen} //bc.Expression := ' + '; {Wir legen fest, ob die Prüfsumme berechnet und am Ende des Barcodes hinzugefügt werden muss } bc.CalcCheckSum := False; {Barcodes Masßtabe einsetzen} bc.Zoom := 2; {Rotation Ecke einsetzen. Kann folgende Werte haben: 0, 90, 180, 270} bc.Rotation := 0; {Bestimmen der Barcodes Breite gemäß der Barcodes Inhalt} {Wenn Zoom gleich False ist, soll Barcodes Breite fixiert werden} bc.AutoSize := True; {Barcodes Farbe bestimmen} bc.Color := clNone; {Barcodes Linien Farbe bestimmen bc.ColorBar := clBlack; {Bestimmen, ob der Text hinten des Barcodes angezeigt wird} bc.ShowText := True; frxReport1.ShowReport(); end; ``` Jetzt wissen wir etwas mehr über ITF-Barcodes und können diese Barcoden für unsere Reporte sowie Etiketten verwenden. Tags: VCL, Lazarus, FastReport, Barcode, Delphi ### So erstellen wir einen Code-128 (A, B, C) in eigener Anwendung URL: https://www.fast-report.com/de/blogs/create-code128-barcode Summary: Wir studieren die Standards der Bildung Code-128, vergleichen es mit den populären Barcodes (EAN-13, ITF-14), und wir schreiben den Code der Schöpfung aus der Anwendung auf VCL und .NET. Wir studieren die Standards der Bildung Code-128, vergleichen es mit den populären Barcodes (EAN-13, ITF-14), und wir schreiben den Code der Schöpfung aus der Anwendung auf VCL und .NET. Wir studieren die Standards der Bildung Code-128, vergleichen es mit den populären Barcodes (EAN-13, ITF-14), und wir schreiben den Code der Schöpfung aus der Anwendung auf VCL und .NET. Der CODE 128 ist ein Barcode, der 1981 von der US-amerikanischen Computer Identics Corporation entwickelt wurde. Mit CODE 128 lassen sich alle 128 ASCII-Codezeichen abbilden (Zahlen, Buchstaben in Groß-/ Kleinschreibung, Symbole und Steuercodes). Da es alle Zeichen (außer dem japanischen Kanji, Hiragana und Katakana) darstellen kann, die auf einer Computertastatur vorhanden sind, handelt es sich um einen computerfreundlichen Barcode. Der Code-128 kann durch «Doppelverpackung» der Daten sehr kompakt werden, in dem zwei Zahlen in ein Barcode-Modul geschrieben werden. Der Code-128 besteht aus 107 Zeichen. Davon sind 103 Datenzeichen, 3 Startzeichen und 1 Stoppzeichen. Es gibt drei Code128-Zeichensätze, um alle 128 ASCII-Zeichen zu kodieren - A, B und C, die in einem Barcode verwendet werden können. 128 A —ASCII-Zeichen von 00 bis 95 (Zahlen von "0" bis "9", Buchstaben von "A" bis "Z") und Sonderzeichen; 128 B — ASCII-Zeichen von 32 bis 127 (Zahlen von "0" bis "9", Buchstaben von "A" bis "Z" und von „a“ bis „z“) sowie Sonderzeichen; 128 C — ASCII-Zeichen von 00 bis 99 (enthält ausschließlich numerische Zeichen). Spezifikationen für Code-128-Symbologien, Symbologiewerte, Kodierung der Datenzeichen, Größen, Dekodieralgorithmen, die Anwendungsparameter, Präfix-Zeichenfolgen und die Symbologiekennung sind weltweit in ISO/IEC 15417: 2007 “Information technology - Automatic identification and data capture techniques - Code 128 bar code symbology specification" geregelt.  Die grundlegende Struktur lautet: 1) Startcode 2) Prüffziffer (Modulus 103) 3) Stoppcode Aufbau von Code-128 Der Code128 ist ziemlich einfach aufgebaut. Der Barcode besteht aus 6 Bereichen: - weißer Bereich; - Startzeichen; - Kodeinformation; - Prüfziffer; - Stoppzeichen; - weißer Bereich. Ein Zeichen des Codes 128 wird mithilfe von 3 Balken und 3 Zwischenräumen (insgesamt sechs Elementen) dargestellt. Die Balken und Zwischenräume sind modular mit einer Breite von einem bis 4 Modulen aufgebaut (1 Modul = 0,33 mm). Das Zeichen ist elf Module breit. Das Stoppzeichen ist aus 13 Modulen mit vier Strichen und 3 Zwischenräumen aufgebaut. Übrigens wird in diesem Barcode „Modulus 103“ als Prüfziffer verwendet. Gemäß der Code 128 Zeichentabelle ist jedem Zeichen ein entsprechender Wert zugewiesen. Anschließend wird jedem Zeichen mit Ausnahme des Stoppzeichens und der Prüfziffer Gewichtungsfaktor 1, 2, 3,…,n zugewiesen. Dabei wird dem Starteichen und dem ersten darauf folgenden Zeichen ein Gewichtungsfaktor von 1 zugewiesen. Die Prüffziffer wird als Summe der Produkte der Gewichtsfaktoren mit den entsprechenden Werten Modulus 103 berechnet. Die Prüffziffer befindet sich zwischen dem letzten Datenzeichen und dem Stoppzeichen. Der Code-128 kann die Codierungsart in einem Barcode ändern. Die folgende Abbildung zeigt den Wechsel von Code-C zu Code-A. 1] mit CODE-C beginnen 2] zu CODE-A wechseln Wird der CODE-C verwendet, können zweistellige Zahlen über ein vorgegebenes Balkenmuster, so genannte «Doppelverpackung» der Daten dargestellt werden. Damit ist eine sehr hohe Datendichte möglich. Das obige Beispiel stellt genau diesen Fall dar. Ein Barcode mit 12 oder mehr Ziffern fällt daher in CODE 128 kleiner aus als in  ITF  und EAN-128. Da der CODE 128 4 Arten von Balkengrößen verwendet, sind Drucker mit hoher Druckqualität erforderlich. CODE 128 ist weder für den Druck mit Punkt-Matrix- oder Tintenstrahldruckern noch für Flexodruck auf Wellpappe geeignet. Anwendungsgebiete CODE 128 wird in den folgenden Branchen verwendet: - Bekleidungsindustrie in den USA. - Lebensmittelverarbeitende Industrie in den USA. - Arzneimittelbranche und medizinische Geräte in den USA. - Lebensmittelindustrie in Australien und Neuseeland. - Arzneimittelbranche und medizinische Geräte in Europa. Einzelverpackung Versandverpackung Logistikverpackung Heidelbeersaftflasche, 3 L, Glasflasche 6 St., Karton 24 St, Palette   4611234567893  14611234567899  (02)14611234567890(37)24  EAN-13 Barcode ITF-14 Barcode Barcode Code-128 461 innerhalb jedes Barcodes wird als  regionaler Code der nationalen GS1-Mitgliedsorganisationen (z.B., 460-469 werden in Russland vergeben) (000-139 werden in den USA vergeben) 1 (an der ersten Stelle) kennzeichnet die Verpackungsebene des bestimmten Kartons. Dieses einstellige Präfix kann von 0 bis 8 variieren. (z.B., 1 für Karton, 2 für Kiste usw.). (02) - GTIN der Handelseinheiten, die in einer Transporteinheit enthalten (37) – Menge der enthaltenen Handelseinheiten einer Versandeinheit 24 (am Ende) – Stückzahl je Palette Erstellen eines Barcodes aus einem Code in FastReport VCL  ``` uses frxClass, frxBarcode, frxBarcod, frxDBSet, Printers;   var DataPage: TfrxDataPage; Page: TfrxReportPage; Band: TfrxBand; Barcode: TfrxBarcodeView; begin { Löschung des Berichts } frxReport1.Clear; { Hinzufügen der Seite "Daten" } DataPage := TfrxDataPage.Create(frxReport1); { Hinzufügen der Seite } Page := TfrxReportPage.Create(frxReport1); { Erstellen eines einmaligen Namens } Page.CreateUniqueName; { Einstellen von Standard-Seitenrändern, des Papierformats und der Ausrichtung } Page.SetDefaults; { Ändern der Papierausrichtung } Page.Orientation := poLandscape; { Hinzufügen des report title } Band := TfrxReportTitle.Create(Page); Band.CreateUniqueName; { für das Band legen Sie einfach die Top-Koordinate und die Höhe } { Beide Koordinaten sind in Pixel angegeben } Band.Top := 20; Band.Height := 40; { Erstellen des Barcode-Objektes } Barcode := TfrxBarcodeView.Create(Band); { Festlegen des Barcode-Typs } Barcode.BarType := bcGS1Code128; { Festlegen der Zahlenkombination für die Codierung } Barcode.Text := '(02)14611234567890(37)24'; { Festlegen der Position und der Größe des Objektes } Barcode.Top := 0; Barcode.Left := 10; Barcode.Height := 40; { Einstellen der Textanzeige am unteren Rand des Barcodes } Barcode.ShowText := True; { Anzeige des Berichts } frxReport1.ShowReport; end; ``` Erstellen eines Barcodes aus Code in FastReport .NET ``` //Erstellen eines Berichtsobjekts Report report = new Report(); //Erstellen einer Berichtsseite ReportPage page = new ReportPage(); //Hinzufügen einer eindeutigen ID page.CreateUniqueName(); //Hinzufügen zur Sammlung der Berichtsseiten report.Pages.Add(page); //Erstellen eines Datenbands DataBand dataBand = new DataBand(); //mit der eindeutigen ID dataBand.CreateUniqueName(); //und derer Hinzufügen zur Band-Sammlung page.Bands.Add(dataBand); //Erstellen eines Barcode-Objektes FastReport.Barcode.BarcodeObject barcode = new FastReport.Barcode.BarcodeObject(); //Festlegen des Barcode-Types barcode.Barcode = new FastReport.Barcode.Barcode128(); //Festlegen der Zahlenkombination für die Codierung barcode.Text = "(02)14611234567890(37)24"; //Platzierung des Barcodes auf der Seite barcode.Parent = dataBand; //Einstellen der Objektgröße barcode.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 3); //Anzeige des Berichts report.Show(); ``` Jetzt wissen Sie etwas mehr über den Code-128 und seine Varianten A, B, C. Tags: .NET, VCL, Lazarus, FastReport, Barcode, Delphi ### So exportieren Sie einen Bericht aus FastReport .NET in das DXF-Format URL: https://www.fast-report.com/de/blogs/report-export-dxf-net Summary: In diesem Artikel betrachten wir die Möglichkeiten zum Export eines Berichts in das DXF-Format und sehen uns außerdem an, wie das erhaltene Ergebnis nach dem Öffnen der Datei in einer CAD-Anwendung aussieht. In diesem Artikel betrachten wir die Möglichkeiten zum Export eines Berichts in das DXF-Format und sehen uns außerdem an, wie das erhaltene Ergebnis nach dem Öffnen der Datei in einer CAD-Anwendung aussieht. DXF (Drawing Exchange Format) ist ein offenes Format zum Austausch grafischer Daten, das von Autodesk zum Speichern und Übertragen zweidimensionaler und dreidimensionaler Zeichnungen entwickelt wurde. Dank der umfassenden Unterstützung durch verschiedene CAD-Systeme ist DXF zu einem der am weitesten verbreiteten Formate für den Austausch von technischen und ingenieurwissenschaftlichen Dokumentationen zwischen Anwendungen geworden. In diesem Artikel betrachten wir die Möglichkeiten zum Export eines Berichts in das DXF-Format und sehen uns außerdem an, wie das erhaltene Ergebnis nach dem Öffnen der Datei in einer CAD-Anwendung aussieht. DXF (Drawing Exchange Format) ist ein offenes Format zum Austausch grafischer Daten, das von Autodesk zum Speichern und Übertragen zweidimensionaler und dreidimensionaler Zeichnungen entwickelt wurde. Dank der umfassenden Unterstützung durch verschiedene CAD-Systeme ist DXF zu einem der am weitesten verbreiteten Formate für den Austausch von technischen und ingenieurwissenschaftlichen Dokumentationen zwischen Anwendungen geworden. Das DXF-Format wird in den unterschiedlichsten Bereichen eingesetzt: Maschinenbau, Architektur, Bauwesen, Planung von Ingenieurnetzen und anderen Bereichen, in denen die Arbeit mit Vektorgrafiken und Zeichnungen erforderlich ist. Dateien dieses Formats können in AutoCAD und vielen anderen CAD-Anwendungen geöffnet werden, wodurch DXF eine praktische Wahl für die Übertragung von Daten zwischen verschiedenen Softwareprodukten darstellt. FastReport .NET unterstützt den Export vorbereiteter Berichte in das DXF-Format und ermöglicht dadurch die Verwendung der darin enthaltenen grafischen Elemente und Texte in CAD-Systemen, ohne dass eine manuelle Datenübertragung erforderlich ist. In diesem Artikel betrachten wir die Möglichkeiten zum Export eines Berichts in das DXF-Format und sehen uns außerdem an, wie das erhaltene Ergebnis nach dem Öffnen der Datei in einer CAD-Anwendung aussieht. Export eines Berichts in DXF über die Benutzeroberfläche Um den Export durchzuführen, bereiten Sie zunächst den Bericht vor und öffnen Sie ihn im Vorschaufenster. Klicken Sie auf die Schaltfläche „Speichern“ und wählen Sie anschließend in der Dropdown-Liste „Sonstingers“ und „DXF-Datei…“ aus. Nach der Auswahl des Formats wird das Fenster mit den Exporteinstellungen geöffnet. Ändern Sie bei Bedarf die Exportparameter und klicken Sie auf OK. Die Exporteinstellungen enthalten: Fill mode - bestimmt die Art der Verarbeitung von Objekten mit Füllung beim Export. In der Dropdown-Liste stehen zwei Optionen zur Verfügung: „Nur Grenzen“ und „Vollständig“. Bei Auswahl des Modus „Nur Grenzen“ werden nur die Konturlinien der Objekte exportiert, ohne die interne Füllung zu berücksichtigen. Dieser Modus wird zur Vorbereitung von Dateien verwendet, bei denen nur die Linien der Objekte angezeigt werden sollen, beispielsweise für das anschließende Schneiden oder die Bearbeitung. Der Modus „Vollständig“ speichert das Objekt zusammen mit seiner ausgefüllten Fläche, wodurch das vollständige Erscheinungsbild der Dokumentelemente übertragen werden kann. Barcode gaps (mm) - legt den Wert des zusätzlichen Abstands zwischen den Elementen von Strichobjekten beim Export fest. Der Parameter wird verwendet, um technologische Abstände einzustellen und das Zusammenführen einzelner Elemente bei der anschließenden Verarbeitung zu verhindern. Der Wert wird in Millimetern angegeben. Bei einem eingestellten Wert von 0,00 mm wird keine zusätzliche Unterbrechung angewendet, und Barcodes werden unverändert exportiert. Im geöffneten Dialogfenster geben Sie das Verzeichnis zum Speichern der Datei an, legen den Dateinamen fest und klicken auf „Speichern“. Nach Abschluss des Exports wird im ausgewählten Verzeichnis eine Datei mit der Erweiterung .dxf erstellt, die in unterstützten CAD-Systemen geöffnet werden kann. Export eines Berichts in DXF über Code FastReport .NET ermöglicht das programmgesteuerte Speichern vorbereiteter Berichte im DXF-Format. Diese Methode ist praktisch für die automatische Dokumentenerstellung, die Stapelverarbeitung von Berichten oder die Verwendung in Serveranwendungen. ``` // Eine neue Berichtsinstanz erstellen Report report = new Report(); // Den Bericht laden report.Load(@„C:\Reports\MainReport.frx “); // Den Bericht vorbereiten report.Prepare(); // Einen DXF-Exporter erstellen DxfExport export = new DxfExport(); // Füllmodus: Nur Rahmen export.FillMode = DxfFillMode.Border; // Füllmodus: Vollfläche export.FillMode = DxfFillMode.Solid; // Barcode-Abstände export.BarcodesGap = 0.00f; // Nach dem Export öffnen // export.OpenAfterExport = true; // Bericht exportieren report.Export(export, „Report.dxf“); ``` Nach der Ausführung des Codes wird im angegebenen Verzeichnis eine Datei mit der Erweiterung .dxf erstellt, die in Anwendungen geöffnet werden kann, die dieses Format unterstützen. Auf dem Screenshot ist zu sehen, dass der Export über das Dialogfenster und über den Programmcode zum gleichen Ergebnis führt. Dies bestätigt, dass beide Methoden denselben Exportmechanismus verwenden und identische DXF-Dokumente erstellen. Kurzes Fazit Wir haben die wichtigsten Möglichkeiten des Exports von Berichten in das DXF-Format betrachtet, einschließlich der Durchführung des Exports über die Benutzeroberfläche und über Programmcode. Dank der Unterstützung flexibler Einstellungen ermöglicht FastReport .NET die einfache Erstellung von DXF-Dateien, die für die weitere Verwendung in CAD-Systemen und anderen Anwendungen geeignet sind, die mit Vektorgrafiken arbeiten. Tags: .NET, Export, FastReport, Report ### So exportieren Sie einen Bericht aus FastReport .NET nach PostScript URL: https://www.fast-report.com/de/blogs/net-export-postscript Summary: In diesem Artikel zeigen wir anhand eines Beispiels, wie ein FastReport .NET-Bericht in das PostScript-Format exportiert wird, und erläutern dabei die Konfiguration der Parameter sowie die programmgesteuerte Implementierung. In diesem Artikel zeigen wir anhand eines Beispiels, wie ein FastReport .NET-Bericht in das PostScript-Format exportiert wird, und erläutern dabei die Konfiguration der Parameter sowie die programmgesteuerte Implementierung. FastReport .NET unterstützt den Export von Berichten in zahlreiche gängige Formate wie PDF, Excel, Word und weitere. Für den professionellen Druck, Plotter oder spezielle Drucksysteme wird jedoch häufig das PostScript-Format (.ps) benötigt. In diesem Artikel zeigen wir anhand eines Beispiels, wie ein FastReport .NET-Bericht in das PostScript-Format exportiert wird, und erläutern dabei die Konfiguration der Parameter sowie die programmgesteuerte Implementierung. FastReport .NET  unterstützt den Export von Berichten in zahlreiche gängige Formate wie PDF, Excel, Word und weitere. Für den professionellen Druck, Plotter oder spezielle Drucksysteme wird jedoch häufig das PostScript-Format (.ps) benötigt. PostScript ist eine von Adobe Systems entwickelte Seitenbeschreibungssprache. Sie ermöglicht eine äußerst präzise Darstellung von Vektorgrafiken und Text und hat sich dadurch als Standard im professionellen Satz sowie im industriellen Druck etabliert. Im Gegensatz zu PDF besteht PostScript aus einer Reihe von Anweisungen für das Ausgabegerät, wodurch sich jedes Element des Seitenlayouts präzise steuern lässt. In diesem Artikel zeigen wir anhand eines Beispiels, wie ein FastReport .NET-Bericht in das PostScript-Format exportiert wird, und erläutern dabei die Konfiguration der Parameter sowie die programmgesteuerte Implementierung. Export über die Benutzeroberfläche Als Beispiel verwenden wir den Bericht "Employee List": Klicken Sie in der Symbolleiste auf die Schaltfläche "Speichern". Wählen Sie anschließend im Dropdown-Menü den Eintrag "Drucken" und danach "PostScript Datei..." aus. Die Exporteinstellungen umfassen: Text in Kurven - wenn diese Option aktiviert ist, werden alle Textelemente in Vektorpfade (Bézier-Kurven) umgewandelt. Dadurch wird sichergestellt, dass der Text auf jedem Gerät korrekt dargestellt wird, selbst wenn die im Bericht verwendeten Schriftarten dort nicht installiert sind. (Der Text ist anschließend nicht mehr bearbeitbar, und die Dateigröße kann zunehmen.) Seiten in separaten Dateien - bei mehrseitigen Berichten wird jede Seite als separate .ps-Datei gespeichert, anstatt als ein gemeinsames Dokument. Dies ist praktisch für die Stapelverarbeitung oder den Druck verschiedener Berichtsteile auf unterschiedlichen Geräten. Bilder separat speichern - die Bilder des Berichts werden in separaten Dateien gespeichert, während die Hauptdatei .ps nur Verweise auf diese enthält. Dadurch wird die Größe der Hauptdatei reduziert und ihre Verarbeitung beschleunigt. (Beim Übertragen auf ein anderes Gerät muss auch der Ordner mit den Bildern kopiert werden, da sie sonst nicht angezeigt werden.) JPEG-Qualität - legt den Komprimierungsgrad für Rasterbilder im Bericht fest. Alle Registerkarten exportieren - wenn der Bericht mehrere Registerkarten enthält, werden mit dieser Option die Inhalte aller Registerkarten exportiert und nicht nur die der aktiven. Nach dem Export öffnen - öffnet den Bericht nach dem Speichern automatisch in der Anwendung, die der Dateiendung .ps zugeordnet ist. Export per Code Dasselbe Ergebnis kann auch programmgesteuert erzielt werden. Das folgende Beispiel zeigt, wie der Bericht "Employee List" per Code konfiguriert und in das PostScript-Format exportiert wird: ``` // Create a new report instance Report report = new Report(); // Load the report report.Load(@"C:\Reports\MainReport.frx"); // Prepare the report report.Prepare(); // Create a PostScript export object PSExport psExport = new PSExport(); // Text as Curves psExport.TextInCurves = true; // Separate Files for Pages psExport.PagesInDiffFiles = false; // Save Pictures Separately psExport.SaveImagesSeparately = false; // JPEG Quality psExport.Quality = 100; // Export All Tabs psExport.ExportAllTabs = false; // Open After Export psExport.OpenAfterExport = true; // Export the report to a file using the specified settings report.Export(psExport, "ResultReport.ps"); ``` Wie auf dem Screenshot zu sehen ist, unterscheidet sich die programmgesteuert erzeugte Datei in keiner Weise vom Ergebnis des interaktiven Exports. Fazit Wir haben zwei Möglichkeiten zum Export in das PostScript-Format betrachtet: über die Benutzeroberfläche für einmalige Aufgaben und per Code für automatisierte Prozesse. Das PostScript-Format bleibt ein unverzichtbares Werkzeug für den professionellen Druck, und FastReport .NET ermöglicht eine einfache Integration dieser Exportfunktion in Ihre Anwendungen. Tags: .NET, Export, FastReport, Report, Printing ### So fügen Sie einer Matrixzeile ein Datenfeld hinzu URL: https://www.fast-report.com/de/blogs/add-data-field-matrix-row Summary: Sehen wir uns im Detail an, wie man in FastReport ein Datenfeld zu einer Matrixzeile hinzufügt. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Sehen wir uns im Detail an, wie man in FastReport ein Datenfeld zu einer Matrixzeile hinzufügt. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Sehen wir uns im Detail an, wie man in FastReport ein Datenfeld zu einer Matrixzeile hinzufügt. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. In this article, we'll have a look at the way to create a dynamic matrix that is populated from the report's script code. The peculiarity of this matrix is that in addition to the data added from the script, we will insert the data field in the report cell using a text object. Suppose you create a matrix with a variable number of columns, which will be added depending on any conditions, but some of the data you have is constant. They are always filled. It would be nice just to put these data fields simply in the matrix, and the remaining cells should be filled from the code. Despite the fact that the filling of the matrix data is provided only in two ways (from the code or automatically, the data fields) we will match them. In fact, the technology is very simple. The data field is simply inserted into the cell as a separate text object. However, this is not all. When you add data to the matrix in the report, you must add the row number from the data set. Let's have a look at the example. Create a report and add the matrix to the "Data" band. Connect the data source - the demonstration database from the delivery, the Employees table. The matrix template looks like this: In the cell with a value of 2, we added a text object. In it, select the field Employees.LastName. This is exactly the "static" field about which we have spoken in above. Create the AfterData event handler for the matrix. ``` private void Matrix1_AfterData(object sender, EventArgs e) { DataSourceBase rowData = Report.GetDataSource("Employees"); // we get the data source Employees. Matrix1.DataSource = rowData; // assign it to the DataSource matrix property   rowData.Init(); // initialize the data source // we go through all records of the data source while (rowData.HasMoreRows) { Matrix1.Data.AddValue(new Object[] {"Phone" }, new Object[] { (string)Report.GetColumnValue("Employees.City"), (string)Report.GetColumnValue("Employees.FirstName")}, new Object[] {(string)Report.GetColumnValue("Employees.HomePhone") }, Report.GetDataSource("Employees").CurrentRowNo); // add another record rowData.Next(); //get the next record } } ```  It is clear from the comments that when you add a data string, we define the title of Phone. Then we insert the data in order: city, name and phone. And also, we need to transfer the data line number to insert the last name from the current data record. Now run the report: As you can see, you can make it easier for yourself and not add all the necessary data in the report script, but simply place them in the matrix template using a text object. Tags: .NET, FastReport, Data Source ### So konfigurieren Sie einen Bericht mit Business Objects im Code und im FastReport .NET Designer URL: https://www.fast-report.com/de/blogs/business-objects-net Summary: In diesem Artikel wird anhand eines praxisnahen Beispiels gezeigt, wie Sie eine .frx-Berichtsvorlage erstellen und verwenden, die mit hierarchischen Business Objects in FastReport .NET herzustellen. In diesem Artikel wird anhand eines praxisnahen Beispiels gezeigt, wie Sie eine .frx-Berichtsvorlage erstellen und verwenden, die mit hierarchischen Business Objects in FastReport .NET herzustellen. FastReport .NET bietet zahlreiche Möglichkeiten für den Datenzugriff und die Datenverarbeitung, darunter Datenbanken, DataSet, JSON sowie Business Objects (gewöhnliche C#-Klassen in Ihrer Anwendung). In diesem Artikel wird anhand eines praxisnahen Beispiels gezeigt, wie Sie eine .frx-Berichtsvorlage erstellen und verwenden, die mit hierarchischen Business Objects (Kategorie → Produkte) arbeitet. FastReport .NET bietet zahlreiche Möglichkeiten für den Datenzugriff und die Datenverarbeitung, darunter Datenbanken, DataSet, JSON sowie Business Objects (gewöhnliche C#-Klassen in Ihrer Anwendung). In diesem Artikel wird anhand eines praxisnahen Beispiels gezeigt, wie Sie eine .frx-Berichtsvorlage erstellen und verwenden, die mit hierarchischen Business Objects (Kategorie → Produkte) arbeitet. Warum Business Objects als Datenquelle verwenden? Business Objects bieten gegenüber herkömmlichen Datenquellen eine Reihe von Vorteilen: Unterstützung komplexer Objektmodelle – Verschachtelte Sammlungen werden nahtlos unterstützt, wodurch sich Business Objects hervorragend für Master-Detail-Berichte eignen (dies wird später in diesem Artikel demonstriert). Unabhängigkeit von Datenbanken – Berichte können auch ohne direkte Verbindung zu einer Datenbank erstellt werden. Einfache Wartung – Änderungen am Datenmodell erfordern in der Regel nur wenige oder gar keine Anpassungen an bestehenden Berichten. Hohe Leistung – Die Daten werden direkt aus den Anwendungsobjekten serialisiert. Flexibilität – Geeignet für WinForms, WPF, ASP.NET Core, Microservices und andere .NET-Anwendungen. Erstellen der Business Objects 1. Erstellen Sie die Modellklassen Installieren Sie zunächst das NuGet-Paket FastReport.Net.Demo (oder die lizenzierte Version von FastReport.Net von unserem privaten NuGet-Server ). Erstellen Sie anschließend die folgenden Modellklassen: ``` public class Category { public string Name { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public List Products { get; set; } = new List();   public Category() { }   public Category(string name, string description) { Name = name; Description = description; } }   public class Product { public string Name { get; set; } = string.Empty; public decimal UnitPrice { get; set; }   public Product() { }   public Product(string name, decimal unitPrice) { Name = name; UnitPrice = unitPrice; } } ``` 2. Füllen der Business Objects mit Daten Implementieren Sie anschließend eine einfache Methode zum Befüllen der Business Objects mit Beispieldaten: ``` static private void CreateBusinessObject() { FBusinessObject.Clear();   Category category = new Category("Beverages", "Soft drinks, coffees, teas, beers"); category.Products.Add(new Product("Chai", 18m)); category.Products.Add(new Product("Chang", 19m)); category.Products.Add(new Product("Ipoh coffee", 46m)); FBusinessObject.Add(category);   category = new Category("Confections", "Desserts, candies, and sweet breads"); category.Products.Add(new Product("Chocolade", 12.75m)); category.Products.Add(new Product("Scottish Longbreads", 12.5m)); category.Products.Add(new Product("Tarte au sucre", 49.3m)); FBusinessObject.Add(category);   category = new Category("Seafood", "Seaweed and fish"); category.Products.Add(new Product("Boston Crab Meat", 18.4m)); category.Products.Add(new Product("Red caviar", 15m)); FBusinessObject.Add(category); } ``` 3. Erstellen des Berichts Um einen Bericht auf Grundlage der Datenquelle Categories BusinessObject zu erstellen, verwenden Sie den folgenden Code: ``` [STAThread] static void Main(string[] args) { Report report = new Report(); CreateBusinessObject(); report.RegisterData(FBusinessObject, "Categories BusinessObject"); report.Design(); } ``` Wichtig: Rufen Sie RegisterData nach dem Laden des Berichts (report.Load) und vor dem Aufruf von report.Prepare() auf. Nach dem Start des Report-Designers wählen Sie die Datenquelle über "Data → Choose Report Data". Erstellen Sie nun einen einfachen Master-Detail-Bericht oder verwenden Sie eine der Beispielvorlagen, die in den FastReport-Demoprojekten enthalten sind. Sobald der Bericht erstellt wurde, können Sie ihn im Vorschaumodus (Preview) ausführen, um das Ergebnis zu überprüfen. 4. Anzeigen des Berichts in einer Konsolenanwendung Nachdem die Berichtsvorlage erstellt wurde, können Sie sie mit dem folgenden Code in einer Konsolenanwendung anzeigen: ``` [STAThread] static void Main(string[] args) { Report report = new Report(); report.Load(@"Business Objects.frx"); CreateBusinessObject(); report.RegisterData(FBusinessObject, "Categories BusinessObject"); report.Prepare(); report.Show(); report.Dispose(); } ``` Vollständiges WinForms-Anwendungsbeispiel ``` public partial class Form1 : Form { static private List FBusinessObject = new List();   public Form1() { InitializeComponent(); CreateBusinessObject(); }   private void CreateBusinessObject() { FBusinessObject.Clear();   Category category = new Category("Beverages", "Soft drinks, coffees, teas, beers"); category.Products.Add(new Product("Chai", 18m)); category.Products.Add(new Product("Chang", 19m)); category.Products.Add(new Product("Ipoh coffee", 46m)); FBusinessObject.Add(category);   category = new Category("Confections", "Desserts, candies, and sweet breads"); category.Products.Add(new Product("Chocolade", 12.75m)); category.Products.Add(new Product("Scottish Longbreads", 12.5m)); category.Products.Add(new Product("Tarte au sucre", 49.3m)); FBusinessObject.Add(category);   category = new Category("Seafood", "Seaweed and fish"); category.Products.Add(new Product("Boston Crab Meat", 18.4m)); category.Products.Add(new Product("Red caviar", 15m)); FBusinessObject.Add(category); }   private void btnCreateNew_Click(object sender, EventArgs e) { // create report instance Report report = new Report();   // register the business object report.RegisterData(FBusinessObject, "Categories BusinessObject");   // design the report report.Design();   // free resources used by report report.Dispose(); }   private void btnRunExisting_Click(object sender, EventArgs e) { // create report instance Report report = new Report();   // load the existing report report.Load(@"..\..\Business Objects.frx");   // register the business object report.RegisterData(FBusinessObject, "Categories BusinessObject");   // run the report report.Show();   // free resources used by report report.Dispose(); } }     public class Category { public string Name { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public List Products { get; set; } = new List();   public Category() { }   public Category(string name, string description) { Name = name; Description = description; } }   public class Product { public string Name { get; set; } = string.Empty; public decimal UnitPrice { get; set; }   public Product() { }   public Product(string name, decimal unitPrice) { Name = name; UnitPrice = unitPrice; } } ``` Fazit Business Objects sind eine der modernsten und komfortabelsten Möglichkeiten, mit Daten in FastReport .NET zu arbeiten. Sie ermöglichen es, die Berichtserstellung sauber und wartbar in die Architektur Ihrer Anwendung zu integrieren, ohne unnötige Komplexität in die Codebasis einzubringen. Dieser Ansatz eignet sich besonders für mittelgroße und große Projekte, in denen eine klare Trennung der Verantwortlichkeiten, Wartbarkeit und eine schnelle Entwicklung von Berichten entscheidend sind. Durch die Verwendung von Business Objects erhalten Sie maximale Flexibilität und volle Kontrolle darüber, wie Daten in Ihre Berichte gelangen, während Ihre Reporting-Schicht eng mit dem Domänenmodell Ihrer Anwendung verbunden bleibt. Tags: .NET, FastReport, Data Source, Designer, C#, Preview ### So konfigurieren Sie einen KI-Agenten für FastReport .NET: Architektur, Einschränkungen und Berichtsmigration URL: https://www.fast-report.com/de/blogs/ai-agent-fastreport-net Summary: KI-Funktionen für FastReport .NET: automatisierte Migration von Berichten aus Crystal Reports und StimulSoft, Refactoring für .NET 8/9, Vorlagengenerierung und Schutz vor Datenlecks. KI-Funktionen für FastReport .NET: automatisierte Migration von Berichten aus Crystal Reports und StimulSoft, Refactoring für .NET 8/9, Vorlagengenerierung und Schutz vor Datenlecks. Arbeiten mit berichten oft verwandelt sich in eine routine: die Bearbeitung XML-Vorlagen (.frx), die Konfiguration der Daten-Bindungen und die Anpassung von legacy-Formate. Die Automatisierung dieser Arbeit, eine spezielle AI-agent erstellt wurde. Dieser agent versteht die FastReport .NET - Architektur und folgt strikt die Entwicklung von Unternehmen standards. Arbeiten mit berichten oft verwandelt sich in eine routine: die Bearbeitung XML-Vorlagen (.frx), die Konfiguration der Daten-Bindungen und die Anpassung von legacy-Formate. Die Automatisierung dieser Arbeit, eine spezielle AI-agent erstellt wurde. Dieser agent versteht die FastReport .NET - Architektur und folgt strikt die Entwicklung von Unternehmen standards. Business Value Mithilfe eines spezialisierten KI-Agenten mit dem FastReport .NET skill direkt spart Stunden der routine-Arbeit für Entwickler und schützt die Produkt von Schwachstellen. Die wichtigsten Vorteile sind schnellere Entwicklung, weniger bugs (durch die automatische Validierung von Daten) und die komplette Beseitigung des Daten-Leck-Risiken (Passwörter werden nie gespeichert in Vorlagen). Automatische Migration von Legacy-Berichten bis Modern .NET Versionen Ein großes problem für viele enterprise-Projekte ist das Erbe von Hunderten von berichten für die alten .NET Framework (WinForms oder WebForms). Manuell portieren solcher Berichte auf modernen Plattformen dauert Monate. Der Agent übernimmt diese Arbeit: API-Refactoring: Der Agent automatisch ersetzt veraltete FastReport Methode fordert mit Ihren modernen Pendants kompatibel mit .NET 8 und .NET 9. Migration auf Web-Frameworks: Legacy WinForms-Berichte sind leicht angepasst für die browser-Anzeige. Der Agent generiert code, um die Integration der WebReport Komponente in modernen ASP.NET Core MVC und Blazor-Anwendungen. Daten-Layer-Update: Veraltet verbindungen (z.B. direkte SQL-Abfragen aus dem Bericht über SqlDataSource ) umgewandelt in clean code, wo die Daten über moderne ORMs (Entity Framework Core) als stark typisierte Sammlungen (IEnumerable). Kompatibel Neuronale Netze Die Fertigkeit vollständig zweisprachig und getestet mit top-modernen LLMs: Claude 3.5 Sonnet / Opus: Empfohlenes Modell. Perfekt versteht langen system aufgefordert, tief analysiert komplexe XML-Vorlage Strukturen (.frx), und schreibt reinigen Sie C# - code. Gemini 1.5 Pro / Gemini 3.1 Pro: Eine ausgezeichnete Wahl für Massen-migration aufgrund seiner großen Rahmen-Fenster — Sie können laden Sie Dutzende von Vorlagen und Dokumente. GPT-4o / GPT-4-Turbo: Eine klassische und zuverlässige option, die navigiert .NETTO-ökosystem-perfekt. Anpassungsfähigkeit: Der Agent reagiert automatisch und Kommentaren code in der Sprache Ihrer Aufforderung. Migration von Anderen Plattformen: Crystal Reports und StimulSoft Neben der Migration zwischen .NET-Versionen, die Agent erheblich vereinfacht den übergang von Drittanbieter-reporting-Systeme. Importieren von Crystal-Reports-Berichte (.rpt -) Konvertieren von Crystal Reports-Dateien ist oft begleitet von dem Verlust der komplexe Logik und Formeln. Beim Import .rpt-Dateien in den .frx-format, der Agent führt die folgenden Aufgaben aus: Formel-Anpassung: Die syntax von Crystal Reports Ausdrücke unterscheidet sich von FastReport. Der Agent automatisch schreibt alte Formeln in die richtige C# - Ausdrücke in die Vorlage. Daten Verbindlichen Wiederherstellung: In Crystal Reports-Daten-Logik wurde oft hardcoded tief in dem Bericht. Der Agent unterstützt diese extrahieren von Abfragen in Ihrer C# - Anwendung (Dapper/EF-Core), die Bindung des neuen Datenquellen (IEnumerable), um die konvertierte Vorlage. Layout-Korrektur: Nachdem die grundlegenden automatischen import können Elemente verschieben. Der Agent ist in der Lage Korrektur der XML-Struktur der Vorlage ausrichten von Tabellen und Textfeldern. Importieren von StimulSoft (.mrt) StimulSoft reports haben eine ähnliche Architektur, aber unterscheiden sich in Ihrer Herangehensweise an Bauteilen (Bänder) und Skripts. Script Migration: Der Agent wandelt internen event-scripts ( OnBeforePrint , OnAfterData , etc.) von StimulSoft format in sichere und gültige FastReport C# - Skripte. Struktur Übersetzung: Kreuztabellen (Cross-Tab / Matrix) anders strukturiert sind in StimulSoft und FastReport. Der Agent analysiert die Logik des .mrt-Datei und schreibt Sie in eine MatrixObject in FastReport, die Erhaltung der Hierarchie der Zeilen und Spalten. Garbage Cleanup: Beim automatischen import, redundante Formaten oder Parameter werden Häufig generiert. Der Agent optimiert den XML-code der .frx-Datei, entfernen Sie unnötige Gegenstände aus der bisherigen Plattform. - Architektur und Integration Der Agent fördert die enterprise-Ansatz zum erstellen von berichten. Die Datenbank liefert Daten an die Anwendung (z.B., via EF Core). Die Anwendung bereitet DTOs oder IEnumerable-Listen und übergibt diese Daten bereinigen, um die FastReport Engine . Der Motor overlays die Daten auf den .frx-Vorlage (design) und rendert das Ergebnis. Die Logik bleibt immer in C#, und die Grafiken in der Vorlage. Die Strengen Einschränkungen (Verbote) Um sicherzustellen das der code bleibt sauber und funktional, der Agent hält sich an strenge Regeln: Kein Rätselraten: Der Agent ist verboten, zu erfinden, API-Methoden. Lizenz-Schutz: Der Agent nicht ersetzen, Open Source mit Kommerziellen (und vice versa). Sorgfältigen Umgang: Es ist verboten, zu schreiben, die gesamte .frx-Datei für den Willen eines kleinen fix. Analyse: Eine obligatorische Preflight-Check (Umfeld-Analyse) ist erforderlich, bevor Arbeit. Sicherheit und Produktion Ein Bericht ist ein anfälliger Punkt für Datenverluste und überlastung. Keine Passwörter: Der Agent ist strikt untersagt das speichern von Verbindungs Zeichenfolgen, die in der .frx-Dateien. Script-Security: Der Agent nie deaktiviert Bericht-Skript-Schutz ohne triftigen Grund. Thread-Sicherheit: Es ist verboten, zu verwenden eine einzelne statische Bericht Instanz für mehrere threads. Ziel-und Nachteile und Einschränkungen Der Agent ist nicht allmächtig. Es ist wichtig, das folgende zu verstehen die technischen Nuancen: UI-Blindheit (Pixel-Perfect): Der Auftragnehmer übernimmt nicht das fertige PDF. Es kann perfekte XML, sondern ein Mensch wird sich anpassen müssen die Polster im designer. Kein Drag & Drop: Der Agent schreibt die XML von hand. Erstellung von sehr komplexen visuellen Formen ist einfacher mit einer klassischen Maus. Schwierigkeiten mit großen Dateien: Extra-groß .frx-Vorlagen (mehrere tausend Zeilen) können Treffer, die Grenzen der neuronalen Netzwerk-Kontext-Fenster. Prompt Dependency: Sie müssen klar und deutlich beschreiben die Struktur von C# - Klassen, um den Agenten , sonst wird es nicht erraten, die Namen der Eigenschaft für die Bindung. How to Get Started Sie brauchen nicht zu schreiben, Anweisungen und Aufforderungen von Grund auf neu. Verwenden Sie fertige skills aus unserem repository: Download-Eingabeaufforderungen Kopieren Sie die heruntergeladene Konfigurationsdatei (SKILL.md) zu den global skills-Verzeichnis Ihres AI-agent. Nach, dass, geben Sie einfach im chat, zum Beispiel: "Schließen Sie FastReport zu meinem ASP.NET Projekt" oder "erstellen einer matrix-Bericht auf Basis dieser Daten". Der Agent wird automatisch abholen die Regeln der Geschicklichkeit, und führen Sie die Aufgabe. Tags: .NET, FastReport, C# ### So organisieren Sie Vererbung der Reporte in FastReport .NET URL: https://www.fast-report.com/de/blogs/report-inheritance-fastreport-net Summary: Wie können Sie die Arbeit mit vielen ähnlichen Dokumenten vereinfachen? Einrichten der Vererbung von den Reporten anstelle von Kopieren und Einfügen. Wie können Sie die Arbeit mit vielen ähnlichen Dokumenten vereinfachen? Einrichten der Vererbung von den Reporten anstelle von Kopieren und Einfügen. Wie können Sie die Arbeit mit vielen ähnlichen Dokumenten vereinfachen? Einrichten der Vererbung von den Reporten anstelle von Kopieren und Einfügen. Wenn Sie angewiesen werden, eine große Anzahl von den Reporten innerhalb desselben Unternehmensstils zu erstellen, haben Sie ein Problem, einige Informationen und Entwurfsstile in jedem Report zu duplizieren. In der Regel haben öffentliche Aufzeichnungen (Dokumente) in einem Unternehmen denselben Titel und dieselben Kontaktinformationen. Angenommen, Sie haben 50 Vorlagen mit denselben Überschriften. Die Adresse des Unternehmens ändert sich jedoch, und Sie sollen jede Vorlage im Editor öffnen und korrigieren. Aber wenn die Vorlagen nicht 50, sondern 100 gleich sind, ist dies ein echtes Problem. Der Vererbungsmechanismus hilft, dieses Problem zu vermeiden, wenn Sie über eine Vorlage verfügen, die in verschiedenen Reporten verwendet werden kann. Änderungen an dieser Vorlage werden in allen geerbten Reporten berücksichtigt. Die Reportvererbung in FastReport .NET ist wie folgt organisiert. Vom Anfang an wird ein sogenannter Basisreport erstellt, von dem andere erben werden. Dieser Report sollte eine Vorlage mit Informationen enthalten, die mit allen geerbten Reporten gemeinsam sind. Beispielsweise kann es sich um eine Kopfzeile mit Unternehmensdetails handeln. Wie oben erwähnt, können Sie die Basisreportvorlage ändern, und dann wird sie in allen geerbten Reporten geändert. Sie können aber auch Informationen aus dem BasisReport im geerbten bearbeiten. Diese Änderungen werden nur in diesem bestimmten Report gespeichert. Was aber, wenn Sie ein Objekt vom BasisReport in den geerbten geändert und dann dasselbe Objekt im BasisReport geändert haben? In diesem Fall werden Änderungen aus dem BasisReport auf dieses Objekt angewendet, jedoch nur diejenigen, die sich nicht mit Änderungen im geerbten Objekt überschneiden. Wenn Sie beispielsweise die Schriftart im Textobjekt im geerbten Report ändern und dann die Fettschrift für dasselbe Objekt im BasisReport festlegen, werden beide Änderungen angewendet. Wenn Sie auch die Schriftart im BasisReport ändern, wird dies nicht im geerbten Report berücksichtigt, da dieser bereits geändert wurde. Beachten Sie die Einschränkungen beim Erben eines Reports. Sie können nicht: Wenn Sie den BasisReport löschen oder verschieben, werden alle geerbten Reporte beschädigt. Erben Sie einen Report von einem anderen geerbten. Das heißt, Mehrfachvererbung ist nicht zulässig. Sie können das Skript, die Reportparameter, die Objekte "Tabelle" und "Matrix" im BasisReport verwenden. Schauen wir uns nun ein Beispiel für die Erstellung eines Legacy-Reports an. Zuerst müssen Sie einen BasisReport erstellen. Beispielsweise enthält es eine Reportsvorlage mit dem Titel: Wir speichern diesen Report unter einem Namen, der base enthält. Dies erleichtert das Auffinden unter anderen Reportvorlagen. Um einen Legacy-Report zu erstellen, sollen Sie den Assistenten für geerbte Reporte verwenden. Es ist entweder im Begrüßungsfenster oder im Fenster zum Erstellen eines neuen Reports verfügbar (Datei-> Neu): Der Assistent für geerbte Reporte bietet Ihnen nur eine Aktion: Wählen Sie den BasisReport im Dialogfeld "Datei öffnen" aus. Wählen Sie den zuvor erstellten BasisReport aus. Alle Elemente des Reports haben ein Vorhängeschlosssymbol. Dies bedeutet, dass sie von der Basis geerbt werden.  Neu hinzugefügte Objekte haben dieses Symbol nicht mehr. Fügen wir unserem Report eine Datenquelle hinzu und platzieren Sie die Felder im Bereich "Daten". Beispielsweise können Sie die Demo-Datenquelle nwind.xml aus der FastReport.NET-Lieferung entnehmen: Wählen Sie aus der Datenquelle die Kategorien- und Produkttabellen aus. Diese Tabellen sind durch Schlüssel verknüpft, und daher können wir leicht einen Report vom Typ Master-Detail erstellen: Wie Sie sehen können, haben die hinzugefügten Datenfelder und Biegungen Header und DetailData kein Schlosssymbol. Auf dieser Basis unterscheiden Sie Objekte des geerbten Reports immer vom BasisReport. Auf diese Weise können Sie eine große Anzahl von Reporten in einem einzigen Stil erstellen und dann alle problemlos bearbeiten, wobei nur die Basisvorlage geändert wird. Tags: .NET, .NET, FastReport, FastReport ### So stellen Sie über Berichte in .NET Core eine Verbindung zu MS SQL her URL: https://www.fast-report.com/de/blogs/connect-mssql-reports-core Summary: Schauen wir uns genauer an, wie Sie aus Berichten in .NET Core eine Verbindung zu MS SQL herstellen. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, wie Sie aus Berichten in .NET Core eine Verbindung zu MS SQL herstellen. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Eines der häufigsten DBMS, mit denen .NET-Entwickler arbeiten, ist MS SQL Server. In diesem Artikel erfahren Sie, wie Sie FastReport .NET-Berichte in Ihrer .NET Core-Anwendung mit einer Verbindung zur MS SQL-Datenquelle verwenden. One of the most common DBMS with which .NET developers work is MS SQL Server. In this article, we'll look at the way to use FastReport .NET reports in your .NET Core application with a connection to the MS SQL data source. Firstly, you need to create a report with connection to MS SQL in the report designer, which is shipped with FastReport .NET. Then, in your .NET Core project, you need to add the FastReport libraries. You can do this in the Nuget Package Manager. We need to connect the following packages: FastReport.Core – library of the report generator adapted for the .Net Core platform; FastReport.Data.MsSql – connector to the database MS SQL; FastReport.Web – Web report object that allows you to display reports in the browser. Then we go to the controller in which we will work with the report. In the example, this is the HomeController. You must add references to the following namespaces: ``` using FastReport.Web; using FastReport.Data; using FastReport.Utils; ```  And add the code to create and load the report in the desired method. In the case this is Index: ``` public IActionResult Index() { RegisteredObjects.AddConnection(typeof(MsSqlDataConnection)); WebReport webReport = new WebReport();   MsSqlDataConnection sqlConnection = new MsSqlDataConnection(); sqlConnection.ConnectionString = "Data Source = localhost; AttachDbFilename =; Initial Catalog = testdb; Integrated Security = True; Persist Security Info = False; User ID =; Password = "; sqlConnection.CreateAllTables(); webReport.Report.Dictionary.Connections.Add(sqlConnection); webReport.Report.Load($@"Reports/CoreMSSQL.frx");   ViewBag.WebReport = webReport; return View(); } ```  In the first line, we initialize the connection to the MsSqlDataConnection database. Then we create a web report object. We get an instance of the MsSqlDataConnection object and set the connection string to the database in it. After that we give the command - to build all the tables. And add the connection to the report. It only remains to load the report template into the web report object and transfer it to the view. If the report has a variable, then we can pass it the value of the applications in such a way: ``` String value = "Products!"; webReport.Report.SetParameterValue("Param", value); ```  In the Index.chtml view (depending on the controller), we add a line: ``` @await ViewBag.WebReport.Render(); ```  Which will display the Web Report object. The application is almost ready, you just need to add one more line of code to the Startup.cs file, in the Configure method: ``` app.UseFastReport(); ```  Now you can run the application and check the operation of our report: As you can see, the use of the connector, which we installed from Nuget, greatly facilitated our life. We just initialized the connection to the database. If we did not use MsSqlConnection, we would have to create a connection, a DataAdapter, a DataSet and register the data source in the report. Tags: .NET, FastReport ### So verwenden Sie den Active Query Builder im FastReport.Net Berichtsdesigner URL: https://www.fast-report.com/de/blogs/active-query-editor-designer-net Summary: Schauen wir uns die Verwendung des Active Query Builders in FastReport .NET genauer an. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns die Verwendung des Active Query Builders in FastReport .NET genauer an. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns die Verwendung des Active Query Builders in FastReport .NET genauer an. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. FastReport.Net bietet zahlreiche Möglichkeiten, Ihren Berichtsdesigner an Ihre Anforderungen anzupassen. In diesem Artikel wird beschrieben, wie Sie den integrierten SQL-Abfrage-Editor durch den Active Query Builder ersetzen können. Als erstes laden Sie die neueste Version des Active Query Builder for .Net von der Website des Entwicklers herunter ( http://www.activequerybuilder.com/ ). Dies ist die Version 3.4.9.1086 im Moment der Veröffentlichung dieses Artikels. Wir installieren die Bibliothek mit Hilfe des heruntergeladenen Installers. Erstellen Sie nun die WindowsForms-Anwendung zur Demonstration. Fügen Sie dem Projekt Links zu den Bibliotheken des Active Query Builders hinzu. Die folgenden Bibliotheken werden benötigt, die Sie im Ordner mit dem installierten Programm finden (C:\Program Files\ActiveDBSoft\Active Query Builder 3.NET\assemblies): ActiveQueryBuilder.AdvantageMetadataProvider; ActiveQueryBuilder.Core; ActiveQueryBuilder.DB2MetadataProvider; ActiveQueryBuilder.FirebirdMetadataProvider; ActiveQueryBuilder.MSSQLCEMetadataProvider; ActiveQueryBuilder.InformixMetadataProvider; ActiveQueryBuilder.MSSQLMetadataProvider; ActiveQueryBuilder.MySQLMetadataProvider; ActiveQueryBuilder.ODBCMetadataProvider; ActiveQueryBuilder.OLEDBMetadataProvider; ActiveQueryBuilder.OracleMetadataProvider; ActiveQueryBuilder.OracleNativeMetadataProvider; ActiveQueryBuilder.PostgreSQLMetadataProvider; ActiveQueryBuilder.SQLiteMetadataProvider; ActiveQueryBuilder.SybaseMetadataProvider; ActiveQueryBuilder.UniversalMetadataProvider; ActiveQueryBuilder.View; ActiveQueryBuilder.View.WinForms; ActiveQueryBuilder.View.WPF; ActiveQueryBuilder.VistaDB5MetadataProvider. Außerdem brauchen wir noch folgende Bibliotheken: FastReport; FastReport.Bars; FastReport.Editor. Und nun fügen wir dem Projekt eine Plugin-Datei hinzu, um mit ActiveQueryBuilder zu arbeiten. Es befindet sich hier: J:\Programmdateien (x86)\FastReports\FastReport.Net\Extras\Misc\ActiveQueryBuilder\ActiveQBForm.cs. Klicken Sie dazu mit der rechten Maustaste auf den Projektnamen im Solution Explorer und wählen Sie Add -> Existing Item..... Da wir eine Demo-Anwendung haben, wird das Formular nur eine Schaltfläche enthalten: Erstellen wir nun den Eventhandler, indem wir auf die Schaltfläche doppelklicken: ``` using FastReport.Forms; using FastReport.Design; using FastReport; … private void button1_Click(object sender, EventArgs e) { Report report = new Report(); FastReport.Utils.Config.DesignerSettings.CustomQueryBuilder += new FastReport.Design.CustomQueryBuilderEventHandler(DesignerSettings_CustomQueryBuilder); report.Design(); }   private void DesignerSettings_CustomQueryBuilder(object sender, CustomQueryBuilderEventArgs e) { using (ActiveQBForm form = new ActiveQBForm()) { form.Connection = e.Connection; form.SQL = e.SQL; if (form.ShowDialog() == DialogResult.OK) e.SQL = form.SQL; } } ``` Durch Anklicken der Schaltfläche wird ein Berichtsobjekt erstellt, dann wird der Handler des Berichtsgenerators neu definiert. Und rufen Sie den Berichtsdesigner an. Im Folgenden haben wir einen benutzerdefinierten Handler für den Aufruf des Berichtserstellers gebildet. Wie Sie sehen können, rufen wir einfach das zuvor hinzugefügte ActiveQBForm-Objekt in das Projekt auf. Starten Sie die Anwendung. Klicken Sie auf die einzelne Schaltfläche und wir sehen den Berichtsdesigner. Wenn Sie einen bestehenden Bericht bearbeiten möchten, dann müssen Sie nach der Erstellung des Berichtsobjekts den Bericht in ihn laden: report.Load ("C:/Programme (x86)/FastReports/FastReport.Net/Demos/Reports/Image.frx"); ``` report.Load("С:/Program Files (x86)/FastReports/FastReport.Net/Demos/Reports/Image.frx"); ``` Fügen wir nun die Datenquelle über das Symbol dem Bericht hinzu: Es ist eine Verbindung zu einem SQL-Subsprachen-Supporter herzustellen, um den SQL Query Builder in Zukunft nutzen zu können. Zum Beispiel verbinden wir uns mit der Access-Datenbank. Im nächsten Schritt des Assistenten zur Erstellung einer neuen Datenquelle wird uns angeboten, die notwendigen Tabellen aus der Datenbank auszuwählen. Aber in der unteren rechten Ecke befindet sich die Schaltfläche " Add SQL query... ", die den Assistenten zum Erstellen einer Query startet. Im ersten Schritt der Erstellung einer Abfrage müssen Sie einen Namen für die neue Ansicht angeben, der sich aus der Anwendung der von uns erstellten Abfrage ergibt. Und im zweiten Schritt kann man den SQL-Abfragetext manuell eingeben. In der unteren rechten Ecke sehen wir jedoch die Schaltfläche "Query Builder...", die den Berichterstellungsprogramm startet. Klicken Sie darauf: Und wir sehen den Ersteller von Berichten, der auf der Basis von ActiveQueryBuilder erstellt wurde. Um eine Tabelle in den Arbeitsbereich aufzunehmen, müssen Sie sie aus dem Datenbereich auf der rechten Seite ziehen. Oder klicken Sie mit der rechten Maustaste auf den Arbeitsbereich des Builders und wählen Sie aus dem Kontextmenü " Add ": Und durch Gedrückthalten von Ctrl wählen wir die benötigten Tabellen aus der Datenbank aus: Klicken Sie anschließend auf die Schaltfläche " Add Selected Objects " und sehen Sie die verknüpften Tabellen im Ersteller: Am unteren Rand des Fensters sehen wir den automatisch generierten SQL-Abfragetext. Die Result-Ergebnis enthält das Ergebnis der Abfrageausführung. Angenommen, wir sind mit der erstellten Abfrage zufrieden. Um es zu akzeptieren, klicken Sie auf das grüne Symbol oben im Fenster. Um es abzubrechen, klicken Sie auf das rote Symbol. Der Text der SQL-Abfrage, die wir im Ersteller angelegt haben, wird an den Abfrageassistenten übergeben: Beenden Sie die Abfrage, indem Sie auf Weiter und am Ende von Fertigstellen klicken. Genauso wie wir die Erstellung der Datenquelle abschließen. Nun hat der Berichtsdesigner eine Datenquelle: Daher haben wir das Plugin verwendet, um den Standard SQL Query Builder zu ersetzen. Tags: .NET, FastReport, Data Source, SQL ### So verwenden Sie den FastReport Cloud Dateimanager URL: https://www.fast-report.com/de/blogs/file-manager-cloud Summary: Seit dem letzten Update FastReport .NET wurde die Möglichkeit hinzugefügt, mit Ihren Berichten, die auf dem FastReport Cloud Server liegen, zu interagieren. Seit dem letzten Update FastReport .NET wurde die Möglichkeit hinzugefügt, mit Ihren Berichten, die auf dem FastReport Cloud Server liegen, zu interagieren. Seit dem letzten Update FastReport .NET wurde die Möglichkeit hinzugefügt, mit Ihren Berichten, die auf dem FastReport Cloud Server liegen, zu interagieren. Seit dem letzten Update FastReport .NET wurde die Möglichkeit hinzugefügt, mit Ihren Berichten, die auf dem FastReport Cloud Server liegen, zu interagieren. Der Dateimanager kann nun auf 2 Arten geöffnet werden. Vorschau des erstellten Berichts im .fpx.-Format. Mit dem Designer eines nicht erstellten Berichts im .fpx-Format. Sie können den Bericht auch auf Ihrem FastReport Cloud Server speichern, wenn Sie im Designer arbeiten. Verbindung zum Server herstellen Wenn Sie den Dateimanager öffnen und der Benutzer nicht autorisiert ist, öffnet sich das Autorisierungsfenster, um sich bei Ihrem FastReport ID-Konto anzumelden. (Sie können das Fenster selbst über den folgenden Pfad öffnen: Hilfe → Konto). Wenn Sie eine Verbindung zu einem anderen Server als fastport.cloud herstellen möchten, geben Sie die Serveradresse und den entsprechenden Api-Schlüssel ein. Darüber hinaus kann der Api-Schlüssel auch bei der Verbindung mit fastreport.cloud als Alternative zum Standard-Login verwendet werden.  Wenn Sie erfolgreich eine Verbindung zum Server hergestellt haben, wird der Dateimanager geöffnet. Zum Vergleich öffnen Sie die FastReport Cloud in einem Browser. Wie Sie sehen können, zeigt der Dateimanager eine ähnliche Dateiliste wie die Webversion von Cloud an. Funktionen des Dateimanagers  Der Dateimanager unterstützt die folgenden Arten von Interaktionen: Auswählen und Hochladen eines Berichts in den Designer; Suchen nach dem Namen des gewünschten Berichtes; Verwendung des Kontextmenüs von Ordnern und Berichten; Sortieren der Dateien nach: dem Namen, Erstellungsdatum, Typ und der Größe; Verwendung von Schaltflächen: Zurück, Pfad kopieren, Hinzufügen eines Ordners am oberen Rand des Fensters; Funktion, Verzeichnisse zu wechseln, indem Sie auf den Namen des gewünschten Ordners in der Adressleiste klicken; Funktion, von einem Arbeitsbereich in einen anderen zu wechseln; Es ist auch möglich, den Namen der gewünschten Datei manuell in das untere Fenster einzugeben, um sie zu öffnen. Wenn die gewünschte Datei jedoch nicht im aktuellen Verzeichnis vorhanden ist, wird eine Warnung angezeigt. Wenn Sie den zu speichernden Bericht umbenennen möchten, ändern Sie seinen aktuellen Namen im unteren Bereich. Die Dateierweiterung .frx oder .fpx muss nicht angegeben werden. Es ist wichtig zu beachten, dass mehrere Person an Berichten aus der Cloud arbeiten können. Wenn der hochgeladene Bericht bereits auf dem Server geändert wurde, zum Beispiel, wenn eine andere Person vor Ihnen daran gearbeitet hat, wird ein jeweiliges Fenster angezeigt. Sie können entweder den Bericht auf dem Server aktualisieren oder Ihre Änderungen rückgängig machen. Gibt es irgendwelche Einschränkungen bei der Arbeit an offenen Berichten in der Cloud? Nein, es gibt keine Einschränkungen. Ein aus der Cloud geöffneter Bericht unterstützt die volle Funktionalität des Designers. Zudem, wenn Sie Strg + S (Speichern) drücken, wird der Bericht in Ihrem Arbeitsbereich aktualisiert. Web-Vorschau Beim Bericht-Vorschau in der Cloud konnte der Benutzer Abweichungen in der Datei, die in der Desktop-Anwendung erstellt worden sind, merken. Daher wurde eine neue Web-Vorschau-Funktion hinzugefügt.  Diese Schaltfläche ist aktiv, wenn der Bericht aus der Cloud geöffnet wurde. Wenn Sie darauf klicken, wird eine Seite in einem Standardbrowser mit dem vorbereiteten Bericht geöffnet. Interaktion mit Datenquellen  Datenverbindungen werden in der Cloud gespeichert. Es ist nun möglich, diese Verbindungen in Ihrem Bericht in der Desktop-Anwendung zu verwenden. Um eine Datenquelle aus der Cloud hinzuzufügen, gehen Sie zu Daten → Neue Datenquellen…→ Verbindung vom Server auswählen. Nach dem Klicken auf die Schaltfläche wird ein Fenster mit allen verfügbaren Verbindungen angezeigt. Der Verbindungsname, der Verbindungstyp und der Verbindungsstatus werden ebenfalls angezeigt. Nachdem Sie eine Verbindung ausgewählt haben, können Sie die Verbindungszeichenfolge anzeigen und den gewünschten Namen eingeben. Sie können auch die Tabellen auswählen, die Sie verwenden möchten. Hochladen und Aktualisieren einer Datenquelle  Das Kontextmenü von Datenquellen verfügt jetzt über einen neuen Punkt "Verbindung in der Cloud aktualisieren" (für Verbindungen, die aus der Cloud geöffnet werden) und "Auf den Unternehmensserver hochladen" (für lokal erstellte Verbindungen). Sie können die Verbindung aktualisieren, wenn Sie beispielsweise den Verbindungsnamen und/oder die Verbindungszeichenfolge geändert haben. Und natürlich können Sie die Datenquelle in die Cloud herunterladen. Beim erfolgreichen oder nicht erfolgreichen Vorgang wird das entsprechende Fenster angezeigt. Es ist wichtig zu beachten, dass nur XML und CSV, die lokal und nicht über eine Verbindungszeichenfolge verbunden sind, nicht in die Cloud hochgeladen werden können. Willkommensfenster und Liste der zuletzt geöffneten Dateien  Im Willkommensfenster können Sie nun einen Bericht aus der Cloud öffnen, an dem Sie zuletzt gearbeitet haben. Klicken Sie einfach darauf in der Liste. Sollten Sie jedoch versuchen, den Bericht zu öffnen, der in einem Abonnement autorisiert ist, das diese Datei nicht enthält oder überhaupt nicht autorisiert ist, erhalten Sie eine Benachrichtigung darüber. Um dies zu vermeiden, können Sie direkt vom Willkommensfenster aus auf das Konto zugreifen. So erhalten Sie ein ultimatives Tool, das Ihnen die Arbeit mit Berichten aus der Cloud erleichtert. Jetzt müssen Sie nicht mehr Berichte manuell vom Server herunterladen und sie anschließend im Designer öffnen und Verbindungen einrichten. Und es hilft auch, Probleme bei der Vorschau des Berichts zu vermeiden.  Tags: .NET, FastReport, Cloud, Designer ### So verwenden Sie den Online Designer in einer Angular Single-Page-Webanwendung URL: https://www.fast-report.com/de/blogs/online-designer-angular-app In diesem Artikel geht es um die Art und Weise, wie FastReport Online Designer in auf Angular Webframework- und ASP.Net Core-basierter Single-Page-Webanwendung verwendet wird. Da das Back-End dieser SPA-Anwendung auf ASP.Net Core implementiert ist, können wir die FastReport-Bibliotheken leicht nutzen. Es bleibt nur noch eine Frage: Wie wird das Web-Reportobjekt in der Angular Client-App angezeigt? Sie wissen vielleicht, dass Angular Webframework in erster Version in JavaSkript implementiert war. Alle nachfolgenden Versionen sind in TypeScript geschrieben. Jetzt heißt die erste Version von Angular - AngularJS, indem andere einen digitalen Index haben: 2, 3, ... 7. Wir möchten einen Demo-App einstellen, das an Angular 7 basiert wird. Bevor noch wir das Entwickeln starten, lassen Sie uns die Entwicklungsumgebung vorbereiten. Erstens ist Node.js Plattform zu installieren. Es aktiviert JavaScript auf der Serverseite. Laden Sie die Distribution vom Herstellers Website https://nodejs.org/de/ herunter und installieren Sie sie. Node.js enthält NPM-Paketmanager, der Installierung von nützlichen JavaScript-Bibliotheken mit Konsolenbefehlen ermöglicht. Und auch was notwendig ist, dass Sie .Net Core SDK 2.0 und höher installiert haben sollen. Um schneller das Demo-App zu entwickeln, verwenden Sie Windows-Eingabeaufforderung. Wir starten cmd.exe und gehen zu dem Dateiverzeichnis, in dem wir das Projekt erstellen möchten. Und wir führen den Befehl aus:  dotnet new angular -o AngularOnlineDesignerFRCore Weiter brauchen wir den Online-Designer. Ihn kann man im Kundenabschnitt auf unserem Site www.fast-report.com herunterladen. Ich möchte Ihnen in Erinnerung bringen, dass ein neues Build des Online-Designers im Designer für .Net Core Framework in erster Linie zu assemblieren ist. Öffnen Sie unseres Projekt in Visual Studio. Nach dem Herunterladen des Archivs mit Online.Designer, entpacken Sie es in den wwwroot-Ordner im Projekt. Jetzt können wir FastReport-Bibliotheken ins Projekt, das NuGet-Packetmanager unterstützt, hinzufügen. In der rechten Oberecke des Managers gibt es Dropdown-Liste mit Paketquellen. Jetzt brauchen wir eine lokale Quelle. Aber Sie brauchen es zu konfigurieren. Machen Sie es, klicken Sie auf das Icon in Form eines Zahnrades. Als nächstes wählen Sie die lokale Quelle aus und legen Sie dafür den Pfad zum Verzeichnis auf der lokalen Festplatte fest: C: \ Program Files (x86) \ FastReports \ FastReport.Net \ Nugets. After completing the settings, install two available packages: FastReport.Core and FastReport.Web. Um FastReport in Ihrer Projekte zu benutzen, brauchen Sie auch folgender Link in den Sturtup.cs-File hinzugefügt haben, durch die spezielle Methode:  ``` public void Configure(IApplicationBuilder app, IHostingEnvironment env) { … app.UseFastReport(); … } ``` Um die Berichte in den Designer zu uploaden, brauchen wir die nützliche Berichtsvorlagen in den Server zu ergänzen. Um das zu schaffen, erstellen Sie App_Data-Ordner im Stammverzeichnis des Projektes. Fügen Sie einige Berichtsvorlagen aus dem Ordner FastReport.Net Delivery, Demos / Reports hinzu. Also, kopieren Sie das nwind.xml Data File aus diesen Ordner: Jetzt können wir das Programmieren starten. Wir haben einen Controller - SampleDataController. Da wir eine Demo-Anwendung mit Beispielseiten erstellt haben, haben wir unnötige Elemente im Controller und im Client. Wir werden nun alle Methoden aus dem SampleDataController.cs-Controller entfernen und unsere eigenen hinzufügen. ``` using System; using Microsoft.AspNetCore.Mvc; using FastReport.Web; using System.IO;   namespace AngularOnlineDesignerFRCore.Controllers { [Route("api/[controller]")] public class SampleDataController : Controller { [HttpGet("[action]")] public IActionResult Design(string report) { WebReport WebReport = new WebReport(); WebReport.Width = "1000"; WebReport.Height = "1000"; WebReport.Report.Load("App_Data/"+report+".frx"); // Load the report into the WebReport object System.Data.DataSet dataSet = new System.Data.DataSet(); // Create a data source dataSet.ReadXml("App_Data/nwind.xml"); // Open the xml database WebReport.Report.RegisterData(dataSet, "NorthWind"); // Registering the data source in the report WebReport.Mode = WebReportMode.Designer; // Set the web report object mode - designer display WebReport.DesignerLocale = "en"; WebReport.DesignerPath = @"WebReportDesigner/index.html"; // We set the URL of the online designer WebReport.DesignerSaveCallBack = @"api/SampleData/SaveDesignedReport"; // Set the view URL for the report save method WebReport.Debug = true; ViewBag.WebReport = WebReport; // pass the report to View return View(); }   [HttpPost("[action]")] // call-back for save the designed report public IActionResult SaveDesignedReport(string reportID, string reportUUID) { ViewBag.Message = String.Format("Confirmed {0} {1}", reportID, reportUUID); // We set the message for representation Stream reportForSave = Request.Body; // Write the result of the Post request to the stream. string pathToSave = @"App_Data/TestReport.frx"; // get the path to save the file using (FileStream file = new FileStream(pathToSave, FileMode.Create)) // Create a file stream { reportForSave.CopyTo(file); // Save query result to file } return View(); } } } ``` Die erste Design-Methode verwendet den Berichtsparameter, der den Namen des zu ladenden Berichts darstellt. Wir erstellen das Berichtsobjekt, laden die Berichtsvorlage dort hinein und verbinden diese mit der Datenquelle. Als nächstes schalten Sie den Designmodus für das Berichtsobjekt ein, legen den Pfad zur Online-Seite des Designers und den Pfad zur Berichtsspeichermethode fest. Die zweite Methode ist ein Rückruf zum Speichern des Berichts. Indem wir im Designer auf die Schaltfläche Save klicken, initiieren wir ein Speicherereignis, das diesen Rückruf auslöst. Bei dieser Methode haben wir das Speichern der Berichtsdatei auf dem Server als TestReport implementiert. Für diese Methode sind Views zu erstellen. Aber in unserem Projekt gibt es keine Views-Ordner. Dann erstellen wir es im Stammverzeichnis des Projektes. Drinnen brauchen sie noch einen anderen Ordner anzulegen - SampleData. Hier fügen wir die Views hinzu. Erstens wird es für Design-Methode gemacht. Die Datei wird auf die gleiche Weise aufgerufen, und ihr Inhalt ist sehr knapp gehalten: ``` @await ViewBag.WebReport.Render(); ``` Wir geben einfach das webbasierte Berichtsobjekt aus. Die Render-Methode konvertiert es in html. Fügen Sie den anderen Ansicht für den SaveDesignedReport-Methode hinzu: ``` @ ViewBag.Message ``` In diesem View wird eine Statusmeldung für das Save Report Event angezeigt. In dieser Phase kann die serverseitige Programmierung als abgeschlossen betrachtet werden. Gehen Sie zum Frontend. Alles, was mit Single-Page-Webanwendung verknüpft ist, ist in ClientApp-Verzeichnis lokalisiert. Installieren Sie es im Solution Browser. Drinnen interessieren wir uns für SRC-Ordner und später für das App. Für die Anzeige der Hauptseite ist App.Component.ts zuständig. Jetzt beginnen wir es zu editieren: ``` import { Component } from '@angular/core';   @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], })   export class AppComponent { } ``` Erstens betrachten Sie die Seitenvorlage in der Datei app.component.html. ```
``` Das erste, was Ihnen auffällt, sind die Radiobuttons. Mit ihnen wählen wir einen der beiden Berichte aus, die im Online-Designer geöffnet werden sollen. Die Radiobuttons sind für das Event subskribiert (Klick). Dieses Ereignis setzt den Wert des variablen Berichts. Wir werden darüber reden, wenn wir die Anwendungskomponente finalisieren. Als nächstes ist der Button, der auch für das Klick-Event subskribiert ist.  Die Klick-Funktion () wird von diesem Event aufgerufen. Die nächste
hat eine Bedingung - wenn die Merker–Variable wahr ist, dann zeigt sie den verschachtelten HTML-Code an, den wir aus der HTML-Variablen entnehmen. Aber achten Sie auf die SafeHTML-Funktion, die wir auf die HTML-Variable über die Pipe angewendet haben. Die Funktion normalisiert HTML-Code, macht es sicher und ist für das Eingliedern in DOM geeignet. Das Feature ist zu implementieren. Um es zu machen, legen Sie das neue TypeScript-Datei in aktuellen Ordner - App. Nennen Sie es SafeHTML.Pipe.ts:  ``` import { PipeTransform, Pipe } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser';   @Pipe({ name: 'safeHtml' }) export class SafeHtmlPipe implements PipeTransform { constructor(private sanitized: DomSanitizer) { } transform(value) { return this.sanitized.bypassSecurityTrustHtml(value); } } ``` Die DomSanitizer-Bibliothek erledigt die ganze Arbeit für uns, Sie brauchen nur den HTML-Code an die bypassSecurityTrustHtml-Methode übergeben. Kehren wir zurück zur App-Komponent. Wir implementieren die Klick-Funktion () darin:  ``` import { Component } from '@angular/core'; import { HttpClient } from "@angular/common/http";   @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], providers: [HttpService] }) export class AppComponent { html: string; flag: boolean; report: string;   constructor(private http: HttpClient){ } Clicked() { this.flag = false; this.http.get('api/SampleData/Design?report='+report, { headers: { 'Accept': 'text/html' }, responseType: 'text' as 'text' }).).subscribe((data: string) => { this.html = data; this.flag = true }); } } ``` Wir haben Class-Constructor hinzugefügt, das HttpClient unterstützt. Wir brauchen es, um die GET-Anfrage zu erfüllen. Die Klick-Funktion () setzt den Standardwert der Merker–Variable. Weiter führt es eine GET-Anfrage an die Design Controller-Methode durch. Der Name des Berichts aus dem Variablenbericht wird als Parameter übergeben. Wenn die Get-Request eine erfolgreiche Antwort erhielt, wird die Merker–Variable auf “wahr” gesetzt. Dadurch wird das
angezeigt, das der Berichtsdesigner anzeigen wird. Es wäre jedoch eine gute Idee, eine Anfrage von einer Komponente an einen separaten Service zu richten. Machen Sie es. Erstellen Sie HTTP.Service.ts-Skript im aktuellen App-Verzeichnis:  ``` import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http';   @Injectable() export class HttpService { constructor(private http: HttpClient) { }   getData(report) { return this.http.get('api/SampleData/Design?report='+report, { headers: { 'Accept': 'text/html' }, responseType: 'text' as 'text' }); } } ``` Jetzt konvertieren Sie App.Component.ts um es zu benutzen: ``` import { Component } from '@angular/core'; import { HttpService } from "./http.service";   @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'], providers: [HttpService] }) export class AppComponent { html: string; flag: boolean; report: string;   constructor(private httpService: HttpService) { }   Clicked() { this.flag = false; this.httpService.getData(this.report).subscribe((data: string) => { this.html = data; this.flag = true }); } } ``` Damit die hinzugefügten Module geladen und in der Komponente verfügbar sind, müssen sie zu app.module.ts hinzugefügt werden: ``` import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpClientModule } from '@angular/common/http'; import { AppComponent } from './app.component'; import { SafeHtmlPipe } from './safeHtml.pipe';   @NgModule({ declarations: [ AppComponent, NavMenuComponent, SafeHtmlPipe ], imports: [ BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }), HttpClientModule, FormsModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { } ``` Nun können sowohl der Service als auch die Pipe in der AppComponent verwendet werden. Dies genügt, um die Anwendung zu starten und den Berichtsdesigner mit dem heruntergeladenen Bericht anzuzeigen. Aber es gibt eine Kleinigkeit. Seitdem WebReportDesigner muss in wwwroot-Verzeichniss verortet werden, kann er die View aus dem Backend nicht verwenden, um das Event des Berichtsspeichers zu behandeln. Wir werden zur Rettung kommen, indem wir Client-Proxying zum Backend durchführen. So weisen wir darauf hin, dass Anfragen an den Serverport, in unserem Fall an den ng-Server, gesendet werden müssen. Um Proxy zu konfigurieren, brauchen Sie die Proxy.Config.Json-Datei in dem Src-Verzeichnis zu erstellen:  ``` { "/": { "target": "http://localhost:4200/", "secure": false, "logLevel": "debug" } } ``` In unserem Fall haben wir den ng-Server-Port 4200, aber es kann unterschiedlich sein. Sie können es erlernen, indem Sie den Server von der Konsole aus starten. Führen Sie dazu die Windows-Befehlszeile aus, gehen Sie mit dem Befehl cd in das Verzeichnis ClientApp und führen Sie aus: npm start. Aus dem Text, der als nächstes erscheint, können Sie die gewünschte Portnummer entnehmen. Öffnen Sie nun die Datei package.json im Verzeichnis src und ändern Sie die folgenden Einstellungen darin: ``` { "scripts": { …   "start": "ng serve --proxy-config proxy.config.json", "build": "ng build --prod --output-path ../AngularOnlineDesignerFRCore/wwwroot", … } ``` Daher haben wir die Konfigurationsdatei für das Proxying angegeben und den wwwwroot-Ordner für die ClientApp-Assembly festgelegt. Nun können Sie die Anwendung ausführen und die geleistete Arbeit auswerten. Wir erwarten eine fast leere Seite, mit nur diesen Kontrollen: Wählen Sie ein aus die zwei Berichte und klicken Sie den ShowOnlineDesigner-Button: Ein Designer erscheint mit einem geladenen Bericht. Klicken Sie auf die Registerkarte Bericht und dann auf die Schaltfläche Speichern: Wenn das Proxying korrekt konfiguriert ist, sehen Sie die Nachricht “save” im grünen Rahmen rechts. Die Berichtsdatei wird auf dem Server gespeichert. An dieser Stelle gehen wir davon aus, dass die Arbeiten am Demonstrationsprojekt abgeschlossen sind. Fassen wir zusammen. Die Backend-Entwicklung ist fast identisch mit einer normalen ASP.Net Core-Anwendung. Auch die Überarbeitung des Frontends ist nicht so schwierig, wenn man bedenkt, dass wir fast alle Dateien in einem Befehl generiert haben. Tags: FastReport, FastReport, ASP.NET, ASP.NET, Core, Core, Angular, Angular ### So zeichnen Sie Text in PDF nach Kurven URL: https://www.fast-report.com/de/blogs/draw-text-pdf-curves Summary: Schauen wir uns genauer an, wie man Text in PDF mit Kurven in FastReport .NET zeichnet. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, wie man Text in PDF mit Kurven in FastReport .NET zeichnet. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, wie man Text in PDF mit Kurven in FastReport .NET zeichnet. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Nowadays, copying of a text from documents is spread and it is being developed. PDF document uses embedded fonts in documents and serves to protect them from copying. However, not all fonts can be embedded in a document as some of them have a copyright. If you are developing a document for printing and cutting plotter, fonts of the curves is the best solution. FastReport .NET provides an opportunity to convert a text into vector objects when exporting to PDF, i.e. the fonts of the curves are formed by means of the report generator. Let us review what the TrueType fonts (TTF) are. These fonts store appearance of symbols in a vector form, which allows scaling without loss of quality or distortion. A symbol is constructed from segments of curves, while the curves are created with the help of required points. To construct a segment only two points are needed, whereas for the construction of the curve there should be more than two points - the beginning - point and the end - point, and points to form an arc, which lies beyond the curve. It should be mentioned, that curves are constructed according to mathematical method for drawing curves created by Bézier. Therefore, two types of points are stored: the ones, that lie on curves (interval) and the auxiliary ones, which lie outside the curves. The points are connected in series to form a contour symbol. Certain characters consist of several contours. For instance, letter C consists of three contours. The first one is the outer loop and the rest ones are internal. By default, the external contour is always painted over, and the inside one depends on the order of the circumvention of the external contour points. FastReport .NET uses the same principles to build characters. It guarantees full compliance with the text of the report and the converted text while exporting to PDF. How to use the function of converting texts into vector objects? When exporting to PDF, choose “Settings tab”, turn off “PDF/A compliance” option and enable the option "Text in curves": Now, when exporting to PDF, you will get non-copied text, which does not differ from the original one. Let me illustrate two pieces of PDF: the first with TTF fonts, the second – with a text, drawn with the help of FastReport curves.  1. 2. This study reveals no significant difference between these two examples. In conclusion, it should be mentioned, that the size of a PDF file with fonts of the curves is much bigger than the size of a file for export without this option. For example, without a text consisted of curves the size of a file is 3,391,275 bytes, whereas the size of the same file with the text of the curves is 55,153,426 bytes. So, one needs to choose between new features and possibilities offered by the new option and substantially larger file size. Tags: .NET, FastReport, PDF ### So zeigen Sie Bandgruppierungsergebnisse in FastReport VCL an URL: https://www.fast-report.com/de/blogs/displaying-totals-group-header Summary: Erhalten Sie nützliche Tipps zur Anzeige von Bandgruppierungsergebnissen in FastReport VCL. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Erhalten Sie nützliche Tipps zur Anzeige von Bandgruppierungsergebnissen in FastReport VCL. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Erhalten Sie nützliche Tipps zur Anzeige von Bandgruppierungsergebnissen in FastReport VCL. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Ein der neuen Feautures in FastReport VCL 6 ist die Möglichkeit, Totals im Gruppen-Header anzuzeigen. In vorigen Versionen konnte man diese Totals nur nach der Gruppierung darstellen. Wenn diese Gruppe ziemlich groß ist, sollte man beim Vorschau bis zum ender der Seite scrollen, um due Totals zu sehen. In dieser Situation ist es viel mehr bequem, diese Totals am Anfang der Gruppe darzustellen. Also, besprechen wir jetzt, wie dieser Mechanismus funktioniert. Und zuerst ein bisschen Theorie. Die Totals in den Headers sind mit der "deferred processing" berechnet. Beim Output des Reports werden alle Objekte mit den speziellen Bearbeitungsbedingungen in einer separaten Liste platziert. Weiter startet oben definierte Bearbeitung, wenn diese Bedingungen erfüllt werden. Es gibt ein Paar Aufforderungen, die erfüllt werden sollen, für erfolgreiche Darstellung der Totals im Gruppen-Header: Der Header-Band soll einen gepaarten Footer haben. Und es ist notwendig, die Struktur des Reports zu bestimmen. Oder besser gesagt, die Events im Report zu determinieren; Dieser gepaarte Footer soll ein Feld haben, das fürs Rechnern der Totals gilt. Das gleiche Feld soll in den Header-Band hinzugefügt werden. Falls dieses Feld nicht notwendig ist, soll dieses Feld unsichtbar werden. Jetzt besprechen wir die Eigenschaft des Objekts "Text". Die "Processing"-Eigenschaft definiert einen Event, der definiert, welchen Wert in diesem Objekt zu zeigen. "Processing" hat zwei Parameter - GroupLevel und ProcessAt. GroupLevel allows you to set the nesting level of the groups. This is done in case you use several nested groupings. Thus, you can display your totals in each heading in each group. GroupLevel bestimmt das Niveau der Verschachtelung der Gruppen. Das ist sehr nützlich für die Situation, wen man mehrere Gruppierungen mit der Verschachtelung verwendet.  Auf diese Weise werden die Totals für jede Gruppe angezeigt. ProcessAt enthält eine Eventsliste, die für die Feldbearbeitung dienen. Mögliche Werte: paColumnFinished - am Ende des Zeigens der Spalte; paCustom - vom Anwender definierter Event; paDataFinished - nach dem Zeigen aller Daten; paDefault - Default Wert; paGroupFinished - am Ende des Zeigens der Gruppe; paPageFinished - nach dem Zeigen der Seite; paReportFinished - nach dem Zeigen des Reports; paReportPageFinished - nach dem Zeigen der Reports Schablone. Zum Beispiel möchten Sie die Totals am Ende der Gruppe zeigen. Um zu erkennen, dass die Gruppe am Ende ist, sucht FR nach einem Footer. Wenn der Event paReportFinished auch aktiviert ist, sucht FR nach dem Footer der Seite auch. Und jetzt zu den genauen Beispieln. Wir erstellen einen Report mit zwei Teilen. Ein Teil befindet sich in anderem. wir verwenden die Tabelle Sales aus der Demo-Datenbank.  Wir erstellen eine Gruppe mit dem Namen des Unternehmens. Weiter fügen wir eine Gruppe hinzu, die die Bestellungsnummer hat. Und im Band "Data" werden die Informationen über die Bestellung dargestellt. Jede Gruppe hat einen Footer mit den Totals für: [SUM ( * , MasterData1)]. Das Ergebniss wird im Band "report summary" angezeigt. Unser Ziel ist, die Ergebnisse im Header-Band zu zeigen. Wir starten mit der ersten Gruppe. wir fügen den folgenden Text auf der rechten Seite hinzu: "Total group sum: [SUM ( * , MasterData1)] $". In den Eigenschaften für diesen Text-Box suchen wir "Processing" und setzen den Wert für paGroupFinished: Wir starten den Report: Weiter fügen wir noch zwei Text-Felder Now in die zweite Gruppe hunzu. Wir platzieren sie die Reihe nach auf der rechten Seite. Für erste Gruppe wird der Wert "[SUM ( * , MasterData1)] $". Und für zweite Gruppe wird es "from [SUM ( * , MasterData1)] $". Für erste Gruppe setzen wir folgende Eigenschaften ein: GroupLevel - 0, ProcessAt - paGroupFinished. Für zweite Gruppe: GroupLevel - 1, ProcessAt - paGroupFinished. Auf diese Weise zeigen wir die Totals für laufende Gruppe udn weiter für die Gruppe vom höhen Niveau. Und wie das aussieht: Weiter soll die Totals für den ganzen Report dargestellt werden. Wir fügen den Header für den Report mit der Summe: [SUM ( * , MasterData1)] $. Und die Eigenschaften dafür: GroupLevel - 0, ProcessAt - paReportPageFinished. Wir starten den Report: In each case, we display a field with the same aggregate expression, but we get different values for the groups and the report header. It's all about the time of formation the total. At some time point, the aggregate function has different values. That's why it's important to set the ProcessAt parameter correctly. In jedem Fall zeigen wir das Feld mit "aggregate expression", aber bekommen verschiedene Werte für die Gruppen oder für den Header. Das verursacht die Zeit der Reports Erstellung. Im bestimmten Moment der Zeit hat die Funktion verschiedene Werte. Auf diese Weise ist es wichtig, richtig die Parameter ProcessAt einzusetzen. Tags: VCL, FastReport, Designer, Report ### So zeigen Sie die Fußzeilenseite PageFooter nur auf der letzten Seite des Berichts an URL: https://www.fast-report.com/de/blogs/last-page-footer-display Summary: Der Artikel beschreibt, wie Sie den PageFooter so einstellen, dass er auf der letzten Berichtsseite angezeigt wird. Der Artikel beschreibt, wie Sie den PageFooter so einstellen, dass er auf der letzten Berichtsseite angezeigt wird. Der Artikel beschreibt, wie Sie den PageFooter so einstellen, dass er auf der letzten Berichtsseite angezeigt wird. Wenn Sie gleiche Berichte oder Berichte mit den gleichen Bändern entwickeln, können Sie die Vererbung von Berichten verwenden. Das ist ein Basisbericht, der als Grundlage für andere verwendet wird. Dadurch erhält die Berichtenreihe, die Sie erstellen, eine einheitliche Komponente. Gerade bei der Arbeit mit einer solchen Reihe von identischen Berichten ist der Benutzer des Reportgenerators Combit List and Label auf ein Problem gestoßen. Und zwar: "Ich habe eine Projektvorlage, die einen Standardtext " Seitentitel " hat, der auf jeder Seite gedruckt werden soll, und dann einen " Seitenfuß ", der auf der letzten Seite gedruckt werden soll. Das sind alles statische Elemente (ohne Meldungen des Containers). Aber wenn ich die Projektvorlage einschalte, kann ich die "Fußzeile" nicht nur auf der letzten Seite drucken lassen. Wenn ich die Bedingung für LastPage () setze, wird er überhaupt nicht gedruckt. Laut der Dokumentation wird es erwartet ... Jetzt speichere ich den Fußzeilentext einfach in Variablen und platziere ihn dann in jedem Projekt, was mühsam und fehleranfällig ist. " Leider haben die Entwickler keine einfache Lösung für dieses Problem gefunden. Der Benutzer muss die Eigenschaft LastPage() für die Fußzeile der Seite in jedem Bericht setzen. FastReport.Net erlaubt Ihnen auch eine grundlegende Vorlage zu verwenden, um eine Vielzahl von ähnlichen Berichten zu erstellen. Schauen wir uns an, wie wir das Problem mit Hilfe des FastReport Reportgenerators lösen würden. In der Tat ist es sehr einfach. In der grundlegenden Berichtsvorlage (von der Sie erben) müssen Sie die PrintOn-Eigenschaft für das PageFooter-Band festlegen. Es ist eine Checkbox-Liste. Sie müssen LastPages und OddPages wählen. Nur mit dieser Kombination erreichen Sie, dass die Fußzeile nur auf der letzten Seite des Berichts erscheint: So können Sie vermeiden, alle Berichte zu bearbeiten, die auf einer Basisvorlage beruhen. Tags: .NET, .NET, FastReport, FastReport, Designer, Designer, Report, Report, Customization, Customization ### Sofortbericht aus einer RTF-Datei URL: https://www.fast-report.com/de/blogs/instant-export-report-net-rtf Summary: Wir konvertieren die auf RTF basierenden Vorlagen und exportieren sie in fast jedes in FastReport .NET verfügbare Datenformat. Wir konvertieren die auf RTF basierenden Vorlagen und exportieren sie in fast jedes in FastReport .NET verfügbare Datenformat. Wir konvertieren die auf RTF basierenden Vorlagen und exportieren sie in fast jedes in FastReport .NET verfügbare Datenformat. Nur wenige wissen, dass Sie mit dem FastReport .NET-Berichtsgenerator ein Dokument im RTF-Format in ein anderes vom FastReport .NET-Berichtsgenerator unterstütztes Format schnell konvertieren können. Sie haben beispielsweise mehrere Dokumente im RTF-Format und möchten diese in ein anderes Format konvertieren oder einfach nur elektronische Berichte anhand dieser Dokumente erstellen. Die Erstellung eines Berichts ist jetzt viel einfacher. Sie haben ja bereits ein fertiges Dokument. Aber sehen wir uns die Funktionsweise anhand eines Beispiels an. Betrachten wir das RTF-Quelldokument: Diese Rechnung ist ein hervorragendes Beispiel für ein Dokument, das in einen Bericht konvertiert werden kann. Starten Sie den Berichtsdesigner und öffnen Sie einfach ein RTF-Dokument über das Menü File->Open. Standartmäßig ist der Filter für Dateien mit der .frx-Erweiterung im Dialogfeld festgelegt. Dies ist eine Standard-Berichtsvorlage. Ändern Sie den Filter auf "Rich Text file (*.rtf)". Nach kurzer Zeit wird die Datei in eine Berichtsvorlage konvertiert: Wie Sie sehen, ähnelt die resultierende Vorlage weitgehend dem Originaldokument, aber mit ein wenig Aufwand kann sie noch verbessert werden. Ändern Sie die Farbe und Formatierung des Textes und verschieben Sie einige Objekte, damit die Vorlage dem Original ähnlicher wird: Nach oben sind keine Grenzen gesetzt, und Sie können sich etwas mehr Zeit nehmen, um die Vorlage zu perfektionieren. Und wir bleiben bei der aktuellen Version. Schauen wir uns den Bericht nun im Vorschaumodus an: Nicht schlecht. Exportieren wir nun zum Beispiel in das HTML-Format: So kann eine auf RTF basierende Berichtsvorlage in fast jedes in FastReport .NET verfügbare Format exportiert werden. Der PDF-Export ist noch nicht verfügbar. Wir hoffen, dass dies bald erledigt wird. Es ist wichtig zu beachten, dass in MS Word erstellte RTF-Dokumente eine erhebliche Menge an Metainformationen enthalten können, die bei der Konvertierung in eine Berichtsvorlage nicht korrekt interpretiert werden. Daher ist es besser, RTF in anderen Editoren wie MS WordPad zu erstellen. Tags: .NET, .NET, Export, Export, FastReport, FastReport, RTF, RTF ### Sommerschnäppchen bei Fast Reports: - 10% auf einige FastReport VCL Editionen URL: https://www.fast-report.com/de/news/fastreport-vcl-discount-2023 Summary: Holen Sie sich Lazarus Support und Source Code mit 10% Rabatt in den FastReport VCL Professional und Enterprise Editionen Holen Sie sich Lazarus Support und Source Code mit 10% Rabatt in den FastReport VCL Professional und Enterprise Editionen Vom 11. bis 25. Juli erhalten Sie den  Lazarus Support und Source Code mit 10% Rabatt in den FastReport VCL Professional und Enterprise Editionen, oder voll plattformübergreifend mit FastReport VCL Ultimate. Sparen Sie ab $39,9 beim Kauf einer Einzellizenz, $89,9 beim Kauf eines Teams und $599,9 beim Kauf einer Site! Nutzen Sie den Vorteil, viel mehr Funktionalität für weniger Kosten zu erhalten. Sie können die Unterschiede zwischen den Editionen hier sehen. Das Angebot gilt nur für den Kauf einer Lizenz und nicht für ein Upgrade oder eine Verlängerung. Sie können das heiße Angebot verwenden, indem Sie auf den Link klicken. ### Sonderangebot zum 25-jährigen Jubiläum von FastReport VCL! URL: https://www.fast-report.com/de/news/sale-25-vcl-ultimate Summary: Anlässlich des Jubiläums des FastReport VCL Ultimate Reporting Toolkits geben wir bis zum 8. Februar einen Rabatt. Anlässlich des Jubiläums des FastReport VCL Ultimate Reporting Toolkits geben wir bis zum 8. Februar einen Rabatt. Nur vom 4. bis 8. Februar – 25 % Rabatt auf FastReport VCL Ultimate . Zur Feier des Jubiläums dieses legendären Reporting-Toolkits bieten wir einen exklusiven Rabatt auf FastReport VCL Ultimate – eine leistungsstarke und flexible Suite zur Erstellung von Berichten, Dokumenten und analytischen Benutzeroberflächen in Ihren Business-Anwendungen. FastReport VCL Ultimate ist ein professionelles Set von Reporting-Komponenten für Delphi, C++Builder, RAD Studio und Lazarus mit umfangreichen Funktionen – von der visuellen Erstellung und Bearbeitung von Berichten bis hin zu fortgeschrittener multidimensionaler Analyse und Export in Dutzende von Formaten. Der größte Vorteil der Ultimate-Edition besteht darin, dass alle zentralen Lösungen für das Delphi-Ökosystem in einem einzigen Paket gebündelt sind. Anstatt einzelne Produkte separat zu erwerben, erhalten Sie ein komplettes Toolkit für die Berichtserstellung mit VCL, FMX und Lazarus sowie einen webbasierten Designer zur Bearbeitung von Vorlagen. Das ist nicht nur bequem, sondern auch besonders kosteneffizient – vor allem jetzt mit 25 % Rabatt. FastReport VCL Ultimate enthält: FastReport VCL Reportgenerator; FastReport FMX plattformübergreifender Reportgenerator; FastReport für Lazarus Reportgenerator. Zusätzlich enthalten – exklusiv in FastReport VCL Ultimate: FastCube VCL und FMX OLAP-Analysewerkzeuge FastGrid Bibliothek zur Datenvisualisierung FastReport Online Designer zur visuellen Bearbeitung von Dokumentvorlagen Die Aktion gilt nur vom 4. bis 8. Februar – 25 % Rabatt auf jede FastReport VCL Ultimate-Lizenz (Single, Team, Business oder Site). Dies ist der ideale Zeitpunkt, um Ihre Reporting-Tools zu aktualisieren oder eine professionelle Reporting-Lösung mit maximalen Möglichkeiten in Ihr Projekt zu integrieren. Verpassen Sie diese Gelegenheit nicht – machen Sie Ihre Berichte schnell, flexibel und ansprechend mit FastReport VCL Ultimate zu einem attraktiven Preis. Wenn Sie über FastSpring bezahlen, verwenden Sie den Promo-Code FRUVCL25 , und wenn Sie über PayPro bezahlen, nutzen Sie bitte die untenstehenden Links. ### Speichern des Berichts in Clouds aus dem Code der Anwendung URL: https://www.fast-report.com/de/blogs/saving-report-cloud-services Bei der Vorschau des Berichts sind nicht Exports-Features verfügbar, sondern auch einige Varianten vom Speichern, wie Box, DropBox, GoogleDrive usw. Im Menü „Save“ gibt es eine spezielle Sektion mit den verschiedenen Clouds-Services: Für uns sind verfügbar: 1)      Box; 2)      Dropbox; 3)      FastCloud; 4)      GoogleDrive; 5)      OneDrive; 6)      XMPP. Für letzte Variante verwendet man den Service FastCloud für die Erstellung und das Speichern des Berichts. Durch XMPP wird der Link auf den Bericht in den Jabber-Client wiedergegeben. Bei der Verwendung dieser zwei Varianten trifft man keine Schwierigkeiten, wenn man im Vorschau die Einstellungen mit der Hand eingibt. Aber was zu machen, wenn man das automatisieren soll. Ganau, mit Hilfe des Codes? Darum geht’s in diesem Artikel. Fast alle Cloud-Services (ausgenommen FastCloud) verwenden den Autorisations-Typ OAuth. Dieses Protokoll ermöglicht, der Anwendung ohne Verwendung von reellen Login und Passwort einen Zugang zum Cloud-Service zu geben. Die Zugangsrechte können auch in diesem Fall beschränkt werden. Die Anwendung bekommt eine Identifikationsnummer und einen Secret-Schlüssel, die weiter bei der Autorisation verwendet werden können.  Um den Identifikationswort und den Secret-Schlüssel zu bekommen, brauchen Sie eine Anwendung zu erstellen und sie auf dem OAuth-Server Ihres Clouds Services zu registrieren.   Auf diese Weise brauchen wir mindestens zwei Parameter fürs Berichts Speichern ins Cloud-Service. Und ein bisschen deutlicher. 1)      Fürs Service Box: Zuerst die Bibliothek FastReport hinzufügen: using FastReport; Wir erstellen weiter ein Exemplar der Classe ClientInfo, die Informationen für Autorisation enthält. ``` FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); ``` ClientInfo hat drei Parameter: ClientName, ClientId und ClientSecret. In unserem Fall brauchen wir ClientId und ClientSecret. Weiter erstellen wir einen GoogleDrive Client furs Berichts Speichern: ``` FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient client = new FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient(clientInfo); ``` Wir erstellen ein Berichts Exemplar und laden dorthin den Bericht herunter: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ``` Wenn es notwendig ist, den Bericht in einem anderen Format als fpx (das Format für die Vorschau-Regime) zu speichern, dann braucht man ein Exports-Exemplar zu machen: ``` FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); ```  Starten wir das Speichern des Berichts: ``` client.SaveReport(report, pdf); ``` Если вы сохраняете отчет в формате fpx, вместо второго параметра можно передать null Fürs Speichern des Berichts in fpx-Format braucht man den zweiten Parameter als null einzusetzen: ``` client.SaveReport(report, null); ```  2)  Für DropBox sieht alles ein bisschen anderes aus. In Rahmen von OAuth verwendet man nur access token. Dieser ist ein Zugangsschlüssel, der nach der erfolgsreichen Autorisation generiert wurde. Nach der Übergabe dieser Token-Datei herstellen wir vorherige Autorisation wieder. Wir erstellen einen Client für Dropbox und senden an ihn access token im Text-Format: ``` FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient drop = new FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient("accessToken"); ``` Proxy Einstellungen: ``` drop.ProxySettings.Server = ""; drop.ProxySettings.Port = 999; drop.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; drop.ProxySettings.Username = "Username"; drop.ProxySettings.Password = "Password"; ``` Weiter, wie im vorigen Beispiel: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  Bericht speichern: ``` drop.SaveReport(report, null); ```  3)  Für GoogleDrive: ``` FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); GoogleDriveStorageClient client = new GoogleDriveStorageClient(clientInfo); ``` Proxy Einstellungen, beim Bedarf: ``` client.ProxySettings.Server = ""; client.ProxySettings.Port = 999; client.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; client.ProxySettings.Username = "Username"; client.ProxySettings.Password = "Password"; ``` Bericht erstellen: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ``` Export erstellen: ``` FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); ``` Bericht speichern:                     ``` client.SaveReport(report, pdf); ```  4)  Für OneDrive: ``` FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); FastReport.Cloud.StorageClient.SkyDrive.SkyDriveStorageClient one = new FastReport.Cloud.StorageClient.SkyDrive.SkyDriveStorageClient(clientInfo); ``` Auch Proxy Einstellungen:          ``` one.ProxySettings.Server = ""; one.ProxySettings.Port = 999; one.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; one.ProxySettings.Username = "Username"; one.ProxySettings.Password = "Password"; ``` Bericht erstellen: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); one.SaveReport(report, null); ```  5) Für FastCloud gibt es auch einen Unterschied. Hier verwendet man kein Protokoll OAuth. Autorisation führt man mit der Postadresse und mit dem Passwort. Wir erstellen auch einen Client FastCloud: ``` FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient fast = new FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient(); ``` Wir erstellen token mit Hilfe von Methode GetAccessToken: ``` fast.AccessToken = fast.GetAccessToken("email@mail.com", "password"); ```  Weiter ein Exports-Exemplar erstellen: ``` FastReport.Export.RichText.RTFExport rich = new FastReport.Export.RichText.RTFExport(); Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); fast.SaveReport(report, rich); ``` 6)  Den Bericht in Jabber(XMPP) senden. Vorher erstellen wir einen xmpp Client: ``` FastReport.Messaging.Xmpp.XmppMessenger messenger = new FastReport.Messaging.Xmpp.XmppMessenger("user@xmpp.jp", "password", "user@xmpp.jp"); ```  Proxy Einstellungen: ``` messenger.ProxySettings.Server = "server"; messenger.ProxySettings.Port = 999; messenger.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; messenger.ProxySettings.Username = "username"; messenger.ProxySettings.Password = "password"; ```  Und ein Bericht-Exemplar erstellen: ``` Report report = new Report(); report.Load(@"С:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  Und es an xmpp Client senden: ``` messenger.SendReport(report, null); ``` Nach dem Durchführen dieses Codes senden wir den Bericht in den Cloud Service FastCloud und die Nachricht mit dem Link auf den Bericht an jabber-User. Der Link in xmpp-Client sieht so aus: https://cloud.fast-report.com/reports/3da0fcd3f76ac1f6d87c21df85f5d5e2 Tags: .NET, .NET, FastReport, FastReport, Web Storage, Web Storage ### Speichern eines Berichts im PDF/X-Format URL: https://www.fast-report.com/de/blogs/saving-report-pdf-x-format Summary: PDF/X-Format für den Datenaustausch, druckfertig. Die Idee ist, ein Dokument zu erstellen, das auf jedem Drucker identisch gedruckt werden kann. PDF/X-Format für den Datenaustausch, druckfertig. Die Idee ist, ein Dokument zu erstellen, das auf jedem Drucker identisch gedruckt werden kann. PDF/X-Format für den Datenaustausch, druckfertig. Die Idee ist, ein Dokument zu erstellen, das auf jedem Drucker identisch gedruckt werden kann. Es ist wichtig für die Polygraphie, wo es wichtig ist, Dokumente auf jedem Druckgerät einheitlich zu drucken, egal ob Drucker oder Plotter. PDF/X-Dokument enthält Farbprofile für Drucker, aufgrund derer genau die Farbe ausgedruckt wird, die vom Autor konzipiert wurde. Somit gibt uns der Standard PDF / X die Garantie, dass das endgültige Dokument unverändert bleibt. Das macht das PDF-Format ideal für das Dokumentenmanagement im Bereich Verlagswesen und Polygraphie. Der Nachteil dieses Formats ist die Unmöglichkeit der Verwendung von Eigenschaften: Verschlüsselung, Komprimierung JBIG2 und transparent. PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. It is important for polygraphy, where it is important to print documents on any print device uniformly, whether the printer or plotter. PDF/X document contains color profiles for printers, due to which will be printed out exactly the color, which was conceived by the author. Thus, the standard PDF/X gives us guarantee of unchanging the final document. That makes PDF format ideal for document management in the sphere of publishing and polygraphy. The disadvantage of this format is the impossibility of use of properties: encryption, compression JBIG2 and transparent. PDF/X standard is constantly evolving and has already presented 5 th generations: • PDF/X-1a - the first standard, designed to work with documents: black / white, CMYK or spot color; • PDF/X-3. The PDF/X-3 has a color management support; • PDF/X-2. Add-on PDF/X-3. Designed to interact more closely the supplier and the recipient of the file. Support OPI (Open Pre-Press Interface) and does not support embedded fonts; • PDF/X-4. The updated version of the PDF/X-3, which supports transparency and spot colors; • PDF/X-5. Based on PDF/X-4, allows external images. You probably noticed that the standard X-2 is located after X-3. It's not a mistake. Developers have created X-2 after X-3. Apparently they did not want a gap in numbering. FastReport.Net supports export to PDF/X-3 format. Thus, later on we will consider its features. There are some restrictions applicable to the PDF/X-3 files: • All fonts must be embedded in the document; • All the color data can be grayscale, CMYK or spot colors. It is also permissible RGB, LAB or ICC based color spaces. If you are using a device-independent color, the embedded ICC profiles and the Rendering Intent, should be taken into account when processing the PDF/X-3. This means that you need to know the color management process to be able to process PDF/X-3 files; • OPI is not allowed; • PDF/X-3 files can not contain music, videos, or other non-printing data; • If there are annotations (notes) to PDF, they should be located outside of the bleed; • The file should not contain any forms or Javascript code; • Supported by a limited number of compression algorithms; • You cannot use encryption; • Do not use curves; • Do not use transparency. In addition to restrictions there is also a list of what should be in PDF/X-file 3. This is what distinguishes it from ordinary PDF files: • metadata that indicates that the file is a PDF/X and some details indicating the version of the standard; • PDF/X-3 contains additional statements that define the bleed (bleed area) and the area to crop (trim area): MediaBox defines the size of the entire document; ArtBox or TrimBox defines the boundary of the printing area; If the file is printed with the bleed, you should ask BleedBox. It must be more than TrimBox / ArtBox, but less than the MediaBox. • The file must contain the ICC color profile, which specifies the color space CMYK. This profile should be implemented as OutputIntent. Now consider the process of creating a report export in PDF/X. So: - Prepare a report template and run it in preview mode; - Choose Export to PDF format. We are interested in "Settings" tab: There are some changes unlike in previous versions of FastReport. This tab looked like this, before: Added the new option " Lossless images". It allows you to use the original image without conversion to Jpeg. This is especially important for vector images and barcodes. The main differences in the "Compliance" section. Now you do not need to choose this option. The default is PDF 1.5 format. This is the usual Export as PDF. The list of compliance standards contains one more - PDF/X-3. Select it. The options of the "Security" tab will not be available. Open the export file in a PDF program Adobe Acrobat Pro. you need to open the panel "Standard" to verify compliance with the standard document. "View" opens the menu - "Show / Hide" -> "Navigation Area" -> "Standards". Now we can see that the document does conform to the PDF/X-3 ISO 15930-3: Thus FasrtReports reports become more useful, especially for polygraphy and publishing. Now there is no need to worry about repetition reproduction of a document on the different sources of print. The report will always look the same. Tags: .NET, FastReport, PDF ### Speichern in Bildern von Delphi / C++ Builder / Lazarus URL: https://www.fast-report.com/de/blogs/saving-images-delphi Summary: Wir erzählen über die Vor- und Nachteile von beliebten Rasterbildformaten. Speichern Sie den Bericht als fein abgestimmte Bilder mit FastReport VCL und Code. Wir erzählen über die Vor- und Nachteile von beliebten Rasterbildformaten. Speichern Sie den Bericht als fein abgestimmte Bilder mit FastReport VCL und Code. Wir erzählen über die Vor- und Nachteile von beliebten Rasterbildformaten. Speichern Sie den Bericht als fein abgestimmte Bilder mit FastReport VCL und Code. BMP, JPEG, TIFF, GIF – eine Vielzahl von Rasterbildformaten. Lassen Sie uns herausfinden, wann und was am besten zu verwenden ist. 1. BMP Zuerst sollten Sie wissen, dass es bei Internetnutzern nicht so beliebt ist, da BMP ein altes Bildformat ist, mit dem nur Rasterbildern gespeichert werden und Vektorbildern nicht unterstützt werden. Die Größe des bmp-Formats kann je nach Bildqualität der Bilder unterschiedlich sein. Obwohl Benutzer das BMP-Format als veraltet betrachten, wird es in vielen Bereichen aktiv verwendet. Zum Beispiel wurden alle Windows-Schnittstellen basierend auf diesem Format erstellt. Warum wählt man es? Weil es nützlich ist, um Bilder zu erstellen, die nach ihren Änderungen nicht an Qualität verlieren. Oft wird BMP in Photoshop beim Bearbeiten von Bildern verwendet, da diese Bilder einfach in soziale Netzwerke und auf verschiedene Websites hochgeladen werden können. Natürlich ist es besser, moderne Bildformate zu verwenden, da sie vielschichtig sind und ohne technische Probleme auf jede Website heruntergeladen werden können. Sie haben jedoch viele Möglichkeiten, Bilder zu bearbeiten, und sie haben weniger Dateivolumen. 2. JPEG Ein Bildformat, das die Aufnahme eines grafischen Bildes in sich behält. Es hat eine gute Komprimierungsqualität für Betrachten von Bildern. Der Benutzer einige Vorteile hat, wie zum Beispiel die Möglichkeit, die Qualität und Größe der Datei zu ändern, die einfache Öffnung in jedem Browser, die Bearbeitung in allen Grafikprogrammen und das geringe Gewicht, das auf Computern und anderen Medien nicht viel Platz einnimmt. Wenn Sie das Bild im JPG-Format nicht stark komprimieren, geht seine Qualität nicht vollständig verloren. Dieses Format hat Nachteile, nur wenige: A) Es gibt keine Transparenz, wie zum Beispiel im PNG-Format. B) Wenn Sie ein JPG-Bild stark komprimieren (Bildgröße ändern), wird das Bild verzerrt oder vollständig verloren. C) Es wird nicht empfohlen, die wiederhergestellte JPG-Datei nach der Komprimierung zu bearbeiten, da sie die Anzeigequalität verlieren kann. Trotz der Nachteile des Formats gilt es als das beliebteste Bildformat im Internet und die Leute benutzen es. 3. TIFF Ein bekanntes Rasterformat, das fast alle bekannten Farbräume unterstützt. Die Option ohne Kompression ist praktisch einem Standard in der Druckereiwesen geworden. Es können verschiedene verlustfreie und verlustvolle Komprimierungsalgorithmen verwendet werden. In einer TIFF-Datei kann das Bild in CMYK-, RGB-, Lab-Farbmodellen im indizierten Farbmodus sowie in Graustufen (Grayscale) gespeichert werden. Dies ermöglicht die Verwendung eines Formats zum Speichern einer Vielzahl von Bildern, die sowohl für die Vorbereitung von Webgrafiken als auch für die Polygraphie verwendet werden. Zusätzlich zu einem Bild können Transparenzkanäle in einer TIFF-Datei gespeichert werden, um transparente Bereiche des Bildes oder die Auswahl von Objekten zwischen Arbeitssitzungen beizubehalten. Ein weiteres Merkmal des TIFF-Formats ist die Möglichkeit, mehrere Bilder mit eigenen Attributen und Eigenschaften (Tags) in einer einzigen Datei zu speichern. Dies macht TIFF dem GIF-Format ähnlich, jedoch ohne die Möglichkeit, animierte Bilder zu erstellen. Die Verbreitung dieses Formats ermöglicht eine einfache Übertragung von Bildern zwischen Programmen und Hardwareplattformen. 4. GIF Dieses Dateiformat ist klein und unterstützt die einfachste Animation, das heißt das Ändern von Frames in einer einzigen Datei. GIF ist im Bereich der Banner-Erstellung sowie der grafischen Shell von Videoinhalten verbreitet. Der Hauptvorteil ist die Komprimierung von Daten ohne offensichtlichen Qualitätsverlust bei einer Tiefe von bis zu 256 Farben. Animierte Bilder bestehen aus einer Reihe von statischen Bildern und Daten über die erforderliche Zeit, um ein bestimmtes Bild zu demonstrieren. Das Gif-Format wird von Menschen in vielen Tätigkeitsbereichen verwendet. Zum Beispiel in der Gestaltung Ihrer eigenen Websites, im Webdesign, im Grafikdesign, beim Schreiben von Artikeln oder Büchern, in sozialen Netzwerken, in Form von Werbebannern, zum Speichern von Fotos und so weiter. Mit Hilfe des Gif-Formats können Sie das Volumen des Bildes reduzieren, was sich beispielsweise auf die Geschwindigkeit des Ladens von Seiten im Internet sehr gut auswirkt. 5. SVG Dies ist bereits ein vektorbasiertes Bildformat. Kurz gesagt, mit seiner Hilfe werden die Websites geschafft. Es ist eine XML-Textdatei, die mit Tags gefüllt ist. Dieses Format verliert beim Zoomen und Zuschneiden nicht an Bildqualität. Weitere Informationen zu den Vor- und Nachteilen der SVG-Auflösung sowie zum Speichern aus Delphi  können Sie hier sehen .  Jetzt wissen wir, unter welchen Bedingungen es besser ist, ein bestimmtes Format zu verwenden. Wie kann man diese Formate auf Delphi / Lazarus speichern? Ganz einfach! Es ist klar, dass dies keine Priorität ist, es gibt viele Optionen. Für uns ist die Möglichkeit mit FastReport VCL interessant, weil wir ein Dokument, ein Plakat, ein Banner vorbereiten können - der visuelle Designer enthält darunter grafische Primitive und viele Objekte mit Effekten. Sie können das Dokument sofort ansehen und gegebenenfalls ändern/ korrigieren, bevor Sie es in das gewünschte Bildformat speichern. Müssen wir aus unserer bekannten Delphi-Datei erstellen/speichern/exportieren, ob es sich um ein BMP oder ein GIF handelt? Zuerst müssen wir das Dokument schaffen . Normales oder komplexes Dokument - egal. Jetzt, nachdem Sie das Objekt, das Sie in eine Illustration übersetzen möchten, skizziert haben, starten wir und sehen . Nachdem wir die Vorschau aufgerufen haben, wählen wir das gewünschte Format für das Speichern des Berichts aus. Zum Beispiel möchten Sie ein BMP-Image exportieren. Wählen wir und klicken. Bei uns öffnet sich ein Fenster, in dem die Einstellungen für den Export des Dokuments vorhanden sind. Konfigurieren wir und speichern. Ein wenig über die Einstellungen. Es ist möglich, alle Seiten, die aktuell sind, auf der Sie sich befinden, zu speichern, oder Sie geben bestimmte Seiten an. Um die Einstellungen der Formate zu vergleichen, geben wir Screenshots: (TIFF, JPEG, GIF) Einige Einstellungen sind nicht verfügbar (Merkmale der Formate): Monochrome  - Bilder in Schwarztönen; Crop pages  - Schneiden der Seiten; JPEG qualit y - Einstellen der Qualität eines Grafikobjekts; Resolution (dpi)  - Auflösung in Punkten pro Zoll; Open after export  - automatisches Öffnen des Dokuments sofort nach dem Speichern. Es ist möglich, die Datei im PC-Speicher zu speichern, in die Cloud hochzuladen, per E-Mail oder FTP zu übertragen. Nun, hier haben wir die einfache Speicherung des Berichts in Grafikformaten von Delphi / C++ Builder / Lazarus über die Benutzeroberfläche des Vorschaufensters gemeistert. Aber wie können wir BMP / JPEG /TIFF / GIF aus dem Delphi / C++ Builder / Lazarus-Code speichern?  So! Export nach BMP ``` procedure TForm1.Button1Click(Sender: TObject); begin {Wir erstellen einen Bericht. Bevor Sie einen Bericht exportieren, müssen Sie unbedingt einen Bericht erstellen} frxReport1.PrepareReport(); {Stellen Sie den Bereich der exportierten Seiten ein. Standardmäßig werden alle Seiten des generierten Berichts exportiert} frxBMPExport1.PageNumbers := '2-3'; {Legen Sie fest, ob jede Seite in eine separate Datei exportiert werden soll.} {An den Dateinamen wird .N hinzugefügt, wobei N die Sequenznummer der Seite ist} frxBMPExport1.SeparateFiles := True; {Legen Sie fest, ob das Bild in Schwarzweiß exportiert werden soll} frxBMPExport1.Monochrome := False; {Legen Sie fest, ob leere Ränder (Seitenränder) abgeschnitten werden sollen} frxBMPExport1.CropImages := False; {Auflösung einstellen, Punkte/Zoll} frxBMPExport1.Resolution := 96; {Legen Sie fest, ob die resultierende Datei nach dem Export geöffnet werden soll} frxBMPExport1.OpenAfterExport := False; {Legen Sie fest, ob der Exportfortschritt angezeigt werden soll (anzeigen, welche Seite gerade exportiert wird)} frxBMPExport1.ShowProgress := False; {Legen Sie fest, ob ein Dialogfenster mit den Exportfiltereinstellungen angezeigt werden soll} frxBMPExport1.ShowDialog := False; {Legen Sie den Namen der resultierenden Datei fest.} {Beachten Sie, dass, wenn Sie den Dateinamen nicht festlegen und das Dialogfeld "Exportfilter" deaktivieren,} {es wird immer noch ein Dialog zur Auswahl des Dateinamens angezeigt} frxBMPExport1.FileName := 'C:\Output\test.bmp'; {Bericht exportieren} frxReport1.Export(frxBMPExport1); end; ``` Export nach JPEG ``` procedure TForm1.Button2Click(Sender: TObject); begin {Wir erstellen einen Bericht. Bevor Sie einen Bericht exportieren, müssen Sie unbedingt einen Bericht erstellen} frxReport1.PrepareReport(); {Stellen Sie den Bereich der exportierten Seiten ein. Standardmäßig werden alle Seiten des generierten Berichts exportiert} frxJPEGExport1.PageNumbers := '2-3'; {Legen Sie fest, ob jede Seite in eine separate Datei exportiert werden soll.} {An den Dateinamen wird .N hinzugefügt, wobei N die Sequenznummer der Seite ist} frxJPEGExport1.SeparateFiles := True; {Legen Sie fest, ob das Bild in Schwarzweiß exportiert werden soll} frxJPEGExport1.Monochrome := False; {Legen Sie fest, ob leere Ränder (Seitenränder) abgeschnitten werden sollen} frxJPEGExport1.CropImages := False; {Stellen Sie die JPEG-Qualität ein} frxJPEGExport1.JPEGQuality := 90; {Auflösung einstellen, Punkte/Zoll} frxJPEGExport1.Resolution := 96; {Legen Sie fest, ob die resultierende Datei nach dem Export geöffnet werden soll} frxJPEGExport1.OpenAfterExport := False; {Legen Sie fest, ob der Exportfortschritt angezeigt werden soll (anzeigen, welche Seite gerade exportiert wird)} frxJPEGExport1.ShowProgress := False; {Legen Sie fest, ob ein Dialogfenster mit den Exportfiltereinstellungen angezeigt werden soll} frxJPEGExport1.ShowDialog := False; {Legen Sie den Namen der resultierenden Datei fest.} {Beachten Sie, dass, wenn Sie den Dateinamen nicht festlegen und das Dialogfeld "Exportfilter" deaktivieren,} {es wird immer noch ein Dialog zur Auswahl des Dateinamens angezeigt} frxJPEGExport1.FileName := 'C:\Output\test.jpg'; {Bericht exportieren} frxReport1.Export(frxJPEGExport1); end; ``` Export nach TIFF ``` procedure TForm1.Button3Click(Sender: TObject); begin {Wir erstellen einen Bericht. Bevor Sie einen Bericht exportieren, müssen Sie unbedingt einen Bericht erstellen} frxReport1.PrepareReport(); {Stellen Sie den Bereich der exportierten Seiten ein. Standardmäßig werden alle Seiten des generierten Berichts exportiert} frxTIFFExport1.PageNumbers := '2-3'; {Legen Sie fest, ob jede Seite in eine separate Datei exportiert werden soll.} {An den Dateinamen wird .N hinzugefügt, wobei N die Sequenznummer der Seite ist} frxTIFFExport1.SeparateFiles := True; {Legen Sie fest, ob das Bild in Schwarzweiß exportiert werden soll} frxTIFFExport1.Monochrome := False; {Legen Sie fest, ob leere Ränder (Seitenränder) abgeschnitten werden sollen} frxTIFFExport1.CropImages := False; {Auflösung einstellen, Punkte/Zoll} frxTIFFExport1.Resolution := 96; {Legen Sie fest, ob die resultierende Datei nach dem Export geöffnet werden soll} frxTIFFExport1.OpenAfterExport := False; {Legen Sie fest, ob der Exportfortschritt angezeigt werden soll (anzeigen, welche Seite gerade exportiert wird)} frxTIFFExport1.ShowProgress := False; {Legen Sie fest, ob ein Dialogfenster mit den Exportfiltereinstellungen angezeigt werden soll} frxTIFFExport1.ShowDialog := False; {Legen Sie den Namen der resultierenden Datei fest.} {Beachten Sie, dass, wenn Sie den Dateinamen nicht festlegen und das Dialogfeld "Exportfilter" deaktivieren,} {es wird immer noch ein Dialog zur Auswahl des Dateinamens angezeigt} frxTIFFExport1.FileName := 'C:\Output\test.tif'; {Bericht exportieren} frxReport1.Export(frxTIFFExport1); end; ``` Export nach GIF ``` procedure TForm1.Button4Click(Sender: TObject); begin {Wir erstellen einen Bericht. Bevor Sie einen Bericht exportieren, müssen Sie unbedingt einen Bericht erstellen} frxReport1.PrepareReport(); {Stellen Sie den Bereich der exportierten Seiten ein. Standardmäßig werden alle Seiten des generierten Berichts exportiert} frxGIFExport1.PageNumbers := '2-3'; {Legen Sie fest, ob jede Seite in eine separate Datei exportiert werden soll.} {An den Dateinamen wird .N hinzugefügt, wobei N die Sequenznummer der Seite ist} frxGIFExport1.SeparateFiles := True; {Legen Sie fest, ob das Bild in Schwarzweiß exportiert werden soll} frxGIFExport1.Monochrome := False; {Legen Sie fest, ob leere Ränder (Seitenränder) abgeschnitten werden sollen} frxGIFExport1.CropImages := False; {Auflösung einstellen, Punkte/Zoll} frxGIFExport1.Resolution := 96; {Legen Sie fest, ob die resultierende Datei nach dem Export geöffnet werden soll} frxGIFExport1.OpenAfterExport := False; {Legen Sie fest, ob der Exportfortschritt angezeigt werden soll (anzeigen, welche Seite gerade exportiert wird)} frxGIFExport1.ShowProgress := False; {Legen Sie fest, ob ein Dialogfenster mit den Exportfiltereinstellungen angezeigt werden soll} frxGIFExport1.ShowDialog := False; {Legen Sie den Namen der resultierenden Datei fest.} {Beachten Sie, dass, wenn Sie den Dateinamen nicht festlegen und das Dialogfeld "Exportfilter" deaktivieren,} {es wird immer noch ein Dialog zur Auswahl des Dateinamens angezeigt} frxGIFExport1.FileName := 'C:\Output\test.gif'; {Bericht exportieren} frxReport1.Export(frxGIFExport1); end; ``` Nach dem Betrachten, wie man solche Formate erstellen und exportieren kann, kommen wir zu dem Schluss, dass dies überhaupt nicht schwierig ist! Eine große Bitte ist, diese Möglichkeiten nicht zu missbrauchen! Sehr oft zum Beispiel viele Software-Produkte für die Bildung von Steuerberichten, Deklaration, Einkommens- und Ausgabensteuerdokumente erlauben die Ergebnisse nur in einem geschlossenen Format zu speichern, an den Drucker zu senden oder in TIFF zu speichern - leider hält diese Option aus Sicht der zukünftigen Verwendung keine Kritik aus. Es kann nur bewundert und ausgedruckt werden. Schließlich lohnt es sich  Speichern derselben Dokumente als PDF  (falls erforderlich - PDF/A), ODS , ODT , RTF , DOCX , XLSX  hinzuzufügen - mit voller Unterstützung für relevante Standards, aber viel bequemer, um mit ihnen als Text-enthaltende Dokumente zu arbeiten.  Tags: VCL, Export, Lazarus, FastReport, Delphi ### Speichern SVG aus Delphi / C++ Builder / Lazarus URL: https://www.fast-report.com/de/blogs/export-svg-delphi-vcl Summary: Mit SVG können Sie Berichte als Bilder speichern, ohne an Qualität durch Delphi-Code zu verlieren. Mit SVG können Sie Berichte als Bilder speichern, ohne an Qualität durch Delphi-Code zu verlieren. Mit SVG können Sie Berichte als Bilder speichern, ohne an Qualität durch Delphi-Code zu verlieren. SVG - dieses Format ist ein zweidimensionales Vektorbild, das auf XML-Dokumenten basiert ist. Es wird nicht nur bei der Beschreibung von zweidimensionale Vektorgrafiken, sondern auch bei gemischten Vektor-Bitmaps verwendet. Lassen Sie uns die wichtigsten Vorteile des SVG-Formats auflisten: Erstens, wie bereits im letzten Artikel erwähnt ist , vektorgrafiken werden verlustfrei auf eine beliebige Größe skaliert (und das Bild wird beim Vergrößern nicht in ein Bild eines kubistischen Künstlers umgewandelt). Zweitens ist SVG vollständig kompatibel mit Webtechnologien und wird daher ein organischer Teil von Websites sein. Drittens, wann wir Objekte hinzufügen und Javascript an sie anhängen, machen wir das Bild interaktiv, es reagiert auf bestimmte Benutzeraktionen mit bestimmten Antworten - in der Bindung an das Bild und seine Form. Viertens ist SVG ein Textformat, so dass Sie die Datei ohne externe Meta-Tags für SEO optimieren können, indem Sie die Schlüsselwörter direkt in den Bildcode einfügen. Es gibt Nachteile dieses Formats: Das Gewicht der Datei wird mit einer beträchtlichen Geschwindigkeit zunehmen, wie eine Lawine, wenn die Details der Bilder erhöht werden. Für Bilder mit viele Details ist es jedoch am besten, PNG oder JPG zu verwenden. Daher eignet sich SVG leider nicht für realistische hochauflösende Fotos und detaillierte Karten des Geländes. SVG wird von älteren Browsern (Internet Explorer 8 und ältere Versionen) nicht unterstützt, aber dies ist nicht ein zu großes Minus. Standardmäßig erlaubt WordPress beispielsweise aufgrund von Sicherheitsproblemen keine SVG-Dateien zu laden. WordPress wahrnimmt diese Berechtigung als etwas Schädliches und blockiert die Anzeige. Aber die Sperre kann mit Plugins umgegangen werden. SVG ist geeignet zum Erstellen von einfachen Objekten, die durch einfache Formen oder Teile davon beschrieben werden können. Es ist erwähnenswert, dass soziale Netzwerke wie Facebook und Twitter keine SVG für Anschluß unterstützen. Wenn Sie SVG-Dateien als verschiedene Thumbnails verwenden, müssen Sie das Plugin verwenden und PNG oder JPG für Meta-Tags festlegen. Die wichtigsten Vor- und Nachteile des SVG-Formats haben wir untersucht, und jetzt kehren wir zum Hauptthema des Artikels zurück. Wie speichert man eine SVG-Datei in Delphi oder Lazarus? Zuerst müssen Sie das gleiche Bild erstellen! Und hier kann ich (plötzlich) FastReport VCL empfehlen, von dort können Sie sofort das gewünschte Format von Delphi speichern. Schließlich können Elemente nicht nur Bilder sein, es gibt viele Objekte, die angezeigt werden sollen. Praktisch, na ja, warum nicht?) Von Barcodes bis zu Tabellen und Karten - aber es wird dringend empfohlen, sie im Vektorformat zu speichern! Also fangen wir an! Schaffen wir den Bericht. Haben Sie vor dem Speichern geschaut, ob alles Ihnen gefallen hat? Geändert, bearbeitet! Jetzt, nachdem Sie, was Sie brauchten, erstellt haben - starten wir und sehen, was hat geklappt. Rufen wir Vorschau und wählen Sie dann das benötigte Format aus. Da ist er unten! Wir wählen und klicken. Jetzt sehen wir ein Fenster mit vielen verschiedenen Einstellungen. Wir haben alle Kriterien eingestellt , die wir brauchen und auf "OK" geklickt! Ein wenig über die Einstellungen beim Export Beachten Sie, dass das Format beim Speichern in SVG anders ist als bei BMP, JPEG, TIFF oder GIF. More precisely, such functions as: Styles - speichern von Stilen; Unified Pictures - standardisierung von Bildern; Formatted – Formatieren; Pictures – das Speichern eines Dokuments mit Bildern – die Wahl des Formats für die Bilder, die bereits pixelig in unser Dokument aufgenommen wurden; Multi Page - mehrseitige Dokumente; Page navigator - seiten-Navigator; Speichern von Grafiken in PNG-, EMF-, BMP-, JPEG-Formaten. Die Einstellungen für die Formate BMP, JPEG, TIFF, GIF sind: Monochrome - bilder in Schwarztönen; Crop pages - seiten zuschneiden; JPEG quality - qualität des Grafikobjekts; Resultion (dip) – Auflösung. Offensichtlich wird das Vektorbild beim Speichern in Bitmap-Formaten gerastert, aber umgekehrt (Raster in Vektor) wird es nicht passieren. Das einzige, was bei all diesen Formaten ähnlich ist, sind die Einstellungen für die Aktionen mit Dokumentseiten, die Möglichkeit zum Speichern und das automatische Öffnen des Dokuments unmittelbar nach dem Speichern. Nachdem wir überlegt haben, wie Sie mit der Konsole des Vorschaufensters speichern können, gehen wir zur Option zum Speichern ohne Vorschau über. Speichern von SVG aus Delphi / C++Builder / Lazarus-Code Export nach SVG ``` procedure TForm1.Button1Click(Sender: TObject); begin {Wir erstellen einen Bericht. Bevor Sie einen Bericht exportieren, müssen Sie unbedingt einen Bericht erstellen} frxReport1.PrepareReport(); {Stellen Sie den Bereich der exportierten Seiten ein. Standardmäßig werden alle Seiten des generierten Berichts exportiert} frxSVGExport1.PageNumbers := '2-3'; {Legen Sie fest, ob Bilder exportiert werden sollen} frxSVGExport1.EmbeddedCSS := True; {Legen Sie fest, ob alle Bilder nach PictureFormat konvertiert werden sollen:} {wenn das Bild im Bericht im BMP-Format ist und das PictureFormat PNG ist, wird das BMP im PNG-Format gespeichert} frxSVGExport1.UnifiedPictures := True; {Legen Sie fest, ob der SVG-Quellcode formatiert werden soll (es erhöht die Größe der resultierenden Datei) } frxSVGExport1.Formatted := False; {Legen Sie fest, ob Bilder exportiert werden sollen} frxSVGExport1.EmbeddedPictures := True; {Legen Sie fest, ob jede Seite in eine separate SVG-Datei exportiert werden soll} frxSVGExport1.Multipage := False; {Legen Sie fest, ob Navigationsschaltflächen in die resultierende SVG-Datei hinzugefügt werden sollen} frxSVGExport1.Navigation := False; {Legen Sie fest, in welchem Format die Bilder exportiert werden sollen} //uses frxExportHelpers; // TfrxPictureFormat = (pfPNG, {$IFNDEF FPC}pfEMF,{$ENDIF} pfBMP, pfJPG);) frxSVGExport1.PictureFormat := pfPNG; {Legen Sie fest, ob die resultierende Datei nach dem Export geöffnet werden soll} frxSVGExport1.OpenAfterExport := False; {Legen Sie fest, ob der Exportfortschritt angezeigt werden soll   (welche Seite gerade exportiert wird)} frxSVGExport1.ShowProgress := False; {Legen Sie fest, ob ein Dialogfenster mit den Exportfiltereinstellungen angezeigt werden soll} frxSVGExport1.ShowDialog := False; {Legen Sie den Namen der resultierenden Datei fest.} {Beachten Sie, dass, wenn Sie den Dateinamen nicht festlegen und das Dialogfeld "Exportfilter" deaktivieren,} {wird es immer noch ein Dialog zur Auswahl des Dateinamens angezeigt} frxSVGExport1.FileName := 'C:\Output\test.svg'; {Exportieren wir den Bericht} frxReport1.Export(frxSVGExport1); end; ``` Lassen Sie uns einen Vergleich zwischen den Ergebnissen des Exports von Raster- und Vektorobjekten machen! Im Folgenden werden Beispiele für Bilder - JPEG und SVG - bereitgestellt. JPEG SVG Und jetzt sehen wir sofort den Unterschied. Welche?) Zum Beispiel hat eine Bitmap eine größere Größe als ein Vektorbild, und beim Skalieren verschwindet die Klarheit. Aber das Vektorbild (SVG) wird bei der Annäherung nirgendwohin verschwinden, und das Gewicht wird viel geringer sein. Der einzige Nachteil ist, dass SVG nicht für realistische Fotos geeignet ist (aber wir haben sie nicht). Und jetzt fassen wir zusammen! Das SVG-Vektorformat ist sehr praktisch (wenn Sie es an der richtigen Stelle verwenden), und das Speichern über FastReport VCL macht das Speichern auch einfach. Tags: VCL, Export, Lazarus, FastReport, SVG, Delphi ### Speichern von Berichten FastReport .Net in den Datenlager URL: https://www.fast-report.com/de/blogs/store-net-reports-database Üblich verwendet man zum Speichern der Berichte einen Platz, aber die Berichte sind in den getrennten Dateien. Wenn die Zahl der Dateien steigt, trifft man bei den Suchen und Strukturierung die Schwierigkeiten. Als ich an dieses Problem dachte, merkte ich eine sehr interessante Eigenschaft des Objekts Report – ReportSourceString. In dieser Eigenschaft speichert man die ganze Berichtsschablone in einer Zeile. Darauf folgt, dass es eine Möglichkeit gibt, Schablonen des Berichts in beliebigem Datenlager zu speichern. Wir können jetzt nur einen Platz verwenden, um da die Berichten zu speichern... Jetzt brauchen wir unsere eigene Methoden zu den Speichern und Herunterladen vom Bericht. Also, beginnen wir. Zuerst erstellen wir einen Datenlager zum Speichern den Berichten. Ich verwendete MS Access. Die Tabelle hat folgende Struktur. Feldes Name Datentyp id Zähler Name Text Template MEMO Feld Erstellen wir jetzt eine Anwendung WindowsForms. Fügen wir eine Verbindung zu unserem Datenlager hinzu. Auf die Form stellen wir die Taste, DataSet Komponenten, BindingSource und Report.  Wir brauchen auch eine Dialogform, auf der wir den Berichtsnamen bei den Speichern und Herunterladen eingeben: Für Tasten braucht man eine Eigenschaft DialogResult nach den Namen der Tasten bestimmen. Jetzt kommt Programmieren. Verwenden wir folgende Bibliotheken von FastReports: ``` using FastReport; using FastReport.Utils; using FastReport.Design; ```  Und erstellen wir jetzt ein Examplar von der Dialogform: ``` public SaveLoadForm form2 = new SaveLoadForm(); ```  Erstellen wir einen Bearbeiter zum Speichernevent: ``` void cmdSave_CustomAction(object sender, EventArgs e)   {   ReportsDataSet.ReportsRow row;   row = reportsDataSet1.Reports.NewReportsRow();   if (form2.ShowDialog() == DialogResult.OK)   {   row.Name = form2.ReportName;   row.Template = report1.ReportResourceString;   this.reportsDataSet1.Reports.Rows.Add(row);   ReportsDataSetTableAdapters.ReportsTableAdapter adapter = new ReportsDataSetTableAdapters.ReportsTableAdapter();   adapter.Update(reportsDataSet1.Reports);   }   } ```   Hier erstellen wir neue Zeile in der Berichtstabelle. Weiter starten wir die Dialogform. In der Form wird der Berichtsname angezeigt. Im Feld „Name“ wird der Wert aus Textfeld der Dialogform angesessen. Im Feld „Template“ speichern wir die Berichtsschablone wie ein Text. Danach speichern wir durch den Adapter die Veränderungen in der Tabelle. Jetzt erstellen wir einen Bearbeiter zum Herunterladensevent: ``` void cmdOpen_CustomAction(object sender, EventArgs e)   {   if (form2.ShowDialog() == DialogResult.OK)   {   for (int i = 1; i < reportsDataSet1.Reports.Rows.Count; i++)   if (reportsDataSet1.Reports[i].Name == form2.ReportName)   {   report1.ReportResourceString = reportsDataSet1.Reports[i].Template.ToString();   }   Designer designer = sender as Designer;       designer.SetModified(this, "EditData");   }   } ```  Wir rufen die Dialogform auch auf. Im Zyklus suchen wir nach dem Bericht mit dem Namen, der den gleichen Wert, wie im Textfeld eingegebener Name, hat. Weiter erneuern wir den Designer, um die Änderungen zu sehen. So, wir haben zwei Bearbeiter geschrieben. Jetzt brauchen wir standardisierte Bearbeiter abzufangen, um durch unsere zu ersetzen. ``` private void DesignerSettings_DesignerLoaded(object sender, EventArgs e)   {   (sender as Designer).cmdSaveAs.CustomAction += new EventHandler(cmdSave_CustomAction);   (sender as Designer).cmdOpen.CustomAction += new EventHandler(cmdOpen_CustomAction);   } ```  Wie man sieht, wir fangen die Events von den Speichern und Herunterladen des Berichts ab und verwenden unsere wie Ersatzbearbeiter. Für das Tastendrückevent in der Hauptform fügen wir diesen Code hinzu: ``` private void DesignBtn_Click(object sender, EventArgs e)   {   Config.DesignerSettings.DesignerLoaded += DesignerSettings_DesignerLoaded;   report1.Design();   } ```  Überschreiben wir den Herunterladenbearbeiter vom Berichtsdesigner. Auf diese Weise erstellten wir eine Anwendung, die für Speichern und Herunterladen von Berichten einen MS Access Datenlager verwendet. Dank der Berichts Eigenschaft „ReportSourceString“ können Sie das Speichern von Berichten in beliebigem Datenlager, der für Sie bequem ist, organisieren. Tags: .NET, .NET, FastReport, FastReport ### Start FastCube 2 VCL beta-testing! URL: https://www.fast-report.com/de/news/fastcube-vcl-beta-testing Summary: Start FastCube 2 VCL beta-testing! Start FastCube 2 VCL beta-testing! We announce powerful beta-testing of FastCube 2 VCL! What does it mean? - Trial versions of FastCube 2 for all supported IDEs are available here: https://www.fast-report.com/en/download/fast-cube-2/ - All who ordered FastCube 1 from now to date of release of FastCube 2 (approximately May 2013) will get FastCube 2 for free (beta - today and release then). - All customers of FastCube 1 can order FastCube 2 with great discount (see customer panel) ### Starten der Anwendung aus FastReport .NET heraus in Docker für Linux URL: https://www.fast-report.com/de/blogs/application-net-docker-linux Summary: Docker stellt buchstäblich mit zwei Befehlen bereit und die Container benötigen viel weniger Speicherplatz als Images virtueller Maschinen. Docker stellt buchstäblich mit zwei Befehlen bereit und die Container benötigen viel weniger Speicherplatz als Images virtueller Maschinen. Docker stellt buchstäblich mit zwei Befehlen bereit und die Container benötigen viel weniger Speicherplatz als Images virtueller Maschinen. Docker ist eine Software-Plattform für eine schnelle Entwicklung, Prüfung und Bereitstellung von Anwendungen. Es ermöglicht uns, mehrere Container auf einem einzigen Server zu platzieren. Unter Container versteht man die Gesamtheit unserer Anwendung, ihrer Abhängigkeiten und des Images. Vergessen Sie nicht, dass ein Image eine Vorlage ist, die eine Art des Abbildes des Dateisystems ist. Wir haben im Gedächtnis einige Begriffen aufgefrischt. Jetzt können wir darüber sprechen, wie wir FastReport.Core + FastReport.Web in unserem eigenen Container hochschieben können. Zunächst müssen wir Docker selbst auf einer beliebigen Linux-Distribution installieren, in unserem Fall ist das Ubuntu 20.04.  In diesem Artikel erfahren Sie mehr über die Docker-Installation auf eine Linux. Nach der Installation und dem Testen können wir zum nächsten Schritt übergehen. Nun müssen wir eine DockerFile-Datei erstellen. Das ist ein reines Textdokument, das alle Befehle zur Erstellung eines Images enthält. Sie können diese Datei entweder in einem normalen Texteditor oder in demselben VS-Code erstellen und bearbeiten. Übrigens, der VS-Code hat ein praktisches Docker-Plugin, das das Schreiben und Bearbeiten etwas erleichtert. Beispiel einer DockerFile-Datei: ``` FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base WORKDIR /app   RUN ln -s /lib/x86_64-linux-gnu/libdl-2.24.so /lib/x86_64-linux-gnu/libdl.so RUN apt-get update \ && apt-get install -y --allow-unauthenticated \ libc6-dev \ libgdiplus \ libx11-dev \ && rm -rf /var/lib/apt/lists/* ENV DISPLAY :99   FROM microsoft/dotnet:2.1-sdk AS build WORKDIR /src COPY ["fastreport_net", "FastReport.Net"] RUN dotnet restore "FastReport.Net/Demos/Core/FastReport.Core.Web21.MVC/FastReport.Core.Web21.MVC.csproj" COPY . . WORKDIR "/src/FastReport.Net/Demos/Core/FastReport.Core.Web21.MVC" RUN dotnet build "FastReport.Core.Web21.MVC.csproj" -c Release -o /app   FROM build AS publish RUN dotnet publish "FastReport.Core.Web21.MVC.csproj" -c Release -o /app   FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "FastReport.Core.Web21.MVC.dll"]   ``` Diese Docker-Datei stellt das Demo-Image der FastReport.Core.Web21.MVC Anwendung bereit, die FastReport.Web und FastReport.Core verwendet. Sie können es  unter folgendem Link , selbst ausprobieren oder beim Herunterladen von  FastReport.NET  das Verzeichnis Demos\Core\FastReport.Core.Web21.MVC finden. Sobald eine DockerFile-Datei geschrieben wurde, muss sie unbedingt aufgebaut werden. Das ist sehr einfach. Starten Sie ein Terminal in dem Verzeichnis, in dem sich die DockerFile-Datei befindet und schreiben Sie den Befehl ein: ``` sudo docker build ``` Nach dem erfolgreichen Aufbau muss der Container mit dem Befehl erweitert werden:  ``` sudo docker run -d -p 8080:80 build/fastreport ``` In diesem Befehl nehmen wir das Forwarding des Port 8080 vor und nennen das Image "build/fastreport". Nach dem erfolgreichen Starten des Containers öffnen Sie http://localhost:8080/. Dann gehen wir auf die Seite unserer Anwendung, wenn alle Abhängigkeiten erfüllt und gelöst sind, dann erscheint Ihr Projekt: Fassen wir zusammen: Docker stellt buchstäblich mit zwei Befehlen bereit und die Container benötigen viel weniger Speicherplatz als Images virtueller Maschinen, was viel Speicherplatz und Zeit spart. Tags: .NET, .NET, FastReport, FastReport, Linux, Linux, Core, Core, Libgdiplus, Libgdiplus, Ubuntu, Ubuntu ### Stile in FastReport .Net URL: https://www.fast-report.com/de/blogs/styles-fastreport-net In diesem Artikel möchte ich über, auf den ersten Blick, nicht so wesentliche Funktionalität wie Stile erzählen. Tatsächlich beachten viele diese Feature nicht, wenn denken, dass Stile nur einheitliche  Anordnung des Dokuments erleichten.  Fast jeder Benutzer hat mit dem Texteditor Microsoft Word gearbeitet. Und Mehrzahl von Anwendern weißt, dass Stile gleichzeitig die Aussicht von Objekten (zum Beispiel Titel) verändern können. In FastReport .Net kann man auch Stile verwenden, um getrennt stehende Objekten oder die Gruppen von Objekten zur einheitlichen Art durchzuführen. Die Stilverwendung erleichtert wesentlich die Berichtserstellung.   Also, öffnen wir den Berichtsdesigner. Im Tab „Home“ ist ein Instrumentspanel „Styles“. Hier befindet sich eine Dropdown-Liste für die Wahl des kommenden Stils. Um den gewählten Stil zu verwenden, soll man ein Objekt oder eine Gruppe von Objekten zu bestimmen, dann aus der Dropdown-Liste den gebrauchten Stil zu wählen.  Um den Stilredaktor zu öffnen, verwenden wir das Piktogramm aus der Dropdown-Liste: Im Stilreraktor kann man hinzufügen, löschen und bearbeiten. Außerdem können Sie die Stilmenge in der getrennten Datei *.frs speichern, und dann Stile von dieser Datei bei der Erstellung von anderem Bericht herunterladen.  Es ist sehr bequem, wenn Sie viele Berichte mit dem einheitlichen Stil entwicklen.  Stil steht zur Verfügung: Rahmen des Objekts bestimmen. Das kann sowohl der ganze Rahmen sein, als auch eine oder mehrere Linien zur Wahl. Hier bestimmt man auch den Stil, die Dicke und Farbe der Linien. Füllungsfarbe eingeben. Das kann nicht nur dichte Farbe sondern auch Farbverlauf oder Schraffierung sein. Einen Schrift eingeben. Wie üblich, man kann Größe, Gestalt oder Artveränderung bestimmen. Die Schriftgröße bestimmen.  Zum Beispiel verwenden wir den Stil für den Titel der Daten im Bericht "Master-detail": Banden haben auch eine Eigenschaft „Style“. Das bedeutet, dass man zu diesen Banden erstellte Stile verwenden kann. Achten wir jetzt auf die Eigenschaft „EvenStyle“. Dank dieser Eigenschaft können wir den Stil der geraden Zeilen in der Tabelle bestimmen. Erstellen wir noch einen Stil mit der Farberfüllung von Hellgrau. Wählen wir einen Datenband (in unserem Fall wird es ein detaillierter Datenband). In der Eigenschaft EvenStyle wählen wir einen erstellten Stil. Starten wir den Bericht: Stimmen Sie dazu, Stilverwendung sehr einfach und effektiv ist. Auf diese Weise, wenn man Stile im Bericht verwendet, dann bekommt man folgende Vorteile: schnelle Berichtserstellung, einheitliche Gestalt der Berichtsobjekten, Verbesserung der Aussichten von den Listen dank der Eigenschaft „EventStyles“. Tags: .NET, .NET, FastReport, FastReport ### Subscribe on save events in FastReport Online Designer URL: https://www.fast-report.com/de/blogs/subscribing-save-events-online-designer In case you need to do some actions on client side after saving the report like show some beautiful dialog from your code or do redirect to the other page you can use following techniques. 1) you can use the following code: ``` const eventName = 'save_success';   window.addEventListener('message', e => { if (e.data === eventName) { // here is your code. It could be something like showSuccessDialog(); } }, false);   ``` where eventName can also be: save_begin - will be executed when user starts saving the report but before sending request to the server save_failure - will be executed in case the request failed and report was not saved. 2) Another possibility to do some actions on save events is to set URL option in config section during building your online designer : Tags: FastReport, FastReport, Online Designer, Online Designer ### Suchergebnis URL: https://www.fast-report.com/de/search Suchergebnis Suchergebnis: "" Nichts gefunden info@fast-report.com Vertrieb sales@fast-report.com 800-985-8986 (Englisch, USA) +31 97 01025-8466 (Englisch, EU) +49 30 56837-3928 (Deutsch, DE) +55 19 98147-8148 (Portugiesisch, BR) Adresse Alexandria, VA 22314 66 Canal Plaza, Ste 505 Produkte Kaufen Demo Dokumentation Deinstallation Lizenzen Produkte Kaufen Demo Dokumentation Deinstallation Lizenzen Support SLA-Unterstützung Online-Support FAQ Anleitungsvideo Forum Artikel Nachrichen Support SLA-Unterstützung Online-Support FAQ Anleitungsvideo Forum Artikel Nachrichen Das Unternehmen Zum Unternehmen Identity Vertriebspartner Kontaktieren Sie uns Das Unternehmen Zum Unternehmen Identity Vertriebspartner Kontaktieren Sie uns Datenschutzbestimmungen Cookie-Bestimmungen © 1998-2026 Fast Reports Inc. Trustpilot Link erfolgreich kopiert ### Summer events with Fast Reports URL: https://www.fast-report.com/de/news/summer-events-2018 Summary: Summer events with Fast Reports. We are having a busy-busy summer and invite you to meet us at the following events in Europe that we organized together with our partners Summer events with Fast Reports. We are having a busy-busy summer and invite you to meet us at the following events in Europe that we organized together with our partners We are having a busy-busy summer and invite you to meet us at the following events in Europe that we organized together with our partners:  Date Name Location For .Net Developers For Delphi Developers Link June 6 – 7 Delphi Day Italy Piacenza, Italy + June 15 SDN (Free!) Zeist, Netherlands + + June 25-28 DWX Nuremberg, Germany + June 29 Workshop (Free!) Nuremberg, Germany + + July 2 Workshop (Free!)  Barcelona + + ### Summing up. Rewarding our partners URL: https://www.fast-report.com/de/news/summing-up-rewarding-our-partners Summary: We would also like to acknowledge sales growth in the UK of 52% and the Czech Republic of 69%. We would also like to acknowledge sales growth in the UK of 52% and the Czech Republic of 69%. Dear Friends! We are going to reward our best dealers and present them with personal certificates for their good work and special contributions in FastReport product promotion. The key results and awards given are:  Germany. We have awarded a certificate and "Partner of the Year" status to  Christian Haimerl  and  McLicense   for their active promotion of our products and high sales levels. Japan! This is exceptional! The  Ag-Tech  company has localized FastReport.Net and FastReport VCL to Japan, and sales have grown by 1973% Brazil. Very good performance. Growth is low at 8% but we thank  our dealers  from Brazil for the stable sales and technical support. Netherlands.  Growth is 73% for the year 2011. We would like to mention in a special way  Isah , our technical partner in Holland. Poland. Rising sales  of 73%. Moreover, we have opened a training center for FastReport customers. An award goes to  Softkey.pl  and  BSC Polska . China. Very good work by resellers in this country. We thank our partners for their hard work and marketing campaigns! Awards go to  Qast Software Group ,  Panyan Tehnology (Component CN) ,  Chongqing Huidu Technology (Evget) . Italy. Many thanks to  Andrea Urbani   for his work and product technical support. Andrea is our friend and very good partner. We would also like to acknowledge sales growth in the UK of 52% and the Czech Republic of 69%. We thank our partners from other countries and give them “Partners of Year 2011” status : Component Source  (UK and World),  Jan Kadlecek  (Czech Republic),  Olivier Pennec  (France),  Danysoft  (Spain),  Linksoft  (Taiwan). Michael Philippenko rewards Jan Kadlecek ### Support URL: https://www.fast-report.com/de/support Summary: Kundensupport-Center. Kontaktieren Sie uns bequem oder hinterlassen Sie eine Anfrage über das Kontaktformular. Wir sind immer bereit, Ihnen zu helfen. Support-Center Wir stehen Ihnen zur Verfügung Kontakte Support-Tickets Forum Häufig gestellte Fragen Lizenzfragen FastReport .NET - FAQ FastReport VCL - FAQ Reporting FMX - FAQ Analysis VCL - FAQ Online Designer - FAQ FastReport Publisher - FAQ Brauchen Sie Hilfe? Nützliche Materialien Dokumentation Artikel Anleitungsvideo info@fast-report.com Vertrieb sales@fast-report.com 800-985-8986 (Englisch, USA) +31 97 01025-8466 (Englisch, EU) +49 30 56837-3928 (Deutsch, DE) +55 19 98147-8148 (Portugiesisch, BR) Adresse Alexandria, VA 22314 66 Canal Plaza, Ste 505 Produkte Kaufen Demo Dokumentation Deinstallation Lizenzen Produkte Kaufen Demo Dokumentation Deinstallation Lizenzen Support SLA-Unterstützung Online-Support FAQ Anleitungsvideo Forum Artikel Nachrichen Support SLA-Unterstützung Online-Support FAQ Anleitungsvideo Forum Artikel Nachrichen Das Unternehmen Zum Unternehmen Identity Vertriebspartner Kontaktieren Sie uns Das Unternehmen Zum Unternehmen Identity Vertriebspartner Kontaktieren Sie uns Datenschutzbestimmungen Cookie-Bestimmungen © 1998-2026 Fast Reports Inc. Trustpilot Link erfolgreich kopiert ### Support for editable fields in WebReport URL: https://www.fast-report.com/de/blogs/support-editable-fields-webreport In the article "Interactive forms in the PDF export of Fast Report .Net 2018" I have already considered editable fields. The bottom line is that the Text and Checkbox objects can be edited in the report preview mode if you include the Editable property. Until recently, this function was supported only for desktop reports. Now, starting with version 2018.2.3, web reports can also have editable fields. That is, when viewing the report in the browser, you can change the text and the checkboxes, and after that, for example, export the report to the desired format. Let's look at an example of how this works. Let's say we have a Web application with a WebReport object. An arbitrary report is displayed in the object. I took for example the Master-Detail report from the FastReport.Net delivery. Select the desired text object and set its properties to Editable = true. I made two fields editable: Unit price and Discontinued. Launch the web application: Before us there are categories with lists of goods. Let's say I'm a businessman and look through the goods of my store. I see an error in the price or description and correct it right in the report. Then, I can save the report or print it to transfer it to the price adjustment to the administrator. Everything is simple and convenient. Let's fix the price for a product. Just click on the desired text field, and before you open the editing window: Put the check boxes in the Discontinued field for other products: By the way, if you use the Editable property, and set the InteractiveForms option when exporting to PDF, you will get editable fields in the PDF document. Tags: FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### Support our products in Community Choice Awards URL: https://www.fast-report.com/de/news/community-choice-awards-2010 Summary: Support our products in Community Choice Awards Support our products in Community Choice Awards Two community choice awards votings are taking place now. These are:  1. "2010 SQL Server Magazine Community Choice Awards" Our great reporting product- “Fast Report .Net"- is taking part in this voting .It is in the second category called “Best Business Intelligence & Reporting Product”. This is our great chance to vote for our product, let others what it can do and promote it in different communities.  And to add to that, are you impressed with our tech support team?  Then you have a chance to vote for our own team in the ninth category called “Best vendor tech support”. And what can be the best way to encourage our team than to vote for it?  2. "2010 DevProConnections Community Choice Awards". Our impressive and effective data analysis tool –FastCube- is taking part in the second category “Charting & Graphics Tool”, The best way to tell others that there is a better way to analyze their data is by voting for our product. And this will do us all pride that once again, we are together supporting our team and making others aware of better ways to handle and report their data. Thanks for your support! ### Tabs in WebReport URL: https://www.fast-report.com/de/blogs/tabs-web-report We can use tabs to view multiple reports in WebReport  in version FastReport.NET 2013.4 and newer. Tabs can be useful for viewing many reports with additional information. Each report in tab has own navigation and may be attached to any data source. Saving in different formats is performed for each tab. We have plans to implement FastReport.NET for open the detailed report in a separate tab by clicking on the object page. Also we will add the ability to close unnecessary tabs. Tabs can be added directly in the application code, for example: ``` WebReport webReport = new WebReport(); webReport.Report.RegisterData(dataSet, "NorthWind"); webReport.Report.Load(report_path + "Simple List.frx"); webReport.CurrentTab.Name = "Simple List"; // tab 2 Report report2 = new Report(); report2.RegisterData(dataSet, "NorthWind"); report2.Load(report_path + "Labels.frx"); webReport.AddTab(report2, "Labels"); // tab 3 Report report3 = new Report(); report3.RegisterData(dataSet, "NorthWind"); report3.Load(report_path + "Master-Detail.frx"); webReport.AddTab(report3, "Master-Detail");   ``` A property “webReport.CurrentTab” needs for access to the current tab, for example: “webReport.CurrentTab.Report”. By default, the first tab is available. In each of the tabs we have next available properties: “Report” – report object, “Name” – tab name. The name of the tab will be taken from the properties of report or report file name if the “Name” property is not specified. The collection of tabs "webReport.Tabs" is also available. These can be used to refer to the tab by its index, for example: webReport.Tabs [0]. Name. WebReport.AddTab method adds a new tab. We can use any declaration from next: ``` // an adding of report object public ReportTab AddTab(Report report); // an adding of report object with its name public ReportTab AddTab(Report report, string name); // an adding of prepared report object with its name (reportDone = true) public ReportTab AddTab(Report report, string name, bool reportDone);   ``` Last call declaration can add any prepared report. An example of adding some prepared reports: ``` webReport.Tabs.Clear(); string s = this.Server.MapPath("~/App_Data/Prepared.fpx"); // first Report firstReport = new Report(); firstReport.LoadPrepared(s); webReport.AddTab(firstReport, "First tab", true); // second Report secondReport = new Report(); secondReport.LoadPrepared(s); webReport.AddTab(secondReport, "Second tab", true);   ``` In the near future we will add the display settings for tabs and an implementation of interactive reports. LIVE DEMO Thank you for attention! Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC ### Tastenkombinations-Editor in FastReport .NET URL: https://www.fast-report.com/de/blogs/keyboard-shortcut-dotnet Summary: Die Schaltfläche «Tastenkombinationen» wurde in den Einstellungen des Designers auf der Registerkarte «Schnittstelle» hinzugefügt, um eigene Kombinationen festzulegen. Die Schaltfläche «Tastenkombinationen» wurde in den Einstellungen des Designers auf der Registerkarte «Schnittstelle» hinzugefügt, um eigene Kombinationen festzulegen. Die Schaltfläche «Tastenkombinationen» wurde in den Einstellungen des Designers auf der Registerkarte «Schnittstelle» hinzugefügt, um eigene Kombinationen festzulegen. FastReport .NET bietet jetzt die Möglichkeit, Tastenkombinationen für Befehle anzupassen. Auf der Registerkarte "Schnittstelle" in den Designer-Einstellungen wurde eine Schaltfläche "Tastenkombinationen" hinzugefügt. Wenn Sie auf diese Schaltfläche klicken, wird eine Liste von Tastenkombinationen angezeigt: Um die Tastenkombination zu ändern, doppelklicken Sie auf die gewünschte Zeile oder wählen Sie die Zeile aus und drücken Sie die Eingabetaste. Daraufhin erscheint das Fenster des Tastenkombinations-Editors wie in der folgenden Abbildung: Um eine Tastenkombination festzulegen, müssen Sie die gewünschte Kombination auf der Tastatur drücken. Mit diesen Änderungen wird es für Sie einfacher, sich mit den verfügbaren Befehlen vertraut zu machen, die über Tastenkombinationen aufgerufen werden. Außerdem bietet Ihnen diese Funktion die Möglichkeit, eine Kombination festzulegen, die für Ihr Projekt geeignet ist. Tags: .NET, FastReport, Designer ### Thank you for your request URL: https://www.fast-report.com/de/user-request-successful Summary: You succesfully applied your contest project! Thanks for being a part of it. We will notify you about your status change via email You succesfully applied your contest project! Thanks for being a part of it. We will notify you about your status change via email You succesfully applied your contest project! Thanks for being a part of it. We will notify you about your status change via email ### The first issue of "The InterBase and Firebird Developer Magazine" URL: https://www.fast-report.com/de/news/firebird-developer-magazine-2005 Summary: The first issue of "The InterBase and Firebird Developer Magazine" The first issue of "The InterBase and Firebird Developer Magazine" The first issue of "The InterBase and Firebird Developer Magazine" is published. It is a free electronic magazine in PDF devoted to InterBase`and Firebird database development. You can download the first issue and subscribe to the next issues at  www.ibdeveloper.com ### The indicator of the presence of events in the object in the report designer FastReport.Net URL: https://www.fast-report.com/de/blogs/indicator-presence-events-designer-net In FastReport 2018.2.3, new settings for the report designer appeared - objects appearance. Settings can be opened in the File menu - Settings. The new section contains only two settings for now: • Show indicator on bands with events; • Show indicator on objects with events. Both settings allow you to enable the indication of the presence of events in the object. Thus, you can quickly find in the report objects for which there is code in the report script. The indicator is a small red triangle in the upper left corner of the object: For example, select the CheckBox object and look in the Property inspector for the events for it: Indeed, it's fast and convenient to search for objects with events. An alternative path is to go to the Code section, find the desired event and read the name of the report object. Then you need to return to the report page and, in the Property inspector, select the desired object from the drop-down list. This is very inconvenient, isn’t it? With the indicator, you can open a large, complex report and instantly detect objects with events. Obviously, the new settings section "Appearance of objects" will be replenished with other interesting options. Tags: .NET, .NET, FastReport, FastReport ### Toilettenpapier drucken URL: https://www.fast-report.com/de/blogs/printing-on-toilet-paper Summary: Wie man mit FastReport .NET einen Bericht bei Bedarf auf Toilettenpapier druckt Wie man mit FastReport .NET einen Bericht bei Bedarf auf Toilettenpapier druckt Wie man mit FastReport .NET einen Bericht bei Bedarf auf Toilettenpapier druckt Meine Herren, Scherz beiseite! Heute sprechen wir über Toilettenpapier. Dieses unverzichtbare Hygieneprodukt wurde erst im 19. Jahrhundert in den Vereinigten Staaten entwickelt. Um ehrlich zu sein, wurde Toilettenpapier in China bereits im 6. Jahrhundert zum ersten Mal erwähnt, aber dieses Produkt war nur für einen kleinen Kreis von Menschen verfügbar. In Vorbereitung auf die Selbstisolierung inmitten einer Pandemie hat fast jeder Bewohner des Planeten einen riesigen Vorrat an Toilettenpapier. Es lohnt sich, daran zu erinnern, dass es sich in erster Linie um Papier handelt. Und so kam es, dass das Papier - der Träger von Informationen. Überlegen wir also, ob wir Toilettenpapier zur Ausgabe von Informationen verwenden können? Sie können die vernünftige Frage stellen: warum? Natürlich zum Spaß! Zum Beispiel, hier ist eine kurze Liste von möglichen Anwendungen des Drucks auf Toilettenpapier: Nachrichten - aber sie werden schnell inaktuell, das Klopapier wird wahrscheinlich nicht so schnell verbraucht; Witze - Humor schadet nie, und solche Informationen sind in diesem Medium vollkommen angebracht; Comics, Mangas, Geschichten - sowie Anekdoten - leichte unterhaltsame Lektüre, genau das, was wir brauchen; Bilder und Fotos - sind rein dekorative Drucke. Übrigens ist diese Art jetzt der beliebteste Druck auf Toilettenpapier. Werbung - und das ist ein kommerzieller Ansatz. Es ist seltsam, dass es bis jetzt keine Werbedrucke auf Toilettenpapier gibt, sie sind sicherlich effektiver als Plakatwände; Kalender und Horoskope. Und das sind nur die Optionen, die mir im Moment in den Sinn kommen. Sie sind nur durch Ihre Fantasie begrenzt.  Lasst uns auf Toilettenpapier drucken! Drucker Viele Tintenstrahl- und Matrixdruckermodelle unterstützen den Rollendruck. Diese Funktion ist nicht neu, aber eine aussterbende Funktion für heimischen Drucker. Der Laserdrucker ist für den Druck nicht geeignet. Dies hängt mit dem Mechanismus der Erstellung von Nachrichtenseiten zusammen. Ein Laserdrucker speichert die gesamte Seite im Speicher in einer Zeile mit Jet- oder Matrixdruck. Daher werden wir Laserdrucker nicht mehr in Betracht ziehen. Angesichts der hohen Rauheit von Toilettenpapier wird der Druck auf einem Tintenstrahldrucker unscharf sein. Die Farbe wird auf einem Weichpapier verblassen. Erwarten Sie daher keinen hochwertigen Druck. Versuchen Sie, das Bild auf normalem Büropapier zu drucken. Auch dieses harte Papier ist nicht in der Lage, ein anständiges Bild zu liefern. Ein guter Matrixdrucker wird mehr Klarheit liefern, einfach weil er ursprünglich für Papier niedriger Qualität geschaffen wurde. Die dünnsten Nadeln des Druckkopfes tragen mikroskopisch kleine Tintentropfen auf das Papier, die viel dicker sind als die Farben des Tintenstrahldruckers. Wenn Sie also keinen Farbdruck benötigen und bereit sind, eine niedrige Druckgeschwindigkeit zu tolerieren, dann ist der Matrixdrucker die beste Wahl für Ihre Zwecke. Größe des Trägers  Jetzt ist es notwendig, über die Quelle des Drucks, das Dokument selbst, nachzudenken. In der Tat werden Sie in keinem Text- oder Grafikeditor eine Klopapiervorlage finden können. Breite und Länge müssen Sie selbst wählen. Mit dem Reportgenerator von FastReport.Net können Sie Seiten mit Berichten von beliebiger Breite und Länge erstellen - ganz nach unseren Bedürfnissen. Wie sind die Abmessungen der Toilettenpapierrollen? Sehr unterschiedlich. Trotzdem können wir die populärsten Größen hervorheben. Wie Sie sich erinnern, wird in den USA und in Großbritannien die Länge und Breite in Zoll gemessen, und in allen anderen Ländern - in Zentimetern. Die häufigsten Größen der Rollenbreite sind 4,5 "(11cm), 4,1" (10 cm) und 3,7 "(9,4cm). Die Länge kann bei verschiedenen Herstellern und Modellen völlig unterschiedlich sein. Zum Beispiel sind Rollen mit einer leeren Mitte eher etwa 17 Meter lang. Aber es gibt auch ganz große - 200m und sogar 500m. Unter allen untersuchten Eigenschaften von Toilettenpapier können wir die Schlussfolgerung ziehen, dass ein härteres Papier mit minimaler Rauheit am besten zum Bedrucken geeignet ist. Diese Art von Papier ist oft in öffentlichen Toiletten zu sehen, die auf dem großen Steuerrad platziert sind. Dabei handelt es sich in der Regel um eine einzelne Lage graues Papier aus dem zweiten Material. Es ist schwieriger zu zerreißen als weiches. Wie wird gedruckt? Kommen wir nun zur Erstellung des Dokuments für den Druck. Erstellen wir es mit Hilfe des Symbols FastReport.Net Report Designer: Im Formular müssen Sie nur die Höhe und Breite einstellen: Die Länge des Papiers in einer Rolle beträgt beispielsweise 17 Meter und die Breite 11 Zentimeter (670"). Standardmäßig sind die Werte in Zentimetern eingestellt. Daher führen wir 1700cm Länge und 11cm Breite ein. Die Einheiten können in den Einstellungen des Designers geändert werden: Jetzt müssen Sie in der Eigenschaftenanalyse auf der rechten Seite das Objekt der Seite auswählen und die Eigenschaft UnlimitedHeight auf true setzen. Mit dieser Eigenschaft wird der Bericht nicht in einzelne Seiten aufgeteilt, sondern alles auf einer Seite ausgegeben, wie auf einer Rolle. Außerdem setzen wir die Eigenschaft PrintOnPollPaper auf true. Sie kann erst dann auf true gesetzt werden, wenn Sie die Eigenschaft UnlimitedHeight einschalten.  Jetzt müssen wir entscheiden, was wir drucken wollen. Der Reportgenerator kann die Daten nicht nur aus einer Datenbank, sondern auch aus Dateien übernehmen. Sie können auch Bilder hinzufügen. Wenn Ihr Toilettenpapier perforiert ist, um es in einzelne Blätter zerreißen zu können, ist es notwendig, die Höhe des DataBand entsprechend der Länge des resultierenden Papierdurchgangs anzupassen. In diesem Fall ist es besser, die verbleibenden Bänder zu entfernen, oder ihre Höhe zu berücksichtigen.  Angenommen, wir haben uns entschieden, Bilder anzuzeigen. Dann fügen Sie auf das Band ein Bild-Objekt hinzu und stellen seine Eigenschaften Dock = Fill ein, so dass es den gesamten Bereich ausfüllt. Bei einer Bandhöhe von 10 cm und einer Rollenlänge von 1700 cm ist es notwendig, das Band 170 Mal anzuzeigen. Wenn das DataBand mit einer Datenquelle verbunden ist, dann erscheint für jede Zeile der Daten eine neue Instanz eines Bandes. Da es aber in unserem Fall keine Datenquelle gibt, sollen wir in den Eigenschaften des Bandes nur angeben, wie oft es wiederholt werden soll. Zu diesem Zweck wird in den Eigenschaften des Bandes die Eigenschaft RepeatBandNTimes = 170 gesetzt. So wird ein Teil unseres Berichts aussehen: Jetzt können Sie Papier in den Drucker einlegen und direkt aus dem Anzeigemodus des Berichts heraus mit dem Drucken beginnen. Wenn Sie jedoch nicht sofort drucken möchten oder ein erhaltenes Dokument mit Kollegen teilen möchten, die remote arbeiten, können Sie den Bericht z. B. als PDF exportieren.  Tags: .NET, .NET, FastReport, FastReport, Printing, Printing ### Trefft Fast Reports auf dem Entwickler Summit 2026 in Berlin! URL: https://www.fast-report.com/de/news/summit-entwickler-2026 Summary: Wir freuen uns, bekannt zu geben, dass Fast Reports Partner des Entwickler Summit 2026 ist, der am 17. September in Berlin stattfindet. Wir freuen uns, bekannt zu geben, dass Fast Reports Partner des Entwickler Summit 2026 ist, der am 17. September in Berlin stattfindet. Wir freuen uns, bekannt zu geben, dass Fast Reports Partner des Entwickler Summit 2026 ist, der am 17. September in Berlin stattfindet. Besucht unseren Fast Reports Stand und entdeckt unsere neuesten Lösungen für Business Intelligence und Reporting. Lernt unser Team kennen und tauscht euch mit uns über die Zukunft von Entwickler-Tools und Technologien aus. Außerdem freuen wir uns, Mikhail Philippenko, VP bei Fast Reports, persönlich auf der Konferenz begrüßen zu dürfen. Und das ist noch nicht alles – Besucher unseres Standes haben die Chance, tolle Preise zu gewinnen! Wir laden Entwickler, Tech-Enthusiasten und alle, die sich für innovative Lösungen im Bereich Reporting und Analytics interessieren, herzlich ein, am 17. September beim Entwickler Summit in Berlin an unserem Stand vorbeizuschauen, unser Team kennenzulernen und sich mit uns auszutauschen. Die besten Ideen entstehen nicht beim Planen, sondern beim Austausch. Die Zukunft hat bereits begonnen. ### Try Beta-version of FastReport VCL 5 URL: https://www.fast-report.com/de/news/beta-fastreport-vcl Summary: Try Beta-version of FastReport VCL 5 Try Beta-version of FastReport VCL 5 Trial version and install packages of FastReport VCL 5 for Delphi 7'XE5 and C++ Builder 2005-XE5 published. You can download and try it. If you are our customer of FastReport VCL 4 you can get discounted upgrade to FastReport VCL 5 beta (and than free upgrade to release) from your customer panel. ### Types of solutions for generating reports and documents URL: https://www.fast-report.com/de Summary: Fast Reports - Erstellen Sie Bibliotheken und Tools zum Generieren von Berichten und Dokumenten. Verwenden Sie den FastReport-Berichtsgenerator, um qualitativ hochwertige und schnelle Berichte zu erstellen. Erstellen Sie alle benötigten Dokumentationen einfach und effizient mit unseren Tools. FastReport .NET Kernmodul zum Erstellen, Bearbeiten und Generieren von Berichten auf verschiedenen Plattformen. ASP.NET Avalonia Blazor Mono .NET WASM WinForms WPF FastReport VCL Multifunktionaler Berichts- und Dokumentgenerator für Delphi, C++Builder, RAD Studio und Lazarus. C++Builder Delphi FMX Lazarus RAD Studio FastReport Online Designer Ein visueller Vorlagen- und Berichtsdesigner direkt in Ihrem Browser. All Browsers HTML 5 RIA WEB Geschäftslösungen Fertige Dienste, Client-Server-Systeme und Programme zur schnellen Datenvisualisierung sowie automatisierte Aufgaben zur Informationsverarbeitung. Beliebige Datenquelle Verbindung zu SQL, JSON, XML, CSV, REST-APIs und Geschäftsobjekten Leistungsstarker Designer Erstellen Sie einfache oder komplexe Berichte mit Diagrammen, Tabellen und Unterberichten Überall exportieren Berichte in PDF, Excel, Word, HTML, CSV und andere Formate exportieren Vollständig anpassbar Passen Sie Berichte mit Skripten, Ausdrücken, Ereignissen und benutzerdefinierten APIs an Flexible Lizenzierung Wählen Sie die Lizenzierung, die zu Ihren Produkten, Ihrer Bereitstellung und Ihrem Unternehmen passt KI-fähig Erstellen Sie KI-gestützte Berichtsworkflows mit flexibler Datenintegration Types of solutions for generating reports and documents FastReport .NET Komponentensätze, die den Prozess der Erstellung von Berichten und Dokumenten in C # für verschiedene Technologien vereinfachen und automatisieren. Ultimate .NET WinForms WPF WEB Mono Avalonia FastScript .NET FastReport VCL Sätze von VCL-, FMX- und Lazarus-Komponenten mit vollständigen Quellcodes zum Erstellen von Berichten und Dokumenten in Delphi und Pascal. Ultimate VCL Optimum VCL Reporting VCL Reporting FMX Reporting Lazarus FastQueryBuilder FastScript FastGrid FastEditors WEB-Berichterstattung Komponenten für plattformübergreifende Projekte zum Entwickeln, Erstellen, Anzeigen, Drucken und Exportieren von Berichten direkt im Browser. Online Designer Lösungen für Endanwender Unabhängige Softwarelösungen zum Entwerfen, Erstellen, Konvertieren und Anzeigen vorgefertigter Berichte auf Ihrem Computer. FastReport Desktop FastReport Viewer FastConverter OLAP und Geschäftsgrafiken Tools für die Präsentation und Analyseverarbeitung von Big Data zum Abrufen von Pivot-Tabellen mit anschließender Visualisierung basierend auf Geschäftsgrafiken. Business Graphics .NET FastCube .NET Analysis VCL Servicelösungen Vorgefertigte Dienste und Client-Server-Systeme zur schnellen Datenvisualisierung und automatischen Ausführung von Informationsverarbeitungsaufgaben. FastReport Cloud FastReport Publisher FastReport Corporate Server News September 11, 2026 Trefft Fast Reports auf dem Entwickler Summit 2026 in Berlin! Wir freuen uns, bekannt zu geben, dass Fast Reports Partner des Entwickler Summit 2026 ist, der am 17. September in Berlin stattfindet. Besucht unseren Fast Reports Stand und entdeckt unsere... Read August 10, 2026 Fast Reports feiert Geburtstag – 20 % Rabatt sichern Jedes Jahr entstehen neue Produkte, Tausende erfolgreicher Projekte werden umgesetzt und Millionen von Berichten mit den Lösungen von Fast Reports erstellt. Unser größter Erfolg ist jedoch die... Read May 25, 2026 Update der Service-Lösungen auf Version 2026.2 Im Release 2026.2 der Service-Linie (FastReport Cloud, FastReport Publisher, FastReport Corporate Server), haben wir uns auf die Steigerung der Zuverlässigkeit und Benutzerfreundlichkeit... Read All news Reviews Ender Arslanturk /Trustpilot 5.0 Report from a single center 👏👏👏 In our project, we used different and various report design brands. However, these designs were scattered throughout the project. Fortunately, we met a great tool like Fast Report and this became a... Read Bruno de Chassey /Trustpilot 5.0 The reporting tool I needed ! After using QuickReport and Rave Reports in Delphi, I finally discovered Fast Reports (it was the version 5 at this time), and I decided not to change anymore. Once you understand the band... Read Stephan Kallnik /Trustpilot 5.0 Good and powerful Report-Generator After first steps, a very good and powerful Report generator, and fast in design. Very intuitive WYSIWYG Report-Designer, Easy preview and pdf-generation. Used in all reports throughout our... Read All reviews Articles September 21, 2026 So konfigurieren Sie einen KI-Agenten für FastReport .NET: Architektur, Einschränkungen und Berichtsmigration Arbeiten mit berichten oft verwandelt sich in eine routine: die Bearbeitung XML-Vorlagen (.frx), die Konfiguration der Daten-Bindungen und die Anpassung von legacy-Formate. Die Automatisierung... Read September 08, 2026 Antworten auf häufig gestellte Fragen zum FP3-Format Das FP3-Format wirft häufig Fragen auf – insbesondere bei Benutzern, die einen vorbereiteten Bericht schnell öffnen, anzeigen oder konvertieren müssen, ohne sich mit den Details der Entwicklung... Read September 04, 2026 So exportieren Sie einen Bericht aus FastReport .NET in das DXF-Format DXF (Drawing Exchange Format) ist ein offenes Format zum Austausch grafischer Daten, das von Autodesk zum Speichern und Übertragen zweidimensionaler und dreidimensionaler Zeichnungen entwickelt... Read All articles Popular questions Was ist ein Berichtsgenerator? Ein Berichtsgenerator ist eine Bibliothek oder eine eigenständige Anwendung, die eine Berichtsvorlage mit einer Datenquelle verbindet und auf Basis aktueller Daten fertige Dokumente erstellt. Diese können anschließend in verschiedene Formate (PDF, DOCX, HTML, JPG usw.) exportiert oder zum Drucken bzw. Speichern gesendet werden. Einfacher formuliert: ein Berichtsgenerator wandelt Rohdaten in ein lesbares Dokument um. Warum könnten Berichtsgeneratoren und OLAP-Analysetools für Sie nützlich sein? Jedes Geschäftssystem sammelt und speichert Daten in irgendeiner Form. Leider eignen sich solche Daten meist nur zur Aufbewahrung – nicht jedoch zur Präsentation, zum Abrufen wichtiger Informationen oder zur fundierten Entscheidungsfindung. Unsere Tools, Lösungen und Bibliotheken ermöglichen es, Daten informativ und benutzerfreundlich aufzubereiten. Dabei kann es sich um strukturierte Dokumente oder Tabellen handeln, die an die jeweiligen Anforderungen der Benutzer angepasst sind. Was macht Fast Reports Inc.? Fast Reports Inc. entwickelt leistungsstarke Berichtsgeneratoren und ergänzende Tools für Entwickler von Geschäftsanwendungen. ### Tägliche Erstellung der Graphiken aus csv-Dateien URL: https://www.fast-report.com/de/blogs/build-daily-graphics-csv Summary: Schauen wir uns genauer an, wie man in FastReport Tagesdiagramme aus CSV-Dateien erstellt. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, wie man in FastReport Tagesdiagramme aus CSV-Dateien erstellt. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, wie man in FastReport Tagesdiagramme aus CSV-Dateien erstellt. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Stellen Sie sich bitte vor, dass Sie eine xls-Datei mit Verkaufsresultaten von Ihren Mitarbeitern haben. Und Sie brauchen diese Ergebnisse zu analysieren. Zum Beispiel, einmal pro Monat soll eine graphische Darstellung aufgebaut werden, die zeigen kann, wie effektiv jeder Mitarbeiter arbeitet. Schön wäre es auch einen Unterschied zwischen den täglichen Verkäufen zu sehen. Solcher Bericht soll jeden Morgen aufgebaut werden. Solches Schema realisiert man in FastReport Desktop, mit dessen Hilfe wir einen Bericht mit schönem Diagramm erstellen, und eine tägliche Sendung an Ihre Email Adresse planen. Als eine Datenquelle verwenden wir eine csv-Datei mit folgendem Inhalt: Wir haben drei Spalten: die Nummer und das Datum der Bestellung und der Nachname des Verkäufers. Das kann so sein, dass diese Datei jeden Tag mit neuen Daten ergänzt wird. Jeden Morgen bekommt der Chef einen Report mit dem Resultat, wie viel jeder Mitarbeiter verkauft hat. Jetzt erstellen wir den Bericht. Dazu fügen wir eine neue Datenquelle – CSV Datei hinzu. Wir platzieren weiter auf der Berichts Seite ein Objekt Diagramm. Dazu können wir einen beliebigen Band verwenden. Zum Beispiel wird das der Band Daten Der Titel enthält das Datum: Wir verwenden dafür die System-Variable [Date] und um das Datum ohne Zeit zu zeigen, benutzen wir die Funktion FormatDateTime. Und einen Doppelklick auf dem Diagramm: Oben rechts wählt man die Datenquelle fürs Diagramm. Diagramm besteht aus den Objekten Serie. Wir klicken auf erstes Objekt „Series 1“. Im Band «Daten» bestimmen wir, welche Datenfelder aus dem Datenquelle dargestellt werden. Für den X-Wert wählen wir FirstName, für Y – OrderID. Oben gibt es ein Feld „Filter“. Wir fügen dorthin einen komplizierten Satz hinzu: FormatDateTime(ToDateTime([ Диаграмма .OrderDate]), "MMYYYY") ==FormatDateTime([Date], "MMYYYY") Hier bekommen wir den Monat und das Jahr aus dem Feld OrderDate und vergleichen diese zwei Werte mit den laufenden Monat und Jahr. Diesen Satz verwenden wir, aktuelle Daten für laufenden Monat und Jahr zu filtern. Wir verändern jetzt den Namen der Serie und setzen den Wert „Today“ ein: Jetzt zum Ordner «Data processing». Hier aktivieren wir die Gruppierung für den Wert X und die Funktion – Count (Anzahl): Im Tab „Labels“ wählen wir den Typ der Asche - Y Jetzt fügen wir noch eine Serie und nennen Sie «Yesterday» hinzu: Für dieses Diagramm verwenden wir die gleichen Parameter wie für erste Serie, aber für den Filter fügen wir eine Kleinigkeit hinzu. Im Filter gibt es noch eine Bedingung: FormatDateTime(ToDateTime([Chart.OrderDate]), "MMYYYY") ==FormatDateTime([Date], "MMYYYY") Weiter prüfen wir, ob die Daten von gestern und von heute sind, um sie zu vergleichen. Also, der Bericht ist fertig. Wir erstellen die Konfiguration, die den Bericht per Email sendet. Wir starten die Anwendung Configurator aus dem Paket FastReport Desktop. Nach der Wahl der Datei mit dem Bericht aktivieren wir die Eigenschaft «Export as» und den Export-Format PDF. Wenn wird «Send e-mail» aktiviert ist, erscheinen auf dem Bildschirm entsprechende Eigenschaften: Und Wir speichern den Bericht mit Hilfe der Taste „Save“, starten die Anwendung Scheduler aus dem PaketFastReport Desktop und setzen die Parameter ein: Wir wählen die Konfiguration-Datei, den Trigger – Every day, Datum und Zeit des Startes. Period des Startes - 1 Tag. Das heißt, dass jeden Tag um 17.00 der Chef die Email an seine Adresse bekommt. Für den Test starten wir die Aufgabe ohne Erwarten der entsprechenden Zeit. Dazu einen Doppelklick mit rechter Maus-Taste und eine Wahl vom Befehl „Run task now“: Und die Email mit der pdf-Datei ist angekommen. Mit dem Grafik im Anhang: Wir brauchen nur 15 Minuten um einen Kontrolle-Mechanismus zu erstellen. Sie können die Erstellung von anderen Berichten und Grafiken analog avtomatisieren. Tags: .NET, FastReport, Desktop, CSV ### Ultimate .NET URL: https://www.fast-report.com/de/products/ultimate-net Summary: A set of tools for creating reporting infrastructure for .NET business applications and cross-platform development. A set of tools for creating reporting infrastructure for .NET business applications and cross-platform development. Eine Reihe von Tools zum Erstellen einer Berichtsinfrastruktur für .NET-Geschäftsanwendungen Ein ultimatives Paket zum Erstellen einer Berichtsinfrastruktur mit zusätzlichen Tools für Berichtsdesign und Datenanalyse Ultimate .NET A set of tools for creating reporting infrastructure for .NET business applications and cross-platform development. Buy Try for free Documentation Practically any: invoices, financial reports, product catalogs with color profile support, restaurant menus, sales details, questionnaires with electronic forms, airline tickets, utility bills, and much more. If you have data that needs to be made visually understandable, FastReport is the perfect solution for you. Einbettbarkeit in Projekte Installieren Sie das erforderliche Paket aus dem NuGet-Repository oder laden Sie das Paket von unserer Website auf Ihren Computer herunter und fügen Sie dem Projekt die erforderlichen Bibliotheken hinzu. Es sind keine zusätzlichen Module oder speziellen Erweiterungen erforderlich. Hochleistungs Unsere Komponenten haben viele Testphasen durchlaufen, um wirklich stabil mit großen Datenmengen zu arbeiten. Ihr mehrseitiger Bericht wird im laufenden Betrieb verarbeitet. Vollständige Kontrolle über die Entwicklung Dieser Satz von Tools wird mit dem Quellcode bereitgestellt. Der größte Komfort für Unternehmen, die den Code an ihre Bedürfnisse anpassen möchten. Schneller Zugriff auf den Bericht und die Datenstruktur In der Berichtsstruktur und der Eigenschaftenstruktur können Sie die Berichtsstruktur, Parameter und Filter sowie Datenquellen mit globalen Stilen bearbeiten. Kompatibilität und Integration Ultimate .NET ermöglicht die Erstellung des FastReport-Ökosystems auf C #. Berichte, die in allen Produkten des Ultimate-Pakets erstellt wurden, sind vollständig miteinander kompatibel. Reibungsloser Übergang von anderen Lösungen Unser Berichtsgenerator konvertiert Ihre Berichte aus List & Label, DevExpress, Microsoft Reporting Services (RDL, RDLC), Crystal Reports, StimulSoft und Jasper Library sofort in das FastReport-Format. Cross-platform development Report in the browser .NET Core demo Online Designer demo Blazor WASM demo Blazor Server demo So konfigurieren Sie einen KI-Agenten für FastReport .NET: Architektur, Einschränkungen und Berichtsmigration Arbeiten mit berichten oft verwandelt sich in eine routine: die Bearbeitung XML-Vorlagen (.frx), die Konfiguration der Daten-Bindungen und die Anpassung von legacy-Formate. Die Automatisierung dieser Arbeit, eine spezielle AI-agent erstellt wurde. Dieser agent versteht die FastReport .NET - Architektur und folgt strikt die Entwicklung von Unternehmen standards. KI-Funktionen für FastReport .NET: automatisierte Migration von Berichten aus Crystal Reports und StimulSoft, Refactoring für .NET 8/9, Vorlagengenerierung und Schutz vor Datenlecks. So exportieren Sie einen Bericht aus FastReport .NET in das DXF-Format DXF (Drawing Exchange Format) ist ein offenes Format zum Austausch grafischer Daten, das von Autodesk zum Speichern und Übertragen zweidimensionaler und dreidimensionaler Zeichnungen entwickelt wurde. Dank der umfassenden Unterstützung durch verschiedene CAD-Systeme ist DXF zu einem der am weitesten verbreiteten Formate für den Austausch von technischen und ingenieurwissenschaftlichen Dokumentationen zwischen Anwendungen geworden. In diesem Artikel betrachten wir die Möglichkeiten zum Export eines Berichts in das DXF-Format und sehen uns außerdem an, wie das erhaltene Ergebnis nach dem Öffnen der Datei in einer CAD-Anwendung aussieht. In diesem Artikel betrachten wir die Möglichkeiten zum Export eines Berichts in das DXF-Format und sehen uns außerdem an, wie das erhaltene Ergebnis nach dem Öffnen der Datei in einer CAD-Anwendung aussieht. So exportieren Sie einen Bericht aus FastReport .NET nach PostScript FastReport .NET unterstützt den Export von Berichten in zahlreiche gängige Formate wie PDF, Excel, Word und weitere. Für den professionellen Druck, Plotter oder spezielle Drucksysteme wird jedoch häufig das PostScript-Format (.ps) benötigt. In diesem Artikel zeigen wir anhand eines Beispiels, wie ein FastReport .NET-Bericht in das PostScript-Format exportiert wird, und erläutern dabei die Konfiguration der Parameter sowie die programmgesteuerte Implementierung. In diesem Artikel zeigen wir anhand eines Beispiels, wie ein FastReport .NET-Bericht in das PostScript-Format exportiert wird, und erläutern dabei die Konfiguration der Parameter sowie die programmgesteuerte Implementierung. Any other questions? Contact the manager ### Ultimate VCL URL: https://www.fast-report.com/de/products/ultimate-vcl Summary: A set of tools for creating reporting infrastructure for Delphi business applications and cross-platform development A set of tools for creating reporting infrastructure for Delphi business applications and cross-platform development Eine Reihe von Tools zum Erstellen von Berichten in Delphi und für die plattformübergreifende Entwicklung Ein umfassendes Paket zum Erstellen eines Berichtsökosystems mit zusätzlichen Tools für die Datenanalyse im laufenden Betrieb. Ultimate VCL A set of tools for creating reporting infrastructure for Delphi business applications and cross-platform development Buy Try for free Documentation Transport Speichern Sie vorbereitete Berichte mit wenigen Mausklicks in den Cloud-Speichern: Google Drive, Next Cloud, Box, Dropbox, um sie bequem an Ihre Kunden zu senden Schneller Zugriff auf den Bericht und die Datenstruktur In der Berichtsstruktur und der Eigenschaftenstruktur können Sie die Berichtsstruktur, Parameter und Filter sowie Datenquellen mit globalen Stilen bearbeiten. Client-Server-Komponenten Erstellen Sie Berichte direkt im WEB mit standardmäßigen FastReport-VCL-Komponenten, ohne dass der Client direkt mit dem Datenbankserver verbunden werden muss. Flexible und offene Architektur Wenn Ihnen die Funktionalität von FastReport nicht ausreicht, können Sie sie verbessern, indem Sie Ihre Objekte (Exportfilter, Datenbanken) erstellen und mit Ihren Berichten verbinden. Quellcode Dieser Komponentensatz enthält FastReport-Quellcodes. Maximaler Komfort für Unternehmen, die den Code an ihre Bedürfnisse anpassen möchten. Hilfreiche Ergänzungen Ultimate umfasst Systeme für die mehrdimensionale Analyse: FastCube VCL und FMX sowie FastConverter .FP3-Plugin zum Exportieren von Berichten in allen möglichen Formaten. Client-Server components Cross-platform developing Detaillierter Überblick über die Funktionen der FastGrid-Bibliothek Benutzer von FastReport VCL Ultimate haben wahrscheinlich bereits bemerkt, dass im Installer zwei neue Einträge erschienen sind: FastEditors VCL und FastGrid VCL. Außerdem wurde im DemoCenter eine neue Demo hinzugefügt – FastGrid VCL Demo. Ein Überblick über die FastGrid-Bibliothek für VCL und Lazarus: Datenvisualisierung, -bearbeitung und -Strukturierung. Sortieren, Filtern, Gruppieren, komfortable Dateneditoren — alles in einem Artikel! Neues Berichtsvalidierungssystem in FastReport VCL Im technischen Support wurde uns oft der Wunsch nach einer automatischen Berichtsprüfung mitgeteilt – und mit dem Release 2026.2.0 haben wir dies umgesetzt. Im Menü „Datei“ des Berichtsdesigners sind nun die Punkte „Validate“ und „Einstellungen für Validierungsregeln“ (Validation Rule Settings) verfügbar. Damit können Berichte nicht nur geprüft, sondern auch der Satz an Regeln – einschließlich eigener Regeln – verwaltet werden. In diesem Artikel erklären wir, wie die Berichtsprüfung funktioniert, wie sie konfiguriert wird, wie Sie eigene Regeln anhand von Beispielen erstellen und geben Einblicke in interessante Neuerungen. In diesem Artikel erklären wir, wie die Berichtsprüfung funktioniert, wie sie konfiguriert wird, wie Sie eigene Regeln anhand von Beispielen erstellen und geben Einblicke in interessante Neuerungen. Verwendung von Wasserzeichen in FastReport VCL In den neuesten Versionen von FastReport VCL wurde eine Funktion zum Hinzufügen von Wasserzeichen implementiert. Ein Wasserzeichen ist eine Kennzeichnung, die in ein elektronisches Dokument, Bild, Video, Audio oder andere digitale Inhalte eingebettet wird. Sein Zweck ist es, die Urheberschaft zu bestätigen, vor unerlaubtem Kopieren zu schützen und die Verbreitung der Datei nachzuverfolgen. In diesem Artikel wird die Erstellung und Verwendung von Wasserzeichen in Berichten mit FastReport VCL ausführlich erläutert. Ein Beispiel zur Verwendung von Wasserzeichen befindet sich in der Demo, die mit FastReport VCL ausgeliefert wird. Der Artikel hat die Funktionalität zum Hinzufügen von Wasserzeichen in FastReport VCL ausführlich behandelt – sowohl über die visuelle Oberfläche als auch programmgesteuert mit Delphi-Code und in Berichtsskripten. Any other questions? Contact the manager ### Umgang mit ClickHouse in der FastReport Cloud URL: https://www.fast-report.com/de/blogs/clickhouse-connecting-cloud Summary: In diesem Artikel erfahren Sie, wie Sie eine Verbindung zur ClickHouse-Datenbank vom Dienst herstellen können, um FastReport Cloud-Berichte zu generieren und zu speichern. In diesem Artikel erfahren Sie, wie Sie eine Verbindung zur ClickHouse-Datenbank vom Dienst herstellen können, um FastReport Cloud-Berichte zu generieren und zu speichern. In diesem Artikel erfahren Sie, wie Sie eine Verbindung zur ClickHouse-Datenbank vom Dienst herstellen können, um FastReport Cloud-Berichte zu generieren und zu speichern. ClickHouse ist eine der beliebtesten Datenbanken, die für die Analyse von Daten geeignet ist. In diesem Artikel erfahren Sie, wie Sie von FastReport Cloud Service aus, die für die Erstellung und Speicherung von Berichten bestimmt ist, eine Verbindung zu dieser Datenbank herstellen können. In diesem Artikel wird die Datenbank aus den ClickHouse-Tutorials als Beispiel verwendet. In unserem Fall ist "default" der Name der Datenbank, "my first table" ist der Name der Tabelle. Um unsere Datenbank als Datenquelle hinzuzufügen, wählen Sie beim Hinzufügen der Quelle "ClickHouse" aus. Sie sehen dann das folgende Dialogfeld: Wir brauchen jetzt nicht den Namen der Tabelle, sondern nur den Namen der Datenbank. Füllen Sie also das Formular aus: Das Dialogfenster wird angezeigt, in dem Sie informiert werden, dass der Verbindungstest erfolgreich abgeschlossen ist. Nun müssen Sie nur noch auf "Verbinden" klicken und die Verbindung wird unter den bestehenden Verbindungen gespeichert. Sie können diese Verbindung dann in Ihren Berichten verwenden. Lassen Sie uns nun versuchen, einen einfachen Bericht auf der Grundlage dieser Verbindung zu erstellen: Und natürlich sehen wir uns die Vorschau dieses Berichts an: Und wenn wir die Daten der Originaltabelle mit unserem Bericht vergleichen, ist es ziemlich offensichtlich, dass mit der Verbindung alles in Ordnung ist.  Tags: FastReport, Cloud, Data Source ### Umgang mit der TfrShellTreeView-Komponente in FastReport VCL URL: https://www.fast-report.com/de/blogs/vcl-shell-tree-view Summary: In diesem Artikel werden wir uns die TfrShellTreeView-Komponente ansehen. Es dient zur Anzeige von Dateisystemelementen und ist teilweise analog zu den Komponenten TDirectoryListBox, TDirectoryOutline und TShellTreeView. In diesem Artikel werden wir uns die TfrShellTreeView-Komponente ansehen. Es dient zur Anzeige von Dateisystemelementen und ist teilweise analog zu den Komponenten TDirectoryListBox, TDirectoryOutline und TShellTreeView. Nicht jeder weiß, dass FastReport nicht nur Berichtskomponenten, sondern noch viel weitere Komponenten enthält. Insbesondere gibt es mehrere Komponenten, die Sie wie andere Delphi-Komponenten in Ihren Anwendungen verwenden können. Die Bibliothek solcher Komponenten wird ständig erweitert. In diesem Artikel betrachten wir eine dieser Komponenten, nämlich die TfrShellTreeView. Nicht jeder weiß, dass FastReport nicht nur Berichtskomponenten, sondern noch viel weitere Komponenten enthält. Insbesondere gibt es mehrere Komponenten, die Sie wie andere Delphi-Komponenten in Ihren Anwendungen verwenden können. Die Bibliothek solcher Komponenten wird ständig erweitert. In diesem Artikel betrachten wir eine dieser Komponenten, nämlich die TfrShellTreeView.  Diese Komponente dient zur Anzeige von Elementen des Dateisystems und ist teilweise analog zu Komponenten wie TDirectoryListBox, TDirectoryOutline in Delphi und TShellTreeView in Lazarus. Wenn Sie sehen möchten, wie sie aussieht, ohne die IDE auszuführen, ist dies der „Baum“, den Sie links im Explorer-Fenster sehen. Die Komponente funktioniert auf Windows- und Linux-Betriebssystemen für Delphi und Lazarus problemlos. Die FMX Entwicklungsumgebung wird nicht unterstützt.  Die TfrShellTreeView-Komponente verwendet viele Betriebssystemfunktionen. Zum Beispiel können Sie unter Windows auf Zip-Archive als Ordner zugreifen und sogar deren Inhalt bearbeiten: Dateien extrahieren und hinzufügen. Unter Linux sind einige der Funktionen der Komponente je nach installierter Linux-Version möglicherweise nicht verfügbar. Wichtiger Hinweis: Die Anzeige der Baumstruktur und die Auswahl von Elementen darin sind unter jedem Betriebssystem verfügbar. Die Haupteigenschaft von TfrShellTreeView, die die Interaktion mit dem Betriebssystem steuert, ist die OptionsShell. ContextMenu – diese Eigenschaft gibt an, ob das Systemkontextmenü für die ausgewählte Datei angezeigt werden soll. ShowFolder – diese Eigenschaft ist für die Anzeige von Ordnern zuständig. ShowHidden – diese Eigenschaft gibt an, ob versteckte Dateien sichtbar sind oder nicht. ShowNonFolders – Diese Eigenschaft ist für die Anzeige von normalen Dateien (nicht von Ordnern) zuständig. TrackShellChanges – Diese Eigenschaft ist dafür zuständig, auf Änderungen im Dateisystem zu reagieren. Wenn ein Ordner in der Komponente geöffnet ist, so wird bei einer Änderung (z. B. beim Kopieren einer Datei dorthin) automatisch auch ein Knoten, der auf diese Datei verweist, zur Komponente hinzugefügt. TfrShellTreeView unterstützt eine Reihe von Hotkeys, die typisch für einen Standard-Dateidialog oder den Explorer in Windows sind (Ctrl+С, Ctrl+V, Delete usw.). Die TfrShellTreeView-Komponente unterstützt auch Drag&Drop von Dateisystemelementen sowohl intern als auch von anderen (aber nicht allen) Dateimanagern. Die OptionsBehavior.AllowDragDrop Eigenschaft wird verwendet, um Drag&Drop-Operationen zu erlauben. Drag&Drop wird mit Funktionen des Betriebssystems durchgeführt. Andere Eigenschaften sind denen der Komponenten TTreeView und TfrTreeView ähnlich. Es ist jedoch zu beachten, dass sie je nach Art der Verwendung in Gruppen eingeteilt sind: OptionsBehavior, OptionsSelection, OptionsShell, OptionsView. So können Sie die benötigten Eigenschaften schneller finden. Wie bereits erwähnt, ist die Komponente dafür ausgelegt, das Dateisystem Ihres Computers anzuzeigen. Standardmäßig ist die Komponente so konfiguriert, dass sie den Stammordner Ihres Systems anzeigt: „Desktop“ unter Windows oder „/“ unter Linux. Die Fähigkeiten der Komponente sind jedoch nicht darauf beschränkt.  Fügen Sie die TfrShellTreeView-Komponente ins Formular ein und öffnen Sie den Editor: Der TfrShellTreeView ähnelt sich im Aussehen den Editoren der TTreeView und TfrTreeView Komponenten, verfügt jedoch über zwei neue Schaltflächen:  New shell Root Item. New shell Root SubItem. Wie wir auf dem Editor-Bildschirm sehen können, kann die Komponente Folgendes enthalten: Normale Knoten , die nur Texte enthalten, wie z.B. „New simple item 1“.  Knoten mit einem Ort im Dateisystem, wie z.B. „Dieser Computer“, „Lazarus“, „Daten“. Diese Knoten werden als Shell-Knoten bezeichnet.  Normale und untergeordnete Knoten werden auf die gleiche Weise wie in normalen TreeViews erstellt und bearbeitet.  Knoten, die einen Verweis auf ein Dateistrukturelement haben, werden mit der Schaltfläche „New shell Root Item“ erstellt. Dadurch wird ein Shell-Knoten der gleichen Ebene wie der aktuelle Knoten erstellt. Wenn Sie auf „New shell Root SubItem“ klicken, wird ein untergeordneter Shell-Knoten in Bezug auf den aktuellen Knoten erstellt.  Bitte beachten Sie, dass ein Shell-Knoten keine untergeordneten Knoten erstellen kann, ein normaler Knoten jedoch schon.  Beim Bearbeiten von Shell-Knoten muss angegeben werden, an welchen Ordner der Knoten gebunden ist. Die Bindung an einen Ordner kann über TfrRootNodes Konstanten festgelegt werden. Diese Konstanten definieren Orte wie den Desktop, automatisches Laden usw. Wenn Sie die rfCustomPath Konstante festlegen, können Sie im folgenden Verzeichnisbaum einen Pfad zu einem Dateisystemordner hinzufügen. Sie können diesen Pfad auch über das Bearbeitungsfenster unterhalb des Verzeichnisbaums festlegen. Zum Beispiel ist im untenstehenden Bildschirm der Pfad zum Lazarus Ordner auf dem Laufwerk C:\ festgelegt.  Wie bei einer normalen TreeView-Komponente können Sie den regulären Komponentenknoten Symbole zuweisen. Den Shell-Knoten können keine Symbole zugewiesen werden, sie verwenden die im Betriebssystem festgelegten Symbole. Für Knoten wird der tatsächliche Symbolindex verwendet, der in der ImageIndex Eigenschaft hinzugefügt wird. Andere Symbolindexe werden nicht verwendet. Aufgrund der Besonderheiten bei der Verwendung der Komponente sind auch einige andere Eigenschaften nicht implementiert. Beispielsweise gibt es keine Möglichkeit, mehrere Elemente auszuwählen. Die am häufigsten verwendete Eigenschaft ist natürlich die TfrShellTreeView.SelectedPath. Wenn ein Shell-Knoten ausgewählt ist, enthält diese Eigenschaft den Pfad zu dem Ordner, auf den dieser Knoten verweist. Andernfalls ist diese Eigenschaft gleich der leeren Zeichenkette.  Darüber hinaus ist der Umgang mit der Komponente durch Programm möglich. Sie können einen normalen (nicht-Shell-) Knoten auf die gleiche Weise hinzufügen wie einen normalen TTreeView.  ``` frShellTreeView1.Items.Add(nil,Edit1.Text); //einen Stammknoten mit dem Text aus Edit1 hinzufügen ``` Hinzufügen eines Knotens zum aktuell ausgewählten Knoten: ``` procedure TForm1.Button5Click(Sender: TObject); var N:TfrShellTreeViewNode; begin N:=(frShellTreeView1.Selected) as TfrShellTreeViewNode; if N=nil then Exit; frShellTreeView1.Items.AddChild(N,Edit1.Text); end; ``` Das Löschen eines Knotens ist ebenso einfach. So wird zum Beispiel der aktuell ausgewählte Knoten gelöscht: ``` procedure TForm1.Button2Click(Sender: TObject); var N:TfrShellTreeViewNode; begin N:=(frShellTreeView1.Selected) as TfrShellTreeViewNode; if N=nil then exit; frShellTreeView1.Items.Delete(N); end; ``` Um einen Knoten zu löschen, können Sie jedoch einfach seine Free-Methode aufrufen. Leider unterstützt die Komponente derzeit nicht die Generierung von Ereignissen, die auftreten, wenn die zugehörigen Dateisystemordner geändert werden. Die übrige Funktionalität der Komponente entspricht weitgehend der Standard-TreeView.  Zusammenfassend lässt sich sagen, dass FastReport nicht nur ein Tool zum Erstellen von Berichten ist, sondern auch eine Quelle für zusätzliche Komponenten, die in Delphi-Anwendungen verwendet werden können. Die TfrShellTreeView bietet eine bequeme Möglichkeit, Dateisystemelemente anzuzeigen und kann in verschiedenen Projekten nützlich sein. Die Bibliothek der FastReport-Komponenten wird ständig erweitert, was dieses Tool für Entwickler noch attraktiver macht. Tags: VCL, FastReport, Interactivity, Delphi, RAD Studio ### Umgang mit Gruppen in der FastReport Cloud URL: https://www.fast-report.com/de/blogs/control-groups-users-cloud Summary: Die FastReport Cloud unterstützt das Hinzufügen mehrerer Benutzer zu einem Arbeitsbereich sowie zu einer Lizenz. Es ist notwendig, die Rechte der Benutzer irgendwie zu differenzieren. Die FastReport Cloud unterstützt das Hinzufügen mehrerer Benutzer zu einem Arbeitsbereich sowie zu einer Lizenz. Es ist notwendig, die Rechte der Benutzer irgendwie zu differenzieren. Die FastReport Cloud unterstützt das Hinzufügen mehrerer Benutzer zu einem Arbeitsbereich sowie zu einer Lizenz. Es ist notwendig, die Rechte der Benutzer irgendwie zu differenzieren. Beispielsweise fügt eine Gruppe Berichtsvorlagen hinzu und eine andere kann nur Berichte erstellen und exportieren, ohne Berechtigung, etwas zu ändern. Die FastReport Cloud  unterstützt das Hinzufügen mehrerer Benutzer zu einem Arbeitsbereich sowie zu einer Lizenz. Es ist notwendig, die Rechte der Benutzer irgendwie zu differenzieren. Beispielsweise fügt eine Gruppe Berichtsvorlagen hinzu und eine andere kann nur Berichte erstellen und exportieren, ohne Berechtigung, etwas zu ändern.  In diesem Artikel erfahren Sie die Grundlagen zum Erstellen und Einrichten von Gruppen für solche Zwecke.  Gehen Sie zum FastReport Cloud-Arbeitsbereich und klicken Sie dann auf den Abschnitt „Gruppen“.   Die Gruppen werden im Menü „Gruppen“ konfiguriert. Standardmäßig sind drei Gruppen konfiguriert: Besitzer: zu dieser Gruppe gehört der Besitzer des Arbeitsbereichs. Der Besitzer verfügt über alle Berechtigungen und kann sie nur im Admin-Bereich und über die API deaktivieren.  Alle Benutzer: Jeder Benutzer, der dem Arbeitsbereich beitritt, wird dieser Gruppe zugewiesen. Die für diese Gruppe aktivierten Berechtigungen gelten für alle Benutzer. Es ist sehr wichtig, die Mindestberechtigungen für diese Gruppe zu konfigurieren, damit neue Benutzer nicht mehr Rechte als nötig haben. Anonym (anonyme Benutzer): Diese Gruppe kann technisch gesehen keine Benutzer enthalten, ist aber eine Möglichkeit, anonymen Zugriff auf bestimmte Dinge im Arbeitsbereich einzurichten. Jede Gruppe hat eine Reihe von Berechtigungen, die festlegen, was der Benutzer in der Gruppe tun kann. Im Allgemeinen ist der Zweck der Berechtigungen aus ihrem Namen ersichtlich, aber wenn Sie Fragen haben, können Sie in der Dokumentation nachsehen. Im Screenshot oben (mit einer unvollständigen Liste der Berechtigungen) können Sie sehen, dass alle möglichen Berechtigungen für anonyme Benutzer standardmäßig deaktiviert sind. Lassen Sie uns eine neue Gruppe erstellen und ihre Berechtigungen von Grund auf neu konfigurieren. Oben links unter dem Wort „Gruppen“ befindet sich ein Eingabefeld zum Hinzufügen einer neuen Gruppe. Geben Sie einen neuen Namen ein und drücken Sie die Eingabetaste. Über das Kontextmenü können Sie eine Gruppe löschen oder umbenennen. Die neue Gruppe wird ohne jegliche Berechtigungen erstellt. In der Registerkarte „Berechtigungen“, die standardmäßig geöffnet wird, können Sie konfigurieren, was die Benutzer tun können.  Zu den Mindestberechtigungen gehört die Gewinnung der Information über den Arbeitsbereich und die Dokumente. Wenn der Benutzer nur diese Berechtigung hat, kann er die Liste und allgemeine Informationen über hochgeladene Dokumente sehen. Und umgekehrt, wenn die hinzugefügte Gruppe keine Berechtigungen hat, die Gruppe „Alle Benutzer“ jedoch schon, kann der Benutzer die Dokumente ebenfalls sehen. Konfigurieren Sie die Berechtigungen wie folgt: Gehen Sie dann zur Registerkarte „Benutzer“. Hier können Sie Benutzer und deren Zugriffe verwalten.  Die Benutzer, die zur Gruppe gehören, werden im oberen Bereich angezeigt, die übrigen im unteren Bereich. Wenn Sie die gleichen Berechtigungen für die Gruppe „Alle Benutzer“ deaktivieren, können nur die Benutzer der neu hinzugefügten Gruppe die Dokumente sehen. Wenn ein Benutzer keine Berechtigungen hat, auch keine grundlegenden, sieht das FastReport Cloud-Menü wie folgt aus: Und wenn Sie diese Berechtigungen zu einer Gruppe hinzufügen, in der nur das Anzeigen von Informationen und die Vorschau von Berichten erlaubt ist, dann sehen die Benutzer Folgendes, wenn sie mit der rechten Maustaste auf die Vorlage klicken: Die grau hinterlegten Aktionen stehen dem Benutzer nicht zur Verfügung, da weder alle Benutzer noch Benutzer in Gruppen, deren Mitglied dieser Benutzer ist, hierzu berechtigt sind.  Tags: Cloud, Customization ### Umgang mit PDF/A-Dateien aus dem FastReport VCL Designer und mit dem Delphi-Code URL: https://www.fast-report.com/de/blogs/export-pdf-a-delphi Summary: Eine detaillierte Analyse des PDF / A-Standards, seiner Unterschiede zu PDF sowie eine Anleitung aus dem FastReport VCL-Designer und dem Delphi-Code. Eine detaillierte Analyse des PDF / A-Standards, seiner Unterschiede zu PDF sowie eine Anleitung aus dem FastReport VCL-Designer und dem Delphi-Code. Eine detaillierte Analyse des PDF / A-Standards, seiner Unterschiede zu PDF sowie eine Anleitung aus dem FastReport VCL-Designer und dem Delphi-Code. Nun fahren wir fort mit der Vorstellung der Export-Möglichkeiten aus FastReport VCL. Mit jedem Update fügt das Entwicklungsteam viele neue und interessante Funktionen hinzu. Heute möchten wir Sie an das Exportformat erinnern, das 2017 hinzugefügt wurde. Es wird um PDF/A und seine Eigenschaften gehen. Das allgemein bekannte PDF-Format (Portable Document Format) gibt es schon seit langem und ist zu Recht sehr beliebt, denn Sie können Dokumente erstellen und sie auf jeder Plattform öffnen, sei es Windows, Linux, iOS und andere. Dieser Vorteil erleichtert die Verwendung von PDF-Dateien als Dokumentenarchiv. Doch nicht alle Dokumente sind für die Archivierung geeignet. Ihr Dokument enthält zum Beispiel Links, verwendet bestimmte Schriftarten (die dem Dokument selbst nicht hinzugefügt werden) oder verwendet Multimediadaten. Ein solches Dokument kann nicht als eigenständig bezeichnet werden. Der PDF/A Standard wurde speziell für die Langzeitarchivierung von Dokumenten entwickelt. Das Format wie das Standard-PDF wurde im Standard ISO 19005-1:2005 genormt. Worin liegt der Unterschied zwischen PDF und PDF/A? Die Hauptanforderung an das PDF/A-Format ist, dass das Dokument nach einer bestimmten Anzahl von Jahren in der gleichen Form reproduziert werden kann. Diese Anforderung wird zunächst durch die Eigenständigkeit des Dokuments sichergestellt, das heißt, das Dokument muss alle erforderlichen Daten (Text, Bitmap- und Vektorbilder, Schriftarten, Farbdaten) in sich selbst enthalten und darf keine externen Links enthalten. Aber der Reihe nach: betrachten wir, was in einem Dokument enthalten sein sollte und was nicht. Es ist verboten: ausführbare Dateien aus dem javascript-Code aufzurufen; Audio- und Videoinhalte zu verwenden; auf Inhalte außerhalb des Dokuments zu verweisen; ein Dokument zu verschlüsseln. Es ist vorgeschrieben: Schriftarten in das Dokument einzubetten; Farbräume unabhängig vom Gerät anzugegeben. Auf diese Weise erhalten wir ein ganzes eigenständiges Dokument, das nicht von externen Daten abhängig ist. Sie können ein solches Dokument jederzeit mit einem Standard-Viewer öffnen. Die garantierte Reproduktion des Dokuments wird auch durch den internationalen Standard gewährleistet. Ein PDF/A-Dokument ist etwas größer als ein normales PDF-Dokument, was auf das Vorhandensein aller darin enthaltenen Daten zurückzuführen ist. Sobald die Vorlage erstellt ist, wechseln Sie in den Vorschaumodus des fertigen Berichts. In der oberen linken Ecke finden Sie PDF-Export. Betrachten wir nun die PDF/A-Standards, die in FastReport VCL verfügbar sind: PDF/A-1a und PDF/A-1b (ISO 19005-1) Die Konformität der Stufe 1B erfordert nur die Einhaltung der Standrads, die notwendig sind, um zuverlässig das visuelle Erscheinungsbild eines Dokuments zu reproduzieren, während die Stufe 1A zusätzlich zu den Funktionen, die für die Verbesserung der Dokumentenverfügbarkeit bestimmt ist, alle Anforderungen der Stufe 1B enthält. Zusätzliche Anforderungen an die 1A-Stufe: Sprachspezifikation. Hierarchische Dokumentstruktur. Markierte Textbereiche und beschreibender Text für Bilder und Symbole Umwandlung von Zeichen in Unicode. Die Konformität der Stufe A sollte die Zugänglichkeit konformer Dateien für Benutzer mit körperlichen Behinderungen verbessern, indem Hilfssoftware wie Bildschirmlesegeräte ermöglicht wird, den Inhalt einer Datei zu extrahieren und genauer zu interpretieren. PDF/A-2 (ISO 19005-2) Der PDF/A-2 Standard wurde um einige Funktionen erweitert, die bereits in PDF 1.5, 1.6 und 1.7 enthalten waren. Der PDF/A-2 ist abwärtskompatibel zu PDF/A -1, d.h. alle PDF/A-1-Dokumente müssen mit PDF/A-2 kompatibel sein. Aber PDF/A-2-Dateien müssen nicht unbedingt mit PDF/A-1 kompatibel sein. Der PDF / A-2 Standard basiert auf PDF 1.7 (wie in ISO 32000-1 festgelegt ist), die eine Reihe von Verbesserungen für den Dokumentenverkehr unterstützt, z. B. JPEG2000-Komprimierung, Transparenz- und Ebeneneffekte, Einbettung von OpenType-Schriften und Bestimmungen für digitale Signaturen nach fortgeschrittenen elektronischen Signaturen in PDF (PDF Advanced Electronic Signatures - PAdES-Standard. PDF / A-2 ermöglicht auch die Archivierung von Dokumentensätzen als separate Dokumente in einer Datei. PDF/A-2 verfügt über folgenden Konformitätsstufen: - PDF / A-2a erfüllt alle ISO 19005-2 Anforderungen; - PDF / A-2b ist eine niedrigere Konformitätsstufe, die die Anforderungen der Norm an das Erscheinungsbild des Dokuments und nicht seine strukturellen und semantischen Eigenschaften abdeckt. PDF/A-3 standard (ISO 19005-3) PDF/A-3 unterscheidet sich von PDF/A-2 in einem wichtigen Punkt. Es unterstützt eingebettete Dateien. Dabei kann es sich nicht nur um andere PDF/A-Dateien (die in PDF/A-2 unterstützt werden), sondern auch um jede andere Datei handeln. Dies ist wichtig für die Archivierung. Wie PDF/A-2 definiert auch PDF/A-3 Konformitätsstufen: PDF/A-3a PDF/а-3А erfüllt alle ISO 19005-3 Anforderungen. PDF/A-3b erfüllt die Mindestanforderungen, die notwendig sind, um zu gewährleisten, dass das Dokument bei einer langfristigen Aufbewahrung in seiner ursprünglichen Form angezeigt wird. In PDF/A-3-Dateien sollten alle eingebetteten Dateien als "nicht archiviert" behandelt werden. Mit anderen Worten: Eine eingebettete Datei gilt als temporär und sollte nicht als Datei für die langfristige Aufbewahrung behandelt werden. Nur der Hauptinhalt eines PDF-Dokuments ist für die langfristige Aufbewahrung bestimmt. Nehmen wir also den PDF/A-Export als Beispiel. Das Fenster Exporteinstellungen wird angezeigt. Klicken Sie auf die Registerkarte Optionen. Hier können Sie den PDF/A-Standard auswählen. Beachten Sie, dass in der Dropdown-Liste 4 Standards verfügbar sind: PDF/A-2a, PDF/A-2b, PDF/A-3a und PDF/A-3b. Hier fehlt der PDF/A-1, da er als veraltet gilt. Beachten Sie, dass die eingebetteten Schriften nicht mehr zur Bearbeitung zur Verfügung stehen, wenn die Option PDF/A ausgewählt wird. Die Schriftarten sind jetzt standardmäßig eingebettet. Dies entspricht den Anforderungen des Standards. Gehen wir alle Exporteigenschaften durch. Page range – Auswahl von Seiten eines Dokuments, die in das PDF-Format exportiert werden sollen. PDF Standard – Auswahl der PDF-Spezifikation (normal bzw. PDF/A). PDF Version – wird jetzt nicht verfügbar sein, da es sich um ein PDF/A handelt, aber mit der normalen Spezifikation werden die PDF-Exportversionen 1.4 bis 1.7 hier verfügbar sein. Compressed – Eigenschaft, die bestimmt, ob die Berichtsdaten komprimiert werden sollen. Embedded fonts – diese Eigenschaft wird in PDF/A deaktiviert, da der Standard die Verwendung von Schriftarten nicht unterstützt. Background – ermöglicht es dem Benutzer, einen Hintergrund mit keinem Wasserzeichen für seinen Bericht zu erstellen. Print optimized - Die PDF-Datei kann für den Druck optimiert werden, wobei die Bildqualität besser, das Format aber auch größer ist. Outline – Eigenschaft zum Aktivieren oder Deaktivieren des Kontur-Renderings. Transparency – Eigenschaft ist für die Anzeige der Transparenz von Objekten zuständig. Dies ist der Abschnitt mit den Service-Informationen, die der PDF-Datei hinzugefügt werden: Name, Verfasser, Thema, Schlüsselwörter (Sie können die PDF-Datei ins Internet stellen, sie werden perfekt indexiert), PDF-Erstellungsmedium, Dokumenthersteller. Sicherheit bzw. Schützen eines Dokuments mit einem Kennwort vor dem Öffnen (Verwendung von RC4). Es geht um die Möglichkeit, das Verbot auf das Drucken, Ändern eines Dokuments, Kopieren von Text oder Grafiken, Hinzufügen oder Ändern von Textnotizen vorzugeben. Einstellung des PDF-Viewers beim Öffnen eines Dokuments: Symbolleiste ausblenden, Menü ausblenden, Benutzeroberflächenfenster ausblenden, Ansichtsfenster maximieren, Fenster zentrieren, auf Druckgröße strecken. Normalerweise werden beim Exportieren Standardeinstellungen verwendet. Dieser Abschnitt enthält Informationen über digitale Signaturen. Um Wiederholungen zu vermeiden, finden Sie hier einen Link zu einem Artikel über diese Funktion und wie sie konfiguriert wird. Link zum Artikel.  Wie man ein PDF/A aus Delphi- oder Lazarus-Code erstellt  ``` procedure TForm1.Button1Click(Sender: TObject); begin {Erstellen Sie einen Bericht. Bevor der Bericht exportiert wird, muss er unbedingt erstellt werden} frxReport1.PrepareReport(); {Legen Sie den Bereich der zu exportierenden Seiten fest. Standardmäßig werden alle Seiten des generierten Berichts exportiert} frxPDFExport1.PageNumbers := '2-3'; {Festlegung des PDF-Standards TPDFStandard = (psNone, psPDFA_1a, psPDFA_1b, psPDFA_2a, psPDFA_2b, psPDFA_3a, psPDFA_3b); Es ist erforderlich, das frxExportPDFHelpers Modul zur uses-Liste: uses frxExportPDFHelpers; hinzuzufügen} frxPDFExport1.PDFStandard := psNone; {Für PDFStandard = psNone kann TPDFVersion = (pv14, pv15, pv16, pv17) eingestellt werden; Es ist erforderlich, das frxExportPDFHelpers Modul zur uses-Liste: uses frxExportPDFHelpers; hinzuzufügen } frxPDFExport1.PDFVersion := pv17; {Für kleinere Dateigrößen kann die Komprimierung eingestellt werden} frxPDFExport1.Compressed := True; {Legen Sie fest, ob Schriftarten in das resultierende Dokument eingebettet werden sollen. Das Einbetten von Schriftarten erhöht die Größe des resultierenden Dokuments erheblich} frxPDFExport1.EmbeddedFonts := False; {Legen Sie fest, ob das Hintergrundbild der Seite exportiert werden soll oder nicht} frxPDFExport1.Background := True; {Deaktivieren Sie den Export von druckoptimierten Objekten. Wenn diese Option aktiviert ist,} {sind die Bilder von hoher Qualität, aber 9-mal größer} frxPDFExport1.PrintOptimized := False; {Legen Sie fest, ob die resultierende PDF-Datei ein externes Inhaltsverzeichnis enthalten soll, wie im Originalbericht} frxPDFExport1.Outline := False; {Ob Bilder mit Transparenz exportiert werden sollen} frxPDFExport1.Transparency := True; {Man kann die gewünschte DPI-Auflösung für Bilder einstellen. Wenn diese Option aktiviert ist,} {wird die SaveOriginalImages-Option deaktiviert, mit der die Bilder in ihrer ursprünglichen Form gespeichert werden können} frxPDFExport1.PictureDPI := 150; {Stellen Sie die Komprimierungsstufe von Bitmap-Bildern ein} frxPDFExport1.Quality := 95; {Legen Sie fest, ob die resultierende Datei nach dem Export geöffnet werden soll} frxPDFExport1.OpenAfterExport := False; {Legen Sie fest, ob der Exportfortschritt angezeigt werden soll (zeigt an, welche Seite gerade exportiert wird)} frxPDFExport1.ShowProgress := False; {Legen Sie fest, ob der Dialog für die Exportfiltereinstellungen angezeigt werden soll} frxPDFExport1.ShowDialog := False; {Legen Sie den Namen der resultierenden Datei fest. Beachten Sie, dass, wenn Sie keinen Dateinamen festlegen} {und die Anzeige des Exportfilterdialogs deaktivieren, der Auswahldialog für den Dateinamen weiterhin angezeigt wird} frxPDFExport1.FileName := 'C:\Output\test.pdf'; {Füllen Sie die zutreffenden Felder der Registerkarte Information aus} frxPDFExport1.Title := 'Your Title'; frxPDFExport1.Author := 'Your Name'; frxPDFExport1.Subject := 'Your Subject'; frxPDFExport1.Keywords := 'Your Keywords'; frxPDFExport1.Creator := 'Creator Name'; frxPDFExport1.Producer := 'Producer Name'; {Füllen Sie die zutreffenden Felder der Registerkarte Security aus} frxPDFExport1.UserPassword := 'User Password'; frxPDFExport1.OwnerPassword := 'Owner Password'; frxPDFExport1.ProtectionFlags := [ePrint, eModify, eCopy, eAnnot]; {Legen Sie die Viewer-Einstellungen fest (Registerkarte Viewer)} frxPDFExport1.HideToolbar := False; frxPDFExport1.HideMenubar := False; frxPDFExport1.HideWindowUI := False; frxPDFExport1.FitWindow := False; frxPDFExport1.CenterWindow := False; frxPDFExport1.PrintScaling := False; {Exportieren Sie den Bericht} frxReport1.Export(frxPDFExport1); end; ``` Zusammenfassung. PDF ist ein offener Standard, der allen Softwareentwicklern zur Verfügung steht. Er wurde speziell dafür entwickelt, um sicherzustellen, dass alle Daten unabhängig von der verwendeten Software, dem Betriebssystem, den installierten Schriftarten usw. genau gleich aussehen. FastReport VCL löst diese Aufgabe seit vielen Jahren sehr gut und wird sich auch in Zukunft weiterentwickeln, um den Anforderungen der Benutzer gerecht zu werden. Tags: VCL, Export, FastReport, PDF ### Umgang mit XML- und JSON-Formaten in FastScript URL: https://www.fast-report.com/de/blogs/xml-json-fast-script Summary: In diesem Artikel werden wir genauer untersuchen, wie man mit JSON und XML in FastReport arbeitet, welche Eigenschaften und Methoden darin enthalten sind, und Berichte aus dem Code mit Skripten erstellen. In diesem Artikel werden wir genauer untersuchen, wie man mit JSON und XML in FastReport arbeitet, welche Eigenschaften und Methoden darin enthalten sind, und Berichte aus dem Code mit Skripten erstellen. XML und JSON sind inzwischen zu den wichtigsten Standards für die Datenspeicherung und den Informationsaustausch zwischen Computersystemen geworden. Als Reaktion auf Benutzeranfragen wurden Klassen für die Arbeit mit XML und JSON zu FastScript hinzugefügt. In diesem Artikel sehen wir uns genauer an, wie man mit diesen Klassen arbeitet, über welche Eigenschaften und Methoden sie verfügen und wie man Berichte aus Skriptcode erstellt. XML und JSON sind inzwischen zu den wichtigsten Standards für die Datenspeicherung und den Informationsaustausch zwischen Computersystemen geworden. Als Reaktion auf Benutzeranfragen wurden Klassen für die Arbeit mit XML und JSON zu FastScript hinzugefügt. In diesem Artikel sehen wir uns genauer an, wie man mit diesen Klassen arbeitet, über welche Eigenschaften und Methoden sie verfügen und wie man Berichte aus Skriptcode erstellt. XML-Format In Skripten werden 2 Klassen verwendet, um mit XML zu arbeiten. Diese Klassen sind auf maximale Leistung und geringen Speicherverbrauch ausgerichtet. TfrXMLDocument – ist eine Klasse, die die Funktionalität eines XML-Dokuments kapselt. Die folgenden Eigenschaften und Methoden sind in dieser Klasse verfügbar. Eigenschaften und Methoden der Klasse Beschreibung procedure SaveToStream(Stream: TStream); speichert XML im übergebenen Stream procedure LoadFromStream(Stream: TStream; AllowPartialLoading: Boolean = False); lädt XML aus dem übergebenen Stream hoch procedure SaveToFile(const FileName: string); speichert XML in einer Datei mit dem angegebenen Namen procedure LoadFromFile(const FileName: string); lädt XML aus einer Datei mit dem angegebenen Namen hoch procedure Clear; Entfernt alle XML-Knoten aus dem Baum außer dem Stammknoten. Der Inhalt des Knotens wird NICHT geleert. property Root: TfrXMLItem; ermöglicht den Zugriff auf das Stammelement des Baums property AsText: string; ermöglicht, XML als Zeichenkette abzurufen und festzulegen (mit dieser Eigenschaft können Sie beispielsweise XML mithilfe einer Berichtsvariablen an ein Berichtsskript übergeben) property AutoIndent: Boolean; legt fest, wie die XML-Ausgabe generiert werden soll: als einzelne Zeile oder als eingerückter Text TfrXMLNode – a class that encapsulates the properties of an XML document node. You cannot create an object of this type directly. It is created by calling the Add() method of the element to which you want to add a child element. Let’s take a closer look at the properties and methods of the TfrXMLNode class. Eigenschaften und Methoden der Klasse Beschreibung function Add(AName:string):TfrXMLItem; erstellt ein untergeordnetes TfrXMLItem Element mit dem angegebenen Namen und gibt es zurück procedure Clear; löscht die Liste der untergeordneten Elemente procedure InsertItem(Index:integer; AItem: TfrXMLItem); fügt ein untergeordnetes Element an der angegebenen Position ein; das Element kann zu einem anderen Dokument gehören function Find(AName:string):Integer; sucht unter den untergeordneten Elementen ein TfrXMLItem mit dem angegebenen Namen und gibt es zurück. Wenn das Element nicht gefunden wird, wird -1 zurückgegeben. Wenn es mehrere Elemente mit dem angegebenen Namen gibt, wird das erste von ihnen zurückgegeben function FindItem(AName:string):TfrXMLItem; sucht unter den untergeordneten Elementen ein TfrXMLItem mit dem angegebenen Namen und gibt es zurück. Wenn das Element nicht gefunden wird, wird ein neues Element mit dem angegebenen Namen erstellt und zurückgegeben. Wenn es mehrere Elemente mit dem angegebenen Namen gibt, wird das erste von ihnen zurückgegeben. function Root: TfrXMLItem; gibt das Stammelement des Dokuments zurück property Count:Integer; Gibt die Anzahl der untergeordneten Knoten des Elements zurück property Items[AIndex:Integer]: TfrXMLItem; gibt ein untergeordnetes Element anhand seines Indexes zurück property Prop[AName:string]:string; gibt den Wert des Knotenattributs mit dem angegebenen Namen zurück oder legt ihn fest  property Name: string; Name des Element-Tags property Parent: TfrXMLItem; Name des übergeordneten Elements. Bei Root ist es gleich nil property Text:string; Eine Zeichenkette mit einer Liste von Knotenparametern in der folgenden Form: Name1=”Value1” Name2=”Value2”… Sonderzeichen sind in dieser Zeichenkette Escapezeichen. procedure Delete(AIndex: Integer); löscht das untergeordnete Element mit dem AIndex-Index  procedure DeleteProp(const APropName: string); löscht ein Knotenattribut mit dem angegebenen Namen property Value: string; Text, der zwischen dem öffnenden und dem schließenden Tag des Elements steht function PropExists(APropName:string):Boolean; hilft festzustellen, ob ein Element ein Attribut mit dem angegebenen Namen hat function IndexOf(AItem: TfrXMLItem):Integer; gibt den Index des übergebenen Elements zurück function GetPropNames(ANames:TStrings); Füllt die übergebene Zeichenkettenliste mit TfrXMLItem-Attributnamen Versuchen wir, einen Bericht mithilfe von Klassen für das Arbeiten mit XML zu erstellen. Als Beispiel werden wir Daten aus der Datei „country.xml“ in einem Bericht anzeigen, dabei jedoch nicht TClientDataSet verwenden, sondern auf die XML-Datei direkt zugreifen. Erstellen Sie einen neuen Bericht, wechseln Sie in den Bearbeitungsmodus und fügen Sie MasterData in den Bericht ein. Und obendrauf fügen Sie mehrere Memos hinzu, um die Daten anzuzeigen. Erstellen Sie außerdem das OnBeforePrint Ereignis für das MasterData-Objekt.  Der endgültige Code des Berichtsskripts sieht wie folgt aus: ``` var doc: TfrXMLDocument; item: TfrXMLItem; IIndex: Integer;   procedure MasterData1OnBeforePrint(Sender: TfrxComponent); var cur: TfrXMLItem; S: string; begin cur := item[IIndex]; mmNum.Text := cur.Prop['Code']; mmName.Text := cur.Prop['Name']; mmCapital.Text := cur.Prop['Capital']; mmArea.Text := cur.Prop['Area']; mmPopulation.Text := cur.Prop['Population']; mmContinent.Text := cur.Prop['Continent']; Inc(IIndex); end;   begin Doc := TfrXMLDocument.Create; Doc.LoadFromFile('..\..\Data\country.xml'); item := Doc.Root[1]; IIndex := 0; MasterData1.RowCount := item.count; end. ``` Führen Sie den Bericht aus. Zur besseren Lesbarkeit haben wir auch Spaltenüberschriften hinzugefügt. JSON Format Wechseln wir vom XML-Format zu JSON-Format. FastReport verwendet auch 2 Klassen um mit JSON zu arbeiten. Das sind TfrJSON und TfrJSONArray . In diesem Fall sind diese Klassen nur ein Wrapper um Klassen von System.JSON in der Delphi Plattform oder ähnliche Klassen in Lazarus. TfrJSONObject  ist eine Klasse, die Funktionen für die Arbeit mit JSON-Objekten kapselt.  Eigenschaften und Methoden der Klasse Beschreibung function Create(const JSONstring: string); erzeugt ein JSON-Objekt und füllt es mit der übergebenen Zeichenkette function IsValid:Boolean; gibt True zurück, wenn das Objekt gültiges JSON enthält procedure LodFromFile(const AFilName:string); lädt Daten aus der angegebenen Datei. Wenn das Objekt Daten enthält, gehen diese verloren procedure LoadFromtStream(const AStream:TStream); lädt Daten aus dem übergebenen Stream. Wenn das Objekt Daten enthält, gehen diese verloren function ToString:string;   gibt eine Zeichenkette zurück, die die alphabetische Darstellung des JSON-Objekts enthält procedure SaveToFile(const AFileName: string); speichert die alphabetische Darstellung eines JSON-Objekts in einer Datei procedure SaveToStream(AStream: TStream speichert die alphabetische Darstellung eines JSON-Objekts in einem Stream function IsNameExists(const AName:string); gibt True zurück, wenn das Objekt eine Eigenschaft mit dem angegebenen Namen hat function IsNameValueExists(const Name, Value: string): boolean; gibt True zurück, wenn das Objekt eine Eigenschaft mit dem angegebenen Namen hat und ihr Wert mit dem angegebenen Wert übereinstimmt function Count:Integer; gibt die Gesamtzahl der Eigenschaften eines JSON-Objekts zurück property Names[AIndex:Integer]:string; gibt den Namen der Eigenschaft mit dem angegebenen Index zurück Property ValueType[IndexOrName:Variant]:TfrJSONType; gibt den Typ der Eigenschaft mit dem angegebenen Index oder Namen zurück. Der Typ kann einer der folgenden Werte sein:  – jsUnknown – der Eigenschaftstyp ist unbekannt (es ist ein Parsing-Fehler aufgetreten oder es gibt keine Eigenschaft mit diesem Index oder Namen). – jsNumber – die Eigenschaft ist vom numerischen Typ. – jsString – die Eigenschaft ist vom Zeichenkettentyp. – jsBoolean – die Eigenschaft ist vom Booleschen Typ (true/false). – jsNull – der Eigenschaftstyp ist null (der Wert ist nicht festgelegt). – jsList – der Eigenschaftentyp ist ein JSON-Array. – jsObject – der Eigenschaftstyp ist ein verschachteltes JSON-Objekt. Mit den folgenden Eigenschaften können Sie die Werte eines JSON-Objekts in der einen oder anderen Form abrufen. Bei allen diesen Eigenschaften erfolgt die Indizierung entweder über die Eigenschaftsnummer in der Eigenschaftsliste oder über ihren Namen. Beachten Sie, dass AsString[‘1’] <> AsString[1] nicht gleich sind. Auch wenn Sie versuchen, den Eigenschaftswert mit einer ungeeigneten Methode abzurufen, können Fehler auftreten und falsche Eigenschaftswerte zurückgegeben werden. Wenn eine Eigenschaft beispielsweise vom Typ „Objekt“ oder „Array“ ist und Sie versuchen, ihren Wert mithilfe der Eigenschaft „AsString“ abzurufen, erhalten Sie eine leere Zeichenkette zurück. In anderen Fällen gibt AsString eine Zeichenkettendarstellung des Eigenschaftswerts zurück. Eigenschaften und Methoden der Klasse Beschreibung property AsObject[IndexOrName: Variant]: TfrxJSON; ermöglicht es, ein verschachteltes JSON-Objekt abzurufen property AsArray[IndexOrName: Variant]: TfrJSONArray; ermöglicht es, ein verschachteltes JSON-Array abzurufen Property AsString[IndexOrName: Variant]: string; ermöglicht es, den Eigenschaftswert als Zeichenkette anzurufen. Diese Methode kann auf Eigenschaften von anderen Typen als Objekten und Arrays angewendet werden. Für logische Werte wird eine Zeichenkette mit dem Wert „True“ oder „False“ zurückgegeben. Bei Zahlen mit einem Bruchteil wird unabhängig von den regionalen Einstellungen immer ein Punkt als Dezimaltrennzeichen verwendet. property AsNumber[IndexOrName: Variant]: Extended; ermöglicht es, den Eigenschaftswert als Zahl abzurufen. Wenn die Eigenschaft nicht numerisch ist, wird 0 zurückgegeben property AsBoolean[IndexOrName: Variant]: Boolean; ermöglicht es, den Eigenschaftswert als Booleschen Wert abzurufen. Wenn die Eigenschaft von einem anderen Typ ist, wird False zurückgegeben.  Um ein Nullfeld zurückzugeben, müssen Sie sich etwas mehr Mühe geben. Im Allgemeinen gibt es keine solche Methode. Sie können jedoch die ValueType-Eigenschaft verwenden, die für ein Nullfeld jsNull zurückgibt, oder die AsString-Eigenschaft verwenden, die die Zeichenkette „null“ zurückgibt. Betrachten wir näher die Methoden zur Behandlung von Objekteigenschaften. Methoden der Klasse Beschreibung Procedure Delete(AName: String);   löscht die Eigenschaft des Objekts mit dem angegebenen Namen function AddObject(const AName: string): Integer fügt dem Objekt ein leeres untergeordnetes Objekt mit dem angegebenen Namen hinzu function AddArray(const AName: string): Integer; fügt dem Objekt ein leeres Array mit dem angegebenen Namen hinzu function AddString(const AName, AValue: string): Integer; fügt dem Objekt eine Zeichenkette mit dem angegebenen Namen hinzu function AddBool(const AName: string; AValue: boolean): Integer; fügt dem Objekt einen booleschen Wert mit dem angegebenen Namen hinzu function AddNumber(const AName: string; AValue:Extended): Integer; fügt dem Objekt einen numerischen reelen Wert mit dem angegebenen Namen hinzu function AddInteger(const AName: string; AValue:Integer): Integer; fügt dem Objekt einen numerischen Ganzzahlwert mit dem angegebenen Namen hinzu function AddNull(const AName: string): Integer; Fügt dem Objekt einen Nullwert mit dem angegebenen Namen hinzu Die Methoden geben eine Ganzzahl zurück, die den Index des hinzugefügten Elements in der Liste aller Felder darstellt. Alle Methoden, die einem Objekt Felder hinzufügen, überwachen nicht, ob bereits Felder mit gleichem Namen vorhanden sind. Die Verantwortung dafür liegt beim Programmierer, der diese Klasse verwendet. Diese Überwachung ist notwendig, um zu verhindern, dass mehrere Felder mit denselben Namen in der JSON-Ausgabe erscheinen. Das Verhalten des Systems in diesem Fall ist nicht definiert - es hängt vom Parser ab, der das empfangene JSON weiter parst. Das bedeutet, dass jeder beliebige Wert mit demselben Namen in der Arbeit erscheinen kann!  Die Klasse TJSONArray kapselt Methoden und Eigenschaften für die Arbeit mit JSON-Arrays. Die Grundeigenschaften sind grundsätzlich gleich, aber auf sie kann nur per Index zugegriffen werden. Es werden nur Operationen unterstützt, die auf ein beliebiges Element zugreifen, seinen Wert abfragen oder ein Element löschen. Es ist nicht möglich, Elemente im Array zu verschieben oder ihren Typ zu ändern. Betrachten wir die Eigenschaften und Methoden zum Abrufen der Werte von Elementen in dieser Klasse. Eigenschaften und Methoden der Klasse Beschreibung function Count:Integer; gibt die Anzahl der Elemente in einem Array zurück property ValueType[AIndex: Integer]: TfrJSONType; gibt den Typ des Array-Elements mit dem angegebenen Index zurück property AsObject[AIndex: Integer]: TfrJSONObject; gibt ein Objekt zurück, das den Zugriff auf ein Array-Element als JSON-Objekt ermöglicht Property AsArray[AIndex: Integer]: TfrJSONArray gibt ein Objekt zurück, das den Zugriff auf ein Array-Element als JSON-Array ermöglicht property AsString[AIndex: Integer]: string; gibt den Wert eines Array-Elements als Zeichenkette zurück property AsNumber[AIndex: Integer]: Extended; gibt den Wert eines Array-Elements als Zahl zurück property AsBoolean[AIndex: Integer]: Boolean; gibt den Wert eines Array-Elements als booleschen Wert zurück Wie bei einem Objekt sollten Sie beim Abrufen von Werten von Array-Elementen vorsichtig sein. Je nach dem Wert-Typ sollten Sie die entsprechende Methode verwenden, um ihn abzurufen. Nachfolgend werden Methoden zum Bearbeiten von Elementen eines JSON-Arrays beschrieben. Eigenschaften und Methoden der Klasse Beschreibung procedure Delete(AIndex:Integer); lLöscht ein Array-Element mit einem angegebenen Index function AddObject: Integer; fügt ein verschachteltes JSON-Objekt am Ende des Arrays hinzu function AddArray: Integer; fügt ein verschachteltes JSON- Array am Ende des Arrays hinzu function AddString(const AValue: string): Integer; fügt eine Zeichenkette am Ende des Arrays hinzu function AddBool(AValue: boolean): Integer; fügt einen booleschen Wert am Ende des Arrays hinzu function AddNumber(AValue:Extended): Integer; fügt eine reelle Zahl am Ende des Arrays hinzu function AddInteger(AValue: Integer): Integer; fügt eine Ganzzahl am Ende des Arrays hinzu function AddNull: Integer; fügt Null am Ende des Arrays hinzu Alle diese Methoden geben die Position des zum Array hinzugefügten Elements zurück. Sie können kein Element in die Mitte eines Arrays einfügen – dies ist eine Einschränkung der Basisklassen in System.JSON. Besonderheiten der Verwendung von Klassen für den JSON-Zugriff  Bei der Verwendung von Objekten ist zu beachten, dass alle Wrapper-Objekten nach ihrer Verwendung aus dem Code entfernt werden müssen.  Bitte beachten Sie, wenn Sie ein untergeordnetes Objekt oder Array abrufen möchten und stattdessen ein Skalarwert oder überhaupt kein Wert vorhanden ist, gibt die Eigenschaft „nil“ zurück und der weitere Zugriff auf eine solche Eigenschaft führt zu einer Ausnahme. Sie sollten keine Methoden verwenden, die nicht für die Arbeit mit Werten bestimmter Typen ausgelegt sind, die in einem Element gespeichert sind, um diese Werte abzurufen.  Beachten Sie auch, dass bei den Namen der Objekteigenschaften zwischen Groß- und Kleinschreibung unterschieden wird , d.h., „Item1“ und „item1“ sind unterschiedliche Namen! Sie können den Objektelementen nur dann Werte zuweisen, wenn der Typ dieser Werte mit dem Typ übereinstimmt, der dem Element zugewiesen ist. Wenn Sie einen Elementtyp neu definieren müssen, löschen Sie dieses Element und fügen Sie ein neues Element mit demselben Namen und dem erforderlichen Typ hinzu. Es ist nicht möglich, neue Werte für Array-Elemente einzugeben. Sie müssen ein JSON-Array löschen und es dann mit den gewünschten Werten neu erstellen. Verwenden wir die oben beschriebenen Klassen und schreiben ein Skript, das Daten (ohne Typinformationen) aus einer XML-Datei extrahiert und in ein JSON-Objekt einfügt. ``` procedure XMLToJSON; var XML: TfrXMLDocument; xi, xi1: TfrXMLItem; I, J: Integer; JO: TfrJSONObject; JA, JA1: TfrJSONArray; SL: TStringList; begin XML:=TfrXMLDocument.Create; XML.LoadFromFile('.\..\..\data\country.xml'); JO:=TfrJSONObject.Create('{}'); JO.AddArray('data'); JA:=JO.AsArray['data']; xi:=X.Root[1]; xi1:=xi.Items[0]; SL:=TStringList.Create; xi1.GetParamNames(SL); for I:=0 to xi.Count - 1 do begin xi1:=xi.Items[I]; JA1:=JA.AsArray[JA.AddArray]; for J:=0 to SL.Count-1 do JA1.AddString(xi1.Prop[SL[J]]); JA1.Free; end; JA.Free; JO.SaveToFile('.\..\..\data\country.json'); JO.Free; SL.Free; end; ``` Versuchen wir nun, einen Bericht auf der Grundlage der erhaltenen Daten zu erstellen (fügen Sie die entsprechenden Komponenten MasterData und Memo auf der Berichtsseite ein): ``` var J:TfrJSONObject; A:TfrJSONArray; curr:Integer;   procedure MasterData1OnBeforePrint(Sender: TfrxComponent); var A1:TfrJSONArray; begin A1:=A.AsArray(curr); Memo1.Memo.Text:=A1.AsString[0]; Memo2.Memo.Text:=A1.AsString[1]; Memo3.Memo.Text:=A1.AsString[2]; Memo4.Memo.Text:=A1.AsString[3]; Memo5.Memo.Text:=A1.AsString[4]; Memo6.Memo.Text:=A1.AsString[5]; A1.Free; curr := curr + 1; end;   begin J:=TfrJSONObject.Create(''); J.LoadFromFile('.\..\..\data\country.json'); A:=J.AsArray[0]; MasterData1.RowCount:=A.Count; curr:=0; end. ``` Sie können diese Objekte auch im Delphi-Code verwenden - verbinden Sie einfach die frXML- und frJSON-Module in der uses-Anweisung.  Schlussfolgerung In diesem Artikel haben wir die Verwendung von Klassen für die Arbeit mit JSON und XML in FastReport betrachtet. Wenn Sie sowohl in Delphi als auch in Lazarus nicht nur Berichte entwickeln, wird die Verwendung dieser Klassen Probleme reduzieren, wenn Sie von einer Umgebung zur anderen wechseln. In beiden IDEs ist das Verhalten gleich.  Zu Ihrem Komfort haben wir zwei Beispiele beigefügt, die die Erstellung von XML- und JSON-basierten Berichten veranschaulichen. Sie können sie sofort in FastReportDemo öffnen und ausführen, das im Lieferumfang von FastReport enthalten ist. Möglicherweise müssen Sie die Berichte vor dem Start konfigurieren – geben Sie den richtigen Pfad zur Datendatei „country.xml“ an. Sie befindet sich sowohl im DemoCenter als auch im Ordner mit den Beispielen.  Beispiele herunterladen Tags: VCL, FastScript, JSON, Script, Report, Delphi ### Umschläge aus der Liste der Adresse drucken URL: https://www.fast-report.com/de/blogs/print-envelopes-address-list In diesem Artikel geht es um den Druck der Umschläge mit den Adressen, die in einer csv Datei gespeichert sind. In dieser Datei befindet sich eine Tabelle mit 3 Spalten: Name, Adresse und ZIP (PLZ). Das sind die Personen, die Sie zur Hochzeit einladen möchten. In diesem Fall dauert das manuelle Schreiben auf jeden Umschlag den Namen von Absender und Empfänger viel Zeit. Wir machen einen automatisierten Druck der Aufkleber für Umschläge mit Hilfe von FastReport. Weiter bleibt es nur, diese Briefe zu senden. Wir erstellen eine Liste im csv Format in Excel mit drei Spalten: Name, Adresse und ZIP: Wir erstellen weiter einen neuen Bericht und verwenden "master of labels": Und klicken die Taste "Custom label": Wählen die Papier-Große – "DL envelope": Wir setzen die Zahl der Zeilen und Spalten als 1 ein und aktivieren "Querformat" und tauschen die Große und die Breite des Aufklebers miteinander um: Diesen Umtausch machen wir, um einen Aufkleber zu erstellen, der dem Umschlag mit der Große 110 mal 220 mm. passt. Wir fügen weiter eine Datenquelle im Bericht hinzu und aktivieren die Eigenschaft „Field names in first string“, die fürs Zeigen von Namen der Felder verantwortlich ist: Weiter aktivieren wir die Tabelle mit drei Felder: Und erstellen eine einfache Schablone: Oben links – die Adresse des Absenders, unten rechts – die Adresse des Empfängers. Weiter starten wir die Vorschau des Berichts: Wir bekommen die Aufkleber für den Post-Umschlag und klicken die Druck-Taste. Tags: .NET, .NET, FastReport, FastReport, Desktop, Desktop, CSV, CSV, Printing, Printing ### Umstellung auf ein neues Produktformungssystem URL: https://www.fast-report.com/de/news/fastreport-packs Summary: Wir ändern unsere Strategie zur Gestaltung von Produktpaletten: Das neue System wird es ermöglichen, nur noch die Komponenten und Plattformen auszuwählen, die für die Entwicklung benötigt werden. Wir ändern unsere Strategie zur Gestaltung von Produktpaletten: Das neue System wird es ermöglichen, nur noch die Komponenten und Plattformen auszuwählen, die für die Entwicklung benötigt werden. Am 1. Juni wird Fast Reports auf ein neues Produktformungssystem umgestellt. Bisher wurde die Produktpalette nach dem Prinzip "Produkt + Plattform" aufgebaut, und die Plattformkompatibilität wurde dem gesamten Tool nachträglich hinzugefügt. Jetzt wird ein Softwareprodukt eine spezifischere Gruppe von Komponenten darstellen, die eine größere Auswahl für die spezifischen Bedürfnisse der Entwickler bieten. Wir haben die Produkte in eine Reihe von Komponenten zerlegt und sie so kombiniert, dass Sie nicht mehr für unnötige oder ungenutzte Funktionen bezahlen müssen. Das macht unsere Softwarelösungen flexibler. Sie können nun nicht mehr den gesamten Reportgenerator, z.B. FastReport .NET, kaufen, sondern nur noch die Komponenten, die Sie benötigen. Wir haben die Auswahlmöglichkeit der Edition nach der Anzahl der Arbeitsplätze sowie die Möglichkeit, eine separate Version mit Quellcode oder Webkomponenten zu erwerben, beibehalten. Außerdem wird es die Ultimate-Edition geben, die ein Maximum an Komponenten und zusätzliche Tools für die Arbeit mit Berichten enthält. Die Änderungen werden am 1. Juni 2024 in Kraft treten. Mehr über die Pakete und Preise können Sie hier erfahren: Delphi Richtung .NET Richtung ### Umstellung vom FastReport Publisher auf den Corporate Server URL: https://www.fast-report.com/de/blogs/transition-publisher-corporate-server Summary: In diesem Artikel betrachten wir die Voraussetzungen für den Ersatz des Publishers durch einen Corporate Server mit einem Migrationsplan. In diesem Artikel betrachten wir die Voraussetzungen für den Ersatz des Publishers durch einen Corporate Server mit einem Migrationsplan. Die Unterschiede zwischen dem Publisher und dem Corporate Server bzw. der Cloud haben wir bereits im vorherigen Artikel beleuchtet. In diesem Artikel betrachten wir die Voraussetzungen für den Ersatz des Publishers durch einen Corporate Server mit einem Migrationsplan. Die Unterschiede zwischen dem Publisher und dem  Corporate Server bzw. der Cloud  haben wir bereits im vorherigen  Artikel beleuchtet. In diesem Artikel betrachten wir die Voraussetzungen für den Ersatz des Publishers durch einen Corporate Server mit einem Migrationsplan. Wann ist es Zeit für die Umstellung auf den Corporate Server? Der FastReport Publisher ist eine Lösung, die für ein kleines Unternehmen, das keine große Anzahl von Benutzern, keine Verbindung zu verschiedenen Datenquellen und keine Skalierbarkeit mit Kubernetes benötigt, völlig ausreichend ist. Doch mit der Zeit wächst das Unternehmen und damit auch sein Bedarf an Berichterstellung und Dokumentenmanagement. Neue Abteilungen und Niederlassungen entstehen, und es kommt die Zeit, die Infrastruktur zu modernisieren. Um sicherzustellen, ob Sie weitere Berichtsserver-Funktionen benötigen, sehen Sie sich die Vergleichstabelle unter diesem Link an. Als nächstes betrachten wir die Umstellung vom FastReport Publisher auf den FastReport Corporate Server.  Anleitung zur schnellen Umstellung von einer Lösung zur anderen  Sie müssen zunächst eine Corporate Server Lizenz erwerben und dann einen neuen Produktschlüssel erhalten. Dies kann auf zwei Arten geschehen: Füllen Sie das Formular aus und ein Kundenberater wird sich mit Ihnen in Verbindung setzen. Oder schreiben Sie an sales@fast-report.com  und unser Team wird Ihnen schnell helfen, eine neue Lizenz zu erwerben. Als nächstes müssen Sie den Schlüssel in der Konfigurationsdatei ersetzen. Sobald Sie den neuen Schlüssel erhalten haben, sollten Sie ihn in die Konfigurationsdatei appsettings.Production.json im Ordner mit dem installierten Publisher einfügen. Finden Sie dazu das Feld „License“ in der Datei und geben Sie einen neuen Wert für den Lizenzschlüssel ("License": "Ihr neuer Schlüssel") ein. Der nächste Schritt ist der Neustart des Dienstes. Nach der Installation des neuen Schlüssels sollten die Dateien DockerShutdownServer.bat und DockerStartServer.bat nacheinander ausgeführt werden. Sie enthalten Befehle zum Deaktivieren des Dienstes (docker-compose down) und zum anschließenden Aktivieren (docker-compose up). Nach dem Ausführen dieser Dateien ist der Corporate Server unter der vorherigen Adresse (standardmäßig https://localhost:8080 ) ohne vorherige Einschränkungen verfügbar. Kubernetes kann bei Bedarf konfiguriert werden. Oben wurde der Corporate Server auf einem Computer mit docker-compose ausgeführt. Wenn Sie jedoch mehr Rechenressourcen und eine höhere Skalierbarkeit mit Fehlertoleranz benötigen, sollten Sie die Lösung auf die Kubernetes-Plattform oder eine gleichwertige Plattform umstellen. Um Ihren Berichtscluster zu konfigurieren, lesen Sie die Anleitung zur Installation des Corporate Servers auf Kubernetes. Schlussbemerkung Wir haben die Gründe und Möglichkeiten für ein Upgrade des Dokumentenerstellungssystems vom Publisher auf ein älteres Modell, den Corporate Server betrachtet. Sollten bei der Umstellung Schwierigkeiten oder Fehler auftreten, wenden Sie sich an unser Support Team . Unser erfahrenes Team hat die Antworten auf Ihre Fragen und bietet Problemlösungen an. Tags: FastReport, Publisher, Corporate Server ### Unterstützung von NET 7 in FastReport .NET update 2023.1 URL: https://www.fast-report.com/de/news/fastreport-net-2023.1 Summary: Ihnen folgendes präsentieren zu können: FastReport Cloud-Teilintegration, .NET 7-Unterstützung, JasperReports-Vorlagen-Konverter, Verbindung zu in MsSQL gespeicherten Prozeduren und vieles mehr. Ihnen folgendes präsentieren zu können: FastReport Cloud-Teilintegration, .NET 7-Unterstützung, JasperReports-Vorlagen-Konverter, Verbindung zu in MsSQL gespeicherten Prozeduren und vieles mehr. Das Herbst-Update für den Berichtsgenerator ist ab sofort verfügbar! Die Funktionalität unserer Lösungen wird täglich erweitert und wir freuen uns, Ihnen folgendes präsentieren zu können: FastReport Cloud-Teilintegration, .NET 7-Unterstützung, JasperReports-Vorlagen-Konverter, Verbindung zu in MsSQL gespeicherten Prozeduren und vieles mehr. FastReport Cloud Integration FastReport .NET, FastReport Core, FastReport Mono unterstützen jetzt teilweise die FastReport Cloud Interaktion.  Herunterladen und Hochladen von Berichten  Sie können nun Ihren Bericht aus dem Cloud-Speicher herunterladen und ihn im Designer bearbeiten oder umgekehrt Ihre Dateien in die Cloud hochladen. Web-Vorschau Zusätzlich zur Standardvorschau ist jetzt auch eine Web-Vorschau möglich. Der Bericht kann in der Web-Vorschau nur dann angezeigt werden, wenn er aus der Cloud geöffnet ist. Verbindung mit FastReport Cloud Datenquellen  Die FastReport Cloud kann Verbindungen mit Datenquellen speichern. Ab jetzt haben Sie die Möglichkeit, diese Datenquellen zu Ihrem eigenen Bericht hinzuzufügen.  Es ist jetzt auch möglich, eine Verbindung in die Cloud hochzuladen. Wenn Sie mehr über die neuen Funktionen erfahren möchten, lesen Sie bitte diesen Artikel. .NET 7-Unterstützung Es wurde die  .NET 7 -Unterstützung für FastReport.Core und FastReport.CoreWin hinzugefügt. Diese Plattform verbessert die Anwendungsleistung und bietet viele neue Funktionen für Ihre Projekte. Verbesserungen im Berichtsvalidator Erhöhte Leistungsgeschwindigkeit Die Berichtsvalidierung läuft jetzt in einem separaten Stream. Auch die Geschwindigkeit wurde deutlich optimiert. Sie können die Änderungen bei der Verarbeitung von Berichten mit einer großen Anzahl von Fehlern feststellen. Während der Validator den Bericht überprüft, wird im Validierungsfenster eine entsprechende Meldung angezeigt. Dabei können Sie den Bericht bearbeiten. Wenn der Validator fertig ist, wird eine Fehlertabelle angezeigt. Einrichten der Validierungstabelle  Zur Benutzerfreundlichkeit wurde eine neue Spalte mit Fehlernummern hinzugefügt. Sie kann über das Kontextmenü der Tabelle aktiviert oder deaktiviert werden. Auf die gleiche Weise können Sie die Anzeige der Spalte für die Fehlerart anpassen. JasperReports-Vorlagen-Konverter  Es wurde die Möglichkeit hinzugefügt, Berichtsvorlagen aus JasperReports in FastReport .NET-Vorlagen zu konvertieren. JasperReports-Berichte können Objekte enthalten, die vom FastReport-Designer nicht unterstützt werden. Diese Objekte werden nicht konvertiert oder durch andere ersetzt, damit der erstellte Bericht dem in JasperReports erstellten Bericht so ähnlich wie möglich aussieht. Mehr dazu lesen Sie im Artikel. Verbesserungen und Korrekturen am MSChartObject Das MSChartObject hat eine große Anzahl von Eigenschaften und Einstellungen. Die am häufigsten verwendeten sind im Objekteditor gesammelt. Eigenschaften, die im Editor nicht verfügbar sind, können mit dem Objektinspektor geändert werden. Es gab jedoch ein Problem mit diesen Eigenschaften - wenn sie geändert wurden, wurde der Bericht nicht als geändert betrachtet. Infolgedessen war es unmöglich, diesen zu speichern. Um den Bericht zu speichern, musste eine andere Eigenschaft oder ein anderes Objekt geändert werden. Darüber hinaus wurden bei der Erstellung eines Berichts und nach dem Schließen des Vorschaufensters die Werte dieser Eigenschaften auf ihre Standardwerte zurückgesetzt. Dieser Fehler ist in der neuen Version behoben worden. Verbindung zu in MsSQL gespeicherten Prozeduren  Es wurde die Möglichkeit hinzugefügt, eine Verbindung zu in MsSQL gespeicherten Prozeduren herzustellen. Dies war bisher über eine Datenbankabfrage verfügbar. Jetzt können Sie viel bequemer eine Verbindung zu den Prozeduren herstellen, indem Sie die Datenbanktabellen- Verbindungsschnittstelle verwenden. Diese Datenbanktabellen werden im Auswahlfenster zusammen mit den Tabellen angezeigt. Wenn Sie eine Prozedur auswählen, erscheint ein Fenster mit den Parametereinstellungen, falls vorhanden.  Mehr dazu lesen Sie im Artikel. Exportverbesserungen  Option "Zum Drucken" beim RTF-Exportieren Es wurde eine neue Eigenschaft PrintOptimized und eine entsprechende Option im Exportfenster hinzugefügt. Wenn Sie diese Einstellung aktivieren, wird die Qualität des Bildes beim Exportieren erheblich verbessert. Allerdings erhöht sich auch die Größe der resultierenden Datei. UseFileStream-Eigenschaft im Export nach Excel 2007 Es wurde eine neue Option UseFileStream für den Excel 2007-Export hinzugefügt. Diese Option kann nur beim Exportieren von Code in eine Datei verwendet werden. Sie ist nützlich, wenn Sie Berichte mit einer großen Anzahl von Seiten (mehrere Zehntausend) in mehreren Streams exportieren. Dadurch werden Fehler aufgrund von Speicherknappheit vermieden. In anderen Fällen ist die Verwendung nicht besonders sinnvoll und wird nicht empfohlen. Beispiel: ``` Report report = new Report(); Excel2007Export export = new Excel2007Export(); export.UseFileStream = true; report.Export(export, "report.xlsx"); ``` Finanzformat beim Exportieren nach Excel 2007 Das Währungsformat kann nun als Finanzformat exportiert werden. Dazu wurden im Exportfenster eine entsprechende Option und die CurrencyToAccounting-Eigenschaft hinzugefügt. Erhöhung der Mindestversion von .NET Framework von 4.0 auf 4.6.2 Wir aktualisieren die unterstützte Mindestversion von FastReport .NET auf .NET Framework 4.6.2 wegen der folgenden Funktionen: .NET Framework 4.0 wird seit langem nicht mehr unterstützt; Es gibt Probleme beim Erstellen des FastReport-Quellcodes in den neuesten Versionen von Microsoft Visual Studio; Notwendigkeit, neue APIs zu implementieren. Die vollständige Liste der Änderungen ist unter folgendem Link verfügbar. ### Update .NET Produkte auf 2024.1 Version URL: https://www.fast-report.com/de/news/fastreport-net-2024.1 Summary: In dieser Version haben wir uns darauf konzentriert, die lang ersehnten Funktionen zu implementieren, die die Berichterstellung erheblich vereinfachen. In dieser Version haben wir uns darauf konzentriert, die lang ersehnten Funktionen zu implementieren, die die Berichterstellung erheblich vereinfachen. In dieser Version haben wir uns darauf konzentriert, lang erwartete Funktionen zu implementieren, die den Prozess der Entwicklung von Berichtsvorlagen erheblich vereinfachen. Die folgenden Funktionen stehen Ihnen jetzt zur Verfügung: benutzerdefinierte Linienstile, Änderung der Form des Bild-Objekts, Anpassung der Hotkeys, Unterstützung des ODBC-Connectors und vieles mehr. Neue Möglichkeiten Verbesserte Umgang mit dem Tabellenobjekt  Der Umgang mit dem Berichtsdesigner ist einfacher und bequemer geworden. Es sind neue Möglichkeiten für den Umgang mit dem Tabellenobjekt erschienen.  1. Schnelles Hinzufügen von Spalten und Zeilen. Wenn Sie auf eine Zeilengrenze links von der Tabelle oder auf eine Spaltengrenze oben gehen, erscheint eine bedingte Anzeige, die anzeigt, wo eine neue Zeile oder Spalte hinzugefügt wird. Außerdem erscheint eine Schaltfläche, durch deren Betätigung eine neue Zeile oder Spalte zur Tabelle hinzugefügt wird. Die Tabelle muss aktiv (ausgewählt) sein, andernfalls werden neue Steuerelemente nicht angezeigt. 2. Ändern der Zeilenhöhe und Spaltenbreite. Durch Ziehen der Spalten- oder Zeilengrenze mit der Maus können Sie nun die Spaltenbreite bzw. Zeilenhöhe ändern. 3. Dropdown-Menü "Einfügen". Wenn Sie mit der rechten Maustaste auf eine Zelle klicken, steht im Kontextmenü eine Dropdown-Liste zur Verfügung, mit der Sie neben der Zelle eine neue Spalte oder Zeile hinzufügen können. 4. Hotkeys. Kopieren von Zellentext und Einfügen von Text in eine Zelle mit den Tastenkombinationen Strg + C und Strg + V. Lesen Sie mehr über die neuen Tabellenfunktionen im Artikel. Zusammenführung von Textobjekten Es wurde ein Mechanismus zum Zusammenführen von Textobjekten mit demselben Text hinzugefügt. Zu diesem Zweck wurde dem Text-Objekt eine neue MergeMode-Eigenschaft hinzugefügt, mit der Sie den Zusammenführungsmodus festlegen können. Die neue Eigenschaft ist der Duplicates-Eigenschaft im Merge-Modus sehr ähnlich, aber es gibt einige wichtige Unterschiede: Duplicates funktioniert nur mit einem Objekt im Datenband. Beispiel: Im Band Data1 gibt es ein Textobjekt namens Text1, dessen Duplicates-Eigenschaft gleich Merge ist. Beim Erstellen eines Berichts wird bei der ersten Iteration von Daten1, wenn der erste Datensatz in Text1 ausgegeben wird, der Text „10“ ausgegeben. Bei der zweiten Iteration von Data1 und der Ausgabe des zweiten Datensatzes wird derselbe Text in Text1 ausgegeben. Es werden also zwei Instanzen von Text1 zusammengeführt und der Text "10" wird nur einmal ausgegeben. MergeMode kann, im Gegensatz zu Duplicates, Instanzen verschiedener Textobjekte zusammenführen. Und zwar sowohl in vertikaler als auch in horizontaler Richtung. Wenn Sie beispielsweise einen Bericht erstellen, wird der Text „10“ in Text1 und Text2 rechts daneben ausgegeben. Dabei hat Text1 die Eigenschaft MergeMode gleich Horizontal. In diesem Fall werden die Textobjekte zusammengeführt und der Text "10" wird einmal ausgegeben. Lesen Sie mehr über die neue Eigenschaft in dem Artikel unter diesem Link. Benutzerdefinierte Linienstile  Zu den Objekten LineObject, ShapeObject, PolyLineObject und PolygonObject wurde eine neue DashPattern-Eigenschaft hinzugefügt, mit der Sie Ihre eigenen Linienstile erstellen können. Zuvor wurde der Linienstil dieser Objekte über die Border.LineStyle-Eigenschaft angepasst. Es waren nur sechs Stile verfügbar: Solid, Dash, Dot, DashDot, DashDotDot und Double. Mit der neuen Eigenschaft können Sie eine Sammlung von Werten angeben, mit denen die Länge von Strichen und Leerzeichen nacheinander festgelegt wird. Mit den Werten 5, 4, 3, 2 legen wir beispielsweise ein Muster fest, in dem ein Strich der Länge 5, ein Leerzeichen der Länge 4, ein Strich der Länge 3 und ein Leerzeichen der Länge 2 angezeigt werden. Und dann werden die Werte ab 5 erneut wiederholt. Die Maßeinheit ist hier Border.Width. Wenn es mindestens einen Wert in der DashPattern-Sammlung gibt, funktioniert dieser neue Mechanismus. Und die Border.LineStyle-Eigenschaft wird ignoriert. Wenn die DashPattern-Sammlung leer ist, funktioniert der Mechanismus der Border.LineStyle-Eigenschaft weiterhin. Nachstehend sind einige Beispiele aufgeführt: Anweisungen zum Anpassung von Linien finden Sie unter folgendem Link. Formänderung des PictureObjects Es ist jetzt möglich, die Form eines PictureObjects zu ändern. PictureObject hat jetzt eine neue Eigenschaft Shape, mit der Sie die folgenden Formen einstellen können: Rechteck (Standardwert), Rechteck mit abgerundeten Ecken, Ellipse, Dreieck und Raute. Lesen Sie mehr in dem Artikel. Anpassung von Hotkey-Kombinationen  Es ist jetzt möglich, Tastenkombinationen nach Ihren Wünschen anzupassen. Sie können die Befehle für Aktionen wie "Datei öffnen", "Datei speichern", "Bericht vorbereiten" und viele andere anpassen. Zu diesem Zweck wurde eine neue Schaltfläche auf der Registerkarte "Schnittstelle" in den Designer-Einstellungen hinzugefügt. Wenn Sie diese Schaltfläche drücken, öffnet sich ein Fenster zum Einrichten von Tastenkombinationen. Hier sehen Sie eine Tabelle mit den Aktionen und den ihnen zugewiesenen Tastenkombinationen. Sie können die Kombination durch Doppelklick auf die gewünschte Zeile ändern. Sie können auch mit den Tasten "Nach oben" und "Nach unten" in der Tabelle navigieren und Änderungen durch Drücken der Eingabetaste vornehmen. Es ist auch möglich, alle Kombinationen auf die Standardwerte zurückzusetzen. Weitere Informationen zum Konfigurieren der Tasten finden Sie in diesem Artikel. .NET 8-Unterstützung Die  .NET 8  Unterstützung für FastReport .NET, FastReport.Core, FastReport.Core.Skia und FastReport.WPF wurde hinzugefügt. Diese Plattform verbessert die Anwendungsleistung und erweitert Ihre Projekte um viele neue Funktionen. Ablehnung der .NET Standard 2.0- Unterstützung in FastReport.Web Um immer mehr Technologien abzudecken, die ständig zur .NET-Welt hinzugefügt werden, haben wir beschlossen, die veraltete .NET Standard 2.0 Kompatibilitätsschicht in unserer FastReport.Web Integrationsbibliothek (WebReport Core/Skia) abzulehnen. Die unterstützte Mindestversion von TargetFramework ist für dieses Produkt nun .NET Core 3.1 und höher (einschließlich .NET 5, 6, 7 und 8). FastReport.Core und FastReport.Core.Skia unterstützen weiterhin .NET Standard 2.0 ohne Änderungen. Hinzugefügte Unterstützung des ODBC-Connectors für FastReport.Core Unsere Benutzer haben uns schon lange gebeten, die Möglichkeit zu schaffen, unsere plattformübergreifenden Produkte mit Datenbanken über das ODBC-Protokoll zu verbinden. Diese Funktion war bisher nur in FastReport.NET und FastReport WPF verfügbar. Mit diesem Update ist sie nun auch in FastReport.Core und FastReport.Core.Skia verfügbar. Um es zu benutzen, fügen Sie das FastReport.Data.Odbc Plugin zu Ihrem Projekt hinzu und registrieren Sie es mit dem folgenden Code: ``` FastReport.Utils.RegisteredObjects.AddConnection(typeof(OdbcDataConnection)); ``` Änderungen in WebReport E-Mail-Export in WebReport WebReport verfügt jetzt über die Funktion, Berichte per E-Mail zu versenden. Um diese Funktion zu aktivieren, müssen Sie die Einstellungen des SMTP-Servers bei der Registrierung der FastReport-Dienste konfigurieren. Fügen Sie einfach den folgenden Code ein: ``` services.AddFastReport(options => options.EmailExportOptions = new FastReport.Web.EmailExportOptions { Address = "SomeAddress@example.com", EnableSSL = true, Host = "Host", MessageTemplate = "Message template here", Name = "John", Password = "password", Port = 25, Username = "Username" }); ``` Aktivieren Sie danach die Option WebReport.Toolbar.Exports.ShowEmailExport und die Benutzer können Berichte per E-Mail versenden: Wenn der Benutzer auf die Schaltfläche "Per E-Mail senden" klickt, wird er aufgefordert, die Meldung über ein praktisches modales Fenster anzupassen: Drucken in Blazor WebAssembly Mit WebReport können Sie jetzt Berichte in Blazor WebAssembly drucken. Diese Funktion ist standardmäßig aktiviert, aber wenn Sie diese deaktivieren müssen, verwenden Sie einfach den folgenden Code: ``` webReport.Toolbar.ShowPrint = false; ``` Ihre Berichte können jetzt direkt aus Blazor WebAssembly gedruckt werden: Vollständige Liste der Änderungen --- [Engine] + Die Zusammenführung von Textobjekten wurde hinzugefügt; + Es wurde die Möglichkeit hinzugefügt, die Form von PictureObject zu ändern; + Es wurde die Möglichkeit hinzugefügt, benutzerdefinierte Linienstile zu erstellen; * Die Arbeit mit Schriftarten erfolgt jetzt ohne Blockierung; - Der Text, der über die Grenzen von TextObject hinausgeht, wenn TextRenderer = HTMLParagraph, wurde korrigiert; - Die Erstellung von Schriftarten aus PrivateFontCollection wurde korrigiert; - Falsche Textfarbe in RichObject wurde korrigiert; - Der RichObject-Bruch mit Bild wurde korrigiert; - Der Fehler wurde behoben, der dazu führte, dass der Fokus vom DateTimePicker-Objekt verloren ging, wenn die Eigenschaft „DetailedControl“ angegeben war; - Ein Fehler in Barcodes wurde behoben (Anzeige auf HiDPI, PDF-Export); - Im HTMLTextRenderer wurde die Rückwärtseinrückung korrigiert; - Fehlerhafte RichObject-Brüche wurden korrigiert; [Designer] + Die Eigenschaft "Fortschrittsfenster anzeigen" wurde zu den Designer-Einstellungen hinzugefügt; + Es wurde die Möglichkeit hinzugefügt, Hotkey-Kombinationen anzupassen; * Überprüfungen wurden für Links aktualisiert, Links mit Leerzeichen werden jetzt korrekt verarbeitet; - Das Auftreten zusätzlicher Linien beim Skalieren eines kleinen RoundRectangle wurde behoben; - Die Schrägstrichkodierung in Barcode 93 Extended wurde korrigiert; - Die Entfernung von Links wurde beim Zusammenführen von Wörterbüchern behoben; - In der ungarischen Lokalisierung wurde ein Fehler bei der Auswahl der Datums- oder Uhrzeitformatierung behoben; [Preview] - Falsche Größe der Seitenränder wurde bei unendlicher Seitenhöhe oder -breite behoben; [Exports] + Die Speicherung jedes Bildes in einem separaten Thread wurde implementiert; + Fehlende Links wurden zu Ereignishandlern in Exporten nach Excel 2007, Word 2007 und RTF hinzugefügt; + Es wurde eine neue Eigenschaft zum Skalieren von Barcodes beim Exportieren nach ZPL hinzugefügt; + Es wurde die Auswahl der Gruppe hinzugefügt, nach der der Bericht in Excel 2007 in Blätter unterteilt wird; + Es wurde die Möglichkeit hinzugefügt, die Blattgruppierung beim Exportieren nach Excel 2007 zu deaktivieren; + Es wurde die Verwendung des Übertragungsmodus für die Texturfüllung beim Exportieren nach SVG hinzugefügt; * Beim Exportieren in einen Cloud-Speicher wird das Fenster nach Erhalt des Autorisierungscodes automatisch geschlossen; - Korrigieren privater Schriftensammlungen; - Der Fehler wurde beim Parsen der GSUB-Tabelle behoben; - Fehlerhafter Export von DashDot-, DashDotDot- und Double-Objekt-Rahmenstilen in PDF wurde behoben; - Der Fehler wurde behoben, der dazu führte, dass die Zahlen im Gauge beim HTML-Exportieren verschwommen angezeigt wurden; - Die Berechnung des ContentMD5-Headers wurde beim S3-Exportieren korrigiert; - Fehlerhafte Textpositionierung wurde beim Exportieren nach ZPL korrigiert; - Fehlerhafter Export von GaugeObject in PowerPoint 2007 wurde korrigiert; - Fehlerhafter Export von RadialGauge mit Füllung in den Ebenen-Export in Word 2007 wurde behoben; - Fehlerhafter Export von RadialGauge mit Füllung in Nicht-Ebenen-HTML wurde behoben; - Die Anzeige im Übertragungsmodus "Clamp" wurde für Texturfüllung beim Exportieren nach SVG korrigiert; - Die Änderung der Textgröße wurde bei der Verwendung von HTML-Tags beim Excel 2007- Exportieren behoben; - Fehlerhaftes Verhalten von HTML-Tags mit Tabulatoren wurde beim Exportieren nach Excel 2007 behoben; - Das Problem mit abnehmender Wasserzeichenqualität wurde beim Exportieren in PDF behoben; - Ein Fehler mit falschen Einrückungen wurde beim Exportieren von Tabellen nach Word 2007 behoben; - Die Bildpositionierung in CheckBox wurde beim Exportieren nach Word 2007 korrigiert; [WebReport] - Die .NET Standard 2.0 Unterstützung wurde in FastReport.Web entfernt; - Der Fehler wurde behoben, der beim Exportieren in der Blazor-Anwendung einen Fehler verursachte; - Das Margin-Ignorieren wurde beim Drucken mit PrintHtml in WebReport behoben ; [.NET Core] - Der Fehler wurde behoben, der beim Exportieren in PDF zu einer falschen Berechnung der Textbreite führte; [Demos] - Der Fehler wurde bei der Anzeige des Navigationsmenüs nach dem Minimieren von Demo New behoben; [Extras] + Die Umwandlung von Variant in CLR-Typen wurde in MySqlDataConnection hinzugefügt; + Der FastReport.Data.Odbc-Plugin wurde hinzugefügt; + Die FastReport.WPF-Unterstützung wurde für FastReport.Data.-Connector-Plugins* hinzugefügt; * Das Verhalten der Meldung über doppelte Namen in einer Anfrage wurde geändert; - Die automatische Erstellung von Parametern in einer Anfrage wurde behoben. ### Update .NET-basierter Produkte auf 2023.3 Version URL: https://www.fast-report.com/de/news/fastreport-net-2023.3 Summary: Wir freuen uns, Ihnen ein lang erwartetes Update präsentieren zu können, bei dem besonderes Augenmerk auf die Benutzerfreundlichkeit und die Qualität des Programmcodes gelegt wurde. Wir freuen uns, Ihnen ein lang erwartetes Update präsentieren zu können, bei dem besonderes Augenmerk auf die Benutzerfreundlichkeit und die Qualität des Programmcodes gelegt wurde. Wir freuen uns, Ihnen ein lang erwartetes Update präsentieren zu können, bei dem besonderes Augenmerk auf die Benutzerfreundlichkeit und die Qualität des Programmcodes gelegt wurde. In dieser Version haben wir versucht, auf die Wünsche unserer Benutzer einzugehen. Mit der Version 2023.3 haben wir Folgendes hinzugefügt: ein neues Objekt - RFID-Tag, Unterstützung der Bilder im WebP-Format, asynchrone Berichtsanzeige, Symbolleiste im Kontextmenü und vieles mehr. Die Änderungen sind für die folgenden Produkte verfügbar: - FastReport .NET , - FastReport WPF , - FastReport Mono , - FastReport Desktop , - FastCube .NET . Neue Möglichkeiten  Neues RFIDLabel-Objekt Die neue Version verfügt über ein neues Objekt – ein RFID-Tag. Es ermöglicht die Identifizierung von Waren und ist einem Barcode sehr ähnlich, verwendet aber im Gegensatz zu diesem Funksignale. Dadurch können Sie eine große Anzahl von Waren in kurzer Zeit scannen. Der Tag enthält 4 Datenbanken: eine reservierte Speicherbank für Zugriffs- und Löschpasswörter, eine Speicherbank für einen elektronischen Produktcode, eine Speicherbank für die Tag-ID und eine Benutzerdatenbank. In der FastReport .NET Produktlinie wird ein Tag als Berichtsobjekt dargestellt. Der Tag kann mit einem praktischen Editor angepasst werden, der durch einen Doppelklick mit der Maus aufgerufen wird. RFID-Tags können von einigen Zebra-Druckern erstellt werden. Daher wurde zusätzlich zum Tag-Objekt selbst auch deren Export nach ZPL implementiert. Für einen korrekten Export muss der RFID-Tag in einer einzigen Kopie auf der Seite vorhanden sein. Lesen Sie mehr im Artikel. Unterstützung der Bilder im WebP-Format Es wurde ein Plugin hinzugefügt, der Bilder im WebP-Format unterstützt. Jetzt können Sie solche Bilder sowohl mit dem Editor im Berichtsdesigner als auch aus dem Code in ein PictureObject laden. In FastReport.Skia werden WebP-Bilder auch ohne Plugin unterstützt, aber sie werden beim Hochladen in das PNG-Format konvertiert. Mehr über das Format und  die Verwendungsanleitung für Plugin finden Sie im Artikel. Vorschau im Designerfenster und asynchrone Berichtsanzeige  Wenn Sie den Designer in Ihrer Anwendung verwenden, ist es jetzt möglich, die Berichtsvorschau im Designer-Fenster zu starten. Zuvor wurde die Vorschau immer in einem separaten Fenster gestartet. Dazu müssen Sie die folgende Zeile in den Code einfügen: ``` Config.DesignerSettings.EmbeddedPreview = true; ``` Es wird wie folgt aussehen: In manchen Fällen kann dieser Modus praktischer sein. Darüber hinaus wurden Methoden zur asynchronen Berichtserstellung und –anzeige eingeführt: Report.PrepareAsync() und Report.ShowAsync(). Sie können bei der Erstellung umfangreicher Berichte verwendet werden. In diesem Fall können Sie mit dem Vorschaufenster während der Berichtserstellung arbeiten. Und der Benutzer wird nicht den Eindruck haben, dass die Anwendung hängt und nicht reagiert. Symbolleiste im Kontextmenü  Das Kontextmenü wurde beim Rechtsklick auf ein Objekt verbessert. Oben wurde eine Symbolleiste eingeblendet, in der sich häufig verwendete Funktionen wie Bearbeiten, Ausschneiden, Kopieren, Einfügen usw. befinden. Das Kontextmenü sah früher wie folgt aus: Das neue Menü ist kompakter und ergonomischer: Exportieren in S3 Es wurde die Möglichkeit hinzugefügt, vorbereitete und exportierte Berichte in den Simple Storage Service (kurz S3) hochzuladen. Der neue Export befindet sich auf der Registerkarte "Speicher" im Menü zum Speichern eines vorbereiteten Berichts. Beim ersten Export müssen Sie Ihre Anmeldedaten in das Autorisierungsfenster eingeben. Die notwendigen Schlüssel können in Ihren S3-Kontoeinstellungen abgerufen werden. Weitere Details finden Sie in der Servicedokumentation. Nach erfolgreicher Autorisierung erscheint das Exportfenster. Hier können Sie den zu speichernden Bucket, Typ und Dateinamen auswählen. Wenn Sie einen anderen Dateityp als "Fertiger Bericht" auswählen, Wenn Sie einen anderen Dateityp als "Fertiger Bericht" auswählen, sind die Einstellungen für den entsprechenden Export verfügbar. Lesen Sie mehr im Artikel. Möglichkeit, die Parameter der Barcode-Schriftart anzupassen Die Font Eigenschaft ist jetzt für Barcode-Objekte verfügbar. Mit dieser Eigenschaft können Sie die Schriftartparameter festlegen, die bei der Anzeige von Barcode-Texten verwendet werden. Die Standardschriftart ist Arial, die gleiche Schriftart, die in früheren Versionen verwendet wurde. Jetzt können Sie eine andere Schriftart auswählen, ihre Größe, Form usw. ändern. Dadurch können Sie beispielsweise folgende Barcodes erstellen:  Allerdings sollten Sie bei den Schriftarteinstellungen vorsichtig sein. Es kann sein, dass nicht alle Scanner solche Barcodes korrekt lesen können. Option "Allgemeines Format in Textformat konvertieren" beim Export nach Excel 2007 Excel 2007 verfügt über mehrere Datenformate, von denen zwei sehr ähnlich sind: allgemeines Format und Textformat. Standardmäßig wird das allgemeine Format verwendet. In den meisten Fällen werden die Zahlen in diesem Format so angezeigt, wie sie eingegeben werden. Wenn die Zellenbreite jedoch nicht ausreicht, um die ganze Zahl anzuzeigen, wird sie gerundet. Das Textformat zeigt die Daten immer so an, wie sie eingegeben werden. FastReport .NET verfügt auch über mehrere Formate, zum Beispiel: allgemeines, Zahlenformat, Datum und viele andere. Beim Exportieren wird das entsprechende Format für die Daten ausgewählt, das Zahlenformat wird in ein Zahlenformat konvertiert, das Datum bleibt ein Datum. In FastReport .NET wird das allgemeine Format auch standardmäßig verwendet. Es zeigt die Daten so an, wie sie eingegeben wurden. Das allgemeine Format ist eigentlich ein System.String. Im Gegenzug gibt es kein separates Textformat in FastReport.NET. Der Excel 2007-Export verfügt über eine neue Option, mit der Sie das allgemeine FastReport .NET-Format in das Excel-Textformat konvertieren können (standardmäßig wird das allgemeine Format als allgemein exportiert). Berichte, die in früheren Versionen von FastReport .NET erstellt wurden, werden in der neuen Version auf die gleiche Weise exportiert, da diese Option standardmäßig deaktiviert ist. Unterstützung einer teilweisen Kompilierung von Berichten  In FastReport.Core, FastReport.Core.Skia und FastReport.CoreWin wurde die Möglichkeit hinzugefügt, die teilweise Kompilierung eines Berichts zu aktivieren, um die Berichtserstellung zu beschleunigen, wenn das Berichtsskript nicht geändert wurde und es keine Objekte gibt, die eine teilweise Kompilierung nicht unterstützen. Sie können diese Funktion mit dem folgenden Befehl aktivieren: ``` FastReport.Utils.Config.CompilerSettings.ReflectionEmitCompiler = true; ``` Die Aktivierung des Reflection.Emit-Compilers führt zu keinerlei Leistungseinbußen. Falls der neue Compiler nicht in einem neuen Bericht verwendet werden kann, wird einfach das Standardverfahren verwendet, ohne den Bericht zu beeinträchtigen. Neue Möglichkeiten von WebReport Verbesserungen am WASM Bisher konnten Berichte, die mit unserer FastReport.Blazor.Wasm Bibliothek in einem Browser geöffnet werden, nur angezeigt werden. Mit diesem Update wurde die Unterstützung für Exporte hinzugefügt. Jetzt können Benutzer die resultierenden Berichte in verschiedene Formate exportieren, genau wie bei einem normalen WebReport. Dank der Reflection.Emit-Kompilierung wurde außerdem das Hochladen und Erstellen von Berichten ohne Skript in WebAssembly beschleunigt. Personalisierung der Symbolleiste  Sie können nun Ihre eigenen Elemente wie Schaltflächen, Dropdown-Listen und Eingabefelder erstellen und zur Symbolleiste hinzufügen. Diese Elemente können verschiedene Parameter haben, darunter Bild, Titel und Stile. Sie können auch die Logik mit JavaScript und C# implementieren. Beispiel für das Hinzufügen benutzerdefinierter Elemente zur Symbolleiste: ``` var button = new ToolbarButton() { Title = "MyCustomButton", OnClickAction = new ElementClickAction() { OnClickAction = async (webreport) => { webreport.LocalizationFile = "MyLocalizationFile"; } }, };   var select = new ToolbarSelect() { Title = "MyCustomSelect", Items = new List { 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); ``` Nachdem Sie Änderungen vorgenommen haben, werden diese angepassten Elemente in Ihrer Symbolleiste angezeigt: Vollständige Änderungsliste  [Engine] + Das neue RFIDLabel Objekt wurde hinzugefügt; + Die automatische GS1-Formatierung wurde für GS1-128-Barcode hinzugefügt; + Das Laden von Tabellen in Zellen anderer Tabellen beim Konvertieren von RDL-Vorlagen wurde hinzugefügt; + Die Config.CompilerSettings.ReflectionEmitCompiler Eigenschaft wurde hinzugefügt, die beim Aktivieren die Berichtserstellung beschleunigt, wenn das Skript nicht geändert wurde (funktioniert nur in .NET Core/.NET); + Es wurde die Möglichkeit hinzugefügt, Barcode-Schriftarteinstellungen mit der neuen Font-Eigenschaft  zu konfigurieren"; * Die Arbeit mit privaten Schriftensammlungen wurde verbessert; * Demoversion – das 5-Seiten-Limit wurde aufgehoben; Text wird zufällig durch "Demo version" ersetzt; - eine endlose Schleife wurde bei der Auswertung eines Parameterausdrucks korrigiert, der diesem Parameter entspricht; - Das Problem wurde beim Lesen von DataMatrix-Barcodes durch einen mobilen Scanner behoben; - Der Bug wurde behoben, der dazu führte, dass bei manuellen Umsetzungen durchgestrichene Zeilen nicht korrekt angezeigt wurden; - Die Berechnung der Verschiebung von umwandelnden RichObjects-Objekten wurde korrigiert; - Die Konvertierung von leerem Variant in andere Typen wurde korrigiert; - Das Löschen einer Spalte wurde behoben, wonach die Spaltendaten im Bericht verblieben; - Die VisibleExpression-Eigenschaft für Zeilen und Spalten von Matrix und Tabelle wurde korrigiert; - Das Löschen nicht mehr vorhandener Schriftarten aus dem Font_hash-Wörterbuch wurde korrigiert; - Der Fehler mit unsortierten Tabulatorpositionen in RichObject wurde behoben; - Der Fehler beim Parsen der GSUB-Tabelle wurde behoben, der zu einer Ausnahme führte; - Der Verlust der Flussposition wurde beim PDF-Export mit der Option „Text in Kurven“ behoben, was zu einer System.StackOverflowException führte; - Der Fehler wurde beim Laden von Objekträndern beim Konvertieren von RDL-Vorlagen behoben; - Das Löschen von ersten drei Zeichen im GS1-128 Barcode wurden korrigiert; - Die Code93 Extended Barcode-Kodierungstabelle wurde korrigiert; - Die Textkodierung im DataMatrix Barcode wurde korrigiert; - Der Fehler im Textrendering wurde bei der Übertragung von Wörtern aufgrund von fehlendem Leerraum behoben; - Die RightToLeft-Textkonvertierung wurde bei aktivierter ConvertRichText Option korrigiert; - Der Zeilenumbruch im HtmlTextRenderer wurde korrigiert; - Der Fehler wurde behoben, bei dem die Seitenspalten über den Bandspalten gedruckt wurden; - Weiße Hervorhebung von Leerzeilen zwischen Textabsätzen und einigen Absätzen wurde in RichObject beim Füllen korrigiert; - Die Hervorhebung von Textteilen mit weißer Farbe wurde in RichObject mit ConvertRichText = true korrigiert; - ConnectionString wird nicht mehr ignoriert, wenn die ConnectionStringExpression den null-Wert zurücksetzt; - Einzüge von umwandelnden Textobjekten aus RichObject wurden korrigiert; - Die Positionierung von Objekten wurde beim RichObject Umwandeln korrigiert; - Der Import von Tabellen aus JasperReports wurde korrigiert; - Die System.NullReferenceException wurde beim TableObject Löschen korrigiert; - Die horizontale Ausrichtung des Bildes wurde in RichObject korrigiert, wenn ConvertRichText = true; - Die System.NotImplementedException wurde korrigiert, wenn der TextObject-Tabstop negativ ist; - Die Konvertierung von Nullen wurde korrigiert, wenn ein Ausdruck eine Funktion enthält; - Die System.ArgumentException wurde korrigiert, wenn der JSON-Datenquellen-Host ein leeres CharacterSet hat; - Die TableObject Positionierung wurde beim RichObject Umwandeln korrigiert; [Designer] + Es wurde die Möglichkeit hinzugefügt, Spaltennamen aus der ersten Zeile der Excel-Verbindung zu übernehmen; + Kategorien für "Barcode"-Objekte wurden hinzugefügt; + Die Config.DesignerSettings.EmbeddedPreview Eigenschaft wurde hinzugefügt, um die Vorschau von Berichten im Designer-Fenster zu ermöglichen; + Im „Objekten“-Bereich wurde die Kategorie "Andere" für Dialogsteuerelemente hinzugefügt; + Es wurde die Möglichkeit hinzugefügt, das umwandelnde Objekt im Online Designer anzuzeigen; + Die Seite zur Auswahl der Prozedur wurde im Formular des Datenverbindungsassistenten hinzugefügt; + Die Symbolleiste wurde zum Kontextmenü hinzugefügt; + Es wurde die Möglichkeit hinzugefügt, Ausdrücke im Feld "Zahlungsbetrag" im SberbankQr-Editor zu verwenden; + Das Parsen von Parametern aus SQL-Abfragen wurde hinzugefügt; + Die Warnmeldung wurde hinzugefügt, wenn die Parameternamen der Abfrage übereinstimmen; + Die Überprüfung auf die Existenz einer Datei wurde hinzugefügt, wenn diese in einer CSV-Verbindung über die CsvFile Eigenschaft geändert wird; * Änderungen wurden an der Schnittstelle des Abfrage-Generators vorgenommen; * Der Datenverbindungsassistent wurde aktualisiert. Die Schnittstelle wurde verbessert, Fehler wurden behoben und die Geschwindigkeit wurde erhöht; * Der Rendering des Tooltips wurde mit Koordinaten/Maßen im Designer geändert; - Das Problem wurde beim Herstellen einer Verbindung zu CSV über URL behoben; - Der Fehler wurde beim „Speichern unter...“ einer aus der Cloud geöffneten Datei behoben; - Das "Map" Objekt wurde in NET 6.0 korrigiert (leere Beschriftungen der Polygone); - Der Fehler wurde beim Lesen von Werten aus der Designer-Konfigurationsdatei behoben; - Der Bug wurde behoben, bei dem nach einem doppelten Rechtsklick auf die "Code" Registerkarte eine neue Berichtsseite erstellt wurde; - Der Fehler wurde nach dem Schließen des Vorschaufensters mit leeren Werten für Zahlparameter behoben; - Der Bug wurde behoben, bei dem der Designer während des Autorisierungsprozesses hängen blieb; - In Gauge-Objekt-Editoren wurden Fehler behoben; - Die System.NullReferenceException wurde beim Zusammenführen von Wörterbüchern korrigiert, die Verbindungen mit Parametern enthalten; - Die RichObject-Text-Hervorhebung mit Farbe wurde bei Verwendung der Eigenschaft ConvertRichText = true korrigiert; - Der Fehler wurde in der Format-Reihenfolge bei mehreren Ausdrücken in einem Textobjekt behoben; - Der Skalierungsfehler wurde im Einstellungsfenster des Designers auf der "Plugins" Registerkarte behoben; - Die fehlerhafte Skalierung des Datenquellenauswahlformulars wurde in Visual Studio behoben; - Die unvollständige Anzeige von Seiten mit unendlicher Breite wurde in der Vorschau beim Hinzufügen von Seiten behoben; - Der Bug wurde beim Laden eines Berichts mit einem Passwort behoben; - Probleme mit der Skalierung einiger Controller wurden behoben; - Der Fehler wurde behoben, der auftrat, wenn beim Bearbeiten einer Verbindung Felder von nicht ausgewählten Tabellen ausgewählt wurden; - Der Fehler wurde behoben, der auftrat, wenn beim Bearbeiten einer Verbindung alle Tabellen ausgewählt wurden, obwohl tatsächlich nur einige davon ausgewählt wurden; - Die System.IO.FileFormatException wurde korrigiert, wenn ein falscher XML-Bericht auf der FRX-Seite verwendet wurde; - Die fehlerhafte Funktion der Schrifteinstellungen wurde in MSChartObject behoben, wenn die Skalierung größer als 100% ist; - Der Fehler wurde beim Herstellen einer Verbindung zu CSV-Datenbank über URI behoben; - Der Fehler wurde beim Ausführen eines Berichts mit MSChartObject und SparklineObject auf einem DataBand mit aktivierter CanBreak-Eigenschaft behoben; - Es wurden Probleme mit der SVG-Anzeige im Designer behoben; - Probleme mit der Schriftgröße wurden im Berichtbaum-Fenster behoben; - Das Verhalten des "Über Software"-Fensters wurde bei Änderung der Skalierung korrigiert; - Das Ignorieren der MSChartObject Zeichnung wurde bei fehlendem Titel behoben; [Preview] - Die horizontale Ausrichtung des Textobjekts wurde korrigiert, wenn AutoWidth = true; - Es wurden Probleme mit der SVG-Anzeige in der Vorschau korrigiert; [Exports] + Das Exportieren in S3 wurde hinzugefügt; + Der Export von Seitenrändern wurde beim Image -Export hinzugefügt; + Die Option "Seitenumbrüche verwenden" wurde im HTML-Exportformular hinzugefügt; + Es wurde eine Option hinzugefügt, um das Hinzufügen von Lesezeichen zu jeder Seite beim Exportieren nach Word 2007 zu aktivieren oder zu deaktivieren; + Es wurde die Erstellung eines neuen Blatts hinzugefügt, wenn sich die Anzahl der Zeilen der in Excel 2007 maximal zulässigen Anzahl von Zeilen auf einem einzelnen Blatt nähert; + Die Option „Allgemeines Format in Textformat konvertieren“ wurde beim Exportieren nach Excel 2007 hinzugefügt; + Schriftnamen wurden erweitert; + Das Subsystem zur Schriftartenverpackung wurde für den PDF-Export verbessert; * Der PDF-Exportvorgang wurde beschleunigt; * Der PDF-Export von interaktiven Formularen wurde optimiert; - Es wurde ein Fehler behoben, der dazu führte, dass LineHeight beim Exportieren mit Skia nicht berücksichtigt wurde; - Der PDF-Export in mehreren Threads und private Schriftartensammlungen wurden korrigiert; - Das Hochladen von Schriftarten mit traditionellen chinesischen Zeichen wurde korrigiert; - Der Kerning von Schriften mit Schreibrichtung von rechts nach links wurde beim PDF-Export korrigiert; - Der Fehler wurde behoben, bei dem Schriftarten kleiner als 10 bei aktivierter ConvertRichText-Eigenschaft beim RTF-Export nicht korrekt angezeigt wurden; - Kerning-Fehler wurden beim PDF-Export behoben; - Der Fehler wurde beim PDF-Export im Modus "Text in Kurven" bei hoher Bildschirmauflösung behoben; - Der Fehler wurde behoben, der auftrat, wenn für einige Objekte im PDF-Export ein dunkler Rahmen gezeichnet wurde; - Der Export von Schriftfamilien, die in FastReport.Utils.FRPrivateFontCollection registriert sind, wurde korrigiert; - Die Anzeige der HTML-Tags , und wurde beim RTF-Export korrigiert; - Der Bag wurde behoben, bei dem der Export eines Berichts mit Bildern unter Skia mit einem Fehler endete; - Der RTF- und DOCX-Export von Objekten der Fußzeile wurde korrigiert; - Nach dem Export in Excel 2007 verschwinden Einzelbyte-Leerzeichen nicht mehr; - Das Hinzufügen unnötiger Textumbrüche beim Exportieren in CSV wurde korrigiert; - Der Fehler wurde beim Hinzufügen zusätzlicher Trennzeichen beim Exportieren in CSV behoben; - Der Fehler wurde behoben, der Schriften beim PDF-Export in mehreren Threads beschädigt hat; - Der Fehler wurde behoben, der dazu führte, dass Trennungsstriche beim Exportieren in HTML nicht verarbeitet wurden; - Die fehlerhafte Funktion von Hyperlinks wurde in RichObject beim PDF-Export behoben; - Der Multiplikator der Zeilenhöhe wurde beim RTF-Export korrigiert; - Die doppelte Speicherung von Berichten wurde in Google Drive behoben; - Der API-Aufruf wurde korrigiert, um Berichte in OneDrive zu speichern; - Probleme mit der SVG-Anzeige wurden beim PDF-Export behoben; - Fehler im Exportbaum wurden behoben; - Der Export von Texten mit HTML-Tags nach Word 2007 wurde korrigiert; [WebReport] + Der Schatten für Bericht wurde im WebReport hinzugefügt; + Die Unterstützung des Berichtexports in Wasm wurde hinzugefügt; * Das Verhalten der Symbolleiste wurde für einseitige Berichte geändert; * Das Verhalten beim Drucken eines Berichts über einen Browser in WebReport wurde geändert. Nun schließt sich die Druckseite automatisch. Jetzt wird die Druckseite automatisch geschlossen; - Der Fehler wurde behoben, der dazu führte, dass das Klick-Ereignis in WebReport nicht funktionierte; - Fehlerhafter Export nach Word 2007 wurde in Webberichten korrigiert; - Der Fehler wurde behoben, bei dem einige Berichtsobjekte (z. B. RichObject) möglicherweise nicht im Web Designer angezeigt wurden; - Der Fehler wurde behoben, bei dem ein einseitiger Bericht nicht exportiert wurde, wenn die Einstellungen verwendet wurden; - Der Fehler wurde behoben, der dazu führte, dass der Bericht nicht aktualisiert wurde, wenn ein Parameter geändert wurde; [.NET Core] - Beim Aktivieren der InvariantGlobalization-Option wurde der Fehler behoben; [Demos] * Das Skript in der Vorlage "Gruppe nach Summe sortieren" wurde geändert, um die korrekte Arbei des Berichts und die Anzeige der Summen zu gewährleisten, wenn die Eigenschaften "Kann wachsen" und "Kann kompiliert werden" des "Gruppenfußzeile" Bandes verwendet werden; [Extras] + Der Export von Seitenrändern wurde beim Exportieren mit PDFSimpleExport hinzugefügt; + Es wurde die Möglichkeit hinzugefügt, mithilfe des MySqlConnection-Plugins eine Verbindung zu MariaDB herzustellen; + Das .db-Format wurde zum Dateifilter für SQLite-Verbindung hinzugefügt; + Der Plugin mit Unterstützung der Bilder im WebP-Format wurde hinzugefügt; * Der RPTImportPlugin wurde auf .NET Framework 4.7.2 aktualisiert; - Der Fehler wurde behoben, der beim Herstellen einer Verbindung zu ClickHouse und MongoDB eine System.IO.FileLoadException verursachte; - Das Formular zur Auswahl der Datenquelle, das nicht im Vordergrund geöffnet wurde, wurde korrigiert. ### Update der Delphi- und Lazarus-Produkte auf Version 2024.1 URL: https://www.fast-report.com/de/news/fastreport-vcl-2024.1 Summary: Dieses Update enthält Verbesserungen und Korrekturen für alle Delphi- und Lazarus-Produkte mit Embarcadero RAD Studio 12-Unterstützung. Dieses Update enthält Verbesserungen und Korrekturen für alle Delphi- und Lazarus-Produkte mit Embarcadero RAD Studio 12-Unterstützung. Dieses Update enthält Verbesserungen und Fehlerbehebungen für unsere gesamte Delphi und Lazarus Produktlinie. Alle Produkte verfügen nun über Updates und die Unterstützung für Embarcadero RAD Studio 12. Am Berichtsdesigner vorgenommene Verbesserungen  Der neue Textobjekt-Editor hebt Ausdruckselemente und Tags hervor - so können Sie Ausdrücke im reinen Text schnell finden. Mit der interaktiven Hervorhebung von Klammern vergessen Sie nie wieder, die Klammer eines Ausdrucks zu schließen. Darüber hinaus können Sie mit dem Editor beim Bearbeiten von Texten den Zeilenumbruch aktivieren. Bitte beachten Sie! Diese Funktion ist in der Enterprise-Version und höher verfügbar. Die Hervorhebung von Ausdrücken ist nicht nur im Editor verfügbar, sondern auch für "Text"-Objekte beim Bearbeiten von Berichtsvorlagen. Neuer Datenfeld-Editor  Die Darstellung der Daten ist wichtig. Der modifizierte Datenfeld-Editor ermöglicht Ihnen die Feinabstimmung der Felddefinitionen, mit denen Sie im Berichtsdesigner arbeiten.  Im Editor können Sie Feldeigenschaften aktualisieren, zurücksetzen, hinzufügen, löschen und anpassen. Mithilfe von Eigenschaften können Sie Objekte zuweisen, die der Designer automatisch erstellt, wenn Sie Felder aus dem Datenbaum ziehen und ablegen, und sie gleichzeitig mit Feldern verknüpfen. Passen Sie den Berichtsdesigner an, um schnell mit Ihren Daten arbeiten zu können.  Der neue Aktualisierungsmodus der Feldlisten im Designer ermöglicht es Ihnen, die automatische Feldaktualisierung und die aktive Datenverbindung zu deaktivieren.  Bitte beachten Sie das geänderte Serialisierungsschema integrierter Datenquellen! Interne Eigenschaften solcher Objekte werden nun in der Berichtsvorlage vollständig in XML serialisiert. Solche Eigenschaften sind möglicherweise in älteren Versionen von FastReport nicht mehr lesbar, nachdem sie in die neue Version konvertiert worden sind. FastQueryBuilder Die Integration von FastQueryBuilder ist jetzt optional und wird aktiviert, wenn die entsprechenden Komponenten und Pakete hinzugefügt werden. Sie müssen keine Pakete mehr neu kompilieren, um FastQueryBuilder zu aktivieren oder zu deaktivieren.  Transporte Es wurde ein neuer Transport zu S3 (AWS) hinzugefügt. Jetzt können Sie Berichten in Ihrem Unternehmensspeicher speichern und daraus hochladen. Mehr über das Herstellen der Verbindung können sie in diesem Artikel lesen. Ab Version 2024.1 unterstützen wir keine Entwicklungsumgebungen vor Embarcadero RAD Studio 10.4 für die FireMonkey-Plattform mehr. Die unterstützten Umgebungen für die VCL-Plattform bleiben unverändert. Vollständige Änderungsliste  Version 2024.1 --------------- [Engine] + Die Unterstützung für Embarcadero RAD Studio 12 wurde hinzugefügt; + Es wurde die Möglichkeit hinzugefügt, den FastQueryBuilder in FastReport optional zu verwenden; - Das Verhalten von virtuellen Datensätzen wurde korrigiert; - Ein Fehler wurde in FastCube mit RAD Studio 12 unter x64 behoben; - HIDPI-Probleme wurden in RAD Studio 10.4 behoben; - Falsche Schriftskalierung wurde in Barcodes bei HiDPI behoben; - Falsche Größen der Exportfilterdialoge wurden bei Änderung der DPI korrigiert; - Ein Fehler wurde nach der Bearbeitung einer Maßeinheit in FastCube FMX behoben; - Das Ändern der ausgewählten Zeile wurde beim Ändern des Filters im Lokalisierungseditor behoben; - Ein Fehler wurde in FastCube beim Aufruf der Editor-Skriptfunktion beim Doppelklick auf ein Berechnungsfeld behoben; [Designer] + Ein neuer Memo-Objekteditor mit Syntaxhervorhebung wurde hinzugefügt (ab der Enterprise-Version); + Die Hervorhebung von Ausdrücken und Syntax wurde im Memo-Objekt im Arbeitsbereich des Berichtsdesigners hinzugefügt; + Ein neuer Felddefinitionseditor wurde hinzugefügt (ersetzt den alten Alias-Editor); + Es wurde die Möglichkeit hinzugefügt, beim Ziehen von Daten aus dem Datenbaum den Typ des Ziehobjekts anzugeben; + Es wurde die Möglichkeit hinzugefügt, die automatische Aktualisierung der Feldliste im Berichtsdesigner zu deaktivieren; - Ein Fehler mit der "Farbverlauf" Objektstileigenschaft im Objektinspektor wurde behoben; [Export] * Die Verwendung von Indy TLS im E-Mail-Exportfilter wurde geändert; - Die Ligaturpositionen wurden in Sprachen mit einer Schreibrichtung von rechts nach links im PDF-Exportfilter korrigiert; [Lazarus] - Ein Fehler wurde im frxSQLEditorForm-Formular behoben; - Ein Fehler wurde in der Syntax-Notiz in Lazarus behoben; - Der FastCube-Cross-Editor wurde in den FastReport-Integrationskomponenten korrigiert; [Sonstiges] - Der Fehler „Das FMX.ConverterFR3toFRFMX.pas Modul existiert nicht in LibRSXX\FMX“ wurde behoben; - Der Fehler "Das frx-Paket enthält kein frxFileSignature-Modul" wurde behoben; [Berichtsobjekt] - Das IBO-Paket für RAD Studio 12 wurde korrigiert; [Transporte] + Der S3-Transport wurde hinzugefügt; + Im S3-Transport wurde die AWS-Unterstützung hinzugefügt; - Die Standarddateierweiterung wurde beim Speichern in Clouds aus der Vorschau korrigiert; - Das Öffnen von Berichten aus Cloud-Speichern wurde korrigiert. ### Update der Service-Lösungen auf Version 2026.2 URL: https://www.fast-report.com/de/news/release-service-2026.2 Summary: Im Release 2026.2 der Service-Linie (FastReport Cloud, FastReport Corporate Server, FastReport Publisher) haben wir uns auf die Steigerung der Zuverlässigkeit und Benutzerfreundlichkeit konzentriert. Im Release 2026.2 der Service-Linie (FastReport Cloud, FastReport Corporate Server, FastReport Publisher) haben wir uns auf die Steigerung der Zuverlässigkeit und Benutzerfreundlichkeit konzentriert. Im Release 2026.2 der Service-Linie ( FastReport Cloud , FastReport Publisher , FastReport Corporate Server ), haben wir uns auf die Steigerung der Zuverlässigkeit und Benutzerfreundlichkeit konzentriert: Die Arbeit mit Aufgaben und dem Planer wurde verbessert, die Funktionen des Admin-Panels wurden erweitert, neue Integrationsmöglichkeiten wurden hinzugefügt und Fehler in mehreren Schlüsselkomponenten behoben. Unterstützung von API-Keys im Online Designer Der Online Designer unterstützt jetzt die Authentifizierung über API-Keys, was die Integrationsmöglichkeiten in Unternehmenssysteme erweitert. Um sich mit einem API-Key zu autorisieren, muss der URL der Parameter  apikey hinzugefügt werden. Beispiel: {hostname}/designer/?uuid={templateId}&v=df&apikey={apikey} . Außerdem verwendet der Online Designer nun das Symbol aus der Serverkonfiguration, sodass Branding korrekt ohne zusätzliche Anpassungen übernommen wird. Beschleunigung von Aufgaben und des Planers Die Berechnung von Cron-Ausdrücken wird jetzt zwischenspeichert. Dies reduziert die Anzahl der Datenbankzugriffe bei der Arbeit mit dem Planer erheblich. Zudem wurden Fehler behoben, durch die Aufgaben ohne ausreichende Berechtigungen gestartet werden konnten oder zu häufig ausgeführt wurden. Erweiterte Dokumentation Die aktuelle Produktversion wurde in alle Dokumentationsartikel aufgenommen. Dadurch können Skripte aus der Dokumentation zur Installation der aktuellen Produktversion verwendet werden. Die Dokumentation zu Aufgaben und dem Planer wurde verbessert, und es wurde ein Artikel über die Einschränkungen der Demo-Version des Publishers und des Corporate Servers hinzugefügt. Zusätzliche Änderungen für FastReport Corporate Server und FastReport Publisher Nachfolgend sind Änderungen aufgeführt, die nur die On-Premise-Produkte der Linie betreffen. Neues Admin-Panel basierend auf Fluent UI Das Admin-Panel wurde komplett auf Basis von Fluent UI überarbeitet – einer modernen Komponentenbibliothek von Microsoft. Die Oberfläche ist nun konsistenter, benutzerfreundlicher und barrierefreier. Auch die Fehlerbehandlung auf der Seite zur Massenbearbeitung von Plänen wurde verbessert. Das neue Admin-Panel wird derzeit in der Cloud-Infrastruktur getestet und wird in Kürze standardmäßig im Publisher und Corporate Server aktiviert. Erweiterte Funktionen der Methode UpdateSubscriptionPlan Der Methode  UpdateSubscriptionPlan wurde ein neues Flag hinzugefügt. Es ermöglicht, aktuelle Pläne sofort für alle Abonnements zu aktualisieren, die diesen Plan nutzen. Dies vereinfacht die Massenverwaltung von Konfigurationen. Unterstützung der lokalen Browserzeit Die Erstellung und Verlängerung eines Workspaces wird jetzt in der lokalen Zeit des Browsers festgelegt. Das Erstellungsdatum von Audits auf der Audit-Seite wird ebenfalls in der lokalen Zeit angezeigt. Dadurch entfallen Diskrepanzen für Benutzer aus verschiedenen Zeitzonen. Standardproduktname aus dem Lizenzschlüssel Der Produktname (Corporate Server oder Publisher) kann jetzt automatisch aus dem Lizenzschlüssel ermittelt werden. Die erste Einrichtung des Produkts bei der Bereitstellung wird dadurch einfacher. Erweiterte FerretDB-Funktionen Ein Fehler wurde behoben, durch den Migrationen bei Verwendung von FerretDB nicht ausgeführt wurden. Zusätzlich wurde die Mechanik optimiert. Swagger-Datei für das Admin-Panel Im Corporate Server und Publisher wurde eine Swagger-Datei hinzugefügt, die die API des Admin-Panels beschreibt. Dies vereinfacht die Integration und das Kennenlernen der verfügbaren administrativen API-Funktionen. Die Beschreibung der Admin-Panel-API ist unter  /api/swagger/index.html verfügbar, wenn der entsprechende Bereich oben rechts auf dem Bildschirm ausgewählt wird. Fehler im Installer behoben Ein Fehler wurde behoben, bei dem der Installer falsche Demo-Lizenzschlüssel während der Installation verwendet hat. FastConverter Ein neuer Dienst wurde veröffentlicht – FastConverter. Er ermöglicht die Konvertierung von *.FPX-Dateien in verschiedene, von FastReport Cloud unterstützte Formate (z. B. *.PDF, *.DOCX). Der Dienst erfordert keine Installation oder Registrierung. Sie können Ihre Berichte über den  folgenden Link konvertieren. Vollständige Änderungsliste [Admin Panel] + Der Methode UpdateSubscriptionPlan wurde ein neues Flag hinzugefügt. Es ermöglicht die Aktualisierung aktueller Pläne für alle Abonnements, die den aktualisierten Plan nutzen. * Erstellung und Verlängerung eines Workspaces werden jetzt in der lokalen Browserzeit festgelegt. * Das Erstellungsdatum von Audits auf der Audit-Seite wird jetzt in der lokalen Browserzeit angezeigt. - Fehlerbehandlung auf der Seite zur Massenbearbeitung von Plänen verbessert. - Korrekturen für das neue Admin-Panel. [Backend] + Fehlende Audit-Meldungen wurden hinzugefügt. - Fehler behoben, bei dem CORS für statische Dateien einen Fehler 500 zurückgab. - Standardmäßige Setzung des Produktnamens (Corporate Server, Publisher) aus dem Lizenzschlüssel hinzugefügt. - Berechtigungsprüfung bei der Massenverschiebung von Dateien korrigiert. - Fehler in der 48. Migration behoben, bei dem ein null-Wert nicht als String verarbeitet werden konnte. - MHT-Export korrigiert. [Common] + Swagger-Datei für das Admin-Panel im Corporate Server und Publisher hinzugefügt. + Zusätzliche Tests zur Funktionsfähigkeit von FerretDB hinzugefügt. - Fehler behoben, bei dem MySQL das Erstellen von Parametern für SELECT-Abfragen verhinderte. - Fehler behoben, bei dem Migrationen bei Verwendung von FerretDB nicht ausgeführt wurden. [Docs] + Aktuelle Produktversion in alle Dokumentationsartikel aufgenommen. + Dokumentation zu Aufgaben und dem Planer verbessert. + Artikel über die Einschränkungen der Demo-Version des Publishers und Corporate Servers hinzugefügt. [Frontend] + Neues Admin-Panel basierend auf Fluent UI hinzugefügt. - Dateiauswahldialog in Transportaufgaben korrigiert. [Installer] -  Fehler behoben, bei dem der Installer falsche Demo-Lizenzschlüssel verwendete. [Online Designer] + Unterstützung für API-Keys im Online Designer hinzugefügt. * Der Online Designer verwendet jetzt das Symbol aus der Serverkonfiguration. [SDK] - Fehler bei der Übergabe von Datum und Uhrzeit behoben. [Tasks] + Zwischenspeicherung der Berechnung von Cron-Ausdrücken hinzugefügt, was die Datenbankarbeit erheblich beschleunigt. - Fehler behoben, der das Starten von Aufgaben erlaubte, wenn der Benutzer keinen aktiven Cloud-Workspace hatte. - Fehler behoben, durch den Aufgaben ausgeführt wurden, obwohl der Workspace keine Berechtigung zur Nutzung des Planers hatte. - Fehler behoben, durch den eine Aufgabe zu oft ausgeführt wurde, wenn ein Cron-Ausdruck angegeben war. ### Update of FastCube 2 beta URL: https://www.fast-report.com/de/news/update-fastcube2-beta Summary: Update of FastCube 2 beta Update of FastCube 2 beta 1. Improved integration with FastReport: reports now use grid highlights and style. Fixed cell autosize options: adjust width, adjust width with restrictions and adjust height. 2. Added FireDac support. 3. Extended scripting abilities :  a. «Calc all cells» option –to build calculated measure for empty cells (which does not have records in source dataset),  b. calculate totals with script,  c. “FormulaDetail” aggregate - calculate measure values on source data (not on other measures). 4. Copy to clipboard now copies headers . ### Updated export engine in FastReport VCL URL: https://www.fast-report.com/de/blogs/updated-export-engine-vcl Summary: Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. This means the scaling of objects does not affect the quality. Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. This means the scaling of objects does not affect the quality. It is better to consider this with examples. Since there was no Map object in the 5th version of FR VCL, let's look at the example of a Chart object. I will present screenshots of the export of the one and the same report in the 5th and 6th versions. Diagrams’ representation in the 5th and 6th versions differs in color filling. In the previous version, the diagram was painted with a lurid vivid colors. I agree, it contrasts, but looks "childish". In the 6th version, quiet colors are used for filling, and it looks "more mature". Let's look at exporting to a PDF report format with a chart in version 5. To show the disadvantages of using a picture to display compound objects, I zoomed in: Even with a slight zooming, the picture quality deteriorates noticeably. In addition, there is no way to select and copy the inscription. Now look at the PDF export of the same report in FR VCL 6: And even at high magnification ... The chart looks perfect. Note that on the previous screenshot, I showed the highlighted chart title. Any text in a diagram, map or RichText can now be selected and copied to the clipboard. The PDF file size for FR VCL 5 is 447KB, and for FR VCL 6 is 307KB. That is, updates have benefited not only the quality of exports, but also the size of the resulting file. Since we are considering PDF export, take a look at its settings for the 5th ...  and the 6th version: The Outline option is available. At the bottom of the form appeared drop-down list with options for saving the report: As you can see, in addition to saving to the local disk (File option), you can save the report to a remote FTP server or to one of the cloud stores. Updated export is applied for three formats: PDF, HTML5 and SVG. Tags: VCL, Export, FastReport ### Updated Export menu FastReport.Net report URL: https://www.fast-report.com/de/blogs/updated-export-menu-net In the version of FastReport.Net 2018.3.14 appeared useful refinement that does not relate to the functionality of generator. However, it significantly improves usability report designer, or rather the report preview mode. Finishing touched menu exports. Because developers regularly delight us with new export formats, their recruit until 31. Let's take a look how it looked until recently: In such a huge list is not just quickly find export, not to mention the size of the menu that on smaller screen resolutions are simply not fit entirely. There is only one way out-group exports by destination. Here is what we have now: Very compact. Just some relief. Briefly go through the menu. Prepared report formats and Adobe Acrobat stand apart. For them there is no pair to create the drop-down list. All formats of Microsoft Office and Open Office in the same group. XML group contains export formats such as: Web group contains other markup languages used in the Web: In the Image group - export formats in image. Export Image file formats support: JPG, BMP, PNG, GIF , TIFF, Windows metafile. Export to SVG stands out because it has a lot of their own settings.  Group Database contains formats commonly used to store data: Print Group gathered all export formats that are relevant to printing. And the Other group includes other export formats for which a separate section is inappropriate: Group Cloud contains exports to external storage. Usually it is cloud services. Here you need to understand that it is not enough simply to have an account in one of cloud services, you want to create an application in the cloud-based service through which you will save the report to the store. More details can be found in the documentation of FastReport.Net. The last group contains Messengers only one export to XMPP for now, also known as the Jabber. The fact that exports in Messenger placed in a separate section, gives us hope for the addition of new export formats to the most popular instant messengers. What is the export of this? FastReport.Net loads report to the cloud FastReport Cloud. And then sends a link to the report in the messenger. In conclusion, I would like to commend the work of FatReport.Net team that she does not forget about usability. I look forward to further work in this direction. Tags: .NET, .NET, FastReport, FastReport ### Updated FAQ URL: https://www.fast-report.com/de/news/update-faq-fastreport-vcl4 Summary: Updated FAQ Updated FAQ Added FAQ sections for  Fast Report 4 VCL  and for  Fast Report Studio . ### Updating of the documentation URL: https://www.fast-report.com/de/news/fastreport-vcl-update-documentation Summary: Updating of the documentation Updating of the documentation New documentation for FastReport 3! In  HTML  (On-line and archive),  PDF, CHM, Help-file  available: Programmer's manual, User manual, Developer's manual, Client-Server (Enterprise) programmer's manual.  ### Updating report object through Ajax in ASP .NET MVC project URL: https://www.fast-report.com/de/blogs/object-ajax-asp-net-mvc Ajax technology significantly speeds up web applications. Also, the visual side is important. Agree that not very nice when each time you click the button and the entire Web page is updated. If your internet is not very fast, this procedure causes irritation, because all elements disappear and appear again. It would be good if only part of the Web page is updated. This is what provides Ajax. The script passes the request to the server to update the necessary pieces of information. Then, the script inserts the updated data to the desired location on the web page. In this page I want to consider a simple way ajax application to update the information in the project ASP .Net MVC. This approach is called "unobtrusive Ajax» - Microsoft Unobtrusive Ajax. The bottom line is to use Unobtrusive library. Which, with the helpers allows you to use ajax without writing a single line of code in JavaScript. An example is very simple, based on the newcomers. Let's get started. For use in a MVC project WebReport component of FastReport.Net report generator, you need to make some adjustments. Namely, to make changes in the Web.Config files and add the necessary libraries. Add the FastReport library and the FastReport.Web into your project. Add the handler in the Web.config, which is located in the root of the project: ``` ```  Add the namespaces in the Web.config file that is located in the Views folder. ``` ```  In _Layout.cshtml file add scripts and styles in the section :    ``` @WebReportGlobals.Scripts() @WebReportGlobals.Styles() ```  Now we go to HomeController.cs. Here we place the business logic: I've created a report object as global: ``` using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using FastReport.Web; using System.Web.UI.WebControls; using System.Globalization; using WebLocalization.Models;   namespace WebLocalization.Controllers { public class HomeController : Controller { private WebReport webReport = new WebReport(); // report object is available within the class private string report_path = "J:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; //reports folder   public ActionResult Index() { SetReport(); //method of loading report and DB ViewBag.WebReport = webReport; //pass the Web Report into the View return View(); }   public void SetReport() { System.Data.DataSet dataSet = new System.Data.DataSet(); //create data set dataSet.ReadXml(report_path + "nwind.xml"); //Load xml database webReport.Report.RegisterData(dataSet, "NorthWind"); // register the data source in the report object webReport.Report.Load(report_path + "Simple Interactive.frx"); //load the report into WebReport object webReport.Width = Unit.Percentage(100); webReport.Height = Unit.Percentage(100); }   ```  As you can see, the method Index contains only the loading of report and transferring it to the presentation via ViewBag. I have separated the report loading to the separate method SetReport(). Now consider the view Index.cshtml: ``` @{ ViewBag.Title = "Home Page"; } @using (Ajax.BeginForm("Update", "Home", new AjaxOptions { UpdateTargetId = "UpdateHere" //HttpMethod = "POST", //InsertionMode = InsertionMode.Replace, })) { @Html.CheckBox("condition", true) }
@ViewBag.WebReport.GetHtml()
```  In the beginning, I decided to download the necessary libraries from the official online source https://www.asp.net/ajax/cdn. But you may well install libraries using a package NuGet. The most interest is the helper Ajax.BeginForm(). The first two parameters indicate the action (the method) and the controller. The method Update we will create later. This helper is very similar to Html.BeginForm(). Only one parameter was added - AjaxOptions. You can read more about these options in MSDN. The most important of them - UpdateTargetId. How do you understand it indicates the identifier element in which to display the changes. In our case it is -
. But it is already displayed element @ ViewBag.WebReport.GetHtml(). This is done so that  to display a report from the method Index when the page first loads. I display CheckBox and button within helper. Check box will indicate the status of the report toolbar - enabled / disabled. Let's go back to the controller:       ``` public ActionResult Index(string condition) { SetReport(); ToolbarCondition(condition); ViewBag.WebReport = webReport; return View(); } ```  We pass condition peremeter to the Index method - the state of the check box in the view. Also, it adds a call ToolbarCondition method (condition). It will handle the parameter and activate or deactivate the report toolbar. Let's write this method: ``` public void ToolbarCondition(string condition) { if (condition=="true") webReport.ShowToolbar = true; else webReport.ShowToolbar = false; } ```  Now, add another method that will return a partial view. It is necessary that the Ajax request only part of the page is updated, not all entirely: ``` [HttpPost] public ActionResult Update(string condition) { SetReport(); ToolbarCondition(condition); ViewBag.WebReport = webReport; return PartialView("Update"); } ```  String [HttpPost] indicates that the method accepts a Post request. Our action takes a parameter condition, as well as the Index. In fact, everything is repeated, but in the end we get a partial view to be inserted into the view Index. Now we need to add this view. Make a right click on the name of the method: And select Add View…: Add new view. Edit it: @ViewBag.WebReport.GetHtml() That's all the code that I put in it. We can run the application: Activate the checkbox and click the button: In this updated only WebReport object, not the entire page. This is especially useful when you have a lot of information on the page and its full reset will cause tangible time and resource costs. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC, WebReport, WebReport ### Using FastCube for multidimensional data analysis URL: https://www.fast-report.com/de/blogs/using-fastcube-multidimensional-data-analysis On-the-fly data aggregation of "flat" database tables is one of the first tasks faced by information system developers and their users. At the same time it is usually difficult to foresee the user needs in terms of data selection criteria (filters), dimensions in which the data needs to be aggregated (slices) and a list of aggregated fields (measures). The need of developing new SQL-queries and reports for each user request sometimes consumes time which could be better spent on information systems development. Thus the question arises how to give user an ability to create pivot reports without the help of a programmer? In the FastReports product line this task is handled by the FastCube component set. By connecting a data source to the FastCube pivot table we are getting a tool which allows dimensions, filters and measures managing. The next small example demonstrates how it is simple and quick to create applications which allow users to build pivot tables. Let's take " salesdb.mdb " database with a " sales " table which contains products sales data of a wholesale company. The table contains the following fields: Customer - Customer Date - Sale date Manager - Responsible manager Product - Type of product Amount - The number of units Balance - The customer's balance Cost - The cost of sold good Paid - The amount of payment received for this sale The table contains data about 3218 sales for 2006 year: Let's start application development: Create a new application and add a TPanel Panel1 to the main form. The panel will contain the needed buttons. Set the panel alignment to bottom edge ( Panel1.Align := alBottom ). We will use ADO connection to access the database - these components are included by default in Delphi (dbGo component set). However, if you prefer, you can choose any other data access engine, as long as the components which work with tables and queries derive from standard Delphi TDataSet class. Add a database connection component ( ADOConnection1: TADOConnection ) and a table access component ( ADOTable1: TADOTable ) to the form and connect them the table " Sales " from the " Salesdb.mdb " database. Set ADOConnection1.LoginPrompt = False , to skip the database login dialog on connect. Let's turn to the FastCube components now. First, we need three components: fcCube1: TfcCube - this component is responsible for the data loading, arranging and storing it in the memory. fcSlice1: TfcSlice - is responsible for filtering and storing the pivot table structure. fcGrid1: TfcGrid - visualize a pivot table and allows a user to manage the structure and filters. Add them to the form. Connect fcCube1 to the data source: fcCube1.DataSet := ADOTable1 . Connect fcSlice1 with fcCube1: fcSlice1.Cube := fcCube1 . Connect fcGrid1 with fcSlice1: fcGrid1. Slice = fcSlice1 . Set fcGrid.Align = alClient . Now we need to add one line of code which initiate the data loading and activate the pivot table in OnCreate event handler of the form: Code ``` procedure Tfm_Article1.FormCreate (Sender: TObject); begin fcGrid1.Open; end; ``` You can run the application and build a pivot table. Once launched, we see an empty table, which must be customized to display our data in the required form. To do this we need to place fields in the rows, columns and filters and create measures. Open the drop-down list " Field List ". We see the list of fields from the source table in it. Note that the list contains the fields " Day_Date ", " Day_of_week_Date " and others which were not present in the " Sales " table. These fields are automatically created for the " Date " field and we can use them to build slices by date parts or for filtering. Suppose we want to find out the total sales for the month (remember that the source table has only data for 2006 ). To do this we need to drag the " Month_Date " to the row area, the field " Cost " to the data area and the service dimension " Measures " from the filters to the column area. In result we get the required data. Let's complicate the task. Let we additionally interested in sales by month for each manager.For this purpose it is sufficient to drag the field " Manager " to the column area.Note that the field " Manager " can be placed after the field " Measures " as well as before it. What if we are interested in sells by quarters? Drag the " Quarter_Date" to the rows, place it before the field " Month_Date " and here we are. If we don't need information by month we can drag the "M onth_Date " out to the filters area or completely remove it by drop it to the " Field List ". Or we can just drill up the dimension " Quarter_Date ". To do this click on the button with the "-" sign on the appropriate quarter value. Or we can roll up the month dimension if we hold down the " Ctrl " key during the click. If we are interested only in particular product information like " Plastic Box " then we need to drag the field " Product " to the filters area and open the drop-down list of the field. It contains the values of the " Product " field. As we see, all the values is checked - this means that the pivot table is not filtered by the product type. Uncheck all product types except the " Plastic Box ". It's enough just to uncheck " Plastic Box ", and then make an inversion (click on the " inversion " at the bottom of the list): The data in the pivot table has changed. Now it has only plastic boxes sells. Thus with the simplest actions in the FastCube pivot table we've got results for the different criteria and groups and have not touched the programmer. And the programmer has used just a line of code to give the user this possibility. It is worth to say that we can simplify the life further both for the user and the programmer. FastCube allows saving pre-existing structures (schema) of pivot tables and loading them if needed. Thus, the user can immediately get the required pivot tables without any dragging or filtering. Schemas can be saved in files or in a database. Salesdb.mdb database and project: Archive Open the drop-down list " Field List ". We see the list of fields from the source table in it. Note that the list contains the fields " Day_Date ", " Day_of_week_Date " and others which were not present in the " Sales " table. These fields are automatically created for the " Date " field and we can use them to build slices by date parts or for filtering. Tags: CrossTab, FastCube, OLAP ### Using property PrintOnPreviousPage with unlimited pages URL: https://www.fast-report.com/de/blogs/print-on-previous-page In this article I want to consider a property PrintOnPreviousPage of the object ReportPage. How does it work? If you have a two-page report, you can set this property to true for the second page, and then, if the first page is left free space, the objects of the second page, partially or completely be transferred to the first. Thus, you can save paper when printing reports or simply to improve the look of the report, if the empty space on the page is causing your discord. All of this works fine with the usual report pages. However, if you use the property or UnlimitedHeight UnlimitedWidth, then to the pages will be connected you must to fulfill some conditions:Страницы должны иметь включенное свойство UnlimitedHeight или UnlimitedWidth; If both pages have enabled UnlimitedHeight property, they should have the same width, or enabled UnlimitedWidth property; For the page you want to merge with the previous the property PrintOnPreviousPage should be enabled. If you do not observe these restrictions, the merging of pages will not happen. The functional of merger of unlimited pages became available with version 2017.1.13. And now a bit of practice. Create a report with two pages: And:  Pages have the same width 21cm. For both pages enabled UnlimitedHeight property. For the second page enabled PrintOnPreviousPage property. Run the report: The pages joined into the one. And now for one of the pages change the sheet width from 21 to 22: Pages not connected. Now, enable the UnlimitedWidth property for the both pages: Pages are reconnected. Requirements for the third page are the same as for the second. If we disable PrintOnPreviusPage property for the second page, and enable it for the third page, then only the second and third pages will be merged: Thus, you can now use PrintOnPreviousPage property for "unlimited" pages. This makes a report with a few pages one-page report. Tags: .NET, .NET, FastReport, FastReport ### Using the plug-in connector to Oracle in FastReport.NET URL: https://www.fast-report.com/de/blogs/connector-oracle-report-designer Summary: Instructions for using the plug-in connector to the Oracle database in FastReport .NET through the designer and own code. Instructions for using the plug-in connector to the Oracle database in FastReport .NET through the designer and own code. Instructions for using the plug-in connector to the Oracle database in FastReport .NET through the designer and own code. Perhaps you have never used plug-ins for the report designer FastReport .NET. Then this article is for you. As you know, in order to display data from the database in the report, you need to create a connection to the data source. You can do this in the code of the user application or within the report itself. In the first case, you have to create a connection, send it to the report and register it in the report. Not the fastest way actually. However, it is much faster to connect to the data inside the report. Although, if you create many reports with the connection to the same data source, the first method is still preferable. But in this article we will talk about the second way. 1. The essence of plug-ins with connectors to databases is to simplify the procedure for connecting to the database from the report. You can install a native connector, but connecting with it will take more time due to the abundance of settings. In the delivery of FastReport .NET there is a set of plug-ins with connectors to various databases. But we are interested in this particular: C: \ Program Files (x86) \ FastReports \ FastReport.Net \ Extras \ Connections \ FastReport.Oracle. We open the solution. By default, the project is configured to .NET Framework 2.0. You need to switch it to something fresh, for example 4.5. Otherwise, there will be problems with the FastReport library. Check the project references. You need to update the link to the FastReport.dll library that you will find in this folder: C: \ Program Files (x86) \ FastReports \ FastReport.Net. That is it. We build the solution and get the FastReport.Oracle.dll library in the Release folder. 2. Open the report designer. To add a new plug-in, select the File -> Options menu. Use the Add button to add the library we collected earlier. For the changes to take effect, you must restart the designer. There are two other ways to add a plug-in to the designer. 1. You can edit the config file of the designer FastReport.config, which is stored along this path: C: \ Documents and Settings \ user_name \ Local Settings \ Application Data \ FastReport. The configuration file is an XML document. We are interested in the section in which you need to add a new plugin: ``` ```  2. From the code of the user application, you need to register a new connection once: ``` FastReport.Utils.RegisteredObjects.AddConnection (typeof (OracleDataConnection)); ```  Preliminarily, of course, you need to add a link to FastReport.Oracle.dll in the project. Now you can add a new data source to the report. Click on New connection: Choose the type of connection Oracle connection. Fill in the fields: server name, username and password. Click Ok. Then, select the tables you need for the report. As a result, we get the data source in the window on the upper right: That's all. We got the data from the Oracle database, using the plug-in connector. Now the new connection will always be available in the connection type selection list. At least until you remove the plugin in the designer's settings, of course. Tags: .NET, .NET, FastReport, FastReport, Data Source, Data Source, Plugin, Plugin ### Using the Report Builder of FastReport Desktop from the command line URL: https://www.fast-report.com/de/blogs/report-builder-command-line The FastReport Desktop software package includes the console Report Builder. Report Builder - a console program to automate operations with reports. You can perform the following operations: Batch processing of reports; export to all available formats; Connection data source; send the results by e-mail; Save results locally on ftp, and to cloud storage. Report Builder is closely connected with the Configurator, which creates a special configuration files- instructions. These instructions allow you to set the report export, choose where to save the report and send reports by email. Builder receives these instructions and execute them on a schedule that is created in the Scheduler program. But nothing prevents to work directly with the builder through the command line. This can be useful if you want to export or send reports from own applications. Let's look at three ways of interaction with Report Builder: Transfer a configuration file to Builder. To do this, run the Builder on Windows command line, and pass it the configuration file: "Builder.exe path / to / config.xml" Here, as you understand, the builder call with one parameter - the path to the configuration file; Send configuration file to the Builder and override some of its parameters. You have the option to download the configuration file and replace the options you want, for example, a directory of saving report export: "Builder.exe --Config-Path = path / to / config.xml --Save-Path =. / Dir" That is to override the attribute you want to use the following scheme: - Team {name} - {parameter name} = {value} It turns out like this: --Save-Path =. / Dir In the case of override commands you need to specify the Config command to specify the path to the configuration file. Send parameters-commands to the builder . With this approach, we do not load the configuration file, and in fact form the instructions for the Builder on the command line. Pass parameters, as well as the we define them in the Configurator. Let's look at an example: --Report-Path="report.frx" --Export-As=image --Export-ImageFormat=Jpeg --Export-JpegQuality=80 --Save-To=folder --Save-Path="path/to/folder" Since we do not load a configuration file --Config command is not needed. Note that we used the command --Export three times. For each export property you want to override (as opposed to the default values), you need to write command name. Thus it is possible to define any parameter available in the Configurator. A full list of commands and properties (attributes) can be found in the documentation for FastReport Desktop. So, we looked at different variants of working with console Report Builder. Now you can use it in conjunction with own programs, need only transmit a set of parameters. Tags: FastReport, FastReport, Desktop, Desktop ### Vector graphics in FastReport.Net 2019.4 URL: https://www.fast-report.com/de/blogs/vector-graphics Summary: FastReport .NET 2019-Bezier curves finally appeared – which means vector graphics. Now the Polygon section has appeared on the Home tab, where we can create polygons and change the curvature of the segment. FastReport .NET 2019-Bezier curves finally appeared – which means vector graphics. Now the Polygon section has appeared on the Home tab, where we can create polygons and change the curvature of the segment. FastReport .NET 2019-Bezier curves finally appeared – which means vector graphics. Now the Polygon section has appeared on the Home tab, where we can create polygons and change the curvature of the segment. Back in FastReport.Net 2018, entry-level vector graphics appeared in the reports. These were polygons and curves. It was possible to build complex shapes, but all the curves were straight. In version 2019, Bezier curves finally appeared - and therefore, full-fledged vector graphics. Now we can create any shapes. Let's look at updates in detail. First of all, you will notice a difference from the previous versions on the top property bar. On the Home tab there is a section Polygon. Previously, we had access to a set of actions with a polygon / polyline, which appeared above the figure when it was selected: These controls allowed to move points, add a line to the beginning, add a line to the end and add points. With the appearence of Bezier curves, we had to rework the concept of editing a vector object. Each point on the curve now has vectors defining the curvature. If it is a broken line, not a figure, then the extreme points have one vector, all others have two vectors, in order to adjust the curvature before and after the point. But back to the new Polygons toolbar. Consider its elements:  - moving the figure;   - figure editing;  - adding points;  - editing the curvature vectors, initialization of points;  - deleting points. Consider how to use these controls in the examples of creating a polyline  and polygon . A polyline is initially defined by points that do not have curvature vectors: If earlier you could add lines only to the beginning or end, now it is enough to choose in edit mode  the desired point on the curve, then go to the mode of adding points  and you will immediately be offered the option of adding a point and lines connecting it with the selected point and the next point closest to the mouse cursor: If you want to make a broken Bezier curve, then you need to go to the mode . While in this mode, you can initialize the Bezier curve by selecting a point on the polyline and changing the direction of the curvature vector for it: To change the curvature of a segment drawn to a selected point, move the mouse cursor over the blue point of the vector outgoing from the selected point towards the previous point. You can change not only the angle of the vector, but also its length, it will also affect the curvature of the segment. The curvature for the segment drawn from the selected point is set in the same way. After that, in any shape editing mode, the modified point will be displayed with curvature vectors. If you want to get rid of the Bezier curve in your broken line, you will have to delete this point in delete mode , and then re-add it . To delete a point, go to the mode  and just select the point to be deleted with the mouse cursor. In this case, the segments that are suitable for this point will also be deleted, and the neighboring ones from the remote point will be connected by a new segment. In the situation with the polygon, everything is exactly the same. That is, initially all points on the figure do not have the segment curvature settings. To create a polygon with Bezier curves, select the mode  and alternately select points on the figure, changing the position of the curvature vectors of the segments. If you change the position of the curvature settings for a point, from now on these settings will be available in any editing mode. That is, to return the segment to the original straight line mode, you will have to delete the point and add it again. It is worth noting that drawing curves without proper practice can take quite a long time. Even creating such a simple figure: Therefore, in the next article we will look at the way to create vector objects in a report from application code, or a report script. Tags: .NET, .NET, FastReport, FastReport, SVG, SVG ### Vektor-Barcodes und SVG im PDF-, HTML- und SVG-Export URL: https://www.fast-report.com/de/blogs/vector-barcodes-exports Summary: Erhalten Sie nützliche Tipps zum Exportieren von Vektor-Barcodes. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Erhalten Sie nützliche Tipps zum Exportieren von Vektor-Barcodes. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Erhalten Sie nützliche Tipps zum Exportieren von Vektor-Barcodes. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. FastReport 2018.2 has support for vector graphics in exports. Now some barcodes and SVG images are exported in vector form. This applies to exports to PDF, HTML and SVG. As for barcodes, the explanation is needed to be given - only linear bar codes can be exported as vector images. In the current version of 2018.2.22, a special tab of the settings for vector images - "Vector Graphics" has been added in the PDF export settings window. Here we have two types of settings - the gradient quality and the curves. The quality of the gradient affects the smoothness of the transition, i.e. number of shades. A gradient interpolation determines the dimensionality of the gradient at the points. Interpolation of curves allows you to plot curves with a given number of segments. Rather, we specify the number of points that will be used to create the segments. Interpolation makes the curve more rounded. The higher the interpolation, the more rounded the curve is obtained. Some PDF readers of older versions had problems with displaying vector graphics. Therefore FastReport has developed its own curve builder. If you turn off the interpolation option, the PDF reader will choose how to build the curve. Let's look at the gradient settings. Gradients in PDF are generated on a grid of gradients, i.e. the grid is generated, grid colors are computed on the grid nodes, and then a complex gradient is created. The quality of the gradient affects the size of the grid that will be generated. The higher the quality of the gradient, the more accurately this grid will be generated. However, the speed of the image creation will suffer. Interpolation of the gradient shows what size of the grid will be used in PDF, the higher the value, the more beautiful, but more space will be occupied on the disk. This is how the gradient looks if you set a low quality and interpolate 256: And now, high quality and interpolation 256. The difference is almost invisible to the eye, but it is there. This difference is better seen on complex gradients. For example, low quality: High quality: Here all the questions disappear by themselves. But if you change the value of gradient interpolation to minimum, the difference is immediately noticeable with the usual linear gradient. For example, the interpolation value of 2: And the interpolation value is 16: Now consider how interpolation of curves works. For example, we have an SVG image - the circle. Which is implemented using the tag : And we want it to be rendered using 8 segments. We set the value 8 to interpolate the curves: The larger the interpolation value, the more rounded the curve we get. For example, with a strong approximation of the circle, you can see this: It is seen that the circle is not at all perfectly round, it consists of many segments. What about the interpolation of the text ? Here the situation is exactly the same as with the curves. After all, symbols also consist of curves. Hence, the greater the value of the interpolation of the text - the more "qualitatively" it looks. And then you can ask: "Why do you need these settings? Obviously, you need to use the maximum settings to get a high-quality image. " Yes it is. But the high settings noticeably increase the size of the resulting file. If you do not need the maximum quality of gradients and curves, you can sacrifice them to reduce the size of the document and increase the speed of its creation. At first glance, the new options seem to be of little use to ordinary users, but they will be appreciated by those who work with vector graphics. FastReport offered its SVG image renderer, because some PDF viewers incorrectly display them. It's nice that the manufacturer cares about us, trying to foresee all possible problems. Tags: .NET, FastReport, SVG, PDF, HTML ### Vektorgrafiken in FastReport .NET 2019.4. Skript URL: https://www.fast-report.com/de/blogs/vector-graphics-script Summary: Schauen wir uns das Skripting für Vektorgrafiken genauer an. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns das Skripting für Vektorgrafiken genauer an. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns das Skripting für Vektorgrafiken genauer an. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. In the first part of the article we reviewed the innovations of FastReport .NET 2019.4 in terms of vector graphics. Now polylines and polygons can be constructed by Bezier curves. In this article, we will consider the possibility of creating curves using a report script. Currently there are two ways to create curves from code: use a PolyLineObject object or load a polygon from an SVG. As you know, any report object is available in the report script, so we can use PolyLineObject to set points and connect them to create a shape. Run the code before displaying the object, which means you need to create a BeforePrint event handler for the Polygon object. Let's look at a real example. Add a Polygon object to the report page. In order not to create key points of the shape, just press Esc. In the object property inspector select Events. Create a BeforePrint event handler: Let's write the following code in the handler: ``` private void Polygon4_BeforePrint(object sender, EventArgs e) { // Create a star shape int spikes = 5; //Number of spikes PolyLineObject obj = sender as PolyLineObject; PolyLineObject.PolyPointCollection points = obj.Points; points.Clear(); const float outerRadius = 70; //External radius const float innerRadius = 30; //Internal radius float rot = (float)(Math.PI / 2 * 3); // Tilt angle const float cx = 0; const float cy = 0; float x = cx; float y = cy; float step = (float)(Math.PI / spikes); // Vertex creation step obj.Width = 100; obj.Height = 100; obj.CenterX = 50; obj.CenterY = 50; points.Add(new PolyLineObject.PolyPoint(cx, cy - outerRadius)); //Add points for (int i = 0; i < spikes; i++) { // Coordinates of interior points x = cx + (float)Math.Cos(rot) * outerRadius; y = cy + (float)Math.Sin(rot) * outerRadius; points.Add(new PolyLineObject.PolyPoint(x, y)); rot += step; // Next point // Coordinates of external points x = cx + (float)Math.Cos(rot) * innerRadius; y = cy + (float)Math.Sin(rot) * innerRadius; points.Add(new PolyLineObject.PolyPoint(x, y)); rot += step; } } ```  As a result, we get a star: In the example above, we calculated the coordinates to build the shape, but if you already have a list of coordinates, then simply add them to the collection of points: points.Add(new PolyLineObject.PolyPoint(x, y)); But what if the shape is much more complicated than the example above? The amount of code to create it will be too large. In this case, you can use the object SVG. For example, its path property. We can convert a set of elements of the svg image path into points and build a polygon using them. It is important to consider Bezier curves. How to do this, you will see below in the code: ``` private void PolyLine2_BeforePrint(object sender, EventArgs e) { PolyLineObject obj = sender as PolyLineObject; PolyLineObject.PolyPointCollection points = obj.Points; points.Clear (); // Svg builder along the way SvgPathBuilder builder = new SvgPathBuilder (); // Load the list of segments from the string SvgPathSegmentList list = builder.ConvertFromString ("M91.734 10.5L66.6384 59.025 10.5 66.8258l40.643 37.749-9.5696 53.327 50.2094-25.1932 50.234 25.1582-9.6124-53.321 40.6154-37.778-56.1505-7.76z") as SvgPathSegmentList; GraphicsPath _path = new GraphicsPath (); foreach (SvgPathSegment segment in list) { segment.AddToPath (_path); } PolyLineObject.PolyPoint point = null; for (int i = 0; i < _path.PointCount; i++) { PointF pnt = _path.PathPoints[i]; byte type = _path.PathTypes[i]; // If you have a curve, you have to consider three contractors. if (type == 3) { PointF pnt1 = _path.PathPoints[i]; PointF pnt2 = _path.PathPoints[i + 1]; PointF pnt3 = _path.PathPoints[i + 2]; i += 2; // Curvature to the right point.RightCurve = new PolyLineObject.PolyPoint (pnt1.X - point.X, pnt1.Y - point.Y); //Point point = new PolyLineObject.PolyPoint (pnt3.X, pnt3.Y); // Curvature to the left point.LeftCurve = new PolyLineObject.PolyPoint (pnt2.X - point.X, pnt2.Y - point.Y); } else { // Ordinary point point = new PolyLineObject.PolyPoint (pnt.X, pnt.Y); } // Add points points.Add (point); } obj.CenterX = 0; obj.CenterY = 0; obj.RecalculateBounds (); obj.Top = 0; obj.Left = 0; } } ```  This code will show us a star of this type: In the list of type SvgPathSegmentList we place elements from the path tag of the SVG file. Then, we obtain the coordinates of the points and add them to the PolyLine object. In this example, we have displayed the object in straight line segments, but you can also use curves, for example: …       SvgPathSegmentList list = builder.ConvertFromString ("m101.87775,57.26873c31.12829,-82.10042 153.08994,0 0,105.55768c-153.08994,-105.55768 -31.12829,-187.65809 0,-105.55768z") as SvgPathSegmentList;      … As a result, we get: It is necessary to take into account that the coordinate plane is the band on which the Polyline or Polygon object is located. Therefore, it does not matter where in the band you placed the object. It will be displayed according to the specified coordinates. Using the second method we considered creating a polygon from a script, you will be able to display the previously created vector drawings. There is no need to spend a lot of time manually creating a polygon. Tags: .NET, FastReport, SVG, Script ### Verbesserte Anzeige des Berichtsbaums im FastReport-Designer URL: https://www.fast-report.com/de/blogs/improved-interface-report-tree-fastreport-designer Summary: Im FastReport Designer haben.NET und Mono eine bequemere Anzeige von Datenbäumen und Berichten. Im FastReport Designer haben.NET und Mono eine bequemere Anzeige von Datenbäumen und Berichten. Im FastReport Designer haben.NET und Mono eine bequemere Anzeige von Datenbäumen und Berichten. Auf Wunsch der Benutzer wurden Berichts- und Datenbäume im FastReport .NET- und Mono-Designer verbessert. Es wurden Schaltflächen hinzugefügt, mit denen sich diese Bäume zusammenklappen und erweitern lassen. Es wurden auch Suchfelder für Baumelemente hinzugefügt. Dieses Beispiel zeigt die Funktion des Zusammen- und Aufklappens von Berichtsbäumen mit ihrem Inhalt. In beiden Fällen wird gezeigt, was nach dem Drücken der Tasten -/+ geschieht, und es wird demonstriert, dass die gesamte Liste erweitert wird. Der Suchvorgang wird im Folgenden dargestellt, wobei wir die Funktion ToLetter als Beispiel schreiben werden. Nach dem Löschen der Suche über die Schaltfläche X wird der gesamte Baum erweitert. Diese Änderungen sollten die Arbeit mit Berichten mit einer großen Anzahl von Elementen oder Datenquellen erleichtern. Durch die Möglichkeit, die Baumstruktur zu erweitern, können Sie die Struktur des Berichts und der Daten schneller erkunden. Und die Suche nach Baumelementen im Designer macht es schneller, ein Element zu finden, das Sie bereits kennen. Tags: .NET, .NET, Mono, Mono, FastReport, FastReport, Designer, Designer ### Verbindung mit einem Datenlager innen vom Bericht. URL: https://www.fast-report.com/de/blogs/connect-database-report Summary: Sehen wir uns genauer an, wie Sie in FastReport .NET eine Verbindung zu einer Datenbank in einem Bericht herstellen. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Sehen wir uns genauer an, wie Sie in FastReport .NET eine Verbindung zu einer Datenbank in einem Bericht herstellen. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Eine der Fragen, die der Entwickler am Anfang der Erschließung von FastReport .NET löst, ist eine Datenverbindung zum Bericht. Zum Glück hat dieser Berichtsgenerator ein natives Interface vom integrierten Designer. Aber in Rahmen dieses Artikels möchte ich über die Verbindung mit einer Datenquelle innen des Berichts erzählen. Ich erzähle heute, wie man ins Bericht eine Connectionszeile aus der Benutzers Anwendung übergibt. Aus diesen Gründen wird der Artikel an zwei Teilen eingeteilt: Verbindung mit einem Datenlager innen des Berichts und Übergabe der Connectionszeile ins Bericht. Eine der Fragen, die der Entwickler am Anfang der Erschließung von FastReport .NET löst, ist eine Datenverbindung zum Bericht. Zum Glück hat dieser Berichtsgenerator ein natives Interface vom integrierten Designer. Aber in Rahmen dieses Artikels möchte ich über die Verbindung mit einer Datenquelle innen des Berichts erzählen. Ich erzähle heute, wie man ins Bericht eine Connectionszeile aus der Benutzers Anwendung übergibt. Aus diesen Gründen wird der Artikel an zwei Teilen eingeteilt: Verbindung mit einem Datenlager innen des Berichts und Übergabe der Connectionszeile ins Bericht. Es gibt zwei Möglichkeiten, eine neue Datenquelle ins Bericht hinzuzufügen: durch die Verknüpfung vom Tab „Report“ auf dem Instrumentenpaneel. aus der Dropdown-Liste im Fenster “Daten“. Betrachten wir jetzt ein Beispiel. Erstellen wir eine Datenquelle. Im geöffneten Fenster wählen wir "New Connection". Man kann verschiedene Verbindungsarten wählen, sogar eine Verbindung mit dem XML-Datenlager. Ich verwende eine altmodische MS Access Connection. Weiter schlagt man vor, die Tabellen zu wählen, mit denen wir weiter uns beschäftigen. Aber man kann auch mit Hilfe aus der SQL-Anfrage die Daten wählen (für xml unverfügbar). Dazu steht ein visueller Aufruf-Konstruktor zur Verfügung. Übrigens gibt es keine Hindernisse, einen Aufruf mit der Hand zu schreiben. Beim nächsten Schritt kann man die Anfrageparameteren eingeben. Weiter -  die Spaltentypen nochmal bestimmen,   Also, ich wählte zwei Tabellen: employee und orders. Die kann man durch den Feld EmpNo. verbinden. Um das zu realisieren, öffnen wir ein Dropdown-Menu „Action“ im Fenster „Daten“ und wählen wir New relation. Elterntabelle – employee, Tochtertabelle – orders. Verbinden wir diese zwei Tabellen durch das Feld EmpNo. Zu welchem Zweck haben wir das gemacht? Jetzt können wir eine Bestellungsliste für jeden Mitarbeiter erstellen. Machen wir eine ganz einfache Berichtsschablone. Hier enthält der Datenbereich einen Feld „Daten“ für weitere Detalisierung. Wie man sieht – in erstem Feld stellt man den Vor- und Nachname des Mitarbeiters dar, in zweitem – einige Bestellungsdaten. Man kann den Datenbereich „Daten“ entweder vom Kontextmenu des genauen Datenfeldes, oder im Fenster vom Feldskonstruktor hinzufügen. Wenn man einen Doppelklick auf dem ersten Feld „Daten“ macht, sieht man, dass die Tabelle employee als Datenquelle gewählt wurde. Für den zweiten Datenbereich „Daten“ - orders. Die Datenquelle wählt man automatisch, beim Feldhinzufügen in den leeren Datenbereich. Aber die Quelle kann mit der Hand geändert werden. Wenn keine Datenquelle eingegeben wird, werden keine Daten dargestellt. Genauer, wird nur die erste Datenzeile für die hinzufügte Felder auf dem Bildschirm. Speichern wir den Bericht. 2. Betrachten wir jetzt noch eine interessante Besonderheit – die Übergabe der Connectionszeile zum Datenlager aus der Benutzers Anwendung. Erstellen wir eine Windows Forms Anwendung. Fügen wir eine Komponente Report vom Tab FastReport .Net und die Taste hinzu. Die Übergabe der Connectionszeile ins Bericht aus der Anwendung. Am Anfang modifiziert man früher erstellten Bericht. Öffnen wir ihn im Designer. Erstellen wir einen Berichtsparameter, in den wir die Connectionzeile übergeben. Im Fenster „Daten“ suchen wir das Element „Parameters“. Einen Klick mit der rechten Maustaste auf ihm – Neuer Parameter (New parameter). Im Fenster geben wir einen Namen des Parameters ein – conn. Jetzt wählen wir eine Verbindung im Fenster „Daten“. Unten, im Eigenschaftenfenster finden wir die Variable „ConnectionStringExpression”, in die wir von uns erstellten Parameter hinzufügen. Jetzt Schluss. Der Bericht ist jetzt modifiziert. Speichern wir ihn und kehren zum Programm zurück. Klicken wir zweimal auf die Taste „Run“. Fügen wir einen folgenden Anwendungscode in den Druckeventsbearbeiter  der Taste hinzu: ``` private void RunBtn_Click(object sender, EventArgs e)   {   using (Report report = new Report())   {   report.Load(ReportPath);   ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DBPath + ";User ID=Admin";   report.SetParameterValue("conn", ConnStr);   report.Show();   }   } ```  Vor dem Start der Anwendung erklärten wir die Variablen für Speichern der Adressen von Bericht und Datenlager. Beim Tastendruck erstellt man ein Exemplar der Klasse „Report“. Weiter herunterladen wir den Bericht. Bestimmen wir die Variable mit der Connectionzeile und setzen wir diesen Wert zum Berichtsparameter ein. Schluss damit, starten wir den Bericht.  Also, jetzt stellen wir fest, dass es sehr einfach ist, einen Bericht mit den Daten zu verbinden. Außerdem kann der Bericht mit fast beliebigem Datenlager verbindet werden. Beim Bedarf, kann man ins Bericht die Connectionzeile übergeben. Es ist bequem, wenn, zum Beispiel, der Anwender selbst den Platz für den Datenlager auf dem lokalen Speicher wählt. Tags: .NET, FastReport ### Verbindung zu Elasticsearch URL: https://www.fast-report.com/de/blogs/connecting-elasticsearch-json-net Summary: Wir sprechen über eine neue Funktion in FastReport .NET, Core, Mono, Open Source in Form einer Elasticsearch-Verbindung als Datenquelle. Wir sprechen über eine neue Funktion in FastReport .NET, Core, Mono, Open Source in Form einer Elasticsearch-Verbindung als Datenquelle. Wir sprechen über eine neue Funktion in FastReport .NET, Core, Mono, Open Source in Form einer Elasticsearch-Verbindung als Datenquelle. FastReport .NET-, Core-, Mono-, OpenSource-Produkte können jetzt eine Verbindung zu Elasticsearch herstellen. Elasticsearch ist ein skalierbares Dienstprogramm für die Volltextsuche und -analyse, mit dem Sie große Datenmengen schnell und nahezu in Echtzeit speichern, suchen und analysieren können. Daten im JSON-Format können von Elasticsearch abgerufen werden. Und FastReport .NET hat bereits eine JSON-Verbindung und es ist ziemlich bequem, die Daten in diesem Format zu verwenden. Daher wird dieses Format als Zwischenlage zwischen FastReport .NET und Elasticsearch verwendet. Wichtig! In FastReport ist nur die Elasticsearch-Verbindung als Datenquelle implementiert, ohne die Möglichkeit, in den darin gespeicherten Daten zu suchen. Um die Verbindung zu Elasticsearch herzustellen, klicken Sie im Designer auf die Registerkarte "Daten" und wählen Sie "Datenquelle hinzufügen". In dem erscheinenden Fenster klicken Sie auf die Schaltfläche «Neue Verbindung». Für die Verbindung ist “endpoint Elasticsearch” erforderlich und für den Datenzugriff sind die Kopfzeilen, wie z. B. Autorisierungsdaten (dazu gibt es unten ein Raster) anzugeben. Wurde der Zugriff auf die Daten erhalten, erscheint nach dem Klicken auf die Schaltfläche "Weiter" eine Liste von Tabellen. Für eine erfolgreiche Verbindung markieren Sie das Kästchen links neben dem Tabellennamen. Danach ist die Verbindungskonfigurierung abgeschlossen. Sobald eine Datenquelle verbunden ist, müssen Sie ein Band daran binden. Der resultierende Bericht verwendet die Daten aus der erstellten Verbindung zu Elasticsearch. Wenn Sie Daten für die Verbindung auswählen möchten, können Sie eine GET-Anfrage stellen und diese als JSON-Verbindungszeichenfolge verwenden. Das folgende Beispiel zeigt eine Suche nach Datensätzen, die das Wort "Bruno" im Feld "Name" enthalten und sich im Index (so werden Tabellen in Elasticsearch genannt) "demo" befinden. Wenn mehr als 10 Datensätze vorhanden sind, müssen Sie den Parameter "size" hinzufügen und darin die gewünschte Anzahl von Datensätzen angeben. Zudem müssen Sie im Bericht den Namen der Datenquelle in der DataSource-Eigenschaft des Bandes angeben und danach werden die Daten aus der Quelle für den Bericht abgerufen. Beispiel für die Verbindung zu Elasticsearch mit dem Code: ``` // create ESDataSourceConnectionStringBuilder instance ESDataSourceConnectionStringBuilder builder = new ESDataSourceConnectionStringBuilder(); // set Elasticsearh end point builder.EndPoint = "http://192.168.1.194:9200/"; // create ESDataSourceConnection instance var connection = new ESDataSourceConnection(); //set connection string connection.ConnectionString = builder.ConnectionString; // init all table connection.CreateAllTables(); // set name connection connection.Name = "NewConnection"; // create Report instance var report = new Report(); // add connection to report report.Dictionary.Connections.Add(connection); // set connection show connection.Enabled = true; // choose table with name "demo" and connect it to the report foreach(TableDataSource table in connection.Tables) { if (table.Name == "demo") table.Enabled = true; } ``` Nach der Ausführung dieses Codes wird die neue Tabelle "demo" im Designer in der Liste der verfügbaren Verbindungen angezeigt. Jetzt wissen Sie mehr über die Optionen der Herstellung einer Verbindung zur Elasticsearch-Datenbank. Wenn Sie Daten auswählen möchten, können Sie die JSON-Verbindung verwenden. Tags: .NET, .NET, Mono, Mono, FastReport, FastReport, Core, Core, JSON, JSON ### Verbindung zu in MsSQL gespeicherten Prozeduren URL: https://www.fast-report.com/de/blogs/connect-mssql-dotnet Summary: In FastReport .NET ist es einfacher geworden, vorbereitete Skripts zum Abrufen von Daten aus einer Datenbank in Berichten mithilfe gespeicherter Prozeduren zu verwenden In FastReport .NET ist es einfacher geworden, vorbereitete Skripts zum Abrufen von Daten aus einer Datenbank in Berichten mithilfe gespeicherter Prozeduren zu verwenden In FastReport .NET ist es einfacher geworden, vorbereitete Skripts zum Abrufen von Daten aus einer Datenbank in Berichten mithilfe gespeicherter Prozeduren zu verwenden Die Entwicklung neuer Funktionen des FastReport .NET Produktes steht nicht still. Unser Team erweitert zunehmend die Funktionalität unserer Bibliothek, um Berichte zu generieren. In einem kürzlichen Update haben wir die Option hinzugefügt, eine Verbindung zu in MsSQL gespeicherten Prozeduren herzustellen. Diese gespeicherten Prozeduren stellen eine Reihe von Anweisungen dar, die gleichzeitig ausgeführt werden. Auf solche Weise ermöglichen gespeicherte Prozeduren, komplexe Operationen zu vereinfachen und sie in ein einziges Objekt zu bringen. Bisher konnten Sie eine Verbindung zu diesen Prozeduren nur über die Datenbankabfrage herstellen. Jetzt genügt es, das Standardschema für die Verbindung zu den Datenbanktabellen zu verwenden. Die Symbole der Prozeduren werden unterschiedlich sein. Wenn Sie eine Prozedur mit Eingabeparametern auswählen, erscheint ein Fenster mit den Parametern dieser Prozedur. In diesem Fenster müssen Sie ggf. die Werte der Parameter eingeben. Wenn die Standardwerte der Prozedurparameter verwendet werden, müssen die Felder Expression und Value leer gelassen werden. Wenn eine Prozedur Ausgabeparameter akzeptiert hat, werden sie nach dem Herstellen der Verbindung in den „Berichtsparametern“ angezeigt. Diese Parameter werden nur aktualisiert, wenn die Informationen in die Datenquelle geladen werden. Herstellen einer Verbindung mit einer Prozedur über Code: ``` // MsSqlDataConnection Objekt erstellen var connection = new MsSqlDataConnection(); // Verbindungszeichenfolge einstellen connection.ConnectionString = @"Data Source=DESKTOP-43LGTAI;AttachDbFilename=; Initial Catalog=EmployeeCaseStudy;Integrated Security=True;Persist Security Info=False;User ID=;Password="; // Alle Tabellen initialisieren connection.CreateAllTables(); // Verbindungsname festlegen connection.Name = "NewConnection"; // Report Objekt erstellen var report = new Report(); // Verbindung zu einem Bericht hinzufügen report.Dictionary.Connections.Add(connection); // Verbindungsanzeige aktivieren connection.Enabled = true; // Tabelle auswählen und sie mit dem Bericht verbinden foreach (TableDataSource table in connection.Tables) { if (table.Name == "sp_GetUser") { foreach (CommandParameter parameter in table.Parameters) if (parameter.Name == "@id") parameter.Value = 1; table.Enabled = true; } } ``` Sie können Prozeduren in der Tabellenliste finden, indem Sie sie auf Übereinstimmung mit ProcedureDataSource überprüfen. FastReport .NET-Benutzer können jetzt vorgefertigte Skripte verwenden, um Daten aus der Datenbank in mehreren Berichten schneller und einfacher abzurufen. Tags: .NET, FastReport, Data Source, Stored procedures ### Verbindung zu SQLite DB aus einem Bericht URL: https://www.fast-report.com/de/blogs/connection-sqlite-db Summary: Schauen wir uns genauer an, wie Sie aus einem FastReport .NET-Bericht eine Verbindung zu einer SQLite-Datenbank herstellen. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, wie Sie aus einem FastReport .NET-Bericht eine Verbindung zu einer SQLite-Datenbank herstellen. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Schauen wir uns genauer an, wie Sie aus einem FastReport .NET-Bericht eine Verbindung zu einer SQLite-Datenbank herstellen. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. In this article I would like to see a connection to a SQLite database from a report. We will look at this in two examples. The first - with the help of plug-in for Report Designer, the second - with the help of ODBC SQLite driver. So, to use a plugin from FastReports, you must first make it. To do this, open solution FastReport.Net\Extras\Connections\FastReport.SQLite. The references need to fix two links - at the library FastReport.dll and System.Data.SQLite.dll. The last one will have to download from the Internet. Build the solution. We get FastReport.SQLite.dll library in the bin \ Debug folder. Now open the report designer. On the File menu, select Options. Open the Plugins tab in the form that appears. Use the Add button to add libraries created above. Restart the report designer. On the toolbar, select the Report tab and add a new data source using the icon  . In the appeared Data Wizard, click the button “New connection...”.  Select the type of connection - SQLite connection. Below, we specify the path to the database. By default, the filter is set to extension "* .db3" in the window opening. My database has an extension of db, so that changes to ".". As a result, to connect the database only need to select a database file. Click OK. In the Data Wizard click Next and proceed to the selection of tables: That's all. 2. Now look at the second method - using SQLite ODBC Driver. First you need to download and install this driver. Open the report designer. Create a new data source, as above, by means of icon . Next, in the Data Wizard click the button “New connection ...”. Select the ODBC connection. In the data source switch to the “Use connection string”. And sets the connection string using the icon . In the window of selection data source, you need to create new data source. Select the SQLite3 ODBC Driver. Click Next.  We set database connection. Here we only need to select the database file using the Browse ... button. Click OK. Here is the configured connection: Click OK and return to the Data Wizard. Click the Next button. And proceed to the choice of tables. Thus, we have considered two ways to connect to the database SQLite. If you will often use this connection, I advise you to use the plug-FastReport.SQLite.dll - faster and more enjoyable to use. If you do not want to bother with the assembly  - use ODBC. But the second option will run a bit slower due to the extra layer. Tags: .NET, FastReport, Data Source ### Vereinfachter Umgang mit TableObject im Berichtsdesigner URL: https://www.fast-report.com/de/blogs/table-object-dotnet Summary: Mit den neuen Funktionen für das Tabellenobjekt im Berichtsdesigner können Sie Vorlagen schneller über das Kontextmenü erstellen. Mit den neuen Funktionen für das Tabellenobjekt im Berichtsdesigner können Sie Vorlagen schneller über das Kontextmenü erstellen. Mit den neuen Funktionen für das Tabellenobjekt im Berichtsdesigner können Sie Vorlagen schneller über das Kontextmenü erstellen. Vor dem Update 2024.1 mussten Sie zum Hinzufügen einer Zeile oder Spalte im Eigenschaftenfenster nach der gewünschten Eigenschaft suchen und den gewünschten Wert festlegen. Und wenn Sie eine Zeile oder Spalte hinzufügen wollten, die sich nicht am Ende der Tabelle befand, mussten Sie alle Zellwerte manuell übertragen. Darüber hinaus war es zum Übertragen von Werten erforderlich, den Editor zu öffnen, den Wert zu kopieren und ihn über denselben Editor einer anderen Zelle hinzufügen. Um diese Probleme zu beheben und den Umgang mit TableObject zu vereinfachen, wurden im Designer eine Reihe von Änderungen vorgenommen. 1. Möglichkeit, Spalten und Zeilen mit der "+"-Schaltfläche hinzuzufügen; 2. Möglichkeit, Zellinhalte mithilfe von Tastenkombinationen zu kopieren, auszuschneiden und in andere Zellen einzufügen; 3. Möglichkeit, über das Kontextmenü Zeilen oben und unten hinzuzufügen; 4. Möglichkeit, über das Kontextmenü Zeilen rechts und links hinzuzufügen; 5. Möglichkeit, über das Kontextmenü Stile für eine Gruppe von Zellen festzulegen; Durch diese Änderungen ist der Umgang mit Tabellen im Designer viel einfacher geworden. Tags: .NET, .NET, FastReport, FastReport, Designer, Designer ### Vergleich der FastReport-Berichtgeneratoren URL: https://www.fast-report.com/de/fast-report-comparison Summary: Hier finden Sie eine Vergleichstabelle von FastReport-Berichtgeneratoren, Reporting Tools für verschiedene Sprachen und Programmierumgebungen, für verschiedene Plattformen und Betriebssysteme. Hier finden Sie eine Vergleichstabelle von FastReport-Berichtgeneratoren, Reporting Tools für verschiedene Sprachen und Programmierumgebungen, für verschiedene Plattformen und Betriebssysteme. Hier finden Sie eine Vergleichstabelle von FastReport-Berichtgeneratoren, Reporting Tools für verschiedene Sprachen und Programmierumgebungen, für verschiedene Plattformen und Betriebssysteme. Vergleichen Sie plattformübergreifende Reportgeneratoren, ihre Funktionalität und Vorteile. Die Tabelle enthält nur Fakten im Bereich der lokalen Reporterstellung, der Webreporterstattung (sowohl eigenständig als auch mit Unterstützung für verschiedene Webserver), der unterstützten Datenbankformate, der Exportfilterformate für plattformübergreifende Reporte und der Funktionen von Konvertern von Reportgeneratoren von Drittanbietern. Dieser Vergleich hilft Ihnen bei der Auswahl eines Reporterstellungstools für Ihre Projekte. Feature FastReport FMX FastReport VCL FastReport .NET FastReport WPF FastReport Avalonia FastReport Mono FastReport Open Source Frameworks VCL - x - - - - LCL - x - - - - FMX x - - - - - .NET Framework 4.6.2-4.8.1 - - x x x - .NET Core 2.0-3.1 - - x x - x .NET 5 - - x - - x .NET 6, .NET 7 - - x x - x Blazor Server - - x x - - Blazor WebAssembly (WASM) - - x x - - Mono - - - - x - IDE Embarcadero RAD Studio 2010 - x - - - - Embarcadero RAD Studio XE - x - - - - Embarcadero RAD Studio XE2-XE8 - x - - - - Embarcadero RAD Studio 10 Seattle - x - - - - Embarcadero RAD Studio 10.1 Berlin - x - - - - Embarcadero RAD Studio 10.2 Tokyo - x - - - - Embarcadero RAD Studio 10.3 Rio - x - - - - Embarcadero RAD Studio 10.4 Sydney x x - - - - Embarcadero RAD Studio 11 Alexandria x x - - - - Embarcadero RAD Studio 12.1 Athens x x - - - - Embarcadero Delphi Prism - - x - x - Lazarus - x - - - - Microsoft Visual Studio - - x x x x MonoDevelop - - - - x - Visual Studio Code - - x x x x JetBrains Rider - - x x x x Betriebsystem Microsoft Windows x x x x x x Apple macOS x - x x x x Linux x x x x x x Graphic Core Anforderungen GDI - x - - - - GDI+ x - x x - x D2D x - - - - - Quarz x - - - - - GTK - x - - - - libgdiplus - - x x x x SkiaSharp - - x x - - Report Engine Banden x x x x x x Code basiert x x x x x x XML Report Schablonen x x x x x x Report Script Sprachen Pascal Script x x - - - - C++ Script x x - - - - J Script x x - - - - VB Script x x - - - - C# - - x x x x VB.NET - - x x x x Report Script Engine FastScript x x - - - - CodeDOM - - x x x - Roslyn - - x x - x Datenbanken Support Couchbase - - x x x x CSV - - x x x x Firebird x x x x x x Google BigQuery - - x x - - IBM DB2 - x x x - - JSON - x x x x x MongoDB - - x x x x MS Access x x x x - - MS SQL x x x x x x MySQL x x x x x x NosDB - - x x - - ODBC x x x x - - OLE DB x x x x - - Oracle x x x x x x PostgreSQL - x x x x x RavenDB - - x x x x Sharepoint - - x x - - SqlAnywhere - - x x - - SqlCe - - x x - - SQLite - x x x x x VistaDB - - x x - - XML x x x x x x Internal App Datasets x x x x x x Custom Verbindungen x x x x x x Reporting Features Dialog Formen x x x x x - Report Verschachtelung x x x x x x Master-detail-Subdetail x x x x x x Drill-downs x x x x x x Grouppierug x x x x x x Sortierung x x x x x x Headers and Footers x x x x x x URLs and hrefs x x x x x x HTML tags im text object x x x x x x Unbegrenzte Seiten Große x x x x x x Vorschau Komponente x x x x x - Design-Time visualler Report Designer x x x x - - Run-Time visualler Report Designer x x x x x - High DPI support - x x x - - Visual SQL Builder - x x x - - Localization Sprachen 32 33 29 29  29 - Bundled Apps Designer - - x x - x Viewer x x x x - x Druck Druck auf verschiedene Druck Trays - x x x x - Dot-Matrix Drucker Support - x x x - - Advanced Drucker Modus x x x x x - Report Objekten Text x x x x x x Shape x x x x x x Picture x x x x x x SVG - - x x x x Sub-report x x x x x x System text x x x x x x Chart x x x x x - Barcode x x x x x x 2D barcode x x x x x x Map - x x x x - Zip code - x x x x x Cellular - x x x x x OLE - x - - - - Rich Text - x x x x - Gradient x x x x x x Cross-tab (Matrix) x x x x x x Advanced Matrix (AdvMatrix) - - x x x - Tabelle - x x x x x Kontainer - - x x - - Gauge x x x x x x Checkbox x x x x x x Sparkline - - x x x - HTML - x x x x x Digitalle Unterschrift - x x x x - Web-Reporting Integrated HTTP server - x - - - - CGI - x - - - - ISAPI - x - - - - ASP .NET - - x x x - MVC - - x x x x Web API - - x x - x WCF - - x - - - Support von Online Designer - - x x x x Export Formaten PDF x x x x x PDFSimple PDF/A - x x x x - PDF/X - - x x x - Images Jpeg/PNG/BMP/GIF/TIFF/EMF x x x x x x SVG - x x x x - Rich Text x x x x x - Word OOXML (docx) - x x x x - PowerPoint OOXML (pptx) - x x x x - HTML x x x x x x HTML5 (layered) - x x x x x MHT (web archive) - - x x - - Microsoft XPS - - x x x - Excel OLE - x - - - - Excel XML x x x x x - Excel binary (biff8 xls) - x x x x - Excel OOXML (xlsx) - x x x x - PostScript - x x x x - PPML - x x x x - LaTeX - - x x x - DXF - - x x - - ZPL - x x x x - JSON - - x x x - Mit Komma getrennte Werte  (CSV) x x x x x - DBF (Tabelle) - x x x x - Plain Text x x x x x - Open Document Speadsheet (OpenOffice) x x x x x - Open Document Text (OpenOffice) x x x x x - XAML - - x x x - Transporten Email - x x x x - FTP - x x x x - DropBox - x x x x - Box - x x x x - GoogleDrive - x x x x - OneDrive - x x x x - Konvertoren aus Quick Report - x - - - - Report Builder - x - - - - Rave Reports - x - - - - List&Label - - x x x - DevExpress - - x x x - Microsoft Reporting Services (RDL, RDLC) - - x x x - Crystal Reports - - x x - - StimulSoft - - x x x - Jasper Library - - x x x - FastReport/FreeReport VCL 2.* - x - - - - FastReport .NET - x - x - - FastReport VCL - -  im Grundriß - - - Distribution Windows Installation file x x x x - - ZIP archive - - - - x x NuGet - - x x x x DEB - - - - x - RPM - - - - x - GitHub - - - - - x Full sources x x x x x x Support Online helpdesk x x x x x - Online chat x x x x x - E-mail x x x x x - GitHub Issues - - - - - x Telefon x x x x x - - Freies Downloaden - ### Vergleich von SSRS und FastReport .NET Teil 1 URL: https://www.fast-report.com/de/blogs/comparative-analysis-report-sql-server-1 Summary: Vergleichen wir, welcher Berichtsgenerator mehr Funktionen bietet - SQL Server Reporting Services oder FastReport .NET. Vergleichen wir, welcher Berichtsgenerator mehr Funktionen bietet - SQL Server Reporting Services oder FastReport .NET. Vergleichen wir, welcher Berichtsgenerator mehr Funktionen bietet - SQL Server Reporting Services oder FastReport .NET. Electronic and printed reporting is used in many areas of our life. Can you imagine an accountancy without annual reports? Or a transport company without invoices? One way or another, reports are of a great importance in production and business. That is why the report generator programs are just as important as the DBMS. But, as well as various DBMSs, different report generators have their strengths and weaknesses. Let us consider two bright representatives, that have settled in the software market for a long time ago: The first one is SQL Server Reporting Services (SSRS). It is a product from the world giant Microsoft. It was created specifically as an add-in on SQL Server. This report generator is very popular with TSQL developers primarily because it is included in the MS SQL Server database. The main feature of this report generator is the server service, which allows you to administer and view reports via the web interface. To edit reports, you need a desktop application - a report designer. The second candidate to be examined is FastReport .NET . This is a product with a long history. The FR.Net generator works in conjunction with Microsoft Visual Studio and is based on the .NET framework. When you install the program, its components are added to the VS palette. We use FastReport in your applications by placing components on a form or by connecting libraries in the code. Just like SSRS, it has a separately started report designer, but you can embed the designer in your application with the ReportDesigner component. In opposition to SSRS, I deliberately took a not very well-known FastReport .NET. It is interesting to compare a product from the leader of the software market and from a small company. In this article we will conduct a series of comparisons and tests. Since the volume of the article is not supposed to be small, I propose to divide it into three parts. In the first part of the article you will find out what features are offered in each of the considered report generators. Let us start from the user interface - the report designer. Fairly, the report designer can be considered the most important component of the report generator. Users' attitude to the entire product depends on the convenience of creating a report. Let us take a look at the Reporting Services front-end interface: Everything in the picture looks clear and concise. It is done in the style of MS Office 2007. It must be mentioned, that it is a very good idea with toolbars grouped by purpose on separate tabs. Now this style is adopted by many users. People who work with MS Office will quickly master this interface. On the left there is a report data, in the center - the work area. It is easy to create reports in such a designer. And now look at the FastReport .NET designer: Are there any similarities between the two previous screenshots? In the last one the upper toolbar is used in the MS Office 2007 style. On the left there is a component panel, whilst on the right there is a data tree. In the middle there is a workspace. Everything is easy to be understood and be worked with. However, there is one feature in the report template architecture - bands. These are containers, that delimit the information for the intended purpose. At the beginning of the development of FastReport .NET, this will take time to understand, but the advantages of this approach level out these costs. Both designers are understandable and easy to use. Functionality for creating reports Now let us take a look at the basic capabilities of generators in creating reports. In the table below there is a list of the following functionality: Feature SSRS FastReport .NET Multiple report pages ✓ Dialogue form pages ✓ Built-in report script ✓ ✓ Hyperlink embedding ✓ ✓ Event handlers ✓ Expressions ✓ ✓ Right-to-left text support ✓ ✓ Localization of UI ✓ ✓ Infinite page ✓ Interactive reports ✓ ✓ Final report modification ✓  Let us consider the functions in detail: Multiple report pages. As a rule, we create a report template on a page. Then, when building a report, this template is filled with data. If the data does not fit one page, then a new one is created and so on. ( a multi-page report is a different thing). This refers to several pages with different templates. For example, the first page is the title page, the second one is the table of contents, and the third one is the content. Thus, your report consists of three pages, each of which is filled with its own data. With this capability, you can create complete documents such as a booklet. Dialogue form pages - forms, which are usually displayed before the report is built. Such forms are used to request data from the user. For example, you can filter it by the input value or set the number of output columns. This feature avoids the creation of a special application with a form of presetting the report. Built-in report script . There are always tasks, that can not be done with the standard tools of the report designer. For example, complex calculated fields or a specific logic in the construction of a report, depending on the data. Here comes the help built, into the report script. It allows you to work with report objects in the program code. This feature greatly extends the capabilities of the report generator, making it flexible. Hyperlinks  helps to give the report some interactivity. A user will be able to click on the links to the specified positions in the report or to receive a detailed page for the selected data. Expressions - an ability to create arbitrary expressions on the basis of data or with the help of built-in functions (mathematical, text, etc.). Using expressions, you can, for example, add all the values of the required field to display the total amount, or convert the date to another format. Expressions in reports are very important tool, without them you could only output data from the source in their original form. Supporting text from right to left is relevant for Arabic languages, where text is written from right to left. Such a function should be in every "self-respected" report generator. Localization of the user interface - an ability to select the desired localization language. The more languages supported the more potential users have this report generator. Infinite page - an ability to set the infinite width and height of the report page. Thus, you can print large tables and matrixes without page breaks. This can be convenient in web reports or simply if you do not plan to print a report. Interactive reports - reports that respond to user actions. It can be hyperlinks, bookmarks, drop-down list, pop-up messages. Final report modification - an ability to modify the report without rebuilding. This is implemented using a report script. The table above shows that in some aspects FR.Net moves ahead of SSRS. The product from Microsoft does not allow you to create reports with multiple page templates. Also, a infinite page is not accessible to him. A report is always displayed on pages of a fixed size. Again, you will not be able to modify the constructed report, although this is quite an exotic need. I would like to mention the dialogue form. In SSRS, this form is displayed at the top of the report, and in FR.Net - as a separate form before building a report. And from this form, you can call another one, which allows you to make the report more logical. Based on the results of the comparison of the functionality in creating reports, the advantages of FastReport are clear. Perhaps it is the greatest experience of the company in the development of report generators, because it created its first generator in the early 2000s, while Microsoft did it in 2004. Tags: .NET, FastReport, SSRS, SQL, Converter ### Vergleich von SSRS und FastReport .NET Teil 2 URL: https://www.fast-report.com/de/blogs/comparative-analysis-report-sql-server-2 Summary: SSRS kann uns anbieten, den Designer herunterzuladen und auszuführen, um den Bericht zu bearbeiten. Sie benötigen ein Windows-Gerät. SSRS und FastReport .NET SSRS kann uns anbieten, den Designer herunterzuladen und auszuführen, um den Bericht zu bearbeiten. Sie benötigen ein Windows-Gerät. SSRS und FastReport .NET SSRS kann uns anbieten, den Designer herunterzuladen und auszuführen, um den Bericht zu bearbeiten. Sie benötigen ein Windows-Gerät. SSRS und FastReport .NET Technologies This article aims to continue examining the capabilities of the report generators in terms of the technologies, that they support. Technology SSRS FR .NET WinForms ✓ ✓ WPF ✓ ✓ ASP.Net ✓ ✓ ASP.Net MVC ✓ ✓ ASP.Net Core ✓ ✓ WCF ✓ ✓ Both report generators are targeted to the .NET platform. Accordingly, in the above table the technologies are based on this framework. • WinForms - until now it has remained the main API for creating a graphical user interface for desktop applications. • WPF - another approach in creating applications with GUI. Now it is very popular and replaces WinForms, due to its greater flexibility. • ASP.Net - client-server technology for creating web applications. • ASP.Net MVC - ASP.Net-based framework for implementing the Model-View-Controller application architecture. Development on this framework is significantly different from usual ASP.Net. • WCF - a framework for creating distributed applications with secure data transmission (mostly web services). Both report generators support almost the entire spectrum of these technologies. However, currently, SQL Server Reporting Services 2016 does not support ASP.Net Core. Perhaps in the next version this feature will be implemented. Meanwhile, FastReport.Net is the leader of this comparison. Report objects The capabilities of the report generator also depend on the nomenclature of the report objects. These objects can output data, be used as controls or simply be design elements. We place them on the report page or in a dialog form. In general, they are the bricks in the wall, called a report. Here you are the descriptions of each object. O bject SSRS FR  . NET Description Text ✓ ✓ This object is the basis of any report generator. Allows you to display any text data, such as data from a database or an expression. Picture ✓ ✓ Allows you to insert an image into the report. Line ✓ ✓ The line is used to delimit space in a report or frame objects. Line with arrow ✓ Line with an arrow. This object is decorative. Can be used as a pointer. Rectangle ✓ ✓ Rectangle. Used to prepare a report, delimitation of space. Rounded Rectangle ✓ Прямоугольник с закругленными углами. Rectangle with rounded corners. Ellipse ✓ Ellipse. Triangle ✓ Triangle. Diamond ✓ Diamond. Polyline ✓ Allows you to build a graph by specifying the key points. Polygon ✓ A polygon constructed using a polyline. You can transform the shape by dragging the key points with the mouse. Sub-report ✓ ✓ Subreported report. In fact, one more report that can be inserted into the right place of another report. Table ✓ ✓ Table. Can be filled manually or by data from the database using a script (dynamic). Matrix ✓ ✓ The matrix is a summary table. Filled with data from the database, respectively, grows in height and width. Chart ✓ ✓ Diagram, graph. Can be built both on the basis of manual data, and data from the database. Sparkline ✓ ✓ Another kind of charts. Data Graphic ✓ This is a representation of the data in the form of widgets (scale, status bar, etc.). Barcode ✓ Barcode Gauge ✓ ✓ Simulates analog instrument scales to display readings. Rich Text ✓ Extended text. Allows you to insert rtf documents. CheckBox ✓ CheckBox. Zip Code ✓ Postal code in standard format. Cellular Text ✓ Text in cells. Each character is displayed in a separate cell. List ✓ List. HTML ✓ Allows you to insert an HTML document that will be interpreted for display. Indicator ✓ The indicator icon, that changes depending on the given condition. You can use flags, bulbs, arrows, etc. Map ✓ ✓ Allows you to insert into the report a vector map that can be scaled. As can be seen from the table above, many of the considered objects are not available in SSRS: • First, there is no vector graphics at all (polygons and other shapes). • Secondly, the absence of a CheckBox. At work, I often have to create reports in SSRS and each time I get annoyed with the absence of a check box when the bit field is displayed. • Thirdly, bar codes are also unavailable. You will have to generate them by third-party tools and insert them into the report as a picture. On the other hand, FastReport also has "gaps". However, they are not crucial: • The "List" object is simply not needed as it is implemented by using the architectural solution of FR-bands. • Missing Indicator. It can be done with the help of "conditional highlighting" and the report script. Not as convenient as SSRS, but also acceptable. In general, we must admit that the assortment of FastReport .NET is richer, and many of the available elements are really necessary. Additional Features Why did I render part of the capabilities of the report generators in a separate section? Because I consider them auxiliary, not mandatory for the report generator. However, the availability of such options will be a pleasant bonus. Many report generators allow you to convert reports from other programs into their own format, facilitating the process of migration. What do our "test objects" offer: Conversion of reports of other formats Report Generator From … to SSRS From … to FR.Net RDL ✓ List&Label ✓ DevExpress ✓ Crystal Reports by  Crystal Migration ✓ As you know, before Reporting Services, the official report generator in Microsoft was Crystal Reports. All the mass of the developed reports had to be translated into new SSRS. Therefore, a migration tool was developed for the new format. Unfortunately, this is the only possible format for converting. Probably, Microsoft does not consider the possibility of switching to SSRS from another report generator. FastReport .NET aims to attract some users of other report generators. It is interesting, that SSRS reports can be converted into FR .NET. Also, you can convert reports from the German report generator List & Label, American DevExpress and frankly outdated Crystal Reports. Now let us consider one more feature. FastReport .NET offers us Online Designer. This is almost a complete copy of the visual report designer, transferred to the web platform. You can include the Online Designer library in your web project and display it to users on the web page. The user can design reports in an Internet browser from any device. This feature can be useful for developers when it is not possible to create reports at their workplace. For example, you are away on business, but you urgently need to make changes in your report, which will be presented to the leadership when you are are absent. A tablet or even a smartphone help due to the online designer. Based on the results of this comparison, I would like to praise the FastReport .NET team. The online report designer is a really handy addition for a report developer. Tags: .NET, FastReport, SSRS, Converter ### Vergleich von SSRS und FastReport .NET Teil 3 URL: https://www.fast-report.com/de/blogs/comparative-analysis-report-sql-server-3 Summary: Werfen wir einen Blick darauf, welche Datenquellen und Datenexportformate in Reporting Services und FastReport .NET verfügbar sind. Werfen wir einen Blick darauf, welche Datenquellen und Datenexportformate in Reporting Services und FastReport .NET verfügbar sind. Werfen wir einen Blick darauf, welche Datenquellen und Datenexportformate in Reporting Services und FastReport .NET verfügbar sind. Data Sources The basis of any report is data. Let us examine the data sources, available in Reporting Services and FR .NET. First, let us take a look at the built-in data connectors, which are available to you immediately when creating a data source in the report, without additional installations and settings: Built-in data sources SSRS FR .NET SQL Server ✓ ✓ Oracle ✓ extension OLE DB ✓ ✓ ODBC ✓ ✓ MS Access extension ✓ XML database ✓ ✓ CSV file ✓ Azure SQL Database ✓ MS Analytics Platform ✓ MS SQL Server Analysis Servises ✓ SharePoint ✓ extension SAP BW ✓ TERADATA ✓ FastReport .NET is characterized by connectors to Microsoft databases and csv file sources. Reporting Services has more built-in connectors, but mostly to Microsoft databases. Of course, you can use the generic ODBC to connect to a database that is not in the list of available databases. But at the same time the speed of working with data will suffer. Now we will overview the extensions for connecting to other DBMSs. This list is much larger than the previous one. E xtended data sources SSRS FR . NET MS Access odbc ✓ Xml ✓ ✓ CSV odbc ✓ DB2 ✓ ✓ Firebird ✓ GoogleBigQuery ✓ Json third-party ✓ MongoDB third-party ✓ MySQL ODBC ✓ NosDB ✓ Oracle ✓ ✓ OracleODP ✓ Postgres ✓ Postgres.Devart ✓ RavenDB ✓ SharePoint ✓ ✓ SqlAnywhere ✓ SqlCe ✓ SQLite ✓ VistaDB ✓ Business Objects ✓ ✓ Here, "third-party" means that it is implemented with the help of libraries of other manufacturers. ODBC means implemented with this universal connector. As you can see from the table, FastReport.Net extensions allow you to add connectors to almost all popular DBMSs today. An excellent result! Reporting Services confined itself to connectors for DB2 from IBM and Microsoft services. Such a modest result is explained by the orientation of SSRS primarily on Microsoft's own systems. After all, high integration with other products of this company is the main advantage of Reporting Services. FastReport strives to satisfy the entire consumer demands. In the competition with such giants as Microsoft this is the best strategy. I would like to add a couple of words about extensions. In SSRS, additional connectors must be installed. In FR .NET they are implemented with the help of plug-ins for the designer of reports. Exports Another important element of the report generator is the export of the report. After all, it is not enough to display or print a report. It is important to keep it in the right format. For example, the workflow in your enterprise allows only the format of PDF, DOCX and XLSX. If the report generator, that you are using, does not allow you to export reports to these formats, this can pose a big problem. In this case, any additional costs and difficulties are inevitable. A report in the required format is the final result of the generator. According to this results users will evaluate the program. Therefore, it is important for the report generator to not only support the required export format, but also export it correctly, without violating the formatting and quality loss. Let us consider the available export formats for both "objects". But first, there will be shown two pictures. This export menu is in SSRS and FR .NET: It is sometimes interesting to test your intuition. Which report generator corresponds to the first picture? I think you already guessed - it is SQL Server Reporting Services. And now, nevertheless, there will be done a small comparison between the companies. Export Feature SSRS FR .NET PDF ✓ ✓ PDF export options Embedded fonts automatically option  PDF/A-1a third-party ✓  PDF/A-2a ✓  PDF/A-2b ✓  PDF/A-3a ✓  PDF/A-3b ✓  PDF/X-3 ✓  PDF/X-4 ✓ CMYK Color Space ✓ RTF third-party ✓ HTML ✓ MHT ✓ ✓ XML (Excel table) ✓ Excel 2007 ✓ ✓ Excel 97 ✓ Microsoft Word 2007 ✓ ✓ PowerPoint ✓ ✓ OpenOffice Calc ✓ OpenOffice Writer ✓  XPS ✓ CSV ✓ ✓ DBF ✓ Text File/Matrix printer ✓ Image TIFF ✓ XAML ✓ SVG ✓ PPML ✓ PostScript ✓ Json ✓ Reporting Services provides export to Microsoft product formats. This is obvious. It is amazing that only one image format is supported - TIFF. This is surprising as long as the most common formats are JPEG and PNG. Export to PDF has minimum options. However, it might be not very important an average user of reports. And what does FastReport .NET provide? Such an impressive "arsenal" there can be found anywhere else. Our developers really tried to meet any needs of the user. By the way, export to image supports the following formats: BMP, JPG, PNG, GIF, TIFF, Windows metafile. PDF export settings allow you to select the required PDF standard and optimize the size of the final file. Here is the unconditional advantage of FR .NET. In conclusion, let us consider the possibility of saving / sending a report to various services. Namely, sending the report in an e-mail via FTP, or saving to a cloud service. Storage SSRS FR .NET E-mail ✓ ✓ FTP by SSIS ✓ Box ✓ DropBox ✓ FastReport Cloud ✓ Google Drive ✓ OneDrive ✓ XMPP ✓ Summing up, we should conclude that, unfortunately, Reporting Services does not support saving the report to cloud services, and it is not necessary in corporate reporting. However, the idea is interesting and will certainly find its users. Interestingly, that FastReport provides its own cloud service for publishing reports. The only thing we should do is to send a user his link, and he will  be able to look through his report on the web page. In the next part of the article, we are going to examine the performance of report generators. Tags: .NET, FastReport, SSRS ### Version 2026.2 jetzt für FastReport .NET verfügbar URL: https://www.fast-report.com/de/news/release-fastreport-net-2026.2 Summary: Version 2026.2 für FastReport .NET hat 9 Formularoptionen für QR‑Code-Module hinzugefügt, ein Plugin zum Verbinden mit Google Sheets und eine Option zum Einbetten von Schriftarten beim Export nach MS Word. Version 2026.2 für FastReport .NET hat 9 Formularoptionen für QR‑Code-Module hinzugefügt, ein Plugin zum Verbinden mit Google Sheets und eine Option zum Einbetten von Schriftarten beim Export nach MS Word. In Version 2026.2 von  FastReport .NET wurde die Unterstützung für .NET 10 für alle Bibliotheken hinzugefügt. Zu den wichtigsten Neuerungen gehören: die Möglichkeit, das Erscheinungsbild (9 Varianten) sowie den Drehwinkel von QR‑Code‑Modulen anzupassen, das Verschieben von Bands im Designer per Drag & Drop, ein Plugin für die Anbindung an Google Sheets, die Option zur Einbettung von Schriftarten beim Export nach MS Word sowie ein verbesserter Export nach PDF (mit Unterstützung für ZUGFeRD) und nach MS Excel. Darüber hinaus wurde die Architektur von WebReport optimiert. Neue Funktionen Unterstützung für .NET 10 Die Unterstützung für .NET 10 wurde für FastReport .NET, FastReport.Core, FastReport.Core.Skia, FastReport.WPF, FastReport.Avalonia sowie FastReport.Web, FastReport.Web.Skia und FastReport.Blazor.Wasm hinzugefügt. Diese Plattform steigert die Anwendungsleistung und bietet zahlreiche neue Möglichkeiten für Ihre Projekte. Die Änderungen können Sie in unserem Artikel unter diesem Link nachlesen. Lesen Sie den Artikel Änderung der Form von QR-Code-Modulen Ein QR-Code besteht aus Punkten, die als Module bezeichnet werden. Gemäß dem Standard haben sie die Form eines Quadrats. Ab Version 2026.2 kann die Form der Module geändert und angepasst werden. Neben dem Quadrat stehen nun neun neue Modulformen zur Verfügung: Kreis, Raute, abgerundetes Quadrat, horizontale Kapsel, vertikale Kapsel, Plus, Sechseck, Stern und Schneeflocke. Neben der Modulform kann jetzt auch deren Drehwinkel festgelegt werden (Eigenschaft Angle). Darüber hinaus kann der QR-Code weniger dicht gemacht werden, indem jedes Modul mit der Eigenschaft UseThinModules verkleinert wird. Die letztgenannte Eigenschaft betrifft nicht die Suchmuster (die großen Quadrate in den Ecken des QR-Codes), da diese den Scannern helfen, die Grenzen und die Größe des Codes zu bestimmen. Ein standardmäßiger QR-Code sieht wie folgt aus: Und hier der Code mit Modulen in Kreisform: Obwohl die neuen Module es ermöglichen, Codes abwechslungsreicher und interessanter zu gestalten, ist zu beachten, dass nicht alle Scanner solche QR-Codes gleich gut lesen können. Weitere Details zu den neuen Eigenschaften und deren Verwendung finden Sie in unserem Artikel. Lesen Sie den Artikel Verschieben von Bands im Designer In unseren Berichten kann es viele Arten von Bands mit unterschiedlichen Funktionen geben. Beispielsweise befindet sich der Berichtstitel immer am Anfang des Berichts. Ein weiteres Beispiel: Die Fußzeile befindet sich unten auf jeder Seite. Die relative Position solcher Bands zueinander kann nicht verändert werden. Es gibt jedoch Band-Typen, von denen mehrere vorhanden sein können und deren relative Position zueinander verändert werden kann. Beispielsweise kann ein Bericht drei Datenbänder enthalten. Bisher konnte ihre Position nur in einem speziellen Fenster für die Band-Einstellungen geändert werden: Jetzt können Bands direkt im Designer verschoben werden, einfach per Drag & Drop: Weitere Details zu den Besonderheiten und Einschränkungen dieses neuen Verschiebemechanismus finden Sie im Artikel. Lesen Sie den Artikel Anbindung an Google Sheets Mit diesem Update wurde ein neues Plugin hinzugefügt, das es ermöglicht, Informationen aus Google Tabellen als Datenquelle für Berichte zu verwenden. Google Tabellen ist eine Cloud-Anwendung für die Arbeit mit Tabellenkalkulationen. Dieses Plugin erlaubt es, Berichte direkt mit den angegebenen Tabellen zu verbinden und bietet so einen bequemen Zugriff auf die benötigten Daten. Google Tabellen (und eigentlich Tabellen im Allgemeinen) lassen sich hervorragend in das Konzept unserer Berichterstellung übertragen. Da es sich jedoch um eine Webanwendung handelt, weist sie im Vergleich zu Desktop-Lösungen einige Besonderheiten auf. Wie dieses neue Plugin angeschlossen wird, lesen Sie in unserem Artikel. Lesen Sie den Artikel Exportverbesserungen Schrifteinbettung beim Export nach Microsoft Word Unser Export von Berichten in Microsoft Word-Dokumente verfügt über eine neue Option „Eingebettete Schriftarten“: Die Option ermöglicht es, die Einbettung von Schriftarten beim Speichern des fertigen Berichts in eine DOCX-Datei ein- oder auszuschalten. Dabei werden alle im Bericht verwendeten Schriftarten in der fertigen Datei gespeichert. Dies gewährleistet, dass das Dokument auf jedem Computer gleich aussieht – selbst wenn die benötigten Schriftarten dort nicht installiert sind. Es ist jedoch zu beachten, dass die Dateigröße bei Verwendung dieser Option größer ist als beim normalen Export. Verbesserte ZUGFeRD-Unterstützung beim PDF-Export Der Export von PDF-Dateien mit ZUGFeRD-Unterstützung wurde erheblich überarbeitet und verbessert. Die Dateien entsprechen nun der aktuellen ZUGFeRD-Version und bestehen erfolgreich die Validierung. Zahlreiche Fehler beim Export solcher Dateien wurden behoben. Globale Verbesserung der Microsoft Word- und Microsoft Excel-Exporte Der Exportcode in die Dokumentformate DOCX und XLSX wurde optimiert und verbessert. Die Exporte arbeiten nun schneller und werden von den meisten Anwendungen geöffnet, nicht nur von Microsoft, sondern auch von Drittanbieter-Office-Anwendungen. Änderungen im WebReport Verbesserte Architektur der WebReport-Clientseite Im Rahmen der WebReport-Verbesserungen wurde die Clientseite refaktoriert: CSS und JavaScript wurden in statische Dateien überführt, wodurch vollständig auf Inline-Skripte verzichtet werden kann. Für die Arbeit mit WebReport sind nun keine Inline-Skripte in der Content Security Policy (CSP) mehr erforderlich, was die Produktsicherheit erhöht. Die Berichts-IDs wurden aus den CSS-Klassennamen entfernt, dies macht WebReport flexibler und anpassungsfreundlicher. Die Skripte wurden in Bundles zusammengefasst, was die Seitenladezeit erheblich beschleunigt. Vollständige Änderungsliste [Engine] + Neuer Modus für die Eigenschaft TextObject.AutoShrink hinzugefügt: FitText + Zusätzliche Eigenschaften hinzugefügt, die für die Anbindung von Drittanbieterdiensten an JSON-Daten erforderlich sind + Eigenschaften für lineare Barcodes hinzugefügt: OneBarWidth, FitDevicePixels + ToWords-Funktion für Chinesisch hinzugefügt - Fehler bei der Datenfilterung in Dialogsteuerelementen behoben - Fehler behoben, aufgrund dessen temporäre Dateien bei Verwendung von UseFileCache nicht gelöscht wurden - Doppelte Benennung der Datenquelle beim Erstellen einer JSON-Verbindung behoben - Fehler beim Import von DOCX-Dokumenten behoben [Designer] + Unterstützung für die Strichkennung "Russische Post" für den Barcode Interleaved 2 of 5 (EN 801) hinzugefügt + Möglichkeit hinzugefügt, die Form von QR-Code-Modulen zu ändern + Möglichkeit hinzugefügt, Bands im Designer zu verschieben * Fehlermeldung bei ungültigen Namen in SQL-Abfragen ist jetzt informativer * Das Fenster des Verknüpfungseditors kann jetzt in der Größe verändert werden - Fehler bei der Sichtbarkeit der Ereignisse StartReport und FinishReport behoben - Fehler beim Hinzufügen der Report-Komponente zu einem Formular behoben - Fehler beim Wechseln zur FRX-Seite im Designer behoben - Fehler im Editor der DataSource-Eigenschaft behoben - Fehler im Fenster "Meldungen" im Designer für .NET 6.0 und höher behoben - Textüberlappungen im Abfragegenerator behoben - Fehler bei der Benennung von Feldern im Abfragegenerator für Postgres behoben - Farben der Legende für automatische Serien in MSChart behoben - Fehlerhaftes Drag-and-Drop-Verhalten im Matrix-Objekt behoben [Preview] + Symbole zum Exportmenü für Punkte hinzugefügt, die zuvor keine hatten [Exports] + Möglichkeit zur Verbesserung der Bildqualität beim Export nach Microsoft Word hinzugefügt + PDF-Export mit ZUGFeRD-Unterstützung verbessert. Die Dateien entsprechen nun der aktuellen ZUGFeRD-Version und bestehen erfolgreich die Validierung + Kompatibilität der DOCX- und XLSX-Exporte mit Drittanbieter-Office-Anwendungen verbessert + Möglichkeit hinzugefügt, Seiten im Querformat nach ZPL zu exportieren + Export von Bildern, die von anderen Objekten überlagert werden, ins XLSX-Format verbessert + Möglichkeit zur Schrifteinbettung beim Export nach Microsoft Word hinzugefügt - Problem beim Öffnen bestimmter Dateien beim Export nach Microsoft Excel behoben - Fehler mit der Spaltenbreite beim Export nach Microsoft Word behoben - System.NullReferenceException beim Export nach Microsoft Word in den Modi ParagraphBased und MatrixBased behoben - Standard-Schriftgröße beim Export nach XLSX behoben - Export von Polygonen in Tabellenformate behoben - Fehler beim Export mehrerer Kopf- und Fußzeilen nach Microsoft Word behoben - Probleme mit der Farbe einiger Objekte beim Öffnen von DOCX-Dokumenten in OpenOffice behoben - Fehler mit verschwindenden Bildern behoben, wenn die WYSIWYG-Eigenschaft beim Export deaktiviert war - Überflüssige Leerzeichen im DOCX-Export bei Verwendung des HtmlTags-Renderings behoben - Fehler im PDF-Export behoben, bei dem die Datei im falschen Ordner erstellt wurde [WebReport] + Option CentredAndWrapPages zum WebReport hinzugefügt - Höhe des WebReport für .NET Framework behoben [Common] + Eigenschaftsfeld für Start-/Endzeichen in Codabar hinzugefügt - Fehler beim Drag-and-Drop von Bands in Avalonia und WPF behoben - Schema der JSON-Datenbankanbindung behoben [Demos] + Symbole des Democenters aktualisiert - Fehler beim Starten der Demoanwendungen im Democenter behoben [Extras] + Apache Ignite-Plugin für die Plattformen Avalonia, Core, OpenSource und WPF hinzugefügt + Anbindung an Google Sheets hinzugefügt - Fehler in der Verbindung zu JSON-Datenbanken behoben  ### Verwaltung der Eigenschaften vom Web Bericht durch äußere Controls URL: https://www.fast-report.com/de/blogs/external-controls-manage-properties In diesem Artikel erzähle ich über die Arbeit mit dem Bericht mit Hilfe der Steuerung Elemente von der Web Form im Projekt ASP .Net MVC. Also, die Aufgabe besteht in der Erstellung von der Web Anwendung, die die folgenden Aufforderungen erfüllt: Web Bericht herunterladen Den Bericht in ein von drei Formaten exportieren Panel mit den Instrumenten zeigen/ausblenden Den Still der Tasten auf dem Instrumenten Panel einstellen Den Bericht im Online Designer starten Also, losgehen. Zuerst sollen wir einen Start des Berichts in MVC Anwendung vorbereiten. Fügen wir Links auf die Bibliotheken hinzu: FastReport und FastReport.Web. Im Ordner Views->Shared soll man die Datei _Layout.cshtml korriegieren. Fügen wir Scripts und Stile in den Titel hinzu: ``` @WebReportGlobals.Scripts() @WebReportGlobals.Styles() ``` Es gibt auch im Ordner Views eine Datei Web.Config. Fügen wir in diese Datei zwei Namespaces hinzu: ``` ``` Im Kern des Projekts gibt es noch eine Datei Web.config. In diese Datei fügen wir nach der Section modules einen Bearbeiter hinzu: ``` … ``` In den HomeController fügen wir die Logik der Arbeit mit dem Bericht hinzu. In der Methode Index laden wir den Bericht herunter und geben wir ihn in View über. ``` public ActionResult Index() { SetReport(); webReport.Width = Unit.Percentage(100); webReport.Height = Unit.Percentage(100); ViewBag.WebReport = webReport; return View(); } ``` Ich bestimme Berichts Download in einer separaten Methode, die wir unten besprechen. Setzen wir die Breite und die Höhe des Web Berichts in 100%. Mit Hilfe von ViewBag treiben wir den Bericht in die Darstellung über. Und wie eine Return Value der Methode Index() bekommen wir die  Darstellung. Um das Objekt Bericht in verschiedenen Methoden zu verwenden, erstellte ich eine globale Variable – das Exemplar des Objekts WebReport. ``` public WebReport webReport = new WebReport(); ```  1)  Jetzt zum Download des Berichts: ``` private void SetReport() { string report_path = GetReportPath(); System.Data.DataSet dataSet = new System.Data.DataSet(); dataSet.ReadXml(report_path + "nwind.xml"); webReport.Report.RegisterData(dataSet, "NorthWind"); webReport.Report.Load(report_path + "Master-Detail.frx"); } ``` Stellen wir den Weg zum Ordner mit den Berichten ein. Ich erstellte eine separate Methode mit der Einsetzung den Wert der Variable als den Weg zu den Berichten. Weiter, erstellen wir das Objekts Exemplar von DataSet und laden in diese Variable einen XML Datenlager herunter. Und endlich registrieren wir diese Datenquelle im Objekt Bericht und laden die Berichtsschablone im Objekt WebReport herunter.   Die Einstellungsmethode vom Weg zum Ordner mit den Berichten:          ``` private string GetReportPath() { return this.Server.MapPath("~/App_Data/"); } ``` 2)     Fügen wir die Methode für die Wahl vom Export des Berichts ohne Übergang zur View: ``` public void ReportExport(string type) { SetReport(); switch (type) { case "pdf": webReport.ExportPdf(); break; case "csv": webReport.ExportCsv(); break; default: webReport.ExportWord2007(); break; } ``` Hier laden wir den Bericht herunter und wählen eine von drei Exports Varianten abhängig vom Parameter type. Jetzt eröffnen wir die Darstellung Index. Fügen wir auch auf die Form eine Dropdown-Liste mit den drei Exports Varianten hinzu: ``` @using (Html.BeginForm("ReportExport", "Home")) { @Html.DropDownList("Type", new List() { new SelectListItem(){ Text= "PDF", Value = "pdf"}, new SelectListItem(){ Text= "CSV", Value = "csv"}, new SelectListItem(){ Text= "Word", Value = "doc"}, }, "Select export type") } @ViewBag.WebReport.GetHtml() ``` Hier verwendeten wir html helper und mit dessen Hilfe erstellten wir die Form, die auf Controller Home und auf die Action Methode „ReportExport“ zeigt. Erinnern Sie sich bitte, dass wir solche Methode im Controller schon erstellt haben.  Innen der Form erstellen wir ein Element DropDownList und erfüllen es mit den Werten. Natürlich, kann man eine Daten Model erstellen. Aber diese Liste entsteht nur aus drei Elementen und ich erfülle diese Liste direkt in der Darstellung. Neben der Dropdown-Liste befindet sich die Taste mit dem Typ submit, beim Klick auf der wird die Web Seite erneut.       Wie Sie sich erinnern, hat die Methode ReportExport eine Value vom Parameter type – die Value von der Dropdown-Liste. Entsprechend gewählter Value wird der Export des Berichts ins gewünschte Format durchgeführt.  3)      Jetzt realisieren wir das Verstecken des Instrumenten Panels vom Bericht. In View sieht das so aus: ``` @using (Html.BeginForm("Index", "Home")) { @Html.CheckBox("Toolbar", true, new { @onchange = "this.form.submit()" }) Toolbar } ``` Wie im vorigen Beispiel erstellen wir die Form. Aber, in diesem Fall setzen wir die Action Index dort, wo der Bericht erstellt wird. Innen der Form erstellen wir ein Element CheckBox. Sein Wert wird in die Methode Index übergegeben. Dieses Mal habe ich mich entschieden, keine neue Taste für die Erneuerung der Seite hinzuzufügen und den Event @onchange zu verwenden. In diesem Event stellte ich die Versandfunktion für die Form "this.form.submit()". Jetzt wird die Seite bei der Veränderung des Wertes von Checkbox erneuert. Analog zum Berichts Export sollen wir in die Methode einen Parameter übergeben. In diesem Fall wird es „Toolbar“. Es wird ein String Äquivalent von der Bool Funktion übergeben. Jetzt zum unseren Control, zur Action „Index“. ``` public ActionResult Index(string toolbar) { SetReport(); webReport.Width = Unit.Percentage(100); webReport.Height = Unit.Percentage(100); if (toolbar == "true") webReport.ShowToolbar = true; else webReport.ShowToolbar = false;   ViewBag.WebReport = webReport; return View(); } ``` In der Methode fügten sich ein Parameter und eine Bedingung hinzu. Im Zusammenhang mit dem Wert des Parameters wird eine Entscheidung getroffen, ob das Instrumenten Panel aktiv wird oder nicht. 4)      Wir erstellen jetzt Control Elementen, die den Icons Stil bestimmen. Ins vorige Beispiel fügen wir noch 4 Elemente RadioButton hinzu: ``` @using (Html.BeginForm("Index", "Home")) {
@Html.CheckBox("Toolbar", true, new { @onchange = "this.form.submit()" }) Toolbar
Black Buttons: @Html.RadioButton("Radio", "Black Buttons", true, new { style = "width: 13px;", @onchange = "this.form.submit()" })
Green Buttons: @Html.RadioButton("Radio", "Green Buttons", false, new { style = "width: 13px;", @onchange = "this.form.submit()" })
Blue Buttons:@Html.RadioButton("Radio", "Blue Buttons", false, new { style = "width: 13px;", @onchange = "this.form.submit()" })
Red Buttons:@Html.RadioButton("Radio", "Red Buttons", false, new { style = "width: 13px;", @onchange = "this.form.submit()" })
@ViewBag.WebReport.GetHtml() ``` Für die Verbesserung von der Ansicht fügte ich neune Elementen in die Tabelle hinzu. Betrachten wir jetzt ein von den Elementen RadioButton: Html.RadioButton("Radio", "Black Buttons", true, new { style = "width: 13px;", @onchange = "this.form.submit()" }) Hier ist der Name des Controls – „Radio“. Genauso nennt man noch einen Parameter in der Action „Index“. Weiter folgt der Wert “Black Buttons”. Mit anderen Wörtern werden die schwarzen Tasten auf dem Instrumenten Panel dargestellt. Nächster Wert – wird eine RadioButton beim Standardverhalten ausgezeichnet oder nicht. Das letzte Objekt ist das Objekt HtmlAttributes. Hier kann man ein von verfügbaren Attributen für den Tag definieren. Ich bestimmte die Breite des Controls und den Event onchange analog zum vorigen Element checkbox. So, wir haben 4 Radio Buttons - 4 Stilen im Instrumenten Panel. Kehren wir zur unseren Action Index zurück: ``` public ActionResult Index(string toolbar, string radio) { SetReport(); webReport.Width = Unit.Percentage(100); webReport.Height = Unit.Percentage(100); if (toolbar == "true") webReport.ShowToolbar = true; else webReport.ShowToolbar = false; switch (radio) { case "Red Buttons": webReport.ToolbarIconsStyle = ToolbarIconsStyle.Red; break; case "Green Buttons": webReport.ToolbarIconsStyle = ToolbarIconsStyle.Green; break; case "Blue Buttons": webReport.ToolbarIconsStyle = ToolbarIconsStyle.Blue; break; default: webReport.ToolbarIconsStyle = ToolbarIconsStyle.Black; break; }   ViewBag.WebReport = webReport; return View(); } ``` Noch ein Parameter radio wurde hinzugefügt. In der Konstruktion Switch bestimme ich noch einen Stil hinzu, abhängig vom Wert des Parameters radio. Wir erstellen für die Bearbeitung von den Parametern toolbar und radio zwei verschiedene Methoden, um alles in Ordnung zu bringen.     ``` public void ShowToolbar(string toolbar) { if (toolbar == "true") webReport.ShowToolbar = true; else webReport.ShowToolbar = false; }   public void ToolbarStyle(string radio) { switch (radio) { case "Red Buttons": webReport.ToolbarIconsStyle = ToolbarIconsStyle.Red; break; case "Green Buttons": webReport.ToolbarIconsStyle = ToolbarIconsStyle.Green; break; case "Blue Buttons": webReport.ToolbarIconsStyle = ToolbarIconsStyle.Blue; break; default: webReport.ToolbarIconsStyle = ToolbarIconsStyle.Black; break; } } ``` Index wurde auch geändert: ``` public ActionResult Index(string toolbar, string radio) { SetReport(); webReport.Width = Unit.Percentage(100); webReport.Height = Unit.Percentage(100); ShowToolbar(toolbar); ToolbarStyle(radio); ViewBag.WebReport = webReport; return View(); } ``` 5)    Es bleibt die letzte geplante Funktion zu realisieren – den Start des Berichts in Online Designer. Dazu brauchen wir ein Compile mit OnlineDesigner von der Entwicklers Seite herunterzuladen und dies ins Projekt zu integrieren. Extrahieren wir das Archive fügen den ganzen Ordner WebReportDesigner im Kern vom Projekt hinzu. Fügen wir auch aus dem vorigen Beispiel die Taste und ausgeblendetes Feld hinzu: ``` ``` Beim Klick auf die Taste wird die Form gesendet. Merken Sie sich bitte, dass das Attribut value durch ViewBag definiert wird. Wir übergeben die Value der Taste aus dem Control. Später wird es klar, warum ich so gemacht habe. Für die Taste ist der Event onclick eingesetzt. In ihm bestimme ich die Value vom Element hidden. Merken Sie sich bitte, dass dank ViewBag ich den Wert von der Eigenschaft vom Web Bericht bekomme. Auf diese Weise, wenn auf der Seite der Berichts Designer angezeigt wird, wird der Wert vom Feld hidden gleich true, ansonsten false. Bestimmen wir jetzt das Attribut id=”hid” für das Feld hidden. Dank der Kennung finden wir nützliches Element auf der Form. Jetzt sieht der Code so aus: ``` @{ ViewBag.Title = "Home Page"; }
@using (Html.BeginForm("ReportExport", "Home")) { @Html.DropDownList("Type", new List() { new SelectListItem(){ Text= "PDF", Value = "pdf"}, new SelectListItem(){ Text= "CSV", Value = "csv"}, new SelectListItem(){ Text= "Word", Value = "doc"}, }, "Select export type") }
@using (Html.BeginForm("Index", "Home")) {
@Html.CheckBox("Toolbar", true, new { @onchange = "this.form.submit()" }) Toolbar
Black Buttons: @Html.RadioButton("Radio", "Black Buttons", true, new { style = "width: 13px;", @onchange = "this.form.submit()" })
Green Buttons: @Html.RadioButton("Radio", "Green Buttons", false, new { style = "width: 13px;", @onchange = "this.form.submit()" })
Blue Buttons:@Html.RadioButton("Radio", "Blue Buttons", false, new { style = "width: 13px;", @onchange = "this.form.submit()" })
Red Buttons:@Html.RadioButton("Radio", "Red Buttons", false, new { style = "width: 13px;", @onchange = "this.form.submit()" })
}
  @ViewBag.WebReport.GetHtml() ``` Und zum Controller. ``` public ActionResult Index(string toolbar, string radio, string dsg) { SetReport(); webReport.Width = Unit.Percentage(100); webReport.Height = Unit.Percentage(100); ShowToolbar(toolbar); ToolbarStyle(radio); ViewBag.Result = ShowDesigner(dsg); ViewBag.WebReport = webReport; return View(); }   public string ShowDesigner(string dsg) { if (dsg == "False") { webReport.DesignReport = true; return "Show Report"; } else if (dsg == "True") { webReport.DesignReport = false; return "Show Designer"; } return "Show Designer"; } ``` Wie Sie sehen, wurde noch ein Parameter in die Methode Index hinzugefügt. Sein Name entspricht dem Namen vom Element hidden in View. Auch hinzugefügt wurde die Zeile: «ViewBag.Result = ShowDesigner(dsg);». In der übergebe ich den Namen der Taste und die Darstellung. Neue Methode ShowDesigner aktiviert und deaktiviert den Berichts Designer und kehrt den Tasten Name zurück. Starten wir die Anwendung: Den DropdownListe mit drei Arten von Ausfuhr: Deaktivieren wir Toolbar: Und jetzt aktivieren wir den Berichts Designer: Stellen wir den Bericht dar und aktivieren Toolbar. Wählen wir einigen Stil für die Toolbar Tasten: Zum Schluss möchte ich sagen, dass wir äußere Führungselementen erstellt haben, mit Hilfe von denen wir die Eigenschaften vom Objekt WebReport in der Anwendung ASP .Net MVC bestimmen.  Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC, WebReport, WebReport ### Verwenden von benutzerdefinierten Schriftarten mit FastReport Online Designer URL: https://www.fast-report.com/de/blogs/custom-fonts-online-designer Summary: Anleitung zum Erstellen benutzerdefinierter Schriftarten in der neuesten Version von FastReport Online Designer, damit Ihre Dokumente perfekt zu Ihren Bedürfnissen passen Anleitung zum Erstellen benutzerdefinierter Schriftarten in der neuesten Version von FastReport Online Designer, damit Ihre Dokumente perfekt zu Ihren Bedürfnissen passen Anleitung zum Erstellen benutzerdefinierter Schriftarten in der neuesten Version von FastReport Online Designer, damit Ihre Dokumente perfekt zu Ihren Bedürfnissen passen Das neue Release von FastReport Online Designer ermöglicht es, beliebige Schriftarten zum Bericht hinzuzufügen. Dies ermöglicht das Erstellen vielfältiger Berichte. Um benutzerdefinierte Schriftarten anzuwenden, benötigen Sie: den erforderlichen Serversoftware zu installieren; die Schriften mit CSS zu formatieren; die erforderlichen Schriftarten und Konfigurationen in FastReport WebReport hinzuzufügen; FastReport Online Designer in Online Designer Builder zu konfigurieren. Schriftartenserver Nehmen wir den Schriftartenserver. Dieser sollte eine CSS-Datei mit der Konfiguration der Schriftart entsprechend dem angeforderten Namen zurücksenden. Zum Beispiel: ``` @font-face { font-family: 'Usually-font'; src: url('http://localhost:58300/fonts/Usually-font.otf') format('opentype'); } ``` Der Designer sendet den Namen der gewünschten Schriftart in den GET-Parameter „family“. Hier ist ein Beispiel für einen Controller in ASP.NET: ``` namespace MyFontServer.Controllers { [Route("fonts")] public class FontsController : Controller { IHostingEnvironment _hostingEnvironment; public FontsController(IHostingEnvironment hostingEnvironment) { _hostingEnvironment = hostingEnvironment; } public IActionResult Index(string family) { return new PhysicalFileResult(Path.GetFullPath($"wwwroot/fonts/{family}.css"), "text/css"); }   } } ``` Eine Anfrage wird an diesen Controller mit dem Parameter „family“, nämlich dem Namen der gewünschten Schriftart, gesendet. Als Ergebnis wird eine CSS-Datei erstellt, die mit @font-face die gewünschte Schriftart beschreibt. Der Designer sendet auch einen GET-Parameter report_id, der die ID des aktuellen Berichts enthält. Die Schriftdateien müssen dann zum FastReport Web Report hinzugefügt werden, der vom Designer verwendet wird. Zum Beispiel: ``` FastReport.Utils.Config.PrivateFontCollection.AddFontFile("wwwroot/fonts/Usually-font.otf"); ``` Hiermit wird sichergestellt, dass beim Erstellen der Berichte die entsprechende Schriftart verwendet wird. Damit die Schriftarten im Designer zur Auswahl gestellt werden können, muss der Parameter „family“ in „get custom config“ angegeben werden. Diese Umgebungsvariable enthält die URL der zusätzlichen Konfiguration des Designers. Der Wert dieser Variable wird in FastReport Online Designer Builder zugewiesen: Die Konfiguration kann wie folgt lauten:  ``` { "font-names": [ "Usually-font", "Liberation sans", "Excelorate-Font" ] } ``` Konfiguration des Designers im FastReport Online Designer Builder Zunächst wird der Designer konfiguriert. Öffnen Sie den FastReport Online Designer Builder und finden Sie den Config-Bereich mit dem „use font server for custom fonts“ Block. Mit dieser Option können Sie den Designer für die Verwendung bestimmter Schriftartenserver konfigurieren. Setzen Sie hier ein Häkchen bei „use custom font server?“ und geben Sie die URL des Schriftartenserver ein. Zum Beispiel:  Ergebnis Der Designer verfügt über eine Liste der verfügbaren Schriftarten beim Start mittels der Funktion get custom config: Dann wird die entsprechende Schriftart von dem angegebenen Schriftartenserver heruntergeladen, wenn Sie sie auswählen: Da Sie die Schriftart zu WebReport hinzugefügt hatten, funktioniert sie beim Erstellen des Berichts: Zum Schluss noch eine Zusammenfassung. Wir haben die Konfiguration von dem ASP.NET- Schriftartenserver erstellt und uns die Konfiguration vom Backend- und Frontend-Entwickler angesehen. Zudem haben wir erlernt, wie man benutzerdefinierte Schriftarten im FastReport Online Designer hinzufügt und konfiguriert. Tags: FastReport, FastReport, ASP.NET, ASP.NET, Online Designer, Online Designer, WebReport, WebReport ### Verwendung der Excel-Datei wie eine Datenquelle in FastReport .NET URL: https://www.fast-report.com/de/blogs/excel-file-datasource-report Summary: Sehen wir uns genauer an, wie Sie eine Excel-Datei als Datenquelle in FastReport .NET verwenden. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Sehen wir uns genauer an, wie Sie eine Excel-Datei als Datenquelle in FastReport .NET verwenden. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. Sehen wir uns genauer an, wie Sie eine Excel-Datei als Datenquelle in FastReport .NET verwenden. Weitere nützliche Tipps und Artikel finden Sie in unserem Blog. FastReport .NET hat eine Möglichkeit, Dateien von Excel wie eine Datenquelle zu verwenden. Diese können .xls und .xlsx Dateien sein.  In diesem Artikel betrachten wir ein Erstellungsbeispiel solcher Datenquelle im Bericht. Jetzt von den Aufforderungen zu den Excel-Dokumenten. Jede Tabelle soll auf getrennten Seite gelagert werden. In erster Zeile sollen Titel den Spalten werden, die man wie Namen der Tabellenfelder verwendet. 1. Erstellen wir ein Excel-Dokument mit einer Tabelle: 2. Erstellen wir Windows Forms Projekt; 3. Fügen wir eine Report Komponente auf die Form hinzu; 4. Machen wir einen Doppelklick auf die hinzufügte Komponente. Lassen wir das Fenster mit der Wahl der Datenquelle durch. Auf dem Fenster wird Berichtsdesigner geöffnet; 5. Im Berichtsdesigner erstellen wir eine neue Verbindung zur Datenquelle. Menü „Data->Add Data Source“. Der Editor der Datenquelle startet:  6. Erstellen wir eine neue Verbindungszeile mit Hilfe von der Taste „New connection“…  7. Im Fenster der Erstellung neuer Verbindungszeile wählen wir den Verbindungstyp – ODBC Connection: Schalten wir radio button „Use connection string” um. Wählen wir eine Datenquelle mit Hilfe von der Taste . 8. Hier wählen wir den Tab «Computerdatenquelle».  9. Klicken Sie weiter „Neu“. Wählen wir Excel Dateien und klicken „OK“. Jetzt wird die Datenquelle in der Liste der Datenquellen. Das Connection Fenster sieht so aus:  Die Verbindungszeile ist:   Dsn=Employee.xlsx;dbq=C:\USERS\MD\DOWNLOADS\Employee.xls;defaultdir=C:\USERS\MD\DOWNLOADS;driverid=790;fil=excel 8.0;maxbuffersize=2048;pagetimeout=5 10. In Data Wizard klicken wir „Next“. Und gehen wir zum Datenfenster. Wählen wir gebrauchte Tabellen. In unserem Fall „Employee“. Klicken wir „Finish“. 11. Im Fenster „Daten“ erscheint neue Datenquelle. 12. Jetzt erstellen wir den Bericht. Fügen wir auf den Band „Daten“ alle Felder von der Tabelle: Starten wir den Bericht: Also, Sie können Daten aus der Excel-Dateien verwenden, zum Beispiel, für die Automatisierung der Buchhaltungsabrechnung. Die Datenquelle kann mehrere Tabellen enthalten, das hängt von der Zahl der Seiten im Buch der Excel-Dokument ab. Viele Firmen lagern Ihre Abrechnung in Excel-Dokumenten. Und Sie können Ihre Dokumente in Ihren Berichten verwenden. Tags: .NET, FastReport, Excel, XLSX ### Verwendung des ASP .NET MVC-Projekts in FastReport Mono URL: https://www.fast-report.com/de/blogs/create-asp-net-mvc-mono Summary: Ein Überblick über die Implementierung eines ASP .NET MVC-Projekts in FastReport Mono zum Generieren von Dokumenten aus dem nativen Code. Ein Überblick über die Implementierung eines ASP .NET MVC-Projekts in FastReport Mono zum Generieren von Dokumenten aus dem nativen Code. Ein Überblick über die Implementierung eines ASP .NET MVC-Projekts in FastReport Mono zur Generierung von Dokumenten aus dem nativen Code. First of all, for programming in C # under Linux you will need to install: • MonoDevelop - development environment under the Mono framework; • XSP - a test web server for running ASP .NET applications; • A "battle" web server, for example, Apache. But this is if you are going to deploy an ASP .NET application. In our case, only the XSP server is sufficient for development. This is something like IIS Express, only for Mono. There are a lot of articles on the Internet that demonstrate the installation of MonoDevelop and XSP, so I'll skip this. Let's proceed immediately to creation of the application. Let's create a new solution. From the File menu, select New Solution .... Choose ASP .NET MVC Project. The next step is to cancel the Include Unit Test Project. Next, specify the name of the project and the name of the solution, and select the project directory and click Create. Add libraries to the project in References: FastReport.Mono.dll, FastReport.Web.dll. Add a new folder App_Data to the project. We will copy the database and report template into it: Let's edit the controller for the HomeController.cs homepage. Our objective is to create a report object, upload a report and data to it. ``` public class HomeController : Controller { public ActionResult Index() { WebReport report = new WebReport(); System.Data.DataSet data = new System.Data.DataSet(); data.ReadXml("App_Data/nwind.xml"); report.Report.RegisterData(data, "NorthWind"); report.Report.Load("App_Data/Barcode.frx"); ViewBag.WebReport = report; return View(); } } ```  Let's take a quick look at the code for the Index page. First, we create an object of a web report. Then create the DataSet and load the XML database into it. After that, we register the data source in the report and load the report template into the report object. In the end, we pass the report to the view through ViewBag. Now, it's logical to edit the Index.cshtml view: ``` index.chtml  

FastReport.Mono!

@ViewBag.WebReport.GetHtml() ```  The code is very simple - header and report. As you can see, the report object is exported to the HTML format for display. In order for export to work, we need to add handlers in Web.config in the project root: ```   …     …   ```  There is another Web.config in the Views folder, and it must also be supplemented:             ``` … ```  In the Views-> Shared folder, there is a page template for _Layout.cshtml. Connect it to scripts and styles: ``` @ViewBag.Title @WebReportGlobals.Scripts() @WebReportGlobals.Styles() @RenderBody() ```  That's all. Run the application: If you worked before with FastReport .NET, then for you there is nothing new in this article. The implementations in FR .NET and FR.Mono are almost identical. Tags: Mono, FastReport, ASP.NET, MVC ### Verwendung des CreatePage-Ereignisses in FastReport .NET URL: https://www.fast-report.com/de/blogs/page-create-net Summary: Wir sprechen über die erweiterten Funktionen von FastReport .NET in Form von Ereignisbenutzungen für PageCreate-Berichtsseiteneigenschaften. Wir sprechen über die erweiterten Funktionen von FastReport .NET in Form von Ereignisbenutzungen für PageCreate-Berichtsseiteneigenschaften. Wir sprechen über die erweiterten Funktionen von FastReport .NET in Form von Ereignisbenutzungen für PageCreate-Berichtsseiteneigenschaften. Ein neues CreatePage-Ereignis tritt ein, wenn die FastReport .NET-Engine eine neue Seite erstellt. An diesem Zeitpunkt können Sie die Seiteneigenschaften ändern. Die anderen Ereignisse StartPage, FinishPage und ManualBuild werden vor dem Beginn/Ende der Erstellung der Seitenvorlage aufgerufen. So können Sie beispielsweise zwischen Seiten im Hoch- und Querformat wechseln. Oder Sie können dieses Ereignis verwenden, um eine separate Datenquelle zu erstellen, die Informationen über ExportAlias oder andere Seiteneigenschaften enthält. Wenn das Ereignis ausgeführt wird, können Sie Parameter setzen und in der Datenquelle am Anfang der nächsten Seite iterieren. Die modifizierte Demo ist ein Bericht, der das CreatePage-Ereignis für die ExportAlias-Aufgabe verwendet. Ein Beispiel für einen Bericht mit diesem Ereignis wird nachstehend beschrieben: ``` 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); } } }
Category
Species Name
Length (cm)
Length In
  ``` Now to link our HTML code with data fields just use the object editor with expression editor and insert data expressions. The image data field will be automatically encoded to base64 with the correct mime-type of images stored in the database. FastReport VCL will do that automatically. The "HTMView" object supports grow to the bottom(stretch) relative to the content inside it just like the "RichText" object. And of course, "HTMLView" object supports data split when the report page doesn't have enough free space. A data stretch and data split can be activated like in other report objects of FastReport VCL. First, we need to set Stretched and AllowSplit properties of the band.  Then set  StretchMode property of the "HTMLView" object to smActualHeight in our case. That's all! Just run the report and check the result. As can be seen use HTML4.0 and CSS with links to the data is very easy in the new version of  FastReport VCL 2021.2 .  Tags: VCL, FastReport, Data Source, HTML ### Ovos de Páscoa no designer FastReport .NET URL: https://www.fast-report.com/pt/blogs/easter-eggs-report-designer Summary: Vamo dá un olhar más atento aos ovos de páscoa no designer FastReport .NET. Enkontra mais dicas úteis e artigos no nosso blog. Vamo dá un olhar más atento aos ovos de páscoa no designer FastReport .NET. Enkontra mais dicas úteis e artigos no nosso blog. Ku es ovo di Páskua, desenvolvedores di FastReport decidiram mostra un manera alternativo di usa se gerador. Basa na relátori, el kreába un jogo - o conhecido Campo Minado. Surpreendentemente, es é realmente possível gracias al script di relátori embutidu! With this Easter egg, FastReport developers decided to show us an alternative way to use their generator. Based on the report, they created a game - the well-known Minesweeper. Surprisingly, this is indeed possible thanks to the built-in report script. However, this is not just a report from the demo folder. It is hidden from users. This is the easter egg. And you can find it in the report designer using a special passphrase. Let's try to do it. Launch the report designer and select the File-> New menu. In the form that opens, you need to enter the word GAME by the keyboard. Pay attention to the register. After you enter this word, a new Games section will appear: The name of the section hints at the fact that there can be many games. In the meantime, one report-game FastM1nesweeper. It is clear that the name must be read as Fast Minesweeper. Let's select this report and add it to the designer. In this case, we will see this window: Here we can set the size of the playing field and the number of bombs. If you do not want to come up with sizes, you can use the presets in the Difficulty drop-down list: Each option has its own settings for field size and number of bombs. Well, let's try to make our settings simpler. This is what the report template will look like: On the “Data” band, the playing field will be drawn using the Table cell object. Depending on the number of columns and rows, the field will be filled with cells. The cell has 5 states: filled, empty, with a number, with a cleared bomb and with an exploding bomb. If you do not remember the rules of the game, then I will remind you. You need to open all the cells on the field and at the same time never get on the bomb. To calculate how far the bomb is from a particular cell, a number is written in it. It indicates how many bombs are within the radius of one cell around this cell. Focusing on the numbers in neighboring cells, we can conclude where the bomb is. Of course, you will have to open part of the cells for good luck. So, run the report in preview mode: In our case, the goal is quite simple - you need to calculate only 3 bombs. This is how the victory will look like: And so - a lossing: Now the chore of creating reports will be more fun. Without leaving the designer, you can relax a bit and have fun, because it’s not necessary to tell your boss about this Easter egg. Look at the Script tab, the amount of code is impressive. The real program. You can try your hand and write another game. Easter eggs with games work not only in the report designer FastReport.Net, but also in the FastReport Designer Community. Let's hope that the developers will periodically please us with new games. Tags: .NET, FastReport, Designer ### Partners URL: https://www.fast-report.com/pt/partners Summary: Parceiros-Confira as empresas com as quais temos parceria. Revendedores Filtros Continentes Com&Lan 6/F, Tower A, Fenglin Xi'ao, Datun Road, Chaoyang District, Beijing 100101 P.R. Tel. +86-10-64844488 ext. 221 | Fax +86-10-64844477 ext. 221 comlan.com info@comlan.com The the Beijing Kunlun Unicom Technology Development Co., Ltd. is a comprehensive enterprise operating direction to provide operation and maintenance services of IT products and professional. The company was founded in 1998 on the development of technology-based service to the community, "the general direction from its inception. The entire company set hardware products, software products, sales and service in one, continue to adhere to the introduction of foreign advanced products and technologies, providing IT solutions and technical support services for corporate clients. CompuCom Systems 3414 25th Street NE, Calgary, Alberta  T1Y 6C1 Tel. +1 403-205-5619 compucom.com contacts CompuCom Canada is a national IT services and solutions company providing infrastructure management services, application services, systems integration and consulting services, as well as the procurement and management of hardware and software. With more than 20 years of IT experience, CompuCom employs thousands of highly skilled associates who have earned a nearly 100 thousand industry certifications company-wide. As experts in workplace services, CompuCom’s unique Integrated Infrastructure Management (IIM™) solution reduces costs, increases productivity and helps clients gain maximum value from information. HTK Pro s.r.o. Kutnohorská 55, Praha 10, 109 00 Tel. +420-810-100-810 | Fax +420-286-891-391 devshop.cz kadlecek@htkpro.cz Petr Zahradnik, Computer Laboratory Obvodova 740/14, CZ-40007 Usti nad Labem, Czech Republic Tel. +420-47-5500610 | Fax +420-47-5511338 clexpert.cz petr@zahradnik.cz Inteli Scape Ltd 22 Larnakos Avenue, 4th Floor, Aglantzia, Nicosia 2101, Cyprus Tel. +357-22448500 | Fax +357-22448511 inteliscape.com sales@inteliscape.com In addition to turn-key solutions, inteliscape provides custom project services - we have "the glove that fits your hand"! At inteliscape, customer satisfaction is driven by our people; people who understand e-business, people who think, people who do, people who get it. We have both undergone appropriate training and gained significance in delivering e-business solutions. All our services professionals are recognised for their excellence by IBM, Lotus, and Microsoft in all competencies we perform: Consultancy, Sales, Solution Architecture/Design, Implementation, Administration, Learning, and Support. HongDi Science & Technology Development co. Room 1113 Building B JinMao Square No.251 QiLiTing Road HuZhou, Zhejiang 313000  Tel. +86 572 2607144 | Mobile +86 (0) 13511221372 cookcode.net sales@cookcode.com HuZhou HongDi science & technology development co.,ltd., located in HuZhou, Zhejiang, China, specializes in selling and supporting expert programming components. we have selled our graphical components in global countries, and take a good effect to developers. Established in 2001 , provide components and software tools to the developer community, CookCode has expanded to become a leading of components supplier in China, USA, Europe, and provide thousands of components to developers, designers, IT Managers, Network Administrators, DBAs and Corporate Buyers. Katálogo Software Tel. +55 (11) 3581-4400 katalogo.com.br vendas@katalogo.com.br Fundada em 1997, a Katálogo Software tem como objetivo de atender as necessidades em software para desenvolvedores, profissionais de TI e empresas de todos os portes. A empresa tem sua matriz em São Paulo e filiais no Rio de Janeiro, Curitiba e Estados Unidos. A Katálogo Software hoje é referência no merdado de software, com vasta experiência na área de importação e exportação de softwares profissionais. Pan Yan Chongqing Science and Technology Yanghe Road, Jiangbei District, Chongqing, the 2nd international Tongchuang the 3rd Room 1904 Tel. 023 -67870900 componentcn.com sales@componentcn.com Software reusability is one of the key factors in the development of the software industry. To achieve the software " industrialized "and " software component " is the foundation for achieving this goal. Therefore, our long-term commitment to excellent control products at home and abroad to introduce the software development process, China's major software development companyto help improve the development efficiency and shorten the development cycle of the software product, to reduce the risk of the development of software projects, thereby enhancing software products in the market competitiveness. Barnsten B.V. Zijlstraat 47, 2011 TK Haarlem Tel. +31-23-542-2227 | Fax +31-84-755-5260 barnsten.com info@barnsten.com Leading the way with Innovative, Multi-Platform, Developer and Database Solutions Barnsten is dedicated to providing its customers with the industry’s broadest and deepest set of tools for enhancing the productivity of software developers and database professionals. Cogito Software Room 5003,Guang Yuan Da Sha, No.5 Guang Yuan Zha, Hai Dian District, Beijing China 100081 Tel. +86-010-68421378, 68421379 | Fax +86-010-68703469 cogitosoft.com sales@cogitosoft.com We corporate closely with over 2000 Reseller and we had established relationships with local retail outlets and online shops. We have over 40,000 users within mainland China, a large proportion of them are from government agencies, educational institutes and commercial departments. We have established business relationships with many of the world's top 500 enterprises, for instance: Motorala, Simens, Lucent-Alcate ,etc. Qast Software Group RM 3705, BM Business Center, No.100 Yutong Road, Shanghai, 200070, China Tel:+86-21-5240-0198  | Fax: +86-21-6211-9020 www.qast.com info@qast.com Qast Software Group is one of the largest software distribution companies in China. Our goals are to continuously bring global software and technologies to the growing Chinese market. QBS Software GmbH Grünwalder Weg 13a, 82008 Unterhaching, Germany Tel. +49 (0) 89 231 4142 0 https://www.qbssoftware.com/ info@qbssoftware.de WESTcom Logiciels et Services Tel. +33-2-97-88-07-44 westcom.fr infos@westcom.fr Westcom is an IT company established in 2000 specializes in publishing management software (accounting, production management and inventory, fixed assets, ...) and LIMS (Computerized Management Laboratory). DATAVENIR sarl 119, rue Vi De Chenaz, 74380 BONNE Tel. +33-0489-61-21-40 | Fax +33-0450-92-30-77 datavenir.com info@datavenir.com DATAVENIR undertakes to study and offer at any time solution that best suits your needs for your information system. (Business, Accounting, Management, Networking, Internet Technologies, Multimedia, Online Services, Training). IT Haimerl Datentechnik Kreuzacker 10, 94356 Kirchroth, Germany Tel. +49-9428-305324 | Fax +49-9428-305325 https://www.fast-report.de/ info@fast-report.biz Mitrasoft Infonet Kompleks Roxy Mas Blok E-2 No. 3 Jl. K.H. Hasyim Ashari No. 125-B Jakarta 10150 Tel. +62-21-632-6533 | Fax +62-21-632-6364 mitrasoft.co.id info@mitrasoft.co.id We provide a wide range of IT solutions and services; Hardware & System software Infrastructure, System Integration, Structured Cabling, LAN/WAN Design and Implementation, Financial Management System, Business Intelligence, Software Licensing, Outsourcing, Maintenance, Training, Consultingand Custom Application Development. In June 1996, PT. Mitrasoft Infonet was formed to focus on software's business. Mitrasoft's main business includes providing Software Licensing, System Integration Services, Outsourcing, Maintenance, Training, Business Solutions and custom application development. It is noteworthy that one thing about our companies that have not changed over the years is our vision of providing the best products and the best solutions for our customers and today our companies continue to serve our customers even better. Intcom Systems Pvt Ltd Office No 20, Rajasthan technical Centre, Grd Floor, Patanwala Estate, Near Shre, Ghatkopar West, Mumbai, MH 400086, India Tel. +91-022-41117777 intcomsystems.com sales@intcomsystems.com Intcom Systems Pvt. Ltd., incorporated in 1994, caters to all aspects of Software Products / licenses procurement. With domain knowledge in software licensing models and years of experience reselling software products from worlds foremost software publishers, we provide purchase option that assist you get a properly licensed and most economic software deal. Our services division caters to Infrastructure solutions like, Network & E-mail Security, Print management, Online meeting solutions & Infrastructure solution. Intcom Systems Pvt. Ltd. is managed by Mahendra Patil and a team of professionals. With a focus on serving the Software Development, Corporate Houses & SME Small & Medium Enterprise in INDIA, We have tied up at various levels with software publishers worldwide to provide Indian developers with cutting edge tools to assist them through various stages of software development process. Amazing (HK) Trading Ltd Tel. +852-6255 3802 | Fax +852-3011 6235 amazinghk.com.hk sales@amazinghk.com.hk Kvazar-Miro CEE Kft Gubacsi ut 6., Budapest 1097 - Hungary Tel. +361-880-4415 | Fax +361-880-4465 kvazar-micro.hu info@kvazar-micro.hu SoDiCe Kereskedelmi Kft. 1143, Budapest, körút 83, Hungária Tel. +36 1 881 6486 sodice.hu info@sodice.hu A SoDiCe Kereskedelmi Kft. azzal a céllal jött létre, hogy közvetlenül a gyártóktól vásárolt szoftvereket kínáljon a magyar piac részére. Fő célunk, hogy a szoftver kiadókkal együttműködve részt vegyünk egy nemzetközi IT megoldásokat kínáló hálózat kiépítésében, kapcsolataik megerősítésében és a meglévő értékesítési csatornáikat kiegészítve hozzájáruljunk eredményeik növeléséhez. Kínálatunk az informatika különböző területein használatos szoftverek széles választékát tartalmazza: - Biztonsági/Security termékek - Network Management - Webdesign - Üzleti Megoldások - E-Learning - Tudományos szoftverek - Kommunikációs és Multimédiás termékek R2 Data Technology SAC. Tel. 511 402 0622  / 529 8069 r2datatechnology.com ventas@r2datatechnology.com R2 Data Technology es un proveedor de herramientas de desarrollo de software para empresas, ingenieria, investigacion e instituciones educativas. Software Sources Ltd. 64B Hasharon St. P.O.Box 639 Ra'anana 43106 Tel. +972-9-7714578 | Fax +972-9-7712194 software-sources.co.il chen@software-sources.co.il Wintech Italia Srl Tel. +39-0523.1998395 | Fax +39-0523.014654 shop.wintech-italia.com info@wintech-italia.com Wintech Italia is a training and consulting company specialized on Delphi, with the unique contribution of Delphi's "guru" Marco Cantù. We offer onsite and public training classes, consulting and development support, mentoring and code review. The company also resells in Italy the licences of Delphi and some third party components. AG-TECH Corporation 6F, Daiwa Kandabashi Bldg. 1-17-5 Kanda Nishikicho Chiyoda-ku, Tokyo 101-0054 Japan Tel. +81-3-3293-5300 | Fax +81-3-3293-5270 agtech.co.jp ``` sales@agtech.co.jp ``` AG-TECH is a company with over 35 years of experience in localizing, selling and importing packaged software into the Japanese market. We are the exclusive distributors in Japan for fully localized into Japanese versions of the FastReports.NET and FastReports VCL product range. As well as fully localized products, with full Japanese language manuals, we have an experienced team of local support and sales engineers, able to offer Japanese report developers and standalone report users a fully featured complete reporting solution. For full details, please refer to our Japanese language Fast Reports home page Danysoft Internatioal S.L. Avda. de la industria 4, edif. 1, 3ª planta, Natea Business Park, 28108 Alcobendas, Madrid +34-916-638683 danysoft.com Contact Danysoft es el representante exclusivo de Embarcadero en la península ibérica, estando especializados en ayudar a la comunidad de Delphi y C++Builder en licencias, formación, libros y utilidades tan imprescindibles como Fast Reports Isah Business Software Droogdokkeneiland 11, 5026 SP Tilburg Tel. +31-88-4724-000 | Fax +31-88-4724-001 isah.com A stable, hi-tech software solution: that is what Isah offers you. That is not just a promise. It is a guarantee. The manufacturing industry is our core market. With extensive industry experience dating back to 1987, we know precisely what is needed to optimise business management processes and attain better results. Rambla Informаtica S.L. Paseo Roma Fabra, 12, 08320 El Masnou – Barcelona Tel. +34-93-306-34-47 ramblainf.com DevTools Inc. Tel. +82-2521-7900 | Fax +82-22297-7900 devtools.co.kr midmee@devtools.co.kr AccessSoft Inc. 3F.-5, No.86, Sec. 1, Zhongxiao E. Rd., Zhongzheng Dist., Taipei City 100, Tel. +886-2-23560269 | Fax +886-2-23956826 accesssoft.com.tw rachelwu@accesssoft.com.tw  |  elsalin@accesssoft.com.tw Qun Yu Co., Ltd. (AccessSoft) positioning of the "Your Brilliant Solutions Provider", software integration services to provide customers with professional information, and for many of the world's leading software partners in Taiwan, the Taiwan user has a faster, more professional, more The regional software services. Linksoft Inc. 6th Floor, New Taipei City and District No. 351, Sec 10 Tel. +886-2-2221-2155 | Fax +886-2-2221-9008 linksoft.com.tw anna@linksoft.com.tw Founded in 2007, Linksoft is a professional distributor and reseller in Taiwan and China. As a professional software provider, Linksoft cooperates with global outstanding IT industries, reselling thousands of software includes Statistical Analysis, Development Program, Database Management, Network Security, Design and Edit software. Linksoft cultivates its mature service along Commercial, Government, Academic and Home users, with more than 500,000 customers in Asia. Working for customer-oriented, Linksoft provides in time product information and decent first-line support to overcome the difficulties caused by long distance and different time zones. Sinter Information Corp Tel. +886-2-2577-7755 | Fax +886-4-2471-7448 sinter.com.tw service@sinter.com.tw eBIZINET Co., Ltd. 24/128 Soi 21 Yak 3, Chom Phon, Chatuchak, Bangkok 10900 Tel. +66-02-5125933 ebizinet.com info@ebizinet.com Invite Course to Web Learning & Training on Internet. BTG (Bilgi ve Teknoloji Grubu Ltd.) Ankara: Bilkent 5.Cadde No:4 Ofis:9, 06533 Bilkent. İstanbul: Büyükdere Cad. No:185 Kanyon Ofis Binası K:6, 34394 Levent Tel. +90+212-319-7722 btgrubu.com cozum@btgrubu.com BTG (Bilgi ve Teknoloji Grubu Ltd.), yazılım geliştirme süreçleri ve test aşamalarında Türkiye çapında çeşitli büyük kurumsal projelerde danışmanlık, eğitim ve destek hizmetleri veren uzman bir kadroya sahiptir. Instant Buy Tel. +34-959-10-11-80 | Fax +34-959-87-06-49 instantbuy.es info@instantbuy.es Netsync Network Solutions 2500 West Loop South, Ste 410, Houston, 77027 +1-713-218-5041 | +1-832-606-2131 Lola Charles lcharles@netsyncnetwork.com Netsync Network Solutions (Netsync),is a HUB certified, minority owned, Houston-based, Value-Added Reseller,who holds a variety of manufacturer and industry certifications while specializing in the areas of Networking, Servers, Storage, Wireless Devices, Security, Enterprise Computing, Datacenter and other IT-related disciplines. Xailer +34 902 955 144 www.xailer.com sales@xailer.com Xailer Inc. is one of the most important companies in the xBase world created almost 10 years ago. They have been active in the development of Harbour since its inception. Our flagship product, Xailer is a complete visual development environment for xBase using Harbour as its main compiler. bit Time Software Via di Prataporci ,185 - 00132 Roma | Via C. Menotti 2/A, 20129 Milano 06 20763518 | 02 87399401 bittime.it dir_comm@bittime.it Bit Time Software è una dinamica IT company che opera nel panorama italiano ed europeo dell’information technology dal 2002. Nata come software house focalizzata sulla fornitura di soluzioni informatiche per la gestione delle attività aziendali, la società ha progressivamente esteso e ampliato le sue competenze, abbracciando l’area della consulenza e della formazione IT. Shanghai Quweishi Software Co., Ltd. Room 1222, No.580, West Nanjing Rd., Shanghai, 200041 021 - 3211 0920 commuch.com sales@commuch.com Quweishi Software is a professional software service vendor. We focus on providing development solution ,tools, on-site service for help , training and outsourcing. We work with many components and tools software company all over the world and provide technical support for their local customers. SOS Software Unterer Talweg 40 86179 Augsburg 0821 25782 - 0 sos-software.com info@sos-software.com Die SOS Software Service GmbH wurde im Juli 1987 gegründet und ist spezialisiert auf die Distribution und den Vertrieb von Software, Softwarebeschaffung und Lizenzberatung. Wir vertreiben Software von über 1.000 Herstellern mit 70.000 Artikeln. Täglich erweitern wir unser Software-Portfolio, um Ihnen Software aller Hersteller aus einer Hand zu bieten. FireBase www.firebase.com.br fdd@firebase.com.br A FireBase é o maior portal brasileiro de informações sobre Firebird, oferecendo serviços de consultoria, suporte, cursos, desenvolvimento, além de gerenciar uma das mais movimentadas listas de discussão sobre Firebird de todo o mundo. Cadastre-se gratuitamente para ficar atualizado com as últimas notícias do mundo Firebird! 51Component China 24D, No 15 Jincheng Mansion, Xiangcheng Road, Pudong,Shanghai,China +86-(0)21-50318395 51component.com sales@51component.com Beijing TL-Chinasoft Technology Haidian District, Beijing Zhongguancun South Street, Building 718 52 010-62115400 pcsofttech.com yiyong.ji@pcsofttech.com Codiprof Rua 31 de Janeiro, 76 4470-553 MAIA 229424216 www.codiprof.pt info@codiprof.pt Devart 192a Klochkovskaya str., Kharkov, Ukraine, 61145 sales@devart.com devart.com Founded in 1997, Devart now has 18 years of experience in developing database tools and native data access solutions for different database servers with headquarters situated in Czech Republic and research and development center - in Ukraine. Comsoft 400 Avenue de Roumanille Green Side 1 Bât. 2, 06410 Biot 0 825 07 06 07 comsoft.fr infos@comsoft.fr Corporate Tech +55 (51) 4063 8011 corporatetech.com.br comercial@corporatetech.com.br A CORPORATE TECH Tecnologia – tem por tradição à atuação no mercado de tecnologia da informação desde 2010, ano que iniciou suas atividades na cidade de Porto Alegre com o objetivo de atender pequenas, médias empresas, profissionais da área de desenvolvimento e infraestrutura com produtos de software e licenciamento. Atualmente atuamos em todo território nacional, com base em Porto Alegre e escritório na cidade do Rio de Janeiro, atendendo clientes das mais diversas áreas e seguimentos, fornecendo softwares e consultoria gratuita na área de licenciamento. Nosso trabalho é focado sempre na atuação consultiva, buscando entender a necessidade do cliente para lhe oferecer o melhor licenciamento e o software adequado a sua real necessidade e orçamento. WSB Solutions B.V. Kade 30, 3371 EP Hardinxveld-Giessendam (0184) 61 88 37 www.wsb-solutions.nl info@wsb-solutions.nl Elmer İSTANBUL Rasimpaşa Mahallesi Tayyareci Sami Sokak Demirli İşhanı No:18 Kat:2  34716 Kadıköy İstanbul +90 216 577 64 71 www.elmer.com.tr ANKARA Kabil Cad. 1335. Sokak No:10/2 06450 Öveçler, Ankara +90 312 478 42 78 www.elmer.com.tr CiKa Software Schwalmtalstr. 18 34628 Willingshausen-Steina Deutschland 06691-929621 www.cika-software.de info@cika-software.de Login Infotech #63, 1st Main Road, Seshadripuram, Bangalore - 560 020 Karnataka +91-80-23349809 | 23563500-02 login2it.com sanjay@login2it.com LOGIN INFOTECH PVT LTD was incorporated in the year 1996 by a group of professionals with more than a decade of experience in the IT industry. Login started its business as a reseller company for Software and Hardware products and in a short span of time Login was recognized as one of the leading Value Added Partners for Microsoft. Login was also appointed as Partners for leading MNC brands like HP, COMPAQ, IBM, ACER and Wipro among Indian brands. Today with a turnover of over $8 million, Login is one of the preferred vendors for leading Corporate, Government and Banks & PSU's across the country. Login will be accredited with ISO 9002 Certification shortly. Targetware (55) (11) 3665 8550 targetware.com.br comercial@targetware.com.br DHorde Gengqian Information Technology Office Building 1-2198, Building A, Baguazhou Pioneering Park, No. 270 Lidao Road, Baguazhou Street, Qixia District, Nanjing +86 17558866126 dhorde.com sales@dhorde.com Nanjing Gengqian Information Technology Co., Ltd. ("Gengqian" for short), established in 2017, is a national high-tech enterprise specializing in providing global software and information technology services. The headquarter is located in Baguazhou Pioneering Park with a pleasant environment, and has branches in various regions of the country Evget +86 (23) 68661681 www.evget.com qiuyt@evget.com EXE +421-2-67 296 111 exe.sk Uznávame princípy, ktoré sme si stanovili pri samotnom vzniku firmy. Nadobudnuté skúsenosti nám dávajú zdravé sebavedomie a rešpekt pred potrebami zákazníkov. Svojich klientov nikdy nezavádzame a vždy vytvárame len také riešenia, ktorým sami dôverujeme. Symbionis Software Nussdorfer Strasse 64, Top 3b, 1090 Wien Tel. +43-1-7866496 | Fax +43-1-7866496-30 symbionis.at office@symbionis.at Wir vereinen die drei Hauptbereiche, Software, Skills und Technologies, in einem zentralen Knotenpunkt, um Ihnen optimale Lösungen für Ihre Projekte zur Verfügung zu stellen. Durch die Verknüpfung dieser drei Schwerpunkte können wir Ihnen maßgeschneiderte Angebote von der Entwicklung Ihrer Softwarekomponenten über geeignete Fachkräfte bis zu speziellen Datenbankservices machen. Ker-Soft Computing Szombathelyi tér 14. 1119 Budapest, Hungary +36(1) 206-2147 kersoft.hu info@kersoft.hu The company, gradually faced with a greater number of complex tasks was urged to take on with more professionals thus providing further technical expertise. In respose to growing customers needs, Ker-Soft developed its IT expert team. Similarly, we have built partnerships with the world’s leading IT suppliers -enriching our competency in solutions and products of Microsoft, CA. PT Interaktif Cipta Lestari Jl. Pualam I No. 49 Sumur Batu, Kemayoran, Jakarta Pusat +62 21 21477722 www.interaktif.solutions iwancs@interaktif.solutions PT Interaktif Cipta Lestari is an IT Company that provide the best, effective, and efficient solutions for companies needs. We provide many service in several area such as Custom Software Development, Original Software License, Technical Support, Data Entry Services, Network Infrastructure Consultation, and much more DEVGEAR 359, Sapyeong-daero (Banpo-dong, 3rd floor)Seocho-gu, Seoul, 06542 02 595 4288 www.devgear.co.kr DevGear is a company established in Korea through agreements with Embarcadero (acquired by IDERA) such as Delphi and C++ Builder. In line with the ever-increasing demand for Delphi and C++ Builder developers, DevGear provides products as well as related services (books, education, technical support, etc.) to the domestic market. AHA Computer Company Ltd. Tel. 02-2749-1909 https://www.ahasoft.com.tw sales@ahasoft.com.tw AHA Computer Company Ltd. was founded in 1990, specializing in the marketing and licensing of computer software all over the world. Serving the market with active minds over decades, we are proud to say that satisfaction and support from our business partners have clearly marked our excellent reputation. Pure Green Bulevar Arsenija Čarnojevića 140/2, Beograd +381 63 640 218 puregreen.rs info@puregreen.rs PureGreen is an IT-based company founded in 2015. Great vision inspires us to connect the real and digital world in a way to be the MVP partner for both our customers and suppliers. The base structure of our portfolio has a focus on software development, design and offering the best IT products and solutions. JSC Softex Baltic Sviliškių str. 10-46, Vilnius, Lithuania +370 683 77221 www.softex.lt info@softex.lt OSB Software Rua Vergueiro, 1421, Conj. 1309, Torre Sul. Paraíso – São Paulo/SP – 04101-000  Tel. +55 11 4280 6660 www.osbsoftware.com.br contato@osbs.com.br Não importa se o software que você procura está na América, Europa, Oceania, Ásia ou África. Na OSB Software você poderá encontrar os softwares de qualquer fabricante independentemente do país onde ele esteja. A OSB Software firmou contrato de parceria com mais de 2.000 fabricantes que expressam a AUTORIZAÇÃO de comercialização do software em todo território nacional, além de uma equipe experiente que é responsável pela busca constante de novas soluções para disponibilizar o que há de mais recente no mercado de TI. MicroWay Pty Ltd PO Box 84, Braeside, Victoria, 3195, Australia Tel. +61-1300-553-313 | Fax. +61-1300-132-709 microway.com.au sales@microway.com.au MicroWay is Australia's largest distributor of development products and software for IT Professionals. With over 3,000 products and over 20,000 customers throughout Australia and New Zealand, we've been helping IT Professionals for over 27 years. We assist developers, system administrators and other IT Professionals by encouraging the use of tried and tested, quality products. Software development products fit into many categories including the category of "don't reinvent the wheel"—if someone has already written code to do what you're trying to do, why not just buy that code? Products of this sort are usually fairly robust after having been sold on the world market. InchalBase Yongsan-gu, Seoul, Yongsan-dong 5-Yongsan Park Tower 103 No. 1503 Tel. +82-02-589-2900 | Fax +82-02-548-1123 ibmart.co.kr tkim@inchalbase.com 1995 inchael goal is to computer and Internet users to offer the best experience and satisfaction . Customers a variety of products based on the technology accumulated over 10 years in software solutions, ranging from the client to the server until you are offered to Recognized in the development of a Web system used worldwide by End to End testing and performance monitoring solutions and management solutions to our customers can offer. In the development of VoIP and IMS products, network services, such as installation to provide a solution that can verify the quality and performance during the whole life cycle of up to. Web, VoIP, NGN, and IMS based on numerous tests and has the expertise and knowledge gained from experience in inchael base the quality of service in real-time visualization by showing a variety of monitoring solutions. Accumulated technology and experience a wide variety of state-of-the-art techniques provides consulting and tuning services. inchael base and OneSight 's easier and safer position in the web system management plan have been provided for users and administrators Korea empirically Riggs and merger integration decisions by truly comprehensive solutions company that provides VoIP, Enterprise & Contact Center solutions, as well as the process of expansion and diversification of business and one more step to leap to. Orangean International Corp Address: 8F., No. 527, Huajiang 1st Rd., Banqiao Dist., New Taipei City 220, Taiwan (R.O.C.) orangean.com.tw info@orangean.com.tw Orangean International Corp. ,established in 2020, primarily serves as an authorized distributor for international software. We specialize in the sale of professional commercial software and offer services in enterprise IT system planning and implementation, information security management, and computer hardware sales. ComponentSource 650 Claremore Professional Way, Suite 100, Woodstock, GA 30188-5188, USA Tel. +1-770-250-6100 | Fax. +1-770-250-6199 componentsource.com sales@componentsource.com ComponentSource was established in 1995, to ensure Software Developers were supplied with the best software development products the world had to offer. Hitherto, inefficiencies imposed by the established, country-based, software distribution channels meant that only a small number of products made it to market. Consequently, ComponentSource pioneered the open market for reusable software components and tools, through innovative use of electronic software delivery (ESD). Today, ComponentSource offer the world's best collection of labor saving software through eCommerce Web Sites; carrying over 10,000 SKU's from 230+ Publishers. ComponentSource have offices in the USA, UK and Japan supporting over 100,000+ Customers, from 160 Countries. Aquion Suite 25, L3 357 Military Rd Mosman NSW 2088 1300-AQUION (278-466) www.aquion.com.au send mail Aquion - Taking Award Winning Vendors to Customers in Australia, New Zealand, Asia Pacific and IndiaAquion supplies quality software and solutions backed by extensive technical expertise from our vendors as well as inhouse to enterprise, business and government customers in the Region. Vendors benefit from our customer relationships, established channels, and local knowledge. Our partners benefit from our close relationship with vendors, product and licensing expertise and technical support. End user customers benefit from best of breed software, locally supplied and supported. QBS Software Ltd Tel. +44-020-8733-7101 qbssoftware.com sales@qbssoftware.com Established in 1987 to provide tools to the developer community, QBS Software has expanded to become a leading software supplier in Europe providing thousands of products to developers, designers, IT Managers, Network Administrators, DBAs and Corporate Buyers. Products range from IDEs to code tools, components to Installation tools as well as security, reporting, installation, web, database, help creation, system tools and application software. QBS has developed a keen expertise in product marketing and management alongside sophisticated in-house publishing and fulfilment. We have an extensive network of industry connections and commercial relationships with software publishers and vendors throughout the world, many of whom rely on QBS Software to build strong markets for them in the UK and Europe. QBS Software is an active participant in leading industry exhibitions, conferences and roadshows and works closely with various user groups. Prianto Barthstraße 18, 80339 München +49 89 416148 210 prianto.com kontakt@prianto.com Die Prianto GmbH wurde 2009 von William Geens und Oliver Roth gegründet und gehört inzwischen zu den führenden, auf Software spezialisierten Distributoren Deutschlands. Seit 2011 ist Prianto auch in Großbritannien,Österreich und in der Schweiz vertreten, 2012 folgten die BeneLux-Staaten. Wir setzen auf absolute Fachhandelstreue und beliefern ausschließlich Wiederverkäufer im Channel (VARs, Systemhäuser, Integratoren, Fachhändler, Service-Provider, etc.). Unser Ziel ist es, langfristige, vertrauensvolle und erfolgreiche Geschäftsbeziehungen mit Fachhändlern und Systemhäusern einzugehen. Dafür bieten wir margenstarke und innovative Software-Lösungen an und garantieren schnelle und fundierte Leistungen bei der Beschaffung von Softwarelizenzen. Akdatasoft Yazilim ve Bilgisayar Kazımiye Mahallesi Aşık Veysel Sokak Çamlık Sitesi B-Blok No.:10 Daire:14 P.K.59860 ÇORLU, TEKİRDAĞ +90-282-653-13-89 akdata.com info@akdata.com Since the year of 1995, our company has been serving with integrated/modular software programs as a reliable provider for production sector with the help of operational business experienced personnel. It is only possible to provide right and on-time service to customers during changing competition conditions is to monitor / control production and stock, and to establish cost-benefit balance by using computer aided technology and services. Also used technology should be ready for development depending on changing necessities, and be modular based, has integrated parts. The major factors that are keys to be successful company; continuous cooperation with customers, support after selling, and improving our products as all we mentioned above. Thus we would like you as precious companies dealing with production to know that we are ready to create every production management systems, data collection projects, product pursuing and cost analyzing systems, and also ready to serve continuously and free of problems. Chongqing Huidu Technology Tel. 023-66090381 fastreportcn.com sales@evget.com Huidu Technology was established in 2003, focusing on controls (components and middleware) industry and software industry development consulting, which is the largest control reseller and reusable technology consulting service provider. We have a wide range of partners all over the world, adding up to more than 200 partners including top control producers in the world. We are devoted to provide world-leading reusable technology and tools for software developer, medium-sized and big enterprises, universities and etc. aiming at promote the common development of state software industry in China. Codetalk 359, Sapyeong-daero (Banpo-dong, 3rd floor), Seocho-gu, Seoul, 06542 (+82) 02 595 4288 https://www.codetalk.co.kr/ Сodetalk selects high-quality software for software professionals and then supplies and spreads genuine software based on partner agreements with the manufacturer. AVIR s.r.o. Záhumenice 15, 902 01 Pezinok Tel. +421-905-859812 | Fax +421-33-6401895 avir.sk Firma AVIR sa už dlhší čas zaoberá šírením a registráciou shareware (voľne šíriteľných) programov. Výhodou registrácie shareware u nás je možnosť platby v Euro na účet v slovenskej banke, promptné zaslanie papierovej faktúry od firmy AVIR ako slovenského platcu DPH, rýchle jednanie, komunikácia v slovenskom jazyku a mnoho ďalších výhod. Ku každému nami ponúkanému programu nájdete krátky popis alebo recenziu, ako aj link na jeho stiahnutie. Na základe overenia funkčnosti skúšobnej verzie na Vašom počítači sa potom môžete po uplynutí autorom určenej skúšobnej doby rozhodnúť pre registráciu programu (objednanie registrácie je už ale záväzné a po dodávke tovaru nie je možné jeho navrátenie, keďže licenciu firma AVIR platí autorským firmám vopred a súčasne licencie sú menovite vystavené na meno zákazníka, nie je možné ich predať inému zákazníkovi). Registrácia shareware programov sa dá realizovať aj v prípade produktov, ktoré sa nenachádzajú na týchto stránkach - kontaktujte nás s Vašimi požiadavkami. Infomedia Systems Services 18 Boon Lay Way #03-104 TradeHub21 Singapore 609966 +65-6270-0121 infomedia.com.sg sales@infomedia.com.sg Established in 1996, Infomedia Systems Services Pte Ltd is today’s leading system integration company providing One Stop Solutions for a wide range of customers ranging from the Small-Medium Enterprises (SME) to the Multi-National Corporations (MNC), Government Linked Corporations (GLC) and Government Bodies. With the extensive technical knowledge we possessed, we are able to assist customers transform their legacy and time consuming work operations into effective cost-cutting IT solutions. At Infomedia, we strongly believe in customer satisfaction and are always striving to work towards this goal. We are committed to our projects and promised to satisfy our clients by delivering quality works and solutions. It is also with this believed that we are able to offer cutting edge technology to our customers in this internet era. We understand the problems encountered by our customers when they deal with multiple vendors and thus we aim to establish ourselves as the one-stop IT solutions provider for them. We are able to provide consultancy, design, implementation and even the maintenance of the entire IT infrastructure for our customers. By engaging us you can rest assured that your network is in the safe hands and concentrate on your core business. Knowing the problems and frustrations that are faced by our customers when the system is not working in the daily operations, we are always ready to provide fast and efficient services to them when called upon. Your call is important to us and it is one of our company policies to provide prompt services without compromising on the quality of work to be done. We do not have RED TAPES like big corporations on servicing and supporting, our flexibility allow us to attend to our customers’ calls promptly. Getting your system up and running is always our number one priority. With the fast-paced and ever-changing of IT, we strive to maximize the best strategies and techniques to our staff so that they are always fully and readily equipped with the most reliable and cost effective solutions to reach customers across multiple channels. Software Asli Harco Mas Mangga Dua, Lantai Dasar No 89 (Dekat Lift) Jakarta Pusat 10739 Tel. +91-021- 6230 1345 | Fax +91-021-6230 4562 softwareasli.com info@softwareasli.com PT Digital Asia Utama/Software-Asli.com is an Indonesian leading Distributor and Master Dealer of Original Software. List of Top Brands carried includes Microsoft, Adobe, Corel, Autodesk, Symantec, Kaspersky, McAfee, AVG, Bit Defender, Norman, Zone Alarm, Eset, ACDSee, NetOp, Farstone, Oracle, SPSS, Redhat, MYOB, ESRI, Business Objects, Borland, MapInfo, IBM, Magix, UltraEdit, Techsmith, and many more. PT Digital Asia Utama is Private Owned Limited Liability company, located at Mangga Dua Jakarta, Indonesia, where the central of Computer Business located. The company was founded at 2003. After years of efforts, we have developed reputation, trust and confidence among our customers and partners. During the years, we continue to expand and grow. PT Digital Asia Utama have been working with more than 300 Reseller, Retail shops, and Online shops across Indonesia, Which is considered as one of the Biggest, most complete and most active Software Distribution channel in Indonesia. Cheer Chain Enterprise +886 4 2386 3559 cheerchain.com.tw info@cheerchain.com.tw Cheer Chain Enterprise (CCE) is a leading technology company based in Taiwan.We use our vast experience to provide a wide range of software, consulting and training services to organizations looking for solutions to qualitative research ,mixed methods research,eLearning, scientific publishing and statistical analysis challenges. BSC Polska Sp. z o.o. ul. Schroegera 32, 01-822, Warszawa bsc.com.pl BSC Polska, founded in 1996, is a representative of carefully selected software vendors offering solutions for the whole process of software development - application lifecycle management, coding, software testing, quality assurance and application performance monitoring. Our company additionally offers tools for database tuning and maintenance. We also provide training and consulting services supporting all products from our portfolio. LOGON Software Asia LOGON International Limited Unit 19, 1/F, Cheung Wah Centre, 10-12 Shipyard Lane, Quarry Bay, Hong Kong Tel. +852 2512 8491 logon-int.com logonhk@logon-int.com LOGON International Limited has created this privacy statement in order to demonstrate our firm commitment to privacy. The following discloses our information gathering and dissemination practices for this website: LOGON Software Services. LOGON's WEB Site is an extension of its customer service and technical support organizations. Through this WEB site, we strive to provide information on our products and services to valuable customers like yourself. Through this WEB site you are able to request evaluation software, software catalogs, subscription to TechNews, a weekly technical newsletter and enjoy prompt technical support assistance. In order for us to offer you these services, we require that you offer us contact information like your name, telephone, email address. In order that we understand your technical environment and your requirements, we also require that you mention information like development tools used, operating systems being managed, nature of applications being built or managed and your functional role in IT. With this information, we deliver customised information on products, technical tips, suggestions, etc.. GEN Technologies 55 Khojaly Ave., AGA Center, 1025 Baku, Azerbaijan gentech.az sales@gentech.az +994 (12) 311 3066; +994 (50) 250 9196 GEN Technologies is a software distributor and value-added reseller providing software licensing and technology solutions to corporate, government, education, and enterprise customers. The company works with leading international software vendors and supports customers throughout the full licensing lifecycle, from product selection and procurement to renewals and ongoing support. GEN Technologies operates across Azerbaijan, the South Caucasus, Central Asia, and CIS markets. info@fast-report.com Vendas sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Endereço Alexandria, VA 22314 66 Canal Plaza, Ste 505 Produtos Comprar Demo Documentação Como desinstalar Licenças Produtos Comprar Demo Documentação Como desinstalar Licenças Apoio SLA de suporte Suporte online Perguntas Freqüentes Vídeo tutorial Fórum Artigos Notícia Apoio SLA de suporte Suporte online Perguntas Freqüentes Vídeo tutorial Fórum Artigos Notícia Companhia Sobre Identificação Revendedores Contacte-nos Companhia Sobre Identificação Revendedores Contacte-nos Política de privacidade Política de cookies © 1998-2026 Fast Reports Inc. Trustpilot Link copiado sucesso ### Payment completed successfully URL: https://www.fast-report.com/pt/successful-payment Summary: Thank you for your order. After payment checking by our payment processing service you will get a license in your personal panel. Thank you for your order. After payment checking by our payment processing service you will get a license in your personal panel. Thank you for your order. After payment checking by our payment processing service you will get a license in your personal panel . Also we will send you a notification by e-mail. In case of any problems with obtaining a license, feel free to contact us by e-mail , phone or through the support service ! We will be glad to see you as our new happy customer! ### PDF document in a report – using of new TfrxPDFView object URL: https://www.fast-report.com/pt/blogs/pdf-document-in-report-vcl Summary: With the release of FastReport VCL 2021.3, a new TfrxPDFView object has been added, which allows you to display PDF documents inside a report. With the release of FastReport VCL 2021.3, a new TfrxPDFView object has been added, which allows you to display PDF documents inside a report. With the release of FastReport VCL 2021.3, a new TfrxPDFView object has been added, which allows you to display PDF documents inside a report. First of all, FastReport VCL is a report generator. Based on this conclusion, we can assume that previewing or embedding documents of other formats into a report is excessive. But according to requests from our customers, we can see the opposite point of view. Many of our customers are solving tasks with the integration of new and old systems. Such an old system may contain already prepared documents that need to connect to the news reports. In other words – embed and view documents of third-party formats into a report adding new pages or fields to it. For such tasks in FastReport VCL 2021.3, we have added the new report object - TfrxPDFView. This object uses the Open-source library Pdfium  and is designed to view PDF documents in a report. You can build this library from the source code or use one ready-to-use from FastReport VCL installation package (frx_pdfium.dll and frx_pdfium_64.dll in Bin folder). After the manual build, you need to rename the library to frx_pdfium.dll for 32-bit system and to frx_pdfium_64.dll for 64-bit system. For the manual build, you need Visual Studio and Google depot_tools. More information can be found here  and  here . As was written above you don’t need to build Pdfium, you can use prepared libraries from the FastReport VCL installation package, but if your company has a security limitation and requires building all code on your side use links from above. The TfrxPDFView can draw documents both on one and several report pages. Using the ability of the report engine to split objects. Let’s check more closely how to use this object and what ability it provides. After clear installation latest FastReport VCL 2021.3 version this component should appear on Delphi’s components palate in FastReport VCL section. Just place the TfrxPDFObject on the application form, to use the TfrxPDFView at Run-time. If you started with a new project also add the TfrxReport component to a Form and with a double click on it call the report designer. Then click on the PDF Object in the report designer objects panel and create a new object on the band in the report. Just like any other FastReport VCL object. The object was created. After that, the object editor should appear which allows loading a PDF document. TfrxPDFView allows printing multi-page documents. Special for this TfrxPDFView has new properties. DetailStretchMode property is responsible for displaying the content inside the container of the object and can be one of the following values: pdOneToOneStrongStretch – a page is always stretched using report object size. It does not keep the aspect ratio. pdOneToOneNormalize – a page is always stretched and keeps the aspect ratio of the original page in a PDF document. pdManyToOneNormalize – allows to fit several pages into the report object area and keeps the aspect ratio of the original page in a PDF document. Printing of multi-page PDF document FastReport VCL allows printing PDF documents as one page of a PDF document onto one page of the report for each page of a PDF document. We already created and load a PDF document on the Report Title band in the report. Let’s stretch it to the whole page of the report template page. It should look like the picture below. If we click on the report preview now, we will see only one page of the load PDF document even when a document has more than one page. To print all the pages, we need to perform a series of steps. Step 1. Turn on AllowSplit and Stretched properties and set them to True in the band object which has TfrxPDFView as a child. We need this band for stretches and splits. Step 2. Set StretchMode property to smActualHeight or smMaxHeight on the TfrxPDFView object. This object can stretch now. Let’s run the report preview and check the report output. FastReport VCL prints all pages of PDF document each on the report page. The TfrxPDFView object has and other properties. The “Password” property sets a PDF document password. “DrawOptions” flags allow controlling document output. In addition, you can use a file name as a source for the TfrxPDFView object by using the FileLink property. And that’s not all! With the new DataLink property, it’s possible to load documents even through HTTP and HTTPS protocols. Now FastReport VCL can print PDF documents inside a report and not only generate them! Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, PDF, PDF, Report, Report, Delphi, Delphi ### PDF viewing settings when exporting from FastReport .NET URL: https://www.fast-report.com/pt/blogs/configure-viewer-pdf-exporting-net Summary: Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. This can be Acrobat Reader or browser's built-in viewer (Edge, Chrome) or any other viewer. You'll find that some of the options are very useful. Here is the tab "View" window in PDF export settings: Consider all the options in order: Show print dialog - when you start pdf file will immediately show the print dialog; Hide toolbar - disables the toolbar menu at the viewer; With the menu: Without the toolbar menu: Hide menubar - includes a main menu in the viewer; With the main menu: Without the main menu: Hide window user interface - this option enables / disables the sidebar that displays document pages in miniature. Interface hidden: Fit window - it allows you to adjust the size of the document window so that the page of the document was placed in width. If the window is smaller than the width of the document page, it will be increased; Center window - this option allows you to center the Viewer window on the screen; Print scaling - allows you to compress the large pages. For example, the image on the entire page had fields (some printers may not print entirely on the entire sheet, they require field). If you select this option, in the print window of the PDF document you will see the selected item Shrink oversized pages.  Scale - the opportunity to ask the original display scale of the document. You can change it later, when viewing the document. For example, choose the size of the "Fit Page". The scale will be chosen so that the entire page is fully displayed on the screen: Outline - allows you to display report the plan as a PDF file. Here is a sample report with a built-up: And here is the document PDF, if for such a report to include the option Outline: On the left is displayed bookmarks toolbar, which contains the report plan. We have considered all the options for configuring the display of the document in the viewer. Which of them will be useful to you to judge. But it is obvious that you shouldn't ignore these settings if you want to create a document that is easy to read the end-user. Tags: .NET, Export, FastReport, Viewer, PDF ### PDF/X, PDF/A, PDF/E: What is the difference, and why are there so many formats? URL: https://www.fast-report.com/pt/blogs/comparison-pdf-formats Summary: Let's try to understand the variety of PDF formats, compare the pros and cons of standards for various industries and their needs. Let's try to understand the variety of PDF formats, compare the pros and cons of standards for various industries and their needs. Let's try to understand the variety of PDF formats, compare the pros and cons of standards for various industries and their needs. PDF is an all-purpose file format that allows users to present and share documents regardless of software, hardware, or operating system. Over the years, several PDF subtypes have been created to meet the different needs of various industries. Let's look at some of the most popular formats: PDF/X, PDF/A, and PDF/E. 1. PDF/X PDF/X is a professional standard for graphics interchange optimized for consistent and predictable printing. Unlike regular PDFs, which can include any content, like interactive elements and media files, PDF/X is limited to certain data types, making it especially suitable for sharing print-ready files. Main characteristics of PDF/X: Color model. All colors in a document must be defined in pre-known color spaces, typically CMYK or spot colors. It eliminates the uncertainties associated with color interpretation in printing. Built-in resources. All necessary resources, such as fonts and images, must be embedded in the file. It ensures that the document will look the same on any hardware. No interactive elements. There are no interactive elements such as comments, form fields, videos, and JavaScript. The specified output format. The document must contain information about how it will appear when printed, which implies certain requirements for the placement and layout of pages. PDF/X subtypes: PDF/X-1a: Based on the PDF 1.3 standard. Colors are defined as CMYK or spot colors only. Does not support ICC profiles. PDF/X-3: Supports CMYK, spot colors, and ICC profiles. Allows you to use different color spaces in one document. PDF/X-4: Supports layers, transparency, and other new features available in PDF 1.6 and higher. Supports multiple color spaces. 2. PDF/A PDF/A is a subset of the PDF format designed to meet the needs for long-term storage of electronic documents. Unlike PDF standard, PDF/A prohibits components that can cause problems with a document's appearance over long periods of time, making it ideal for archiving. Main characteristics of PDF/A : Built-in resources . All resources for the correct display of the document (for example, fonts, and images) must be embedded in the file. Lack of interactivity . Interactive elements such as JavaScript, audio, video, and executable files are prohibited. Color stability . The document must use a stable color model to ensure long-term display consistency. Prohibition of external dependencies . You may not refer to external resources that may change or disappear over time. PDF/A subtypes : PDF/A-1: Based on the PDF 1.4 standard. It is divided into two parts: PDF/A-1a for full compliance, including structure tags for accessibility, and PDF/A-1b for basic visual compliance. PDF/A-2: Based on the PDF 1.7 standard. Includes improved support for embedded annotations, layers, transparency, and compression. It is also divided into compliance levels: PDF/A-2a, PDF/A-2b, PDF/A-2u. PDF/A-3: Extends PDF/A-2 allowing to build in embedded files of any format (including, for example, XML, CSV, or CAD files). It is also divided into compliance levels: PDF/A-3a, PDF/A-3b, PDF/A-3u. 3. PDF/E PDF/E is a subset of the PDF format designed specifically for engineering, architecture, and construction professionals. This standard addresses the need for sharing, viewing, and printing dynamic technical documents, including diagrams, drawings, and 3D graphics. Main characteristics of PDF/E : Support for complex graphics . Including layers, transparency, 3D models, and interactive elements. Metadata . Enhanced metadata for improved search and management of document content. Precise geometry . For accurate reproduction of geometric objects such as lines, curves, and surfaces. Embedded files . Ability to include related or source files such as specifications or CAD data. Why so many formats? Various industries have different needs. The creation of specialized PDF subsets allows us to meet these needs without creating an entirely new standard. These profiles ensure standardization, predictability, and reliability for specific applications. Are these formats available in FastReport .NET? FastReport .NET has most export formats, only PDF/E is missing. These formats can be used both in the designer and the application code. To select the desired format in the designer, click "Save" and "PDF format." Then go to the "Settings" tab and select the needed format. At the end, we will receive the required file in the desired format. To export to a specific format, we need to create an application, connect the FastReport package, and write the required code. Below is an example of how to save a PDF as PDF/A. ``` Report report = new Report(); report.Load("PathToYourReport.frx"); // Setting up PDF export PDFExport pdfExport = new PDFExport(); // For export to PDF/A format pdfExport.PdfCompliance=PDFExport.PdfStandard.PdfA_2a; // You can select the desired compliance level report.Prepare(); report.Export(pdfExport, "OutputPath.pdf"); ``` Conclusion Although there are many PDF subtypes, each was developed with a specific purpose and to meet the needs of a specific industry. The choice is entirely yours, which format and for what purposes you need it. Tags: .NET, Export, FastReport, PDF ### Peculiarities of built-in Chrome PDF viewer URL: https://www.fast-report.com/pt/blogs/chrome-pdf-viewer Summary: Let's take a closer look at how the Features of the built-in Chrome PDF viewer in FastReport works. Find more usefull tips and articles in our blog. Let's take a closer look at how the Features of the built-in Chrome PDF viewer in FastReport works. Find more usefull tips and articles in our blog. Let's take a closer look at how the Features of the built-in Chrome PDF viewer in FastReport works. Find more usefull tips and articles in our blog. The PDF format is so prevalent in the document flow, that is quite rightly called it the most popular in this area. Such a document is self-sufficient, it can include graphical information, special fonts, and more. There are many free software for viewing PDF files. Modern browsers also allow you to do this. For example, Google Chrome has its own built-in viewer for PDF documents. However, the Chrome PDF Viewer functionality is rather limited, compared with the Acrobat Reader. There is one more feature, which few people know. Chrome does not fully supports the PDF standard. This manifests itself when you print a document that contains the dotted line. These lines are displayed correctly when viewed in Chrome PDF Viewer, but when you print the document, they will not. Programmers from FastReport preoccupied by this problem. And in FastReport .NET (starting with version 2016.2.13) exported to PDF report can correctly display dotted lines when printing from Chrome PDF Viewer. To this end it was decided to depart from the PDF standard and draw dotted and dash-dotted lines by using segments of conventional lines. If you are using other means of generating PDF documents, remember the problem with the dashed lines when printing from Chrome PDF Viewer! Let's consider the situation when the error of printing the dotted line in Chrome PDF Viewer can cause serious consequences. For example, was formed a document for cutting sheet material in which the dashed lines are used. The file has been sent by mail. The manager received the letter and opened it in Chrome. The browser was use default built-in PDF viewer. Unsuspecting manager sends the document to print after previewing (where everything is displayed correctly). The document is printed incorrectly, but sure it is correct, the manager transmits it to the cutting. As a result, the master performs the job incorrectly. So, relying on the browser's built-in PDF viewer, you can get the major problems in the workplace. It is therefore important to use the professional tools. Tags: .NET, FastReport, PDF ### Performance evaluation of the new version of FastReport .Net 2017.1.0 URL: https://www.fast-report.com/pt/blogs/performance-evaluation-net With the release of the new version FastReport.Net 2017.1.0 we got a significant acceleration of report building, exporting, and reduced memory consumption. These changes have prompted me to make a comparison test of the "old" and the "new" versions. Testing technique For testing we will build a report and make its export to multiple formats: PDF, XLSX, HTML export with layer method (because it is used in web reports).   At the same time, exports time will be measured  as well as the size of the file. First let’s test the version 2016.4.0, then - the new 2017.1.0. Let’s take the most popular template Master-Detail Report. XML data base. I've done simple enough application: Here a  Multi page is a usual multipage report, and Unlimited page  is a report with enabled property UnlimitedHeight. This wat we use two almost identical report, but one of them will have a unlimited page. Here I must point out that the size of this report is limited to 100 MB. Exceeding this limit will still create new pages. To make the unlimited report, open it in the designer. In the Property inspector, select the page of the report and set UnlimitedHeight property = true, or UnlimitedWidth = true if your report grows in width. For the measurements we use the built-in FastReport profiler: Profiler.Start(); - to start; Profiler.Stop(); - to stop and show result. I'm starting each export in turns and recording the results of profiling. By the way, profiler displays the results in a MessageBox: Measurement results For a typical multipage report time of building mostly got reduced. However, not for all reports: when exporting to PDF format time of building increased slightly. Apparently not all optimization has been completed. For the same multipage report memory consumption is reduced considerably. And what about the "unlimited" report? Here’s the same thing. Time of construction reduced for each dimension. As well as memory consumption – it has strongly reduced. For each dimension, except PDF. But the difference is minimal. For those who prefer in tabular form: Measurements version 2016.4.0 Multi page Unlimited page Размер, Kb Время, ms Размер, Kb Время, ms Prepare 1336 875 4040 875 PDF 87396 7031 81986 7220 XLSX 23092 1547 18784 1734 HTML 7354 2897 50576 1954 Measurements version 2017.1.0 Multi page Unlimited page Размер, Kb Время, ms Размер, Kb Время, ms Prepare 1020 735 1088 703 PDF 85482 7167 82654 7149 XLSX 16512 1359 16228 1640 HTML 2445 2725 9180 1890 As you can see, the overall picture is significantly improved in the new version. See how memory consumption decreased for the HTML report with dimensionless page. Unlike 2016.4.0 memory consumption has decreased from 50576 to 9180Kb. Value has improved by more than 5 times! But this is the most used reports, for the web. Excellent job! What has changed inside? In versions below 2016.4.4 used ExportPage method. It received the entire page to move then through all the objects and save them in the desired format. Then the page was removed from memory and next one was taken. If the totals were tabular formats, all of it accumulated in the intermediate matrix. If your report was not very big, you do not notice the problems. However, with the advent of "unlimited page" (UnlimitedHeight and UnlimitedWidth), there were problems - memory consumption. It was decided to move to Band's data transfer to export. This has greatly reduced memory consumption. FastReport team thoroughly worked and reworked the core of generator. However, the issue with the matrices is still not resolved because they occupy only one band, but grow in size. But it's just a matter of time. In tests, we found that memory consumption for the unlimited pages noticeably reduced. But the time of construction in some cases slightly increased. However, not much. So, as we have seen, much work has been done and performance improved significantly. This is especially noticeable for HTML export, which is extremely valuable for Web-based reporting. Tags: .NET, .NET, FastReport, FastReport ### Persian Calendar in the Report URL: https://www.fast-report.com/pt/blogs/persian-calendar-document Summary: Coverting the date format for the persian users. Coverting the date format for the persian users. Coverting the date format for the persian users. Did you know that different countries have different date formats? When you make a multilingual report, or a report for a country where they speak Persian (Farsi), it is important to bring up dates in the correct format. By default, FastReport uses the European date format, but the .NET tools allow converting it into different formats. Thus, our task is to convert the date into the Persian format. For example, our report has an expression [Date], bringing up today’s date: The expression [Date] gets the current system date in the DateTime format, but the value of the text report after all processing is the String. Let us create a new function in the report script: ``` private void ConvertToPersianDate(object sender, EventArgs e) ``` We will evoke this function from text objects. We create a temporary variable, which will convert the text of the object into DateTime: ``` DateTime d = DateTime.Parse((sender as TextObject).Text); ``` “sender as TextObject” is the address to the object which evoked the function. We may use the functions and properties of an object if we address it in such a way. After that, we will need the PersianCalendar object, which will convert the date into the Persian format: ``` PersianCalendar pc = new PersianCalendar(); ``` Note that this object is stored in the System.Globalization library, and it must be indicated in the “using” section. Then we must change the text of the object. Consider this line in more detail: ``` (sender as TextObject).Text = string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d)); ``` Here we set the text of our object. The value will be in the format year/month/day, because we use the functions of the PersianCalendar which get the respective values. The code section where the text is set can be edited as you wish. For example, the code for the date in the day.month.year format looks like this: ``` "{0}.{1}.{2}", pc.GetDayOfMonth(d), pc.GetMonth(d), pc.GetYear(d) ``` As a result, we get the following function: ``` using System.Globalization; namespace FastReport { public class ReportScript { private void ConvertToPersianDate(object sender, EventArgs e) { // Converting to DateTime format DateTime d = DateTime.Parse((sender as TextObject).Text);   // Creating an object for conversion PersianCalendar pc = new PersianCalendar();   // Creating a string using PersianCalendar // It is possible to change the string template (sender as TextObject).Text = string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d)); } } } ``` Add the function to the AfterData event of the relevant object. Now the date looks like this: To use other functions related to time, you can consult the following table:  GetDayOfWeek(),  Day of week  GetMonth(),  Month  GetDayOfMonth(),  Day of month  GetYear(),  Year  GetHour()  Hour  GetMinute()  Minute  GetSecond()  Second Now you know how to change the format of date in your report. This article may help in changing the format to (year, month, day). This format is used in Japan, China, North Korea, South Korea, Taiwan, Hungary, Lithuania, and Iran; also, it is used as a collateral one in some European and Asian countries. Tags: .NET, .NET, FastReport, FastReport ### Pharmacode in FastReport .NET URL: https://www.fast-report.com/pt/blogs/barcode-pharmacode-net Summary: Let's take a closer look at what Pharmacode QR-code in FastReport .NET is. Find more usefull tips and articles in our blog. Let's take a closer look at what Pharmacode QR-code in FastReport .NET is. Find more usefull tips and articles in our blog. Let's take a closer look at what Pharmacode QR-code in FastReport .NET is. Find more usefull tips and articles in our blog. In this article we are going to introduce and explore a new type of barcode in FastReport .NET - Pharmacode. One can guess from the name of the barcode, that it is related to pharmaceutical industry. Pharmacode is a binary code, which was developed by a German company LAETUS GMBH specially for pharmaceutical packaging. This code is widely used as a pharmaceutical product packaging control system. As a part of an automated packaging system, Pharmacode allows you to scan and detect pharmaceutical shipments easily by using universal identifiers. It is also easy to determine, whether the batch is mixed with other drugs by using scanners. Pharmacode is used in pharmaceutical industry as a part of their package management system and it is specifically designed to guaranty reading, despite possible misprints and typos. Also, to ensure that the rest of the package, apart from its code, is correctly printed, Pharmacode can be printed in multiple colors, as opposed to barcodes intended for reading by a laser or a laser emulation. This is possible because Pharmacode is scanned by special white color scanners LAETUS. This makes Pharmacode a very practical format for printing on packagings or documents that do not contain black ink. As it was mentioned earlier, Pharmacode can be printed in different colors. Both the code itself and the background color may be different from the white and black colors. There is a special specification code color combination and background used depending on the type of a scanner for reading. For example, standard black-and-white scanners perceive only a code and a contrasting background, whereas special scanners that recognize the color do not have strict limitations. Unlike other 1D barcodes, Pharmacode stores data in binary rather than decimal. In addition, Pharmacode can only represent single integers from 3 to 131070. The smallest number of lines is equal to 2 for the number 3 and the maximum value is 16 for 131070. Pharmacode should be read from right to left, which makes Pharmacode unique among other linear barcodes. They usually have a start and a stop character. If you read the code from left to right, you'll get an entirely different sequence of numbers. The Pharmacode creator LAETUS describes barcode standard in the document PharmaCode Guide. Here is an example of Pharmacode: FastReport.Net allows you to create such codes in your reports. You can design a package immediately with a barcode. To add a code to your report use a side toolbar, namely the component Barcode: Place the barcode object on the report page. For editing you need to double - click on the added component: In the function of the code values you can enter a numerical sequence, specify a function, select a report variable or a value from the database. In barcode propertiesy ou can change: the interval between lines (WideBarRatio), the code height (Height), displaying of numbers (ShowText). What is more important - you can set the code color and background color. To set the background color, use the feature "Fill -> Color". To change the code color - "Barcode -> Color": In such a way it is possible to set any combination of colors and background color code. However, one should still adhere the standard of colors combination for Pharmacode: Thus, the number of available FastReport .NET barcode formats has increased to 25. That covers all modern types of barcodes and extends the use of the reporting tool in pharmaceutical industry. Tags: .NET, FastReport, Barcode ### Please participate in our survey URL: https://www.fast-report.com/pt/news/survey-training-fastreport-vcl Summary: Please participate in our survey Please participate in our survey Загрузка... ### Plugin para importar dados de .XLSX em FastReport .NET URL: https://www.fast-report.com/pt/blogs/plugin-import-excel-dotnet Summary: Expandimos o número de fontes de dados para o FastReport .NET 2022.2 usando um plug-in para conectar arquivos no formato.XLSX. Expandimos o número de fontes de dados para o FastReport .NET 2022.2 usando um plug-in para conectar arquivos no formato.XLSX. Expandimos o número de fontes de dados para o FastReport .NET 2022.2 usando um plug-in para conectar arquivos no formato.XLSX. Com o lançamento do FastReport .NET 2022.2 foi adicionado um plugin para conexão de ficheirosem formato .XLSX como fontede dados. Para usá-lo, você deve primeiro montar o projeto: С:\Program Files (x86)\FastReports\FastReport.Net\Extras\Core\FastReport.Data\FastReport.Data.Excel Depois de criar o projeto, você precisará adicionar o plugin ao aplicativo de duas maneiras. 1. Ligação plugin através do designer: 2. Adicione o plugin como uma dependência ao iniciar o projeto e registrá-lo no código com o seguinte comando: FastReport.Utils.RegisteredObjects.AddConnection(typeof(ExcelDataConnection)); Para criar uma conexão com o Excel, clique na guia "Dados" no designer e selecione "Adicionar fonte de dados". Na janela que aparece, clique no botão "nova conexão". A conexão requer um caminho para o arquivo .XLSX. Se não houver problemas para acessar o arquivo, uma lista de tabelas será exibida após clicar em "Avançar". A ligarque as tabelas devem ser marcadas, que está localizado à esquerda do nome da tabela. Depois disso, você poderá concluir a conexão. Ao concluir as conexões de fonte de dados devem ser vinculadas a um band. No relatóriofinal serão usados os dados da conexão criada para Excel. Exemplo de conexão do Excel a partir do Código: ``` // Criação de um objeto ExcelDataConnection var connection = new ExcelDataConnection(); // Instalação da cadeia de conexão connection.ConnectionString = @"C:\Matrix With Rows Only.xlsx"; // Inicializando todas as tabelas connection.CreateAllTables(); // Para definir o nome da conexão connection.Name = "NewConnection"; // Criando um objeto Report var report = new Report(); // Para adicionar uma conexão ao relatório report.Dictionary.Connections.Add(connection); // Ativamos a exibição da conexão connection.Enabled = true; // Selecione todas as tabelas e conecte-as ao relatório foreach (TableDataSource table in connection.Tables) { table.Enabled = true; } ``` Como resultado da execução desse código, podemos ver no designer uma nova conexão com as tabelas. Isso será refletido na lista de conexões disponíveis. Vale ressaltar que os nomes das "folhas" são usados como nome da tabela e os nomes das colunas são usados como nomes de campos. Como você pode ver, agora é possível criar uma conexão com o Excel e usar os dados armazenados lá. Tags: .NET, .NET, FastReport, FastReport, Excel, Excel, Designer, Designer, Plugin, Plugin, XLSX, XLSX ### Pre-registration of data sources before create a new report URL: https://www.fast-report.com/pt/blogs/pre-registration-data-sources In order to send a data source to a report it must previously be pre-registered in the report. Then, within the report select an available source from the list and only after that - start to work. It would be great if the data source could be available to a paste when you open the report designer. Better yet, if it was already selected in the report designer. In this case, you could immediately begin to develop a report, not worrying about the data. Such an approach would avoid the routine work during the extensive report development. Make registration of a data source and its automatic choice in a report at the launch of the designer - not a difficult task. The main problem is to keep the registered data source when creating a new report using the File menu. The essence of the method that I want to introduce - to intercept the process of creating a new report by using the File menu. Let's consider the following example. Create an application with a form and a single button. The required for work libraries are: ``` using FastReport; using FastReport.Utils; using FastReport.Data; using FastReport.Design; using FastReport.Wizards; ``` Declare the data source and then  create it: ``` private DataSet FDataSet; private void CreateDataSource() { FDataSet = new DataSet(); FDataSet.ReadXml(Environment.CurrentDirectory + "//nwind.xml"); } ``` In this case, I use XML database from the FastReport .Net package. Create a method of data source registration : ``` private void RegisterData(Report FReport) { FReport.RegisterData(FDataSet, "NorthWind");   // activate all data sources by default foreach (DataSourceBase source in FReport.Dictionary.DataSources) { source.Enabled = true; } } ``` Here, the loop iterates through all the data sources that are registered in the report and activates them. Thus they will be immediately available in the data window. Call an event handler of starting Report Designer: ``` private void DesignerSettings_DesignerLoaded(object sender, EventArgs e) { (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction); } ``` Add a custom handler for the event of creation the new report from the File menu. Now we need to write the custom handler. It will create a new, blank report with already added data source: ``` void cmdNew_CustomAction(object sender, EventArgs e) { Designer designer = sender as Designer;   //StandardReportWizard wizard = new StandardReportWizard(); // you can use any wizard form package BlankReportWizard wizard = new BlankReportWizard(); wizard.Run(designer);   RegisterData(designer.Report); // refresh data tree view designer.SetModified(this, "EditData"); } ``` Here we create an instance of a blank report or run the "standard report wizard." It's your choice. Then open a new report in the designer. Re-register a data source and update the list in the data tree. It remains to write the handler pressing:  ``` private void button1_Click(object sender, EventArgs e) { Report FReport = new Report(); Config.DesignerSettings.DesignerLoaded += DesignerSettings_DesignerLoaded; CreateDataSource();   // FReport.Load("myreport.frx"); // load report RegisterData(FReport); // register data before design FReport.Design(); } ``` Create a copy of the report object. Assign a handler of loading report designer, which we have written, instead of the standard one. Create a data source. Now you can download the report, or not do it. Then it will be created empty report. Before calling the designer is required to register the data. Now, with the launch of the designer, the database tables will be displayed immediately in the "Data" window. Also when creating a new report from the File menu, the data source will be added. In this article I showed you how to intercept the process of creating a new report, if to create it via the File menu. The same principle can override other actions of the designer, such as Save. Tags: .NET, .NET, FastReport, FastReport ### Press about us URL: https://www.fast-report.com/pt/press_about_us Summary: Press about us Fast Reports. Press about us Fast Reports. Press about us Fast Reports Press about us Fast Reports. Press about us Fast Reports. Press about us Fast Reports Report server for small business — Reporting For Info The manager of reports — Reporting For Info Convert file .FP3 to .PDF - Indonesia ### PreviewControl.OnPrint and PreviewControl.OnExport Events URL: https://www.fast-report.com/pt/blogs/preview-control-events-in-reports Summary: Adding the ability to subscribe to new OnExport and OnPrint events for the Preview control to the report FastReport.NET. Adding the ability to subscribe to new OnExport and OnPrint events for the Preview control to the report FastReport.NET. Adding the ability to subscribe to new OnExport and OnPrint events for the Preview control to the report FastReport.NET. In FastReport 2019.4 added the ability to subscribe to PreviewControl.OnPrint and PreviewControl.OnExport events, which are called directly when the corresponding buttons are pressed. When viewing a report, a viewer is called with a toolbar that has elements such as a print button and a drop-down list with report exports. Selecting any item in the list will trigger the OnExport event, and pressing the Print button will trigger OnPrint. Let's take an example and see how we can use these events in practice. You can use the standard handler for these events, which is created for the visual component of PreviewControl: In this case you just add the necessary actions to the handler. But if you add the PreviewControl component in the application code, you will have to sign your own handler for the event. For example, your handler may send you an export or print event alert. This could be, for example, a record in a database. Let us consider this example: ``` private void Button1_Click(object sender, EventArgs e) { //create report Report report = new Report(); //Load report report.Load("App_Data/Master-Detail.frx"); //create data source DataSet data = new DataSet(); //load data data.ReadXml("C:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\nwind.xml"); //register data report.RegisterData(data); //create preview object var prev = new PreviewControl(); //add preview into the form this.Controls.Add(prev); prev.Dock = DockStyle.Fill; prev.BringToFront(); //subscribe to the event prev.OnExport+= new System.EventHandler(ExportAction); //assign preview control to the report report.Preview = prev; //Show the report report.Show(); } ```  After creating the report object and registering data in it, we create a PreviewControl, subscribe to the OnExport event our event handler, which we will implement below. Then we assign the PreviewControl object to the preview report. And now we implement a custom event handler for the OnExport event: ``` public void ExportAction(object sender, PreviewControl.ExportEventArgs e) { SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True"); SqlCommand command = new SqlCommand("insert into dbo.Status (ReportName, ExportType, ExportDate) Vales ('" + Path.GetFileNameWithoutExtension(e.Report.FileName) + "', '"+ e.Export.BaseName +"', '" + DateTime.Now + "')"); command.Connection = conn; conn.Open(); command.ExecuteNonQuery(); conn.Close(); } ```  In this method, we record information about the export event in a database, with the report name, export type and transaction date. This is just one possible example of how to use this event. You can, for example, implement sending an email on this event, or saving an export file to a specific folder. The OnPrint event is handled in the same way. These two events are the most frequent operations on reports when viewed, so many people would like to automate their custom operations on the event. Now it is possible, it is easy to take information about the report, export or print settings from event arguments and dispose of it to create your own, additional operations. Tags: .NET, .NET, FastReport, FastReport, Preview, Preview ### Price of FastReport 4 URL: https://www.fast-report.com/pt/news/price-fastreport-4 Summary: Price of FastReport 4 Price of FastReport 4 FastReport 4 editions  Basic   $79 Standard   $179 Professional  $249 Enterprise   $349 Upgrade from FR3 (purchase date after May 1st, 2006 is a FREE upgrade  to the same FR4 edition) Upgrade Basic   $39 Upgrade Standard   $99 Upgrade Professional   $139 Upgrade Enterprise   $199 Basic to Standard   $99 Basic to Professional   $169 Basic to Enterprise   $269 Standard to Professional   $69 Standard to Enterprise   $169 Professional to Enterprise   $99 ### Privacy Policy Statement URL: https://www.fast-report.com/pt/cloud-privacy PLEASE READ THIS DOCUMENT CAREFULLY. IT CONTAINS IMPORTANT INFORMATION THAT YOU SHOULD KNOW BEFORE USING THE WEBSITE OR SERVICES. BY USING THE WEBSITE OR SERVICES, YOU WILL BE DEEMED TO HAVE ACCEPTED FAST REPORTS’ PRIVACY POLICY. Your use of the Website and Services (as each of these terms are defined in this Privacy Policy), including any dispute concerning privacy, is subject to this Privacy Policy. By using the Website or Services, you accept the practices set forth in this Privacy Policy and the Terms of Service. Fast Reports Inc. reserves the right to modify this Privacy Policy at any time by posting such changes on this page. Please check the revision date below to determine if this Privacy Policy has been modified since you last reviewed it. Your continued use of any portion of the Website or Services following posting of the updated Privacy Policy will constitute your acceptance of the changes. This privacy statement was last updated on March 12, 2021. Fast Reports Inc. and its affiliates (collectively, “Fast Reports”) have created this privacy statement in order to disclose its information gathering and dissemination practices for its website located at  https://fastreport.cloud/  (“Website”) and the services offered and provided through the Website (“Services”). Table of Contents Background Information Word from Fast Reports A. Information We Collect Information We Collect Through the Website User Content Providing Information to Fast Reports User Account Third Party Websites Third Party Applications Information Relating to Children California Online Privacy Protection Act Notice Cookies and Web Beacons B. Use and Disclosure of Information How your Information is Used Disclosure of Information to Third Parties Change in Control Disclosure of Information to Other Users Securing the Transmission and Storage and Storage of Information C. Choices Available to You D. Rights of European Users under the GDPR Data Controller Data Processor Consent Legal Basis for Processing GDPR Rights: Right of Confirmation Right of Access Right to Rectification Right to Erasure Right of Restriction of Processing Right of Data Portability Right to Objection to Automated Decision Making Right to Objection Processing Retention Policy Cross Border Data Transfers Data Protection Officer E. Privacy-Related Inquiries and Complaints Background Information Upon reading this Privacy Policy, you will be informed of the following: description of the types of personally identifiable information (yours and that of third parties) collected through the Website and Services; how the collected personally identifiable information is used; with whom the collected personally identifiable information may be shared; the choices available to you regarding the collection, use, and distribution of such information; security procedures that are in place to protect against the loss, misuse, or alteration of personally identifiable information under Fast Reports’ control; and instructions how you can access and correct inaccuracies in the information collected about you. A note about the Website and Services: some of our Services, data centers, service providers, affiliates or operating partners and servers may be located in other countries. As such, the Website and Services may be subject to the laws of numerous countries and jurisdictions, some of which may require us to disclose certain information about our users. We are committed to keeping your information private, while still complying with all applicable laws in jurisdiction in which we operate. Should you have any concerns or believe that there are problems or issues relating to compliance with the policies outlined in this Privacy Policy, please notify us by e-mail at:  info@fast-report.com A Word from Fast Reports Fast Reports has a strong commitment to providing superior service to all of our customers and visitors and particularly respecting their concerns about privacy. We understand that you may have questions about how the Website and Services collect and use your information. Accordingly, we prepared this statement to inform you of the privacy principles that govern the Website and Services (the “Privacy Policy”). We will not sell or rent your personally identifiable information or a list of our customers to third parties. However, as described in more detail below, there are limited circumstances in which some of your information may be shared with third parties, under strict restrictions, so it is important for you to review this Privacy Policy. This Privacy Policy contains numerous general and technical details about the steps we take to respect your privacy. We have organized this Privacy Policy by major processes and areas so that you can quickly link to the information of most interest to you. The bottom line is that meeting your needs and expectations forms the foundation of everything we do, including protecting your privacy. Changes in Privacy Policy We want you to always be aware of what personal and other information we collect, how we use that information, and under what circumstances we may disclose it. All personal information that we collect will be handled according to the Privacy Policy in effect at the time the information is collected. If the Privacy Policy changes in any significant respect in the meantime, we will not (without your permission) use your personal data in a manner that is inconsistent with the Privacy Policy in effect at the time your information was collected. From time to time, we may find the need to make changes to this Privacy Policy. This Privacy Policy may be amended by Fast Reports upon notice given through the Website or via e-mail. Please check the Privacy Policy published on this Website regularly to ensure that you are aware of all terms governing your use of this Website. A. INFORMATION WE COLLECT Information We Collect Through the Website This Website does not collect personally identifiable information from your computer when you browse the Website and request pages from our servers. This means that, unless you voluntarily and knowingly provide us with personally identifiable information, we will not know your name, your e-mail address, or any other personally identifiable information. When you request a page from our Website, our servers log the information provided in the HTTP request header, JavaScript or similar technical tools, including the IP number, the time of the request, the URL of your request and other information. We collect this information in order to make our Website function correctly and provide you the functionality that you see on the Website, as our servers use this information to deliver to you the pages on this Website. We also use this information to better understand how visitors use our Website and how we can better tune our Website, its contents, and functionality to meet your needs. However, this information is not associated with any personally identifiable information of persons browsing the Website. When you use the Website, Fast Reports or trusted third parties authorized by Fast Reports may also collect certain technical and routing information about your computer (also known as environmental variables) to facilitate your use of the Website and the Services enabled thereby. When you browse the Internet, your Internet browser (such as Mozilla Firefox, Google Chrome, Safari, Edge, or Microsoft Internet Explorer) automatically transmits some information to Fast Reports every time you access content on one of our internet domains. Examples of such information include the URL of the particular Web page you visited, the IP (Internet Protocol) address of the computer you are using, or the browser version that you are using to access the Website. All of this information may be collected by Fast Reports and used to help improve our offerings to you. User Content User Account holders may be permitted to upload certain content onto the Website and Services (“User Content”). This information shall be private and, except in accordance with this Privacy Policy, will not be disclosed to third parties without your prior permission. Providing Your Information to Fast Reports You never have to provide personally identifiable information to Fast Reports. However, should you choose to withhold certain required information, Fast Reports may not be able to provide you with some or all of the Services. Some of the information we ask you to provide may be identified as mandatory or optional. If you do not provide the mandatory information with respect to a particular activity, you may not be able to engage in that activity or make such a purchase. Fast Reports will inform you of the mandatory or optional nature of the requested or required information. Fast Reports is the sole owner of the information it gathers on the Website and Services. Fast Reports will only share your information with outside parties in ways that are described in this privacy statement or if we are required to do so by law or in the good-faith belief that such action is necessary in order to conform to the edicts of the law, cooperate with law enforcement agencies, or comply with a legal process served on us and otherwise to comply with any current or future laws and regulations applicable to Fast Reports. You may be provided an opportunity on the Website to allow Fast Reports to contact you from time to time regarding company news and product or Services updates. In order to do so, you may be required to provide certain personally identifiable information to Fast Reports. Fast Reports will treat this information in accordance with the policies set forth in this Privacy Policy. When you submit personal information to Fast Reports through the Website, you understand and agree that this information may be transferred across national boundaries and may be stored and processed in any of the countries in which Fast Reports and its affiliates and subsidiaries maintain offices. You also acknowledge that in certain countries or with respect to certain activities, the collection, transferring, storage, and processing of your information may be undertaken by trusted vendors of Fast Reports. Such vendors are bound by contract not to use your personal information for their own purposes or provide it to any third parties. Fast Reports may establish relationships with various service providers whose services may become available to you from the Website or from other websites that are linked to the Website. Typically, these providers would offer services that Fast Reports customers might find useful, such as those that can be used in conjunction with the Website and Services. In order to use these services, you may be required to provide personal information to the services providers. Unless expressly provided to the contrary, personal information that you provide while you are visiting a provider's website will be subject to the privacy policy posted on such site, and personal information that you provide while on the Website in conjunction with a provider’s service will be subject to this Privacy Policy. For instance, credit card information entered as part of the filling out the purchase form or registration process is collected by the third-parties registration services and subject to their respective privacy policies. You should be aware that our agreements with these service providers often provide that they will share with Fast Reports personal information collected from you. In such instances, Fast Reports may use this information in a manner consistent with this Privacy Policy. User Account When registering for a User Account or otherwise contacting Fast Reports in connection with your interest in purchasing Fast Reports products or services, Fast Reports may ask you to provide certain information. Such information may include your name, e-mail, and other personally identifiable information. It is completely optional for you to register for a User Account or engage in activities requiring a User Account or provide any personal identifiable information. However, certain information and proper identification may be required in order for you to engage in a business relationship with Fast Reports. Once you create a User Account, you will be deemed a Registered User. You may also request to change information associated with you User Account by contacting us at  info@fast-report.com . If you wish to deactivate your User Account, you may contact us at  info@fast-report.com . When you deactivate your personal account, all information stored and maintained as part of your account may be retained for archival, backup and record purposes. Third Party Websites The Website may contain links to websites owned and operated by third parties. These links are presented for your convenience and information. Fast Reports does not control these third-party websites and is not responsible for their privacy practices or content. Fast Reports does not control the information collection and distribution policies on such websites other than those that are under the control of Fast Reports itself. Content on third party websites may not reflect products, services, and/or information provided by Fast Reports. Third parties may also set their own cookies and/or use web beacons, which may be used to identify some of your preferences or to recognize you if you have previously had contact these third parties. Fast Reports does not control the use of such technology by third parties, the information they collect, or how they use such information. You should direct all concerns regarding any third-party website to the site administrator or webmaster of such website. Third Party Applications Fast Reports may make third party applications available to you through the Website or Services. The information collected by Fast Reports when you enable a third-party application is processed under this Privacy Policy. Information collected by the third-party application provider is governed by the provider’s privacy policies. Information Relating to Children The Children's Online Privacy Protection Act (COPPA) was passed by the U.S. Congress in November 1998. COPPA provides parents with specific rights regarding their children's privacy. For additional information and resources on COPPA, please visit the Federal Trade Commission Web site at  http://www.ftc.gov/ . The Fast Reports Website and any Software or Services available on that site are not directed at children under 13 years of age and, therefore, COPPA does not apply. However, we recognize that children under the age of 13 may potentially access this Website and subscribe to the newsletter, purchase Software and Services, or download software programs. The collection of information is covered above. Parents and Legal Guardians may request from us to review, delete or stop the collection of the personally identifiable information of their child. You may do so by contacting us by email at:  info@fast-report.com . California Online Privacy Protection Act Notice Fast Reports does not track users over time and across third party websites to provide targeted advertising and therefore does use do not track (DNT) signals. However, some third-party sites may keep track of your browsing activities when they serve you content, which enables them to tailor what they present to you. If you are visiting such sites, your web browser may allow you to set the DNT signal on your browser so that third parties (particularly advertisers) know you do not want to be tracked. Fast Reports does not authorize the collection of personally identifiable information by third parties and third parties cannot collect this information unless you provide it to them directly. Cookies and Web Beacons The Website uses “cookie” and “web beacon” technology. “Cookies” are short pieces of data generated by a web server that a website stores on a user’s computer. Certain pages on our Website may require the use of a cookie for purposes of keeping information you enter on multiple pages together. Cookies also enable us to customize our Website and offerings to your needs and provide you with a better online experience with us. In addition, cookies are used to: measure usage of various pages on our Website to help us make our information; more pertinent to your needs and easy for you to access; identify and categorized the internet webpages from which the visitor came to the Website and observe the browsing patterns; and provide functionality such as online orders, Fast Reports services and other functionality that we believe would be of interest and value to you. The types of cookies that we use are referred to as “session” cookies and “persistent” cookies. Session cookies are temporary and are automatically deleted once you leave the Website. Persistent cookies remain on your computer hard drive until you delete them. We do not use cookies to gather information concerning your visits to other websites, nor ascertain any personally identifiable information about you apart from what you voluntarily provide us in your dealings with Fast Reports. Cookies do not, under ordinary circumstances, corrupt or damage your computer, programs, or computer files. In addition, the service providers we use to serve and host our advertisements, and/or deliver our e-mails use session and persistent cookies, to track the number of times the Website is accessed and whether the site was accessed from an advertisement. There are no cookies in the advertisements or e-mails. A cookie is placed on your computer only if and when you click on an advertisement or open the e-mail. The cookie generated from the advertisement or e-mail does not contain any personally identifiable information and will remain on your hard drive until you delete it. You may set your browser to block cookies (consult the instructions for your particular browser on how to do this), although doing so may adversely affect your ability to perform certain transactions, use certain functionality and access certain content on our Website. Web beacons are used in combination with cookies to help website operators understand how visitors interact with their websites. A web beacon is typically a transparent graphic image (usually 1 pixel x 1 pixel) that is placed on a site. As opposed to cookies, which are stored on a user’s computer hard drive, web beacons are embedded invisibly on Web pages and are about the size of the period at the end of this sentence. These web beacons are not tied to personally identifiable information. The use of a web beacons allows the site to measure the actions of the visitor opening the page that contains the web beacon. It makes it easier to follow and record the activities of a recognized browser, such as the path of pages visited at a website. Fast Reports uses the information provided by web beacons to develop a better understanding of how the Website’s visitors use the Website, and to facilitate those visitors' interactions with the Website. Fast Reports may make the aggregate data obtained from web analytics (including from our third-party analytics providers, if applicable) publicly available. If this data is made available, none of the information will be personally identifying information or potentially-personally identifying information. B. USE AND DISCLOSURE OF INFORMATION How Your Personal Information is Used Fast Reports collects information from you in order to record and support your participation in the activities provided by Fast Reports We may use your e-mail address to send a confirmation e-mail when you sign up for a User Account and, if necessary, may use other information you provide to contact you for help to process the purchase or service you have selected. Your personal information also may be used to keep you informed about new services, service upgrades, special offers, and other Services. As described above, Fast Reports may collect information about your use of the Website and Services. This information is collected in aggregate form, without identifying any user individually. Fast Reports may use this aggregate, non-identifying statistical data for statistical analysis, marketing, or similar promotional purposes. Fast Reports recognizes and appreciates the importance of responsible use of information collected on this Website. Without your consent, Fast Reports will not communicate any information to you regarding the Website, Services, or special offers available from Fast Reports or its affiliates, although we may find it necessary to communicate with you regarding your use of the Website, or Services in certain limited circumstances. Except in the particular circumstances described in this Privacy Policy, Fast Reports will not provide your name to other companies or organizations without your consent. Disclosure of Information to Third Parties Although we will always strive to guard your identity, we may disclose your personally identifiable information without your permission in limited circumstances. We will only do so if we have a good-faith belief that disclosure is reasonably necessary to (1) comply with laws, regulations, or government requests or (2) to investigate or protect against harmful activities to our guests, visitors, associates, or property (including the Website or Services), or to others. If we are required by law enforcement or judicial authorities to provide your personally identifiable information, we will only do so upon receipt of appropriate documentation. We may also disclose your information to investigate violation of and enforce our Terms of Service. Please know that we do not take this responsibility lightly. Your privacy is of paramount importance to us. Fast Reports does use the services of third parties, such as e-mail service providers, purchase, shipping and order processing merchants and marketing companies that act as independent contractors on behalf of Fast Reports. These parties are contractually prohibited from using personally identifiable information for any purpose other than for the purpose Fast Reports specifies. We do provide non-personally identifiable information to certain service providers for their use on an aggregated basis for the purpose of performing their contractual obligations to us. We prohibit the sale or transfer of personal information to entities outside of the Fast Reports’ affiliates for their use without your approval. Change of Control In the event that all or substantially all of Fast Reports’ stock and/or all or substantially all assets are transferred or sold to another entity, Fast Reports may transfer personally identifiable information to the acquiring entity. If, as a result of such a business transition, your personally identifiable information will be used in a materially different manner, you will be given choice consistent with our policy regarding notification of changes. Securing the Transmission and Storage of Information Fast Reports operates secure data networks protected by industry standard firewall and password protection systems. Our security and privacy policies are periodically reviewed and enhanced as necessary, and only authorized individuals have access to the information provided by our users. Fast Reports takes steps to ensure that your information is treated securely and in accordance with this Privacy Policy. Unfortunately, no data transmission over the Internet can be guaranteed secure. As a result, while we strive to protect your personal information, we cannot guarantee the security of any information you transmit to us or from the Website or Services. Your use of the Website and Services is at your own risk. We treat the information you provide to us as confidential information; it is, accordingly, subject to our company’s security procedures and corporate policies regarding protection and use of confidential information. After personally identifiable information reaches Fast Reports, it is stored on a server with physical and electronic security features as customary in the industry, including utilization of login/password procedures and electronic firewalls designed to block unauthorized access from outside of Fast Reports. Because laws applicable to personal information vary by country, our offices or other business operations may put in place additional measures that vary depending on the applicable legal requirements. Information collected on the sites covered by this Privacy Policy is processed and stored in the United States and possibly other jurisdictions and also in other countries where Fast Reports and its service providers conduct business. All Fast Reports employees are aware of our privacy and security policies. Your information is only accessible to those employees who need it in order to perform their jobs. C. CHOICES AVAILABLE TO YOU You can always choose whether or not to disclose personally identifiable information and that choice will not prevent you from using the Website. Please note, however, if you should choose to withhold requested information, we may not be able to provide you with some of the Services dependent upon the collection of this information and you will be given an opportunity to “opt-in” and make your preference choices for any items that are optional and which are not prerequisite for our rendering such Services. You can choose at any time to opt-out of receiving emails from Fast Reports by clicking the unsubscribe link at the bottom of any email you receive from Fast Reports or by contacting Fast Reports directly at  info@fast-report.com . If you elect to opt-out, we will not, as applicable, share your personal information with third parties or send you emails. However, we may continue to use your personal information for internal purposes, to enhance your user experience or as necessary to administer the site or comply with applicable law. We reserve the right to send a one-time registration confirmation email, and infrequent service alert messages to users to inform you of specific changes that may impact your ability to use a service that you have previously signed up for, regardless of email contact opt-in status. We also reserve the right to contact you if compelled to do so as part of a legal proceeding or if there has been a violation of any applicable licensing, warranty and purchase agreements. Fast Reports is retaining these rights because in limited cases we feel that we may need the right to contact you as a matter of law or regarding matters that will be important to you. These rights do not allow us to contact you to market a new or existing Service if you have asked us not to do so, and issuance of these types of communications is rare. If you wish to opt out of receiving emails, the sharing or retention of any personal identification information, or otherwise change your personal preferences, you must contact Fast Reports at  info@fast-report.com To ensure that your request is honored, you must provide Fast Reports with information sufficient for us to accurately identify and access your records. The information we require is your full name, address and the email address you provided to Fast Reports when you requested Services or Software. Fast Reports reserves the right to contact you to verify that we have accurately identified your record. D. RIGHTS OF EUROPEAN USERS UNDER THE GDPR Fast Reports complies with the principles of Regulation (EU) 2016/679 of the European Parliament and of the Council “ On the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation)  (“GDPR”). If you are a natural person (“Qualified Individual”) of the European Union within the meaning of the GDPR, you are afforded certain additional rights by the GDPR as further described within this section. Data Controller When and if Fast Reports receives your personal information directly from you through its Website, it performs the functions of a Data Controller, as defined by the GDPR, and has the ability to determine how personal data is collected, for what purposes, and how this data is to be processed. As the controller, Fast Reports has implemented many technical and operational measures to ensure the most complete protection of personal data processed through its Website, and Services. Contact information for the Data Protection Officer can be found below. Data Processor Fast Reports processes your data in accordance with this Privacy Policy. Fast Reports uses industry standard safe guards to secure your information. Consent If you are a Qualified Individual, consents concerning your personal information are handled in compliance with the GDPR. Where and if consent requirements under this Privacy Policy conflict with the GDPR, the GDPR prevails if the regulation applies to you. Legal Basis for Processing Art. 6(1) a. of the GDPR serves as the legal basis for processing operations for which we obtain consent for a processing purpose. If the processing of personal data is necessary for the performance of a contract to which you are a party, as is the case, for example, when processing operations are necessary to provide a service, the processing is based on Article 6(1) b. The same applies to such processing operations which are necessary for carrying out pre-contractual measures, for example in the case of inquiries concerning our products or services. If our company is subject to a legal obligation by which processing of personal data is required, such as for the fulfillment of tax obligations, the processing is based on Art. 6(1) c. If the processing of personal data may be necessary to protect your vital interests or of another natural person, then the processing is based on Art. 6(1) d. Finally, processing operations could be based on Article 6(1) f., if processing is necessary for the purposes of the legitimate interests pursued by our company or by a third party, except where such interests are overridden by your fundamental rights and freedoms under the GDPR. GDPR Rights: 1. Right of Confirmation You may obtain confirmation of whether or not your personal data is being processed. If you wish to exercise your right of confirmation, you may contact Fast Reports and/or its Data Protection Officer. 2. Right of Access You may obtain from information about your stored personal data at any time and a copy of this information. If you wish to exercise your right of access, you may contact Fast Reports, and/or its respective Data Protection Officer. 3. Right to Rectification You may request the rectification of inaccurate personal data. Taking into account the purposes of the processing, you have the right to have incomplete personal data completed, by means of providing a supplementary statement. If you wish to exercise your right of rectification, you may contact Fast Reports and/or its respective Data Protection Officer. 4. Right to Erasure (Right to be Forgotten) You may request the erasure of your personal information by contacting Fast Reports and/or its respective Data Protection Officer. Furthermore, you may delete your User Account information by accessing your User Account settings page on the Applications. Please note that while any changes you make will be reflected in active user databases within a reasonable time, we may retain all information you submit for the prevention of fraud and abuse, analytics, satisfaction of legal obligations, or where we otherwise reasonably believe that we have a legitimate reason to do so, such as for archiving purposes within the public interest. 5. Right of Restriction of Processing You have the right to restrict processing where one of the following applies: The accuracy of the personal data is contested by the data subject, for a period enabling the Controller to verify the accuracy of the personal data. The processing is unlawful and the data subject opposes the erasure of the personal data and requests instead the restriction of their use instead. The controller no longer needs the personal data for the purposes of the processing, but they are required by the data subject for the establishment, exercise or defense of legal claims. The data subject has objected to processing pending the verification whether the legitimate grounds of the controller override those of the data subject. 6. Right to Data Portability You may request to receive your personal data in a structured, commonly used and machine-readable format. You have the right to transmit this data to another controller without interference. Furthermore, you may have the personal data transmitted directly from one controller to another, where technically feasible and does not adversely affect the rights and freedoms of others. 7. Right to Object to Automated Decision Making You may object to decisions based solely on automated processing, including profiling, which produces legal effects or similarly significantly affects you, as long as the decision is not is necessary for entering into, or performance of, a contract between you and Fast Reports; or is not authorized by European Union or Member State law to which you are subject; or is not based on the data subject’s explicit consent. 8. Right to Objection to Processing You may object to the processing of your personal data, unless there are legitimate grounds for the processing within the public interest, or for the establishment, exercise or defense of legal claims. If Fast Reports processes personal data for direct marketing purposes, you shall have the right to object at any time to the processing of your personal data for such marketing. This applies to profiling to the extent that it is related to such direct marketing. If you object to Fast Reports to the processing for direct marketing purposes, then we will no longer process the personal data for these purposes. Retention Policy We only retain the personally identifiable information about you for as long as your User Account remains active or for a limited period of time as long as we need it to provide you with services or otherwise fulfill the purposes for which we have initially collected it, unless otherwise required by law. We will retain and use information as necessary to comply with our legal obligations, archival purposes, resolve disputes, and enforce our agreements. Cross Border Data Transfers If and when sharing of information involves cross-border data transfers, for instance to the United States of America and other jurisdictions. Where the Applications allow for users to be located in the European Union, their personal information is transferred to countries outside of the EU. We use EU Standard Contract Clauses or other suitable safeguards to permit data transfers from the EU to other countries. The Standard Contractual Clauses commit companies transferring and receiving your personal information to protecting the privacy and security of your data. E. PRIVACY RELATED INQUIRIES AND COMPLAINTS Fast Reports takes and addresses its users’ privacy concerns with utmost respect and attention. If you believe that there was an instance of non-compliance with this Privacy Policy with regard to your personal information or you have other related inquiries or concerns, you may write or contact Fast Reports at email:  info@fast-report.com In your message, please describe in as much detail as possible the nature of your inquiry or the ways in which you believe that the Fast Reports Online Privacy Policy has not been complied with. We will investigate your inquiry or complaint promptly. If you are a Qualified Individual, you may lodge a complaint with the data protection supervisory authority in the country where you live if you are unsatisfied with how your complaint is handled by Fast Reports. Please note that if you provide Fast Reports with inconsistent privacy preferences (for example, by indicating on one occasion that third parties may contact you with marketing offers and indicating on another occasion that they may not), Fast Reports cannot guarantee that your most recent privacy preference will be honored. Copyright © 2021 Fast Reports Inc. All rights reserved. The Website, Services, and all documentation are the copyrighted property of Fast Reports Inc. and/or its licensors and protected by copyright laws and international intellectual property treaties. FastReport® and related logo, and all related Product and service names, design marks and slogans are the trademarks and/or registered trademarks of Fast Reports Inc. and/or its affiliates. All other product and service marks contained herein are the trademarks of their respective owners. Any use of the Fast Reports Inc. or third-party trademarks or logos without the prior written consent of Fast Reports Inc. or the applicable trademark owner is strictly prohibited. ### Proteção de copyrights da Fast Reports na China URL: https://www.fast-report.com/pt/news/copyrights-protection-china Summary: Proteção de copyrights da Fast Reports na China Proteção de copyrights da Fast Reports na China Temos o prazer de anunciar a campanha de autenticidade iniciada pela Huidu Tecnologia , nosso parceiro na China. Ela tem como objetivo aumentar a conscientização do uso do software autorizado e proteger os interesses de todos os usuários. Apoiamos firmemente a campanha e trabalharemos continuamente com a Huidu para alcançarmos o sucesso. ### Proud to hire with Jooble! URL: https://www.fast-report.com/pt/news/hiring-with-jooble Summary: Proud to hire with Jooble! Proud to hire with Jooble! Knowing FastReport and being able to work with reporting and DB is an essential skill on the job market for business software developers. We are determined to ensure that using FastReport solutions will always guarantee finding a job easily. The quintessential purpose of Jooble is to connect those who seek jobs with those who offer it. Being "Google" in a job search industry Jooble manages to aggregate all the vacancies from open sources into one compact user-friendly interface that gives access to jobs that are not yet listed on popular platforms or hidden behind the corporate websites. Another important thing is that Jooble does not claim jobs for its own. It is necessary to go to employers' website in order to apply which is crucial for driving additional traffic and reducing hiring process time. Jooble's initiative to help people find jobs all over the world fits well with our own aim to bring reporting to another level. Thus we are glad to announce our partnership with Jooble to help increase awareness about this area of programming and boost the quality level of specialists looking for data visualisation jobs . ### Publisher — the Ideal Solution for Small and Medium-Sized Businesses URL: https://www.fast-report.com/pt/blogs/publisher-solution-for-business Summary: In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. The FastReport product line for creating, storing, and transmitting documents has been expanded with a new development. Since May 2025, it includes products such as Cloud, Corporate Server, and Publisher. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. The FastReport product line for creating, storing, and transmitting documents has been expanded with a new development. Since May 2025, it includes products such as Cloud, Corporate Server, and Publisher. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. FastReport Cloud It provides a set of services for creating various documents and reports from text templates and data sources (Postgres, MS SQL, Firebird, XML, CSV, and others) for further processing. It is offered as SaaS, meaning users do not need to worry about allocating computing resources, deploying the solution, or ongoing maintenance. Simply obtain a workspace and focus on more important tasks—creating reports for your business. You can integrate FastReport Cloud into your applications or services regardless of the programming language used in development. It can be connected from projects written in languages such as C#, Java, Kotlin, PHP, JavaScript, Angular, Python, Go, C++, and more. You can get the free version and start using Cloud at this link. However, many large companies prefer to have full control over all processes and require installing a reporting server on their own infrastructure. This is due to security requirements, data storage, and a large number of end users (or integration into their own solutions). In such cases, the right choice is to use the Corporate Server. FastReport Corporate Server This is a scalable dedicated server for generating and storing documents. It supports collaborative work: you can add multiple users, and each will have access to the workspace, templates, reports, data sources, and other resources. The permissions system of the Corporate Server allows setting different access levels for team members or groups. While one group of users creates new document templates, another group builds reports from these templates in PDF format. All the tools for secure operation are integrated into FastReport Corporate Server: private file creation and storage, protected login, access management, and authentication via OpenID. At the same time, the entire infrastructure is hosted within the client’s environment. You get flexible control over document and report generation in accordance with your company's security policies. With extended support, our specialists will help you quickly and effectively configure and fully deploy FastReport Corporate Server within your system. You will be able to start generating reports in no time! We also offer assistance in restoring functionality after any failures. Leave your details through this link , and our manager will contact you to discuss a personalized solution tailored to your business needs. If the requirement to deploy all software solutions within your own environment remains, but the number of users is low, and creating a cluster for processing a large volume of documents is not needed, then you might consider the third option — Publisher. FastReport Publisher It consists of a web interface for working with reports, an online designer, and the core functionality of FastReport. Publisher can be integrated with other enterprise systems (CRM or ERP) for automatic report generation and distribution. You will also have access rights management features. This makes Publisher a useful tool for organizations that need a centralized report management system through a single interface. You can get a trial version on this page , and our manager will provide you with all necessary access. What is the difference between Publisher and Corporate Server? FastReport Publisher is a lighter and more budget-friendly version of the Corporate Server, retaining the most essential features and offering the ability to seamlessly upgrade to the higher-tier product if needed. The differences between Publisher and Corporate Server are outlined in the table available at this link. Additionally, Publisher is easier to install and does not require knowledge of orchestrators (such as Kubernetes). The installation package includes a Setup Wizard, which guides you step-by-step through the configuration process, and with the click of a button, you can launch the solution in a Docker Compose environment. Publisher Corporate Server Cost from $1,990 from $9,650 Deployment with Docker Yes Yes Web Interface Yes Yes REST Interface (Web API) Yes Yes Ability to create and view reports Yes Yes Online Designer (ability to use the designer within the web interface) Yes Yes Connectivity via Desktop Designer Yes Yes Scheduler for scheduled task execution No Yes Share reports via link No Yes Deployment in Kubernetes No Yes Scalability (the system’s ability to handle increased workload when resources are added) No Yes OpenID Authentication No Yes User Groups (access and permission management) Yes* Yes Number of Workspaces 1 2 (additional purchases possible) Number of Data Sources 3 Potentially unlimited quantity   Number of Users 15 Unlimited quantity Number of Administrators 1 3 (additional purchases possible) *Only pre-installed groups are available: Owner, All Users, and Anonymous Users. Creating new groups is not allowed. You can find detailed instructions for using these products in our documentation. Conclusion FastReport offers ready-to-use services, client-server systems, and applications for quick data visualization and automated data processing tasks. You can choose the solution that best fits your business needs — whether it's report generation on third-party servers or within your secure environments. For those who prefer to avoid dealing with orchestrators and want to quickly get a ready-made solution, we recommend using FastReport Publisher .  Please contact our sales department at sales@fast-report.com to select the most suitable solution. Our team is always happy to assist you! Tags: FastReport, Cloud, Publisher, Corporate Server ### Quando o relatório é muito pequeno para armazenar seus dados (como estão seus dados?) URL: https://www.fast-report.com/pt/blogs/covid-data-report-too-small Summary: O Excel não é uma boa maneira de armazenar seus dados. Aprenda o que pode acontecer e como evitá-lo. O Excel não é uma boa maneira de armazenar seus dados. Aprenda o que pode acontecer e como evitá-lo. O Excel não é uma boa maneira de armazenar seus dados. Aprenda o que pode acontecer e como evitá-lo. Você armazena dados sobre o COVID-19 no Excel? O relatório não mostra todos os dados? Aqui -  https://uk.news.yahoo.com/missing-coronavirus-tests-glitch-large-excel-spreadsheet-file-095054235.html  - você pode ler uma história maravilhosa sobre como quase 16.000 casos de infecção Covid-19 foram deixados de fora no Reino Unido porque a planilha do Excel ficou sem espaço. Se você tem preguiça de pesquisar no Google, deixe-me lembrá-lo de que o limite de uma planilha do Excel é de 65.000 linhas. Não são casos isolados! As pessoas não têm ideia de quantos dados elas e seus clientes terão de lidar e quais são os recursos das ferramentas que usam! E então aparecem artigos como esse: https://www.techrepublic.com/article/10-things-you-should-never-do-in-excel/ E o que podemos fazer? 1. Use bancos de dados para armazenar seus dados! Pode parecer completamente louco, mas sempre e em qualquer lugar, quando você decide criar uma lista, uma base (é minha profissional - sempre uso esse termo), um sistema de armazenamento de dados - pegue um banco de dados. Faça uma estimativa da quantidade de dados. Seus descendentes ficarão gratos por isso! Nosso exemplo - em nosso CRM (aliás, nosso CRM é um dos primeiros online - nem conhecíamos esse termo) existem centenas de milhares de cadastros, clientes, cadastros e cadastros de parceiros. Funciona! Mesmo agora, quando dezenas de pessoas de todo o mundo trabalham com ele ao mesmo tempo, não posso chamá-lo de “sistema de alta carga”, porque sabemos como sistemas de alta carga realmente funcionam e o que big data realmente é. 2. Verifique se o seu sistema de relatórios lida com essa quantidade de dados. Clientes interessantes frequentemente nos procuram, especialmente recentemente. As empreiteiras que entregaram seus projetos aos clientes por meio ano já precisam mudar o sistema de relatórios para o nosso em projetos já implementados e em funcionamento. Eles levaram o projeto a sério, consideraram o kit de ferramentas, os componentes, compararam-nos de acordo com vários critérios (talvez eles nem mesmo consideraram nosso sistema, ou o fizeram, mas por algum motivo o FastReport não chegou ao final), mas então o projeto foi preenchido com dados reais, trabalhei com eles e ... caiu. (Na melhor das hipóteses, “exibindo os primeiros 65.000 registros”, na pior - “consumindo toda a memória alocada e não mostrando nada”). Estou longe de pensar que os desenvolvedores modernos não prestam atenção suficiente ao design competente da carga do sistema. Além disso, todos os outros elementos dos sistemas podem lidar com essa carga. E então o sistema cai exatamente na etapa de amostrar dados no gerador de relatórios! E dados reais - podem ser milhões de registros (esta é apenas uma amostra, não o banco de dados inteiro, é claro!) - a partir dos quais muitas vezes é necessário gerar documentos, por exemplo, para assinantes. Para mim, foi uma revelação que existem players bastante antigos e eminentes neste mercado que não conseguem dar conta dessa tarefa. Na melhor das hipóteses, a geração de relatórios pode levar horas, ou simplesmente trava e não chega à formação de um relatório. E hoje, quando me perguntam "como você conseguiu que os bancos, o Fundo de Pensão, o Fundo de Previdência Social, fabricantes de sistemas corporativos de alta carga, faturamento em tempo real, usassem seu produto FastReport?" - Não tenho escolha a não ser responder "na verdade, eles não tiveram outra escolha." Não insisto em usar apenas e exclusivamente FastReport ("compre nossos elefantes!"), Mas aconselho fortemente os desenvolvedores a submeterem todos os componentes de seus sistemas aos testes de estresse mais severos (como fazemos), para não decepcionar os clientes e não arriscar sua reputação. Isso é especialmente verdadeiro para sistemas de faturamento, CRM, ERP - onde há um trabalho constante ao vivo com os clientes. 3. Avalie a capacidade de informação do seu relatório. Sim, temos exemplos de texto de relatórios (que contêm milhões de registros), onde avaliamos a qualidade e a velocidade de construção dos documentos (o relatório tem várias dezenas de milhares de páginas, que depois são convertidas para PDF sem perda de qualidade). Foi um desafio para nós mesmos - não estávamos satisfeitos com a velocidade de geração de relatórios e aceleramos três vezes. Aqui está um link para um exemplo de construção de um relatório de BigData Bem, este é o BigData. Vou deixar a alegria do pioneiro de "como isso funciona em outros geradores de relatórios?" para leitores gratos. Isso não é ruim ao gerar contas de eletricidade para residentes de megacidades, por exemplo, mas quão informativo é este relatório em si? Portanto, destaque as coisas principais, use gráficos - para que os dados não se percam, mas se transformem nas informações percorridas a olho nu. Como por exemplo,  feito por um dos vencedores do nosso concurso para o melhor relatório  - como você pode ver, o big data sobre COVID-19 é agrupado em um documento confiável e informativo. Os produtos FastReport estão sempre prontos para gerar rapidamente relatórios precisos usando seus dados de qualquer tamanho. Ou você pode apenas nos perguntar – somos muito bons com todos os formatos de documentos e SGBDs populares , e pode dizer onde exatamente “o engano de qualquer formato” pode estar à sua espera. Tags: FastReport, Excel ### Quando é melhor usar um relatório escrito em código ou formato frx URL: https://www.fast-report.com/pt/blogs/report-from-code-or-frx Summary: Compare two ways to create a report: programmatically from the user application's code and using the report designer. Compare two ways to create a report: programmatically from the user application's code and using the report designer. Comparação de duas abordagens para a criação de um relatório: escervendo código, ou designer de relatório. Qual é o melhor a usar em certos casos. Como você provavelmente sabe, os relatórios no FastReport.Net podem ser criados não apenas em um designer especial, mas também à partir do código do aplicativo escrito pelo usuário. Ao mesmo tempo, em vez do arquivo usual com extensão frx, você receberá uma classe de relatório. Ele pode ser convertido em uma biblioteca e usado em diferentes projetos. Qual é essa forma de se criar relatório? Observe esse código: ``` //Cria uma instância da classe Report Report report = new Report();   //carrega dados DataSet ds = new DataSet(); ds.ReadXml(AppFolder + "\\nwind.xml");   //Registra o data source report.RegisterData(ds);   //Habilita a tabela de dados report.GetDataSource("Products").Enabled = true;   //Adiciona página ao relatório ReportPage page = new ReportPage(); report.Pages.Add(page); page.CreateUniqueName();   //Cria banda GroupHeader GroupHeaderBand group = new GroupHeaderBand(); page.Bands.Add(group); group.CreateUniqueName(); group.Height = Units.Centimeters * 1; group.Condition = "[Products.ProductName].Substring(0,1)"; group.SortOrder = FastReport.SortOrder.Ascending;   // cria grupo de texto TextObject groupTxt = new TextObject(); groupTxt.Parent = group; groupTxt.CreateUniqueName(); groupTxt.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 1); groupTxt.Text = "[[Products.ProductName].Substring(0,1)]"; groupTxt.Font = new Font("Arial", 14, FontStyle.Bold); groupTxt.VertAlign = VertAlign.Center; groupTxt.Fill = new LinearGradientFill(Color.LightGoldenrodYellow, Color.Gold, 90, 0.5f, 1);   // cria banda de dados DataBand data = new DataBand(); group.Data = data; data.CreateUniqueName(); data.DataSource = report.GetDataSource("Products"); data.Height = Units.Centimeters * 0.5f;   // cria texto “product name” TextObject productText = new TextObject(); productText.Parent = data; productText.CreateUniqueName(); productText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f); productText.Text = "[Products.ProductName]";   // cria grupo para rodapé group.GroupFooter = new GroupFooterBand(); group.GroupFooter.CreateUniqueName(); group.GroupFooter.Height = Units.Centimeters * 1;   if (PDFCheckBox.Checked) { report.Prepare(); FastReport.Export.Pdf.PDFExport export = new FastReport.Export.Pdf.PDFExport(); export.Export(report); } else report.Show(); ``` Este é um exemplo de criação de um modelo de relatório com grupos. Como você pode ver, estamos criando objetos de relatório de forma consistente, começando com os objetos de texto da página do relatório. Colocamos os objetos criados e configuramos as propriedades de sua exibição. Isso requer um bom desempenho da estrutura do modelo de relatório FastReport.Net. Além disso, para conseguir a exibição desejada dos elementos, você terá bastante tempo para executar o relatório avaliar visualmente e corrigir as propriedades dos objetos, exibindo a largura ou coordenadas desejadas. Portanto, essa abordagem deve ser o de relatar listas, matrizes, tabelas - onde não há necessidade de ajustar a localização dos elementos em relação uns aos outros. A principal vantagem de um relatório gerado no código é a capacidade de editar relatórios durante a execução, adicionando código dependendo das condições ou eventos. Isso permite criar relatórios com lógica complexa que depende diretamente do próprio aplicativo do cliente. Não é segredo que os modelos de relatório do FastReport.Net são formatados em xml, apesar da extensão frx. Esses modelos são fáceis de transferir e visualizar em outros computadores através do programa Viewer. Mobilidade e independência da aplicação cliente - são vantagens inegáveis do padrão tradicional em formato de relatório frx, ou uma versão com dados preenchidos em formato fpx. Portanto, tendo em seu aplicativo relatórios gerados a partir do código, muitos gostariam de poder convertê-los para o formato normal do tipo xml frx. É incrivelmente simples de fazer: ``` Report report = new Report(); report.Save("C:\\report.frx"); ``` Ou seja, basta utilizar a função “Salvar” do objeto de relatório. Conforme os parâmetros são passados o caminho e o nome do arquivo no qual se deseja salvar o relatório. Assim, podemos usar uma única conta que é criada a partir do código e, se necessário, convertê-la em um formato tradicional frx. O arquivo resultante pode ser transferido para outros desenvolvedores ou usuários. Tanto os relatórios baseados em código quanto os relatórios frx têm suas vantagens. A primeira vence quando o relatório precisa ser alterado diretamente "on the go", a segunda é quando um relatório móvel é necessário ou o modelo tem muitos elementos com uma localização claramente definida em relação ao outro. Você precisa escolher uma forma de criar um relatório com base nesses benefícios. Tags: .NET, .NET, FastReport, FastReport, Report, Report ### Questões de licenciamento URL: https://www.fast-report.com/pt/faqs/common Summary: Obtenha insights sobre problemas de licenciamento com o FastReport e como resolver desafios comuns de licenciamento. Obtenha insights sobre problemas de licenciamento com o FastReport e como resolver desafios comuns de licenciamento. Quantos locais de trabalho estão incluídos em uma licença FastReport? Nossos principais produtos têm três opções, dependendo do número de desenvolvedores que trabalham com o FastReport: **Single license** é para 1 desenvolvedor; **Team license** é para uma equipe de até 4 Desenvolvedores, Build Server license incluso; **Business license** é para até 12 Desenvolvedores dentro de uma localização geográfica, Licença de servidor de Compilação incluída; **Site license** sem limites no número de locais de trabalho sem limitação na região geográfica, Licença de servidor de Compilação incluída. Desenvolvedor: uma pessoa que tem acesso a bibliotecas e scripts FastReport e os usa para desenvolvimento. Além disso, um desenvolvedor é uma pessoa que cria relatórios e/ou formulários no designer autônomo (desktop) ou designer online, consulta e solicita qualquer suporte técnico. Um desenvolvedor pode instalar uma cópia do designer autônomo (desktop). What types of licensing are available for FastReport? In accordance with the License Agreement, Users may be granted the following types of License: **Trial Version** - use of FastReport solely for evaluation purposes for a period not exceeding thirty (30) calendar days (trial period) from the date of initial download. **Basic License** grants Licensee the right to Operate the Software to create and use the Solution and allow Licensee’s customers to use the Solution as End Users under the terms of this Agreement. **Extended License** grants Licensee the right to Operate the Software to create and use the Solution and to allow Licensee’s employees and direct customers to Operate the Solution as End Users under the terms of this Agreement. **Project License** grants Licensee the right to Operate the Software to create the Solution and then assign this Agreement to one third party to allow the third party to further develop the Solution and to allow the third party’s customers to use the Solution as End Users. Read more about license types in the License Agreement. I have an idea that can improve your product. Can I share my thoughts? We are always happy to find out what our customers need. Our company is always open to new ideas and suggestions. We have a special to-do list. We include functionality in it that needs to be implemented as quickly as possible. It is likely that your idea will also be interesting and will be included in it. You can write your ideas to us at [support@fast-report.com](mailto:support@fast-report.com) We would like to order an upgrade, but our panel doesn't have that option. Most likely your subscription has expired, and you need to update your product. Please contact [our support team](/contact). I have purchased FastReport. I should receive my license key within 48 hours, but never received an email. Also in “My Downloads” I don't see any information about the new product. Please make sure that the email address you entered during registration is correct and check your spam folder in your email. If the product is still not available, please contact [our support team](/contact). I would like to upgrade from a Single license to a Team license. How much will it cost? You can upgrade from Single to Team licenses within an active subscription to the license with a **20%** discount. Contact [our support team](/contact). We will provide you with a quote. I have a valid license; how do I upgrade the product? You can update your product in the [customer panel](https://cpanel.fast-report.com/) or contact the reseller that you purchased the product from. How long is the license valid? Why do I need to renew my license? The license is valid for 12 months, during this period you get technical support and updates, after this period to continue receiving tech updates and support, you have the option to renew it for **50%** from the full price (the discount is valid for 1 month after the license expires). I use software that has a FastReport in it, I have an error, what should I do, can you help me? In this case, you need to reach out to this company that is developing this software. As we don't know what changes were made to the FastReport and not responsible for the modified code. Can one developer use the product on two computers? You can install a copy of the Product on your computer and freely move the Software from one computer to another, as long as you are the only individual using the product. If you are an entity, you must designate one individual within your organization ("Named User") to have the right to use the Product. What is build server license? Build Server License is a permission to use the library on an automated build server, to build installs, nightly builds, etc. I use FastReport VCL 4/5/6, FastReport VCL 2021, 2022 I have an error, what should I do? If the version of your FastReport VCL product is different from the current year, we recommend trying to reproduce your error in the new version. You can download the demo on [our website](/downloads). If the problem persists, please write to our support, [support@fast-report.com](mailto: support@fast-report.com) If the problem is resolved, then you need to upgrade to the new version of the product. Does the latest build of FastReport VCL work with the new version of Delphi? Yes, we synchronize versions of our product with current versions of Delphi. I purchased a product, before I used the demo version, there is an error, what should I do? We recommend you check if you have uninstalled the demo version. It is necessary to do it for the correct work of the product. I purchased the wrong product. What should I do? Unfortunately, we cannot replace the product or issue refunds because software is non-refundable, furthermore, the activated license cannot be returned. We recommend you check the demo version before purchasing as we distribute all our products as try-before-you-buy products. I’ve been charged twice. I paid for the subscription manually and then the auto renewal charged my card again. What should I do? Since the payment method is out of our control, we can’t turn the auto renewal off. You can do it through the customer panel at PayPro/MyCommerse. Please, note that the subscription in our system prolong automatically so that your subscription will be active for an additional year My computer died, can I move my old license to the new computer or do I have to purchase a new license? You can move your license, but keep in mind that we do not keep files of old products in the customer panel, but we can provide them on request. How do you ensure data security? FastReport products are components and do not store data, they work as a "black box", the level of security is determined on the user side. In our company the person responsible for the FastReport license has changed, how can the new employee get access to the customer panel? Please contact our support, we will change the email address for you. - If the change of email address within the same domain address, we will do it without a problem. - To change the corporate mail to the developer's personal mail, we need a scan of the official letter from the company confirming that the developer works in this company, and you need to change the mail from corporate to personal one. - To change the corporate mail to an email with another corporate domain address, we need a scan of the official letter from the company pointing out why it's necessary. This procedure is not a license ownership transfer. This is required for security purposes and to protect the rights of license users. Posso testar o produto antes de comprá-lo? Vocês fornecem suporte técnico para testes? Sim, recomendamos testar nosso produto de software antes de comprar para garantir que ele atenda aos seus requisitos. A versão de teste inclui todas as funcionalidades da versão completa, mas tem algumas limitações. Nossos especialistas terão prazer em atendê-lo. Você pode nos enviar perguntas técnicas para [support@fast-report.com](mailto:support@fast-report.com) ### Quick look on minimal FastReport.NET report URL: https://www.fast-report.com/pt/blogs/quick-look-minimal-net Have you ever noticed how a report template transformed to the prepared report? Let's look onto code of a very simple report: The single page. The single band on the single page. The single text field on the single band. Let's story it to the report template file: ```   ```  So we have minimal report with single text string on the gray background. Let's do preview of this report And source code of prepared report: ```   ``` Report template stored in prepared report within section . All constant attributes are taken from the section by transforming references via section . For example, refers to the same element in section . An attribute  "name" of element of section is set to value "Page0". By some reason we need increment a number within page name. Now we have name of element within section - it is "Page1". Therefore we link the element in section with the element in section by matching the property "name". Tags: .NET, .NET, FastReport, FastReport ### RAD Studio Reporting with Fast Reports URL: https://www.fast-report.com/pt/news/webinar-studio-reporting-2014 Summary: RAD Studio Reporting with Fast Reports RAD Studio Reporting with Fast Reports RAD Studio Reporting with Fast Reports See what’s new with FastReport and FastCube VCL and FMX You’re invited to join Embarcadero with Fast Reports’ Michael Philippenko and Den Zubov for two new webinars on reporting for RAD Studio, Delphi and C++Builder developers. Webinar 1: New Report Generator for Delphi FastReport VCL 5 Thursday, May 22, 2014 6AM San Francisco / 9AM New York / 2PM London / 3PM Milan 11AM San Francisco / 2PM New York / 7PM London / 8PM Milan 5PM San Francisco / 23-May 9AM Tokyo / 23-May 10AM Sydney FastReport VCL is a modern solution for integrating Business Intelligence in your software. Topics covered in this webinar include: What is new and how to use it in FastReport VCL 5 New kinds of report interactivity News in objects and properties Changes in web-reporting and more! Webinar 2: FastCube VCL 2 and New FastCube FMX - OLAP Components for your Software! Tuesday, June 3, 2014 6AM San Francisco / 9AM New York / 2PM London / 3PM Milan 11AM San Francisco / 2PM New York / 7PM London / 8PM Milan 5PM San Francisco / 4-June 9AM Tokyo / 4-June 10AM Sydney FastCube enables you to analyze data and to build summary tables (data cut-offs) as well as create a variety of reports and graphs both easily and instantly. In this webinar you will learn: What is new in FastCube VCL 2 What the difference in VCL and FMX versions How to estimate performance of FastCube on your own data and application ### RAD Studio Reporting with Fast Reports - Questions and Answers - Part I URL: https://www.fast-report.com/pt/blogs/rad-studio-fastreport-fmx-vcl Thanks a lot all attendees of our webinar with Embarcadero Technologies. We hope than you are got new useful information and as usually publishing questions and answers from this event. Q: Can an Excel report include formulas? A: Not yet, but we're planning to implement such feature. Q: A program may have many responsibilities, many steps, report-generation being only one of them. After generating the report, the program should be able to continue on immediately with its remaining responsibilities, with no left-over impact on the program's available memory and CPU time. So, is it possible to detach a report from the program that generated it? A: You can create reports in threads. Q: Can you force FastReport 5 to respect XLS/XLSX worksheet cell boundaries (e.g., EVERY cell in column B has exactly the same width), so that each (non-empty) worksheet cell contains exactly one value of the appropriate type (number, text, date, etc.), and each worksheet column is sized to fit? A: Sorry, not clearly understand what do you mean. Q: Can you design a report to fit cleanly into Excel cells, one value per cell, without page boundaries? A: Yes, we have matrix export to excel so each object will be in separate cell. Q: is there an upgrade path for EDN version to pro? A: Delete Embarcadero Edition. And setup Pro one Q: Question for David. When do we expect XE7 ???? A: When it's done. ;-) Q: will all these exports be available with the XE6 version of Fast Reports? A: Do you mean Embarcadero edition ? Q: Question for David. When do we expect XE7 ???? A: https://edn.embarcadero.com/article/43677 Check out the roadmap. Q: Yes the embarcadero Edition not Pro A: No, XE6 uses FR4 version. We're planning to deploy FR5 starts from XE7. Q: I assume the code and events are not available with the Embarcadero version? A: Yes, the script is not available in EDN version. You can always look at differences between editions here Q: I have an issue with Barcodes ... when I try to print a Barcode type Code 39 trough FR4 and when I assign a short number like a 1 .. I can't read with a barcode scanner ... do you know why happen this ? A: This can be because of printer resolution. You can try to set Zoom property or BarWideRatio property. Q: Oops... part 2. The web-report needs to export to pdf A:  Live Demo is available on our web-site - with export to pdf:  Q: Can you please show us how to incorporate a FR report into a Windows Service application. The application is multi-threaded so the report must be thread-safe. A: Not just now :) Anyway you need Enterprise Edition for web-reporting Q: Are there example reports included with FR4? Learn by example, easier to modify a report that almost does what I want, would make it easier to get into. A: Yes, the main demo has a lot of report. You don't need even to install components to try them. You can find compiled demo with reports here  Q: Where in XE5 or 6 is FR demo reports (actual srce reports, not compiled). A: If you need an examples about how to use Fast Report from code you can find them in Demo folder after install components. But if you need only to see report , the main demo will work. It has a designer and report templates, so you can always open any template and see how it works. Q: Where in XE5 or 6 is FR demo reports (actual srce reports, not compiled). A: FR4 install can be found in the registered user download area via EDN downloads menu Q: I'm still a bit confused. What exactly comes withe XE6? Is the VCL version FR4? Is the FMX version the same as the FMX 2 they show on their web site, or is it an older version? What exactly comes free with XE6? A: FR4 VCL & FMX comes with XE6 Q: I realize you are showing the VCL version. Does the FMX version work pretty much the same way? Important differences? A: Just another good question :) Here you can see comparison table of different Fast Reports - FMX and VCL More over: compare possibilities of FastReport FMX for different OS So difference is present. Q: Upgrade or new license when you update from the free be in XE6 to FR5? A: You can compare prices on the FastReport site - to move to FR5. Q: I see the prices for the products as you've shown them, but the real question is "Is there an upgrade price to move from Embarcadero to the FR5, or do you essentially get a new license with Fast Reports?" A: It is really new license Q: Can we use C++ script in FR5? A: Yes, there are 4 types of script languages C++/pascal/Basic/JavaScript. Q: Are there any restrictions on the use FastReport 5 in C++ Builder compared with Delphi? We Thanks. A: Absolutely the same. Q: Will you be offering a "Distinct Count" function in a group section ? A: No such function - you can do this at the SQL statement level. Q: How about my Distinct Count question from above ? A: Added to ours TODO list. Q: Crystal Report has distinct count A: Thanks Q: Along with SUM AVG COUNT A: Thanks Q: Are you planning to include Logfont? A: No plans for now. Q: Currently when I tried to declare Logfont: TLogFont; it raised an error "Unknown type TLogFont". Are there plans to support TLogFont? A: Do you mean in Fast Script ? Fast Script unfortunately doesnt support structures. Q: yes in FastReport events coding A: Unfortunately you can't. Structures arent supported in Fast Script yet. Q: Is there a difference between the FastReport included with Rad Studio and the paid versions from FastReport? A: Yes, compare Q: why is fast report designer so different from fast report.net A: Because there are two absolutely different products :) Q: I thought fast Reprot will now have something like Fast Report .NET but so i dont think so , i would rather enjoy working on fastreport.net A: There are two different products. With vary possibilities, platform, etc. Many customers waited these features. Q: i meant highlighting by condition Q: is the highlight feature restricted to cell only or can they be extended to row as well A: Are you mean interactive of highlighting by conditions? Q: but you said its intended for those who have used fast report and do you really think they are so naive A: There are many changes which you can see in examples only :) Interactivity, web, etc. We think that our customers - professional developers who really can estimate new features :) Q: I licensed the XE4 FR but am moving to FMX for new stuff - why not include both like EMB does? A: FR4 comes with XE6 Q: did I miss the comparison with MS-SQL Reports - I heard it asked but not answered A: We have not direct comparison with VCL, but there are something like Q: I there a limitation to use with Interbase Togo Embedded ? Use one or two connexion ? A: IBLite is only for mobile and limited to one connection. IBToGo is not limited on # of connections. Q: If use Fast Report into a Database Rad Studio application, Fast Report share the connection or need is separate connection ? A: It can share. Q: Which version are coming with XE7? A: Fast Report 5 Q: Can the VCL and FMX version coexist? A: Yes Q: Is there a way to convert existing FastReport 4 reports to version 5? A: You do not need convertor. There are converting on a fly - when you opening in FR VCL 5 Q: FastReport has a upgrade for embarcadero edition to full edition? A: No, Embarcadero edition is free version for RAD Studio users. We don't have any upgrades from this version. Q: FastReport has a upgrade for embarcadero edition to full edition? A: There are no any discount for Embarcadero Edition customers. Q: web-reporting is datasnap reporting??? A: No, its an internal components. Q: Can you show an example using a dialog page with object tfrxDBLookupComboBox ? A: Not ready just now. Remind us - we will prepare it and may be place to our demo and on our youtube also Q: Can Report Builder reports be converted? A: Yes, we have a module ConverterRB2FR.pas you need to include it in uses section of your application. And after that you can use LoadFromFile method in TfrxReport component to load Rave report. Q: what about a .NET version? A: All is good with .Net version :) You are welcome Q: Can FR4 & FR5 coexist? A: No Q: I have a bunch of Rave Reports embedded into applications (not used the form designer). How easy is it going to be to convert these? A: We have a module ConverterRR2FR.pas you need to include it in uses section of your application. And after that you can use LoadFromFile method in TfrxReport component to load Rave report. Q: Thanks on the RAve Reports question A: :D Q: can we see crystal converter in action A: You can download on web-site :) By the way wait for 5.1 version soon - it will improved Q: Is FR5 in RAD Pro XE6 and or Delphi XE6 Pro? A: FR5 Embarcadero Edition will come with XE7. Q: Is FR5 in RAD Pro XE6 and or Delphi XE6 Pro? A: Yes, It supports starts From Delphi 7 and up to XE6. Q: It seems the webinar is for people already using fastreport, but around 50% of the audience never used fastreport. How about some getting started information... A: Yes, we didnt expect such many new people. The video is for people who already using FR4 and shows the differences between versions. There are will be enough to place FRXReport component on your application form and doubleclick - very easy to start and create first report. It takes about ten minutes. I can offer just now our Youtube channel with short lessons  Anyway we will prepare soon something like "FastReport - getting started" Q: Can you supply some links to getting started information, examples and the likes? Or will there be another webinar for beginners? A: Of corse you can take a look at our youtube chanel  Q: Does the conversion happen based on file extension or an internal version number? Is there a new default extension for FR5 reports? A: FR5 uses old file extensions and determinate version by internal version number. Q: I just tried to run the Crystal Converter and it hangs on open - never even shows anything... A: Not all the versions of CR supports now Q: When you announced a updated designer for FR5, I expected a litte bit more face lift of the gui. But it seems that it still has XP style. A: It still supports D7 - that is why Q: Will XE7 be supported by FR4? A: No. Q: Can the end user of our software create it's own reports? (run time report builder) A: Yes, there are report designer for end-users - you can provide it to your customer Q: does it also work in C++. If yes, is the scripting also in C++ ? A: Yes, it is compatible with C++Builder. You can setup it to C++Builder. It is supported as well with full functionality Q: Can the end user of our software create it's own reports? (run time report builder) A: Yes - you can use a runtime report designer and call if from your application. This lets users to create reports. Also as developer you can set restrictions for what the customer/user can do in the reports you deliver with your app. Developers have custom control for their users. Q: what about Active Report Converter ? A: We don't have such convertor , yet. But this version works with not all the CR versions yet, will be updated with FastReport 5.1 Q: What should be the minimum XE version in order to use FastReport? A: Did you mean FastReport Embarcadero Edition? - it comes with every XE*. And also all other editions of FastReport support all Delphi XE* (from XE to XE6) Q: I'm using Delphi XE with QuickReport. Can I migrate to Fast Reports on Delphi XE or I need to upgrade to a newer version? A: QuickReport and FastReport are not compatible.  You can convert visual part of the report by using ConverterQR2FR.pas module. Just add it in uses section and use LoadFromFile method of TfrxReport component. But we do not know - what kind of reports did you use, not all possible to convert. Anyway you will need convert reports and remake some parts of the reports manually(Like script and expressions). We recommend use new component (FastReport) in new projects. Q: Is it possible to automatically convert Fastreport.VCL => Fastreport.NET reports? A: Conversion is possible. Same layout. Code/logic is not converted. Q: From my experience, converters aren't really an option for automatic conversion. It should be done manually. A: Yes, some parts like expressions or scripts should be converted manually. Converters can convert only visual parts. Q: What is the user experience developing reports in Fast Reports .NET compared to Fast Reports VCL. Is it similar or there are significant differences? A: If you mean "architecture" - there are absolutely different, but we are trying to make them as close as possible. Q: Fast Reports is really good reporting tool. Too bad it wasn't the part of Delphi in earlier versions. It would save us much time :-). A: :D Q: how much does it cost to upgrade from fr4? A: This depends on your edition. Go to the customer page and you'll see the upgrade price./info Q: It's ok for me that you think about building a FMX version. But can I be sure that the main focus still stay on VCL? This is very important form me! A: We are working on VCL as well as on FMX. Updates coming soon Q: Are there some changes in FR5 that belongs to UniCode. I have some applications that also use unicode (Chinese etc.). Sometimes I had problems, that not all windows fonts are supported well... A: Starts from Delphi 2010(first unicode Delphi version) Fast Report completely supports unicode. Q: Are there any issues when creating reports in threads... A: Yes, you can find more information in Fast Report Programmers manual. Part «1.22 Multithreading». Q: Charts are not working here too. Recompile will not bring the success... I use the newest fast reports enterprise and the newest teechart vcl components (including source)... A: Can you write to support@fast-report.com with discription of the error ? Q: Using the recompile wizard only provide TeeChart 4 to TeeChart 9 the actual version is TeeChart 2014. What should I select? Is TeeChart 2014 supported? A: Tee Chart 9 Q: Why are Denis not join DDD in Germany? A: We should code, make updates, fixes, answer support questions. Denis coming to Be-Delphi in Antwerp, Belgium, DDD Piacenza, Italy and DDD  Amsterdam, Netherlands at 10th-12th of June. (Done) Q: Tred to install, trial but too little disk space for it :-( A: Ok - thanks Alf. Time for a 4TB hard drive :) We're planning to change our installation tool soon, so 3+TB problem will be fixed Q: Do new Fastreport run on Delphi 2006 or only last versions of Delphi? A: Yes, FastReport VCL supports Delphi 2006 also Q: THis is perfect timing as I am converting reports from Qucik Report to Fast Report now. A: Great! Q: A reliable way to convert even simple Rave reports is a major requirement - if we had that now we would move to fast Reports today! A: Yes, you can use ConverterRR2FR.pas module. just include it in app uses section. And use LoadFromFile method of TfrxReport component. Q: ConverterRR2FR didn't even convert simple Rave reports I'm afraid A: We will reconstruct it soon. There are some problems with it. Q: Migration courses would be great. A: We will prepare. Q: The webinar seems to be concentrating on the new features in the product rather than how a new user can set up a basic report. Is this how the webinar will continue? A: Yes, this webinar is showing features of the new version. We didnt expect so many people not familiar with Fast Report. Q: Is there a reliable way to convert Rave reports to Fast Reports? A: Yes, you can use ConverterRR2FR.pas module. just include it in app uses section. And use LoadFromFile method of TfrxReport component. Q: As I said before ConverterRR2FR does not work on even simple Rave reports. Please let me know when a reliable conversion program will be available. A: We will fix it in FastReport VCL 5.1 very soon. Q: OK - youtube channel looks interesting and yes a basic reporting webinar would be good. A: Ok. Q: Are there any training courses available in Europe? A: Yes. We will run training day in Belgium 10th of June on Be-Delphi basis and with Be-Delphi help. See on Be-Delphi.com web-site. Q: Will the training in Belgium be in English? A: Yes, English Q: As I said before ConverterRR2FR does not work on even simple Rave reports. Please let me know when a reliable conversion program will be available. A: Can you send some of the Rave reports you have to us on support@fast-report.com ? Maybe you have different version of Rave report. We will chuck what we can do. Q: I can send some of our Rave reports but I have sent questions to the email you supplied before and I never got an answer to any of them. Can you provide a specific name and email address please? A: You can write directly to me at den@fast-report.com Q: There is an opportunity to gain many customers, like us, who are using other reporting tools. We need reliable converters and basic training - can you please provide both? A: Well. We will make some "migration courses" Q: Fast report is a great product, i use it a lot. Can you add a new little feature in the designer, i want to be able to focus the tool box when i press the enter key on a component. This will speed up when i need to change component name. Thanks A: Thank you for idea Q: Sorry, question to david i, can i have a grouping and ungrouped object feature like the one in Fast Report Designer :D A: (Y) :) Q: Are there published rules for manual conversion A: Not yet Q: I just noticed that FR5 report files also have the .fr3 extension; so, how can we tell what's using the new format and what is not (for downward compatibility with FR4.X)? A: We have a version number stored in the report file. Q: Do reports written in FR4.x need to be converted? A: No, all old FR4 reports will be converted on the fly when load old report file. Q: Is there limitations for converting Report Builder ? A: You can convert visual part only. Q: I have 3 computers I use for programming: my office pc, home pc and a laptop. It is needless to say that I don't use all computers at the same time; only one at any given point in time. Having said that, can I buy a single license and install it on all three of my computers. I'm sure you know that RAD Studio allows you to do that (I think on up to 5 computers). A: The same situation with FastReport Q: It is FR5 VCL stable enough to use it in real applications? :) A: Yes, more over. Soon we will run v.5.1 with some fixes. Q: is there an updated version of Fast Reports for the version that came with XE5. I have problems with charts not working. the last comment I got on forum was a new version has fix. So how do I update the XE5 embarcadero fastreport version? Thanks! A: FrxChart object has source codes you can always recompile it manually. But yes, we'are panning to update EDN versions this week , because it has some new fixes. Q: I have not used fast reports. How can you add this to a delphi App? A: Just add TfrxReport component from Fast Report components palette on the form and after you can call report designer by double clicking on the component. Q: I have not used fast reports. How can you add this to a delphi App? A: Just place "FRxreport" component to your application form and doubleclick it :) Q: is there a converter from Report Builder to Fasr Report? A: Yes, you can use ConverterRB2FR.pas module. just include it in app uses section. And use LoadFromFile method of TfrxReport component. Q: where is this converter? A: You can find it in Fast report LibDXX folder. Q: We need fastreport on IOS and ANDROID when will get? its so important... A: We are still considering support of IOS, but we faced some issues when started migration. But it's still possible that we make Ios version of Fast Report FMX. Thanks a lot for good questions! Anyway you can write us anytime. Tags: VCL, FireMonkey, FMX, FastReport ### RAD Studio Reporting with FastReport URL: https://www.fast-report.com/pt/news/webinar-rad-studio-2012 Summary: RAD Studio Reporting with FastReport RAD Studio Reporting with FastReport Join  our webinar! Topics covered will include:  • FastReport RAD Edition - what i t i s and how to use it  • Migration of reports from QuickReport and Rave Reports to FastReport  • Introduction to data analysis and presentation with FastCube.  All registered Delphi, C++Builder and RAD Studio XE2 users who attend the webinar will get a free copy of FastCube Embarcadero Edition! (if you have n’t already receive d it from an earlier promotion) . Webinar's language - English . ### Rave convertor URL: https://www.fast-report.com/pt/blogs/rave-to-fastreport-convertor As you know, Embarcadero RAD Studio XE2 is coming with the special edition of FR4. Many people have been asking us: is it possible to convert Rave reports (.rav files) to Fast reports (.fr3 files)? It is possible, because we have developed a convertor from Rave reports for this purpose. How to convert a .rav file From a user's point of view, to convert a .rav file no special actions needed: just click File > Open in the main menu of the designer and then choose a .rav file. If you are a developer and want to know how to enable the ability to import .rav files, then consider this code: Code ``` program RaveImport;   uses frxClass, frxDesgn, ConverterRR2FR;   begin TfrxReport.Create(nil).DesignReport; end. ``` Once this program is launched, the report designer appears and its File > Open dialog will offer to open .rav files as well as .fr3 files. Note, that in order to compile this program, you need to have Rave installed, or just have its .pas or .dcu files available to the compiler. What Rave reports can be imported The convertor supports the most of components that can appear in a Rave report, including database connections. Those Rave components that have no direct representation in Fast Reports, are converted to components with the closest behaviour. Here is an example of a complex Rave report converted to an .fr3 file: The process of importing When you click the File > Open menu item and choose a .rav file, the convertor at first checks how many reports are inside the file. If there are several reports inside the file - Rave allows to have multiple reports in a single file - then each report will be converted to a fr3 file and the convertor will ask to choose a folder where all these .fr3 files can be saved: After that the convertor will start processing each report and during this stage, which can be quite long for big .rav files with numerous reports inside, the following progress bar will be shown: When all reports converted, the last created .fr3 file is shown in the designer: Notes Some old versions of Rave have certain issues with loading numerous big SQL queries, which may result in memory corruption and undefined behaviour of the convertor. To avoid such problems, the convertor provides the property LoadQueries which can be disabled in order to skip loading SQL queries. However, if the convertor is compiled with newer Rave sources, no problems should occur. Links This topic is discussed on our forum in this topic . There you can also find a test app that can convert .rav files. As you know, Embarcadero RAD Studio XE2 is coming with the special edition of FR4. Many people have been asking us: is it possible to convert Rave reports (.rav files) to Fast reports (.fr3 files)? It is possible, because we have developed a convertor from Rave reports for this purpose. How to convert a .rav file From a user's point of view, to convert a .rav file no special actions needed: just click File > Open in the main menu of the designer and then choose a .rav file. If you are a developer and want to know how to enable the ability to import .rav files, then consider this code: Code Tags: VCL, FastReport, Converter ### RDL import in FastReport .NET URL: https://www.fast-report.com/pt/blogs/rdl-import-fastreport-net What is the RDL import RDL  report it's a report template in format of  Report Definition Language . The format used in  Microsoft Reporting Services . Reports can be generated in  Microsoft Visual Studio  and  Microsoft Report Builder , and in some third-party editors. Reports are stored in files with extension  rdl  or  rdlc .  RDL  import it's a tool that allows you to open  RDL  report in  FastReport. NET  designer. Users who have previously used the  RDL  reports and went to  FastReport. NET  can use old templates. Reports can be quickly and easily imported to FastReport .NET.  Importing RDL report It's simple operation. You should to go to the  File  menu in  FastReport .NET  desinger and select  Open... . In the window that appears, select the filter  RDL files (*. rdl; *. rdlc) . The selected file will be automatically converted to a FastReport. NET  template and opened in the designer.  On the two following pictures you can see  RDL  report (left) and the same report converted to  FastReport. NET  format. Tags: .NET, .NET, FastReport, FastReport ### Rebranding of FastReport Studio and release of FastReport for COM/ActiveX v.4.9 URL: https://www.fast-report.com/pt/news/fastreport-business Summary: Rebranding of FastReport Studio and release of FastReport for COM/ActiveX v.4.9 Rebranding of FastReport Studio and release of FastReport for COM/ActiveX v.4.9 1. From the version 4.9 FastReport Studio has new name. From now FastReport Studio Developer Edition names FastReport for COM/ActiveX, FastReport Studio Business Edition - FastReport for Business. These names more storng describe targets of products. 2. 11 of July FastReport for COM/ActiveX and FastReport for Business v.4.9 released What news? + pictures format in all exports switched to PNG It gives possibilities to use all the preferences of the PNG-formats, like quality, alpha-channels, size (in BIFF and HTML). Also it solves problems with preview on Apple-devices. + added export to DBF format - it can be use for data exchange of modules of different business applications + added new property ExpandDrillDown to IfrxReport interface - it allows control DrillDown reports programmatically Version 4.9 ------- - fixed bug in the PDF export in rotating texts 90, 180 and 270 degrees - fixed bug in the ODF export in processing of headers and footers - fixed bug in the Text export in computing object bounds - fixed bug in the ODF export in UTF8 encoding - fixed hiding gridlines around nonempty cells in the BIFF export + added property TfrxODFExport.SingleSheet + added property TfrxSimpleTextExport.DeleteEmptyColumns - fixed images bluring when exporting + optimised merging cells in the BIFF export - fixed word wrapping in the Excel XML export - fixed bug in XML export with the ShowProgress property - fixed bug in RTF export with font size in empty cells - fixed bug in ODF export with UTF8 encoding of the Creator field - fixed bug in XML export with processing special characters in strings - fixed bug in ODF export with properties table:number-columns-spanned, table:number-rows-spanned - fixed bug in ODF export with the background clNone color - fixed bug in ODF export with a style of table:covered-table-cell - fixed bug in ODF export with table:covered-table-cell duplicates - fixed bug in ODF export with excessive text:p inside table:covered-table-cell - fixed bug in ODF export with language styles - fixed bug in ODF export with spaces and tab symbols - fixed bug in ODF export with styles of number cells - fixed bug in ODF export with the background picture - fixed bug in ODF export with charspacing - fixed bug in ODF export with number formatting - fixed bug in ODF export with table-row tag - fixed bug in XLS(OLE) export with numbers formatting - fixed bug in RTF export with processing RTF fields - fixed bug with processing special symbols in HTML Export - fixed bug with UTF8 encoding in ODF export - fixed bug in PDF export with underlined, struck-out and rotated texts ### Recebemos o prêmio "50 melhores editores" URL: https://www.fast-report.com/pt/news/top-50-publishers-award Summary: Recebemos o prêmio "50 melhores editores" Recebemos o prêmio "50 melhores editores" Todos os anos, a entidade de venda varejista de software online líder mundial exibe os  resultados anuais de vendas . E é o terceiro ano consecutivo em que o Fast Reports ocupa a posição dos 50 melhores, permanecendo como um dos desenvolvedores de componentes e bibliotecas para criação de documentos mais vendidos do mundo. ### Recursion in MS SQL URL: https://www.fast-report.com/pt/blogs/recursion-mssql Sometimes, a stored procedure or function is required to use the results of a sample several times. In such cases, we often use temporary tables. However, it is worth considering some advantages and disadvantages of temporary tables. Advantages: Temporary tables are full tables. Therefore, you can create indexes and statistics for them. This can significantly speed up work with them. Disadvantages: Filling in a temporary table associated with the movement of data. Although it is a simple Insert operation, there is still a load on the disks with large amounts of data; There is a risk of increased query execution time. Temporary tables are created in the tempdb database. And the load on this base is substantial. Considering the risks of using temporary tables, the use of a generic table expression looks much more attractive. Generic table expression Common Table Expression (CTE) is an expression with a common table that can be used many times in a query. The CTE does not save data, but creates something like a temporary view. Some may say that a CTE is a subquery that precedes the main query. But this is not entirely true, because the subquery cannot be used several times, however, CTE can. In which cases is it better to use a generic table expression? 1. To create recursive queries, with which you can get data in a hierarchical form; 2. With multiple references to the data set within the same query; 3. In order to replace views, temporary tables, table variables. The advantages of CTE include: recursion, high speed query, concise query. And the disadvantages can be only in the limited use. A CTE can only be used for the query to which it belongs. You cannot use it in other queries. In this case, you will have to use temporary tables or table variables. Generic table expressions are simple and recursive. Simple ones do not include references to theirselves, and recursive respectively include. Recursive CTEs are used to return hierarchical data. Consider an example of a simple CTE statement: ``` WITH CTEQuery (Field1, Field2) AS ( SELECT (Field1, Field2) FROM TABLE ) SELECT * FROM CTEQuery ```  Here CTEQuery is the name of the CTE;                 Field1, Field2 – field names of the request;                 Table – some table from which data is selected for use in the main query. In this example, it is possible and not to explicitly specify the selection fields, since we select all the fields from the TestTable table: ``` WITH CTEQuery AS ( SELECT * FROM Table ) SELECT * FROM CTEQuery ```  With the help of CTE, you can optimize the main query if you take out part of the logic in the CTE. The fact is that CTE allows you to create several expressions (queries) at once. So you can split a complex query into several preliminary “views” using the CTE, and then link them in a common query:  ``` WITH CTEQuery1 (Field1, Field2) AS ( SELECT Field1 AS ID, Field2 FROM Table1 WHERE Field2 >= 1000 ), CTEQuery2 (Field3, Field4) AS ( SELECT Field3 AS ID, Field4 FROM Table2 WHERE Field4 = 'Москва' )   SELECT * FROM CTEQuery1 INNER JOIN CTEQuery2 ON CTEQuery2.ID = CTEQuery1.ID ```  As mentioned above, the main purpose of the CTE is recursion. A typical task for recursion is a tree traversal. So we can build a tree with the help of “with”. The recursive query structure first appeared in SQL Server 2005. Take a look at the WITH statement:  ``` WITH RecursiveQuery AS ( {Anchor} UNION ALL {Joined TO RecursiveQuery} ) SELECT * FROM RecursiveQuery ```  {Anchor} - anchor, a query that defines the initial element of the tree (hierarchical list). Usually in anchor there is a WHERE clause that defines specific rows of the table. After UNION ALL, the target table is followed from JOIN to the CTE expression. {Joined to RecursiveQuery}- SELECT from target table. This is usually the same table used in the anchor. But in this query, it is connected to the CTE expression, forming recursion. The condition of this connection determines the parent-child relationship. It depends on whether you go to the upper levels of the tree or to the lower ones. Let's look at a recursive query that returns a list of organizational units. Prepare data for this request: ``` CREATE TABLE Department ( ID INT, ParentID INT, Name VARCHAR(50) )   INSERT INTO Department ( ID, ParentID, Name ) VALUES (1, 0, 'Finance Director') INSERT INTO Department ( ID, ParentID, Name ) VALUES (2, 1, 'Deputy Finance Director') INSERT INTO Department ( ID, ParentID, Name ) VALUES (3, 1, 'Assistance Finance Director') INSERT INTO Department ( ID, ParentID, Name ) VALUES (4, 3, 'Executive Bodget Office') INSERT INTO Department ( ID, ParentID, Name ) VALUES (5, 3, 'Comptroller') INSERT INTO Department ( ID, ParentID, Name ) VALUES (6, 3, 'Purchasing') INSERT INTO Department ( ID, ParentID, Name ) VALUES (7, 3, 'Debt Management') INSERT INTO Department ( ID, ParentID, Name ) VALUES (8, 3, 'Risk Management') INSERT INTO Department ( ID, ParentID, Name ) VALUES (9, 2, 'Public Relations') INSERT INTO Department ( ID, ParentID, Name ) VALUES (10, 2, 'Finance Personnel') INSERT INTO Department ( ID, ParentID, Name ) VALUES (11, 2, 'Finance Accounting') INSERT INTO Department ( ID, ParentID, Name ) VALUES (12, 2, 'Liasion to Boards and Commissions') ```  It is already clear that the structure of the divisions in the organization is hierarchical. Our task is to get a list of departments subordinate to the assistant of the financial director. If we talk in the context of a hierarchical tree, then we must find a branch and its leaves. But first, let's see the whole list of divisions: ID ParentID Name 1 0 Finance Director 2 1 Deputy Finance Director 3 1 Assistance Finance Director 4 3 Executive Bodget Office 5 3 Comptroller 6 3 Purchasing 7 3 Debt Management 8 3 Risk Management 9 2 Public Relations 10 2 Finance Personnel 11 2 Finance Accounting 12 2 Liasion to Boards and Commissions  At the head there is the financial director, the deputy and the assistant report to him. Each of them has a group of units in its jurisdiction. The ParentID field indicates the "host" identifier. Thus, we have a ready-made master-slave connection. Let's write a recursive query using WITH. ``` WITH RecursiveQuery (ID, ParentID, Name) AS ( SELECT ID, ParentID, Name FROM Department dep WHERE dep.ID = 3 UNION ALL SELECT dep.ID, dep.ParentID, dep.Name FROM Department dep JOIN RecursiveQuery rec ON dep.ParentID = rec.ID ) SELECT ID, ParentID, Name FROM RecursiveQuery ```  In this example, the names of the fields that are to be selected in the CTE are clearly indicated. However, internal queries have the same fields. So you can simply remove this listing along with the brackets. Inside the CTE, we have two similar queries. The first one selects the root element of the tree that we are building. The second is all subsequent subordinate elements, due to the connection with the CTE itself. "Recursion" in SQL is not really a recursion, but an iteration. You need to submit a query with a JOIN as a loop, and then everything will be immediately clear. In each iteration, we know the value of the previous sample and get the subordinate elements. In the next step, we get the subordinate elements for the previous sample. That is, each iteration is a transition down a tree, or up, depending on the communication condition. The result of the above query is: ID ParentID Name 3 1 Assistance Finance Director 4 3 Executive Bodget Office 5 3 Comptroller 6 3 Purchasing 7 3 Debt Management 8 3 Risk Management  But what would this query look like without using CTE: ``` DECLARE @Department TABLE (ID INT, ParentID INT, Name VARCHAR(50), Status INT DEFAULT 0) -- First, we select the anchor in the table variable - the initial element from which we build the tree. INSERT @Department SELECT ID, ParentID, Name, 0 FROM Department dep WHERE dep.ID = 3   DECLARE @rowsAdded INT = @@ROWCOUNT -- We are going through a cycle until new departments are added in the previous step. WHILE @rowsAdded > 0 BEGIN -- Mark entries in a table variable as ready for processing UPDATE @Department SET Status = 1 WHERE Status = 0 -- Select child records for the previous record INSERT @Department SELECT dep.ID, dep.ParentID, dep.Name, 0 FROM Department dep JOIN @Department rec ON dep.ParentID = rec.ID AND rec.Status = 1 SET @rowsAdded = @@ROWCOUNT -- Mark entries found in the current step as processed UPDATE @Department SET Status = 2 WHERE Status = 1 END SELECT * FROM @Department ```  Such a cycle runs much slower than the CTE expression. And besides, it requires the creation of a table variable. And the amount of code doubled. Thus, CTE expressions are the best solution for a recursive tree traversal in MS SQL. Tags: SQL, SQL ### Register Json data in FastReport.NET URL: https://www.fast-report.com/pt/blogs/register-json-net If you need to register Json as data source in FastReport.NET, this can be done through the registration of business objects. For parsing json you need to describe the data scheme in the C# classes, for example: ``` public class Product { public string Name { get; set; } public double UnitPrice { get; set; } }   public class Category { public string Name { get; set; } public string Description { get; set; } public List Products { get; set; } }   string json = "..."; // your json   List categories = JsonConvert.DeserializeObject>(json); // using the Newtonsoft.Json library for deserialization   Report report = new Report(); report.Load(@"C:\report.frx"); report.RegisterData(categories, "Categories"); ``` If you do not know the scheme or if it is changing during the work of the program, it can be generated dynamically. For this we use the library JSON C# Class Generator, you can download it from https://jsonclassgenerator.codeplex.com . Code to generate C# classes: ``` string json = "..."; // your json   if (json.StartsWith("[")) // if json is an array, then it would be better if we name it ``` ``` { json = "{\"Data\":" + json + "}"; // Under this name the data will be displayed in designer, so you can add multiple data sources ``` ``` }   JsonClassGenerator gen = new JsonClassGenerator() { Example = json, UseProperties = true, Namespace = "__JSON__", MainClass = "__JSON__", };   string source = ""; using (StringWriter sw = new StringWriter()) { gen.OutputStream = sw; gen.GenerateClasses(); sw.Flush(); source = sw.ToString(); } ``` ``` As a result we obtain the generated classes in a string. Now we need to access them from the code; in order to do this compile them using CSharpCodeProvider and get Type: ``` ``` Type type = null; using (CSharpCodeProvider compiler = new CSharpCodeProvider()) { CompilerParameters parameters = new CompilerParameters() { GenerateInMemory = true, }; CompilerResults results = compiler.CompileAssemblyFromSource(parameters, source); type = results.CompiledAssembly.GetType("__JSON__.__JSON__"); } ``` Note: This example shows a compilation in the current AppDomain. This means that it can not be unloaded from memory, and each compilation will eat off memory. To avoid this, you can use CSharpCodeProvider in another AppDomain. Deserialize json using the generated classes. The easiest way to do this is to use the library Newtonsoft.Json; You can get it through NuGet with the command "Install-Package Newtonsoft.Json". ``` object obj = JsonConvert.DeserializeObject(json, type); ``` ``` Now we have objects, so let's register them in FastReport.NET: ``` ``` PropertyInfo[] properties = type.GetProperties();   Report report = new Report(); report.Load(@"C:\report.frx");   foreach (var prop in properties) { report.RegisterData((IList)prop.GetValue(obj, null), prop.Name); } ``` So now you can run designer and see the results. Tags: .NET, .NET, FastReport, FastReport ### Relatório de Evento.Calc Personalizado - pré-processamento dos dados de entrada URL: https://www.fast-report.com/pt/blogs/event-pre-processing-input-data Summary: Vamos dar uma olhada mais de perto em como o Relatório de Evento - processamento preliminar de dados de entrada funciona no FastReport .NET. Encontre mais dicas úteis e artigos em nosso blog. Vamos dar uma olhada mais de perto em como o Relatório de Evento - processamento preliminar de dados de entrada funciona no FastReport .NET. Encontre mais dicas úteis e artigos em nosso blog. Vamos dar uma olhada mais de perto em como o Relatório de Evento - processamento preliminar de dados de entrada funciona no FastReport .NET. Encontre mais dicas úteis e artigos em nosso blog. New CustomCalc event for the Report object is called when evaluating an expression in an object or when you receive data back from the data source. So we can use this event to intercept the data and spoofing. When this can be useful? For example, when you need to filter the values in the incoming data or to replace any row. Let's look at an example. Сreate a simple WindowsForms application. Add the data source to the project, and the DataSet component. Also, place the component Report on the form. In the drop-down menu of the Report component, select the item “Select Data Source”: And choose our data source. Now, select the item “Design Report” from the same menu. To demonstrate, I added a couple of fields from the Employee table: For interest's see how the report looks now: Save the report and close the Report Designer. Add a button to the form. And click event for it: ``` private void Run_Click(object sender, EventArgs e)   {   report1.Load("D://Reports//Simple.frx");   report1.Prepare();   report1.ShowPrepared();   } ```  Here, everything is banal. I have uploaded created earlier report. Then prepared it and showed. And now, add the event CustomCalc for the report1 object: ``` private void report1_CustomCalc(object sender, FastReport.CustomCalcEventArgs e)   {   if (e.CalculatedObject.Equals("Roberto") )   {   e.CalculatedObject = "Test Name";   }   } ```  Here we intercept the needed data and replaces them. All data passes through CalculatedObject object during construction of the report. We catch the needed information "Roberto". And replace them. You can replace the entire data field. In this case, the condition would look like this: ``` if (e.Expression.IndexOf("employee.FirstName") != -1) ```  We wrote the code for the data substitution directly in the event handler CustomCalc. You can also assign the event handler directly in the code, for example in MVC application. With a convenient location in the application code we write: ``` report1.CustomCalc += FReport_CustomCalc; ```   And the event handler: ``` private void FReport_CustomCalc(object sender, CustomCalcEventArgs e)   {   if (e.Expression.IndexOf("Employees.FirstName") != -1)   {   e.CalculatedObject = "Test Name";   }   } ```  Run the application. Click the button and see our report: Let's compare this screenshot with one that was made earlier. As you can see, the first entry and the name of the employee Roberto put in a condition and has been replaced by Test Name. Thus, we have a way to replace some of the data in the report. It probably will be used at sophisticated users of FastReport. Tags: .NET, FastReport ### Relatório interativo com entrada prévia de dados em uma tabela URL: https://www.fast-report.com/pt/blogs/interactive-report-preliminary-data Summary: Falamos sobre a possibilidade de alterar os dados na tabela manualmente antes de criar um relatório usando um script do FastReport .NET. Falamos sobre a possibilidade de alterar os dados na tabela manualmente antes de criar um relatório usando um script do FastReport .NET. Falamos sobre a possibilidade de alterar os dados na tabela manualmente antes de criar um relatório usando um script do FastReport .NET. Como você já sabe, os relatórios FastReport.NET podem ter formulários de diálogo que são exibidos antes de criar um relatório. Graças a eles, você pode definir algumas variáveis de texto, booleanas ou numéricas. Essas podem ser campos de texto, tabelas, listas, listas suspensas, datas, caixas de seleção e até listas com caixas de seleção. Normalmente, os formulários de diálogo são usados para filtrar dados em um relatório ou para selecionar critérios para o comportamento de um relatório. Mas hoje vamos falar sobre outra possível aplicação do formulário de diálogo. Considere o caso em que você precisa inserir dados para o relatório antes de exibi-lo. Este é um caso bastante simples quando se trata de caixas de texto individuais, caixas de seleção, listas. Mas e se você tiver uma tabela com dados e quiser ajustar esses dados manualmente antes de criar um relatório? É aqui que vem em socorro o componente Grid   Esta é uma tabela com dados que podemos mostrar no formulário de diálogo antes de criar o relatório. Adicione um formulário de diálogo ao relatório e coloque nele o Controle Grid. Vamos chamar o menu de contexto para ele usando o botão direito do mouse: Selecione "Edit Collumns…" para adicionar colunas à tabela. Na janela de edição das colunas, adicionamos três: Name, Address, Phone.. Observe a propriedade Customers.Name. Aqui nos referimos a uma fonte de dados Customers que ainda não está no relatório. Mas vamos adicioná-lo mais tarde, usando um script. Para as colunas restantes, você precisa definir as propriedades apropriadas. O modelo de página de relatório é extremamente simples, apenas um objeto Table com três colunas. Vamos preenchê-lo no script do relatório. E agora, vamos adicionar um manipulador de eventos StartReport para o relatório: Script do relatório: ``` public class ReportScript { //Estrutura de dados para uma tabela public class Customer { public string Name {get; set; } public string Address {get; set; } public string Phone {get; set; }   public Customer(string name, string address, string phone) { Name = name; Address = address; Phone = phone; } }   private void _StartReport(object sender, EventArgs e) { //Lista de usuários List customers = new List(); //Preencha a lista de usuários com dados padrão customers.Add(new Customer("Kevin Smith", "221 52nd st, Brooklyn, NY, United States", "+12127599755")); customers.Add(new Customer("Justin Ford", "1556 Broadway, suite 416, NY, United States", "+12145678900")); customers.Add(new Customer("Amanda Stephenson", "455 Larkspur Dr., CA, United States", "+14105175379")); //Registramos a fonte de dados no relatório Report.RegisterData(customers, "Customers"); //Defina a fonte de dados na tabela Grid1.DataSource = Report.GetDataSource("Customers"); //Defina os campos nas células   Cell6.Text = "[Customers.Name]"; Cell7.Text = "[Customers.Address]"; Cell8.Text = "[Customers.Phone]"; } } ``` Nesse caso, definimos a estrutura de dados do cliente que será usada para exibir as linhas na tabela na caixa de diálogo e no relatório. Em seguida, criamos uma fonte de dados Customers e a preenchemos com instâncias Customer. Em seguida, registramos a fonte de dados resultante no relatório. Lembre-se de como definimos um campo de dados para colunas em um objeto Grid? Essa é a fonte de dados que nos referimos. Imediatamente, atribuímos campos da origem às células da tabela (objeto Table) no modelo de página. Agora, para o objeto Table na página do relatório, crie um manipulador de eventos ManualBuild. Esse evento é acionado depois que o objeto é criado na página e permite que você modifique uma tabela pronta para exibição. Dessa forma, podemos modificar o texto na tabela usando um script. ``` private void Table1_ManualBuild(object sender, EventArgs e) { //Definimos a fonte de dados DataSourceBase rowData = Report.GetDataSource("Customers"); //Inicializamos os dados rowData.Init(); //Exibimos a primeira linha de dados Table1.PrintRow(0); //Exibimos coluna Table1.PrintColumns(); //Loop em todas as linhas de dados para a font while (rowData.HasMoreRows) { //Exibimos a próxima linha de dados Table1.PrintRow(1); //Exibimos a coluna Table1.PrintColumns(); //pegue o seguinte registro da fonte rowData.Next(); } } ``` Aqui, preenchemos a tabela apenas percorrendo o loop em todas as linhas de dados. Vamos começar o relatório. A primeira coisa que veremos é uma janela de diálogo com uma tabela: Clique duas vezes na primeira célula para editar seu texto: Clique em OK e veja o resultado: Como você pode ver, nossos dados padrão foram alterados para os que inserimos manualmente. Dessa forma, você pode permitir que os usuários modifiquem os dados manualmente antes de criar um relatório. Este exemplo mostra o preenchimento da tabela com dados do script, mas nada impede que você preencha dados da fonte. Tags: .NET, .NET, FastReport, FastReport, Interactivity, Interactivity, Designer, Designer, Script, Script, Report, Report ### Relatórios de criptografia no FastReport .NET URL: https://www.fast-report.com/pt/blogs/encryption-reports-net Summary: Vamos dar uma olhada mais de perto em como funciona a criptografia de relatórios no FastReport .NET. Encontre mais dicas úteis e artigos em nosso blog. Vamos dar uma olhada mais de perto em como funciona a criptografia de relatórios no FastReport .NET. Encontre mais dicas úteis e artigos em nosso blog. Vamos dar uma olhada mais de perto em como funciona a criptografia de relatórios no FastReport .NET. Encontre mais dicas úteis e artigos em nosso blog. Reports encryption is a very useful option. In many enterprises, security policy provides for encryption of documents by transfer on external network. Of course, there is plenty of software to encrypt, but FastReport.Net allows you to do this by their own means. For the reports encryption it uses the AES algorithm that provides a high degree of protection. Encrypt the report in FastReport.Net presents no difficulties. Suffice it to set a password. Let's take a closer look: Create a report; Open the properties of the report in the menu Report -> Options. "Security" tab. As you can see, you can only set the password of the report. By setting the password of the report, we will automatically enable its encryption. Now, no one can open it without knowing the password. Set a password for the report. Save the report. Now try to open it in the designer. And we get a dialog box: You can open the report file if you know the password only. Unfortunately, encrypted reports are not yet available for the web. Therefore, the scope of these reports is limited. As mentioned earlier, the encryption can be used to exchange report files within the enterprise, or when working with customers. Tags: .NET, FastReport ### Relatórios e documentos PDF no Blazor URL: https://www.fast-report.com/pt/blogs/reports-and-pdf-in-blazor Summary: Criação passo a passo de um aplicativo web simples baseado na tecnologia Blazor Server. Criação passo a passo de um aplicativo web simples baseado na tecnologia Blazor Server. Criação passo a passo de um aplicativo web simples baseado na tecnologia Blazor Server. A Microsoft lançou recentemente uma plataforma web chamada Blazor. Este framework permite a criação de uma interface web interativa com a linguagem C#, além de HTML e CSS. O Blazor é altamente exigido e rapidamente ganha popularidade entre muitos desenvolvedores .NET. Atualizamos o pacote FastReport.Web, adicionando componentes Blazor para trabalhar com relatórios em aplicativos da web baseados na tecnologia Blazor Server. Esses componentes são usados em .NET Core 3.1 (e superior) e estão em status beta e serão aprimorados com o tempo. Abaixo, descrevemos a criação de um aplicativo da web simples baseado na tecnologia Blazor Server. Você pode baixar este projeto de demonstração no  meu perfil no GitHub . Para começar, criamos nosso novo projeto. Usaremos um modelo pronto para o Blazor Server. Você pode criar um projeto com Visual Studio (para Windows e para macOS) ou com .NET CLI. Em ambos os casos, precisaremos do .NET Core SDK (.NET SDK) versão 3.1 ou mais recente, que pode ser baixado do site oficial da Microsoft . Visual Studio 2019: Para .NET CLI, digitamos o seguinte comando no console (terminal): ``` dotnet new blazorserver ``` Vemos a seguinte estrutura de projeto: Para simplificar o projeto, excluímos alguns arquivos desnecessários do modelo criado: - toda pastas de dados - Pages\Counter.razor - Pages\FetchData.razor - Shared\SurveyPrompt.razor Adicionamos uma nova pasta chamada “Relatórios” à nossa pasta de projeto e colocamos todos os relatórios necessários nela. Para demonstração, adicionei relatórios simples que são aplicados durante a instalação da Versão de demonstração FastReport : Lista simples, complexo (detalhe mestre + grupo), sub-relatório, código de barras e gráfico. Além disso, para esses relatórios, precisamos de um banco de dados no formato xml - nwind.xml; nós o colocamos na mesma pasta. Além disso, é necessário que o conteúdo da pasta Relatórios possa ser copiado para a pasta de saída; para isso, selecionamos os arquivos relevantes no Visual Studio e “Copiar se mais recente” em Propriedades. Se não houver Visual Studio, você pode indicar manualmente esta propriedade no arquivo de projeto (.csproj): ``` PreserveNewest ``` Então, temos que adicionar os pacotes FastReport.Core e FastReport.Web ao nosso projeto. Isso também pode ser feito por meio do Visual Studio ou do .NET CLI. Vamos considerar ambas as variantes. Para adicionar um pacote ao Visual Studio, clique com o botão direito do mouse em nosso arquivo de projeto (csproj). Um menu de contexto é aberto; selecione “Gerenciar pacotes NuGet”. Procure os dois pacotes necessários. Lembre-se de que a marca “Incluir pré-lançamento” deve estar ativa. Para adicionar um pacote via .NET CLI, digite os seguintes comandos: ``` dotnet add package FastReport.Core --prerelease dotnet add package FastReport.Web --prerelease ``` Em seguida, devemos adicionar os namespaces usados por FastReport.Core e FastReport.Web na lista de namespaces de arquivos usados pelo Razor. Para isso, edite o arquivo _Imports.razor adicionando várias linhas: ``` @using FastReport@using FastReport.Web @using FastReport.Web.Blazor.Components ``` Cadastre o FastReport na configuração do nosso aplicativo. Para fazer isso, abra o arquivo Startup.cs e adicione a seguinte linha no final do método Configure: ``` app.UseFastReport(); ``` No arquivo Pages\_Host.cshtml, substitua a primeira linha pelo seguinte: ``` @page "/{ReportName}" ``` Isso é necessário para que a URL possa conter o nome do relatório que queremos abrir. Em seguida, editamos o menu de navegação Shared\NavMenu.razor para mapear todos os relatórios disponíveis na pasta Relatórios e para alternar entre eles. ``` @using System.IO  
 
  @code { // List of reports in folder private string[] reports = Directory.GetFiles( Path.Combine( Directory.GetCurrentDirectory(), "Reports")) .Where((filename) => Path.GetExtension(filename) == ".frx") .Select((filename) => Path.GetFileName(filename)) .ToArray(); } ``` Agora estamos chegando ao estágio principal. Edite o arquivo Pages\Index.razor para mapear relatórios com o componente principal do FastReport.Web.Blazor library – WebReportContainer . Digitando o seguinte: ``` @page "/" @page "/{ReportName}"     @code { [Parameter] public string ReportName { get; set; }   public WebReport MyWebReport { get; set; } }   ``` Adicionamos o componente WebReportContainer e atribuímos uma única propriedade a ele - um objeto da classe WebReport. Vamos criar outro arquivo com um nome semelhante - Index.razor.cs próximo ao arquivo Pages\Index.razor e escrever uma lógica simples nele: ``` using System.IO; using System.Data; using FastReport; using FastReport.Web;   namespace DemoBlazor.Pages { public partial class Index { const string DEFAULT_REPORT = "Simple List.frx"; readonly string directory;   DataSet DataSet { get; }   protected override void OnParametersSet() { base.OnParametersSet();   var report = Report.FromFile( Path.Combine( directory, string.IsNullOrEmpty(ReportName) ? DEFAULT_REPORT : ReportName));   // Registers the user dataset report.RegisterData(DataSet, "NorthWind");   // Create new WebReport object MyWebReport = new WebReport { Report = report, }; }   public Index() { directory = Path.Combine( Directory.GetCurrentDirectory(), Path.Combine("Reports"));   DataSet = new DataSet(); DataSet.ReadXml(Path.Combine(directory, "nwind.xml")); } } } ``` Esta lógica é responsável por registrar os dados, criando um objeto WebReport, atribuindo-lhe os parâmetros necessários, incluindo o próprio Relatório que baixamos ou do nome do relatório na linha de consulta ou usamos por padrão, definido na constante DEFAULT_REPORT. Após as manipulações menores restantes com o estilo e a formatação, obtemos um aplicativo da web que pode lidar com relatórios e oferece a oportunidade de criar documentos em vários formatos (PDF, Excel, Word e Open Office). Links úteis: - Documentação (en):  https://www.fast-report.com/public_download/docs/FRNet/online/en/ProgrammerManual/en-US/UsingBlazor.html - Online demo: https://fastreportwebblazor.azurewebsites.net/ - NuGet package: https://www.nuget.org/packages/FastReport.Web Tags: .NET, Visual Studio, FastReport, Core, C#, Blazor ### Relatórios Web Lazarus no Linux URL: https://www.fast-report.com/pt/blogs/web-reports-lazarus-linux Summary: Hoje temos o prazer de anunciar o lançamento dos componentes cliente-servidor para o Lazarus. Com a ajuda deles, você pode criar e configurar um servidor para construção remota e exportação de relatórios de acordo com suas necessidades, e tanto seu programa quanto um navegador da Web podem atuar como cliente. Hoje temos o prazer de anunciar o lançamento dos componentes cliente-servidor para o Lazarus. Com a ajuda deles, você pode criar e configurar um servidor para construção remota e exportação de relatórios de acordo com suas necessidades, e tanto seu programa quanto um navegador da Web podem atuar como cliente. Hoje temos o prazer de anunciar o lançamento dos componentes cliente-servidor para o Lazarus. Com a ajuda deles, você pode criar e configurar um servidor para construção remota e exportação de relatórios de acordo com suas necessidades, e tanto seu programa quanto um navegador da Web podem atuar como cliente. Hoje temos o prazer de anunciar o lançamento dos componentes cliente-servidor para o Lazarus. Com a ajuda deles, você pode criar e configurar um servidor para construção remota e exportação de relatórios de acordo com suas necessidades, e tanto seu programa quanto um navegador da Web podem atuar como cliente. Until recently, the task of generating reports through the Web from an application written in Lazarus was, let’s say, very creative. Today we are pleased to announce the release of client-server components for Lazarus in beta testing. They can be used to create and customise a server for remote report generation and exporting, while your program and Web browser can act as a client. Os componentes cliente-servidor no VCL FastReport foram implementados há muito tempo, mas antes disso não haviam sido adaptados para o Lazarus e operavam apenas no Rad Studio Delphi e C ++ Builder. O artigo será útil não apenas para aqueles que nunca os usaram antes, mas também para aqueles que desejam migrar seu servidor FR para o Linux, pois descreve honestamente todas as vantagens e desvantagens.  Também descobrimos o problema no próprio Lázaro e encontramos uma maneira de resolvê-lo. E agora vamos passar para o lado técnico do problema. Componentes cliente-servidor para relatórios no Lazarus Os componentes cliente-servidor no Lazarus estão disponíveis em dois sistemas operacionais: Windows e Linux (somente GTK2). Eles são implementados no pacote "fr6CS_lazarus.lpk", cujas dependências especificam o pacote de exportação e, portanto, o pacote de exportação localizado na pasta "Source/ExportPack" deve ser instalado antes da instalação. Após instalar o pacote de componentes cliente/servidor, você terá uma nova aba chamada "FastReport 6.0 Cliente/Server", onde encontrará 4 componentes: 1.  TfrxReportServer  é um componente de servidor, um servidor de relatório e um servidor HTTP dois em um. Seu campo mais importante é ConfigFileName, onde o caminho para o arquivo xml com as configurações deve ser especificado. Você pode especificar muitas configurações neste arquivo, estas são apenas as mais importantes delas: As próprias configurações do servidor, como porta e tempo de espera; Configurações para o motor FR, como desabilitar a execução de scripts; Grandes configurações de exportação; Configurações de cache, como duração do arquivo de cache, localização de armazenamento de cache ou você pode desativá-lo completamente; Configurações do sistema de registro; Configurações de conexão de banco de dados. Você pode ler mais sobre todas as configurações aqui.  2. TfrxServerConnection  é um componente cliente que contém informações para conexão remota ao TfrxReportServer, tais como: host, porta, número de tentativas de erro, tempo limite e assim por diante. 3. TfrxReportClient , um componente cliente, análogo ao TfrxReport, executa uma solicitação de relatório no servidor e a exibe no cliente. Ele usa esse componente TfrxServerConnection para obter informações sobre o servidor. Ele pode receber um relatório criado do servidor e exibi-lo ou exportá-lo internamente (na máquina do cliente). 4. TfrxHTTPClient  é um componente cliente projetado para receber arquivos arbitrários por meio do protocolo HTTP. Por exemplo, ele pode solicitar relatórios já exportados do servidor. Também fornecemos 3 aplicativos de demonstração: 1 server - imediatamente junto com relatórios e bancos de dados; 2 clients - simples e "avançado". Como um cliente "Avançado", você pode realizar testes multithread de suporte de carga pressionando o botão Iniciar: Gostaríamos também de lembrar que o cliente pode ser um navegador normal e a geração do site para o cliente web também pode ser configurada a seu gosto, enquanto o servidor de demonstração já está configurado para o cliente web. "Bottle neck" GTK2 Lazarus é um IDE de código aberto para várias plataformas. Mas esse "barril de mel", infelizmente, também tem uma "colher cheia de alcatrão". Começaremos com o mais desagradável, ou seja, o servidor Linux. GTK2 tem uma propriedade extremamente desagradável: single threading. Isso significa que mesmo que 2 programas desenhem figuras em seu BitMap em um ciclo infinito, GTK2 reduzirá tudo a 1 fluxo. Portanto, no total, esses 2 programas desenharão menos números do que um programa teria desenhado, porque parte do tempo será gasto na sincronização. Mas, neste caso, a sincronização é organizada sem nosso envolvimento. Agora considere, por exemplo, a situação em que as figuras são desenhadas por 1 programa em vários fluxos (cada fluxo tem seu próprio BitMap local). Neste caso você terá que criar um sistema de travamento em seu código, pois nos lembramos das threads únicas desta biblioteca. Mas essas não devem ser seções críticas comuns, mas seções críticas globais no nível GTK2. E quando um dos fios entra nessa função crítica, até a forma básica é suspensa até sair dela. O multithreading com imagens só pode ser organizado encontrando um componente de desenho semelhante que seja independente de GTK2 (por exemplo, neste exemplo com imagens), no nosso caso, outro componente não é adequado. Portanto, algumas operações de servidor são reduzidos a 1 stream. E por causa dessa característica, em particular, é melhor não usar diálogos, pois enquanto 1 cliente responder a um diálogo, a construção de relatórios para outros clientes ficará em pausa. Pode surgir a pergunta: "Por que você ainda precisa de um servidor de thread único?" e você estará parcialmente certo, pois é semelhante ao problema do "gargalo" em estradas onde a capacidade total da estrada é igual à capacidade da estrada no lugar mais estreito. Mas você estará apenas parcialmente certo. Apenas 3 grandes operações são reduzidas a um fluxo: upload de relatórios, construção e exportação. O recebimento e a transferência são realizados em paralelo e, graças ao sistema de cache dos relatórios construídos, em alguns casos não será necessário construí-los novamente. And this, in combination with a powerful server, will make this problem much less visible. It is also a problem only for Linux (GTK2), because this problem does not exist in Windows, and with the release of GTK3 (which already supports multithreading) in Lazarus it will disappear altogether. E isso, em combinação com um servidor poderoso, tornará o problema muito menos visível. Também é um problema apenas para Linux (GTK2), porque este problema não existe no Windows, e com o lançamento do GTK3 (que já suporta multithreading) no Lazarus ele desaparecerá por completo. O resto dos problemas são muitas vezes menores e até minúsculos em comparação com este. O que fica para trás Uma pequena parte da funcionalidade foi cortada durante a portabilidade, nomeadamente o CGI e o sistema de autorização. A rapidez com que os implementamos depende de solicitações reais de nossos clientes. Exportar para HTML para o Lazarus ainda está longe da perfeição, o cliente web pode e deve ser usado, pois é conveniente, mas os relatórios não serão exibidos perfeitamente. No entanto, você pode configurar o sistema para que o cliente web receba relatórios exportados não em HTML, mas em PDF, por exemplo. Afinal, a maioria dos navegadores modernos pode exibir arquivos PDF perfeitamente. Implementamos muito bem esse formato de exportação, que você pode ver por si mesmo. Correção de um erro na queue de mensagens do Lazarus 2.0.10 Também para aqueles que desejam utilizar nossos novos componentes no Linux, uma coisa importante a ser mencionada: encontramos um erro no bloqueio da fila de mensagens e não foi possível contorná-lo. Conseguimos entrar em contato com os programadores do Lazarus, eles já corrigiram esse problema e na próxima versão do Lazarus tudo funcionará de forma estável. Por enquanto, na versão 2.0.10 e posterior, esse bug terá que ser corrigido localmente. Não vai demorar muito tempo ou esforço, tudo o que você precisa fazer é adicionar 3 linhas a um dos arquivos do Lazarus e reconstruí-lo: 1. Abra a pasta onde o Lazarus está localizado (on Ubuntu, for example   "/usr/share/lazarus/2.0.10" ) 2. Abra o arquivo  ~/lcl/interfaces/gtk2/gtk2msgqueue.pp  in it. 3. Encontre a procedure:   procedure TGtkMessageQueue.Lock; 4. Nesta procedure, encontre a linha:  g_main_context_acquire(FMainContext); Este código ignora o fato de que a função g_main_context_acquire pode falhar. Portanto, substitua-o por: ``` repeat until g_main_context_acquire(FMainContext); ``` Ou seja, nós chamamos g_main_context_acquire em um ciclo até retornar True (concluído com êxito). Nós o convidamos a experimentar nossos novos componentes para o Lazarus, mas gostaríamos de lembrar que esta é uma versão beta e irá melhorar de acordo com suas necessidades. Em caso de erros, não deixe de nos escrever para o suporte. Tags: VCL, Lazarus, FastReport, Linux, WebReport, Delphi ### Release of a library for executing scripts in C# URL: https://www.fast-report.com/pt/news/release-fast-script-net Summary: We are pleased to announce the release of a cross-platform library for executing complex scripts in C# called FastScript .NET. We are pleased to announce the release of a cross-platform library for executing complex scripts in C# called FastScript .NET. We are pleased to announce the release of a cross-platform library for executing complex scripts in C# called FastScript .NET . Libraries for executing complex scripts provide the ability to dynamically generate and execute code, which can be useful in various scenarios such as developing plugins, creating user scripts, and so on. Working in Constrained Environments. FastScript .NET is built on the classic "lexer-parser-interpreter" model. It does not use compilation to machine code, allowing it to operate in environments where code generation is restricted (NativeAOT, iOS, WASM). Its performance is comparable to other solutions that use interpretation (such as Lua and JavaScript), although it is slower than compiled C# code. C# as a Scripting Language. FastScript .NET has full integration with the .NET platform and allows the use of all libraries, frameworks, and APIs. A unified code base in C# for scripts eliminates the need to maintain code in multiple languages. Compactness. The small size of the library (just 300 KB) makes it convenient to use even in resource-constrained projects without overloading the system. Since version 2025.1.21 FastScript .NET is part of the WinForms , WPF , WEB , Mono and Avalonia packages. Our library is also part of Ultimate.NET solutions with all source codes. Learn more ### Release of FastReport Business Graphics .NET 2025.2 URL: https://www.fast-report.com/pt/news/release-business-graphics-2025.2 Summary: If you are planning to port to .NET 9 or are already using it in your projects, you can be sure that our components are ready to work without any additional modifications! If you are planning to port to .NET 9 or are already using it in your projects, you can be sure that our components are ready to work without any additional modifications! We are pleased to announce the release of FastReport Business Graphics .NET ! In this update, we focused on increasing compatibility, improving support for modern platforms, and preparing for future versions of .NET. Compatibility with .NET 9 One of the key changes was the addition of the necessary attributes to the components to ensure full compatibility with .NET 9. This means that FastReport Business Graphics .NET now works correctly in the most latest environments, maintaining stability, performance and support for new features of the framework. If you are planning to port to .NET 9 or are already using it in your projects, you can be sure that our components are ready to work without any additional modifications! Updating supported .NET versions We have updated the list of target platforms, focusing on modern developer requirements: The main version is now considered to be .NET 8 – it is a stable and productive framework that is recommended for most projects. Support for .NET 6 is also retained for those who haven't upgraded yet but are using long-term support (LTS). Added support for .NET 9 – for developers who want to use the latest technologies and features. Thanks to these changes, FastReport Business Graphics .NET remains a relevant tool for working with business graphics in your projects. List of changes [Common] + added attributes to components required for compatibility with .NET 9; + .NET versions have been updated, the main version is now .NET 8, and supported target platforms include .NET 6, .NET 8, and .NET 9. ### Release of the New FastReport WPF Report Generator URL: https://www.fast-report.com/pt/news/release-fastreport-wpf Summary: The release of the first version of the new FastReport WPF report generator for document creation and development of custom business applications. The release of the first version of the new FastReport WPF report generator for document creation and development of custom business applications. We are excited to announce the release of the first version of the report generator for Windows Presentation Foundation - FastReport WPF . This high-performance library for creating reports and documents will assist you in developing business applications to meet various needs on the .NET Desktop and Web platforms. Create, view, and export detailed, visually appealing, interactive reports using a lightweight, versatile reporting tool. The report generator includes a powerful core for building reports, a user-friendly designer with a familiar interface, and a fast viewer of reports. FastReport WPF uses the SkiaSharp graphics engine for comfortable work with Windows. The WPF report generator also has an advanced code editor with Roslyn-based intelligence support. FastReport WPF is part of the unified FastReport ecosystem. Reports created in other products will seamlessly work in FastReport WPF and vice versa. NuGet packages via NuGet Server will be available for download in September. Now you can get WPF packages for your project using the installer from cpanel.fast-report.com . ### Release of the new version of FastReport Desktop 2022.1 URL: https://www.fast-report.com/pt/news/fastreport-desktop-2022.1 Summary: New Year's Eve update of FastReport Desktop to version 2022.1. New Year's Eve update of FastReport Desktop to version 2022.1. Updated version in FastReport Desktop 2022.1. Even more possibilities with FastReport. New features Added new "Advanced Matrix" object: Here is a list of its key features: row and column headers can contain groups and simple elements in any order. This allows you to build asymmetric reports; collapse buttons allow you to interactively manage the visibility of individual elements; sorting buttons allow you to interactively sort the matrix by the selected values, including the total values; Top N grouping allows you to display N values in the header, and group the remaining values into a separate element with the ability to expand; output of matrix headers in a stepped form; sorting headers by total values; a wide range of aggregate functions; support of custom aggregate functions; a wide range of special functions that allow you to get the values of totals, adjacent cells, as well as functions for calculating percentages; support for "Sparkline" and "Gauge" objects in data cells. Learn more about this object in the  documentation . Added  GS1 DataBar barcodes : Limited, Omnidirectional, Stacked and Stacked Omnidirectional. New properties: Config.CompilerSetting.ExceptionBehaviour and Config.CompilerSetting.Placeholder These properties allow you to customize the behavior when exceptions with invalid database field and table names occur. Config.CompilerSetting.Placeholder  is a string variable that is used to replace expressions with nonexistent names. By default, the value of this variable is an empty string. Config.CompilerSetting.ExceptionBehaviour  can have the following values: ExceptionBehaviour.Default  - default behavior, as it was before. If there are errors with invalid names, an error message is displayed. Report preparation is interrupted.  ExceptionBehaviour.ReplaceExpressionWithExceptionMessage  - invalid expressions are replaced by the text of the exception message. Errors are not shown at that. Report preparation is not interrupted.  ExceptionBehaviour.ShowExceptionMessage  - A message appears with the exception text, after pressing OK, report preparation continues. Incorrect expressions are replaced with the value of Placeholder variable.  ExceptionBehaviour.ReplaceExpressionWithPlaceholder  - invalid expressions are simply replaced with Placeholder. No error messages. Report preparation is not interrupted. Example with variable values:  ExceptionBehaviour = ExceptionBehaviour.ReplaceExpressionWithPlaceholder Placeholder = "NO DATA! Here you can see that the table has a field named FistName, but it's not specified correctly in the expression. And this is the result of preparing such a report. Previously it would have been impossible to prepare it due to errors. Improved translation quality of RTF into report objects. Conversion of RTF into report objects is optimized. RTF translation in table cells is added. Lots of bugs fixed. Exports improvements Implemented export of watermark to Word and RTF. Added SVG image scaling in export matrix. This improves the quality of exported images when exporting to Word and Excel. However, this increases the size of the output file. To use this feature, you must enable the "Print optimized" option when exporting. Export groups to single sheets in Excel 2007 has been implemented. Excel 2007 has added the ability to export a property that determines the size and location of the image when exporting. Now you can define how the image will behave in a cell when its position and size are changed. In doing so, the image can: move and resize together with the cell; move together with the cell, but not change its size; don't move or resize; Implemented the ability to hide or show grid lines when exporting to Excel 97. Added "Don't rotate landscape pages when printing" option in HTML export. Previously, we were forcibly rotating landscape-oriented pages when printing. The reason was that browsers cannot correctly print reports with pages both in portrait and landscape orientation. When you print such documents, pages with landscape orientation are cut off by the width of pages with portrait orientation. Now, you can adjust whether to rotate pages in landscape orientation or not. In addition, a bug where landscape-oriented pages were always rotated, even when there are no portrait-oriented pages, has been fixed. Complete list of changes [Engine] + added a new AdvMatrixObject; + added GS1 DataBar barcodes: Limited, Omnidirectional, Stacked and Stacked Omnidirectional; + added new properties: Config.CompilerSetting.ExceptionBehaviour and Config.CompilerSetting.Placeholder. These properties give the ability to customize the behavior when exceptions are thrown with incorrect names of database tables and fields; + added translation of RichObject inside TableCell; * reworked translation of RichObject into report objects; - fixed ShiftMode of translated RTF object; - fixed a bug with two parameters with the same name in report leading to System.ArgumentException; - fixed a bug with subreport containing multicolumn Databand; - fixed a bug with wrong band height calculation; - fixed a bug with displaying of hyperlinks when converting RTF to report objects; - fixed translation of RichObject if it set from a report script; - fixed a bug with private fonts added to Config.PrivateFontCollection; [.NET Core] + added support for .NET 6; - fixed incorrect search for Bold-Italic fonts; [Designer] + added verification of entered data in editing window of the QR code of SberBank; - fixed a bug with line break in text object editor; - fixed a bug when converting rdl reports containing matrices inside table cells; - fixed a bug with guide lines in the designer; - fixed a bug with Report tree window; - fixed a bug leading to System.NullReferenceException and crash of the designer during its launch when the Auto Guides option is enabled; [Preview] - fixed a bug with shifting the position of objects when switching the view of bands while editing a prepared page; [Exports] + implemented export of watermark to Word; + implemented export of watermark to RTF; + added "Don't rotate landscape pages when printing" option in export to HTML; + added the ability to change the name of the attached file when sending by Email; + add zooming of SVG images in export matrix; + added the ability to export a property that determines the size and position of the image when exporting to Excel 2007; + implemented ability to hide or show gridlines when exporting to Excel 97; + implemented export of groups on separate sheets to Excel; + implemented export of transparency level watermark images to Word; + implemented export image size of watermark to RTF; - fixed a bug leading to System.NullReferenceException when exporting to text, tables with rows count less then one; - fixed incorrect left padding of tables in export to Word; - fixed a bug with Wingdings font in HTML tags when exporting to HTML; - fixed a bug with export Wingdings and Webdings fonts to HTML; - fixed a bug with width of frame in export to PowerPoint; - fixed a bug with exporting objects with transparent fill to RTF; - fixed a bug with exporting objects with transparent fill to Word; - fixed a bug leading to System.OutOfMemoryException when exporting to PDF; - fixed incorrect line break display when exporting to HTML; - fix out of memory when export to PDF; - fixed bugs in export to PDF in non-Windows systems; - fixed a bug with exporting tables with more than 63 columns to Word 2007; - fixed a bug leading to a memory leak and System.OutOfMemoryException in PDF-export when the "Text in curves" option is enabled; - fixed a bug with line break in HTML-export; ### Release of the new version of FastReport for DBA 2022.1 URL: https://www.fast-report.com/pt/news/fastreport-dba-2022.1 Summary: New Year's Eve update of FastReport for DBA to version 2022.1. New Year's Eve update of FastReport for DBA to version 2022.1. Updated version in FastReport for DBA 2022.1. Even more possibilities with FastReport. New features Added new "Advanced Matrix" object: Here is a list of its key features: row and column headers can contain groups and simple elements in any order. This allows you to build asymmetric reports; collapse buttons allow you to interactively manage the visibility of individual elements; sorting buttons allow you to interactively sort the matrix by the selected values, including the total values; Top N grouping allows you to display N values in the header, and group the remaining values into a separate element with the ability to expand; output of matrix headers in a stepped form; sorting headers by total values; a wide range of aggregate functions; support of custom aggregate functions; a wide range of special functions that allow you to get the values of totals, adjacent cells, as well as functions for calculating percentages; support for "Sparkline" and "Gauge" objects in data cells. Learn more about this object in the  documentation . Added  GS1 DataBar barcodes : Limited, Omnidirectional, Stacked and Stacked Omnidirectional. New properties: Config.CompilerSetting.ExceptionBehaviour and Config.CompilerSetting.Placeholder These properties allow you to customize the behavior when exceptions with invalid database field and table names occur. Config.CompilerSetting.Placeholder  is a string variable that is used to replace expressions with nonexistent names. By default, the value of this variable is an empty string. Config.CompilerSetting.ExceptionBehaviour  can have the following values: ExceptionBehaviour.Default  - default behavior, as it was before. If there are errors with invalid names, an error message is displayed. Report preparation is interrupted.  ExceptionBehaviour.ReplaceExpressionWithExceptionMessage  - invalid expressions are replaced by the text of the exception message. Errors are not shown at that. Report preparation is not interrupted.  ExceptionBehaviour.ShowExceptionMessage  - A message appears with the exception text, after pressing OK, report preparation continues. Incorrect expressions are replaced with the value of Placeholder variable.  ExceptionBehaviour.ReplaceExpressionWithPlaceholder  - invalid expressions are simply replaced with Placeholder. No error messages. Report preparation is not interrupted. Example with variable values:  ExceptionBehaviour = ExceptionBehaviour.ReplaceExpressionWithPlaceholder Placeholder = "NO DATA! Here you can see that the table has a field named FistName, but it's not specified correctly in the expression. And this is the result of preparing such a report. Previously it would have been impossible to prepare it due to errors. Improved translation quality of RTF into report objects. Conversion of RTF into report objects is optimized. RTF translation in table cells is added. Lots of bugs fixed. Exports improvements Implemented export of watermark to Word and RTF. Added SVG image scaling in export matrix. This improves the quality of exported images when exporting to Word and Excel. However, this increases the size of the output file. To use this feature, you must enable the "Print optimized" option when exporting. Export groups to single sheets in Excel 2007 has been implemented. Excel 2007 has added the ability to export a property that determines the size and location of the image when exporting. Now you can define how the image will behave in a cell when its position and size are changed. In doing so, the image can: move and resize together with the cell; move together with the cell, but not change its size; don't move or resize; Implemented the ability to hide or show grid lines when exporting to Excel 97. Added "Don't rotate landscape pages when printing" option in HTML export. Previously, we were forcibly rotating landscape-oriented pages when printing. The reason was that browsers cannot correctly print reports with pages both in portrait and landscape orientation. When you print such documents, pages with landscape orientation are cut off by the width of pages with portrait orientation. Now, you can adjust whether to rotate pages in landscape orientation or not. In addition, a bug where landscape-oriented pages were always rotated, even when there are no portrait-oriented pages, has been fixed. Complete list of changes [Engine] + added a new AdvMatrixObject; + added GS1 DataBar barcodes: Limited, Omnidirectional, Stacked and Stacked Omnidirectional; + added new properties: Config.CompilerSetting.ExceptionBehaviour and Config.CompilerSetting.Placeholder. These properties give the ability to customize the behavior when exceptions are thrown with incorrect names of database tables and fields; + added translation of RichObject inside TableCell; * reworked translation of RichObject into report objects; - fixed ShiftMode of translated RTF object; - fixed a bug with two parameters with the same name in report leading to System.ArgumentException; - fixed a bug with subreport containing multicolumn Databand; - fixed a bug with wrong band height calculation; - fixed a bug with displaying of hyperlinks when converting RTF to report objects; - fixed translation of RichObject if it set from a report script; - fixed a bug with private fonts added to Config.PrivateFontCollection [Designer] + added verification of entered data in editing window of the QR code of SberBank; - fixed a bug with line break in text object editor; - fixed a bug when converting rdl reports containing matrices inside table cells; - fixed a bug with guide lines in the designer; - fixed a bug with Report tree window; - fixed a bug leading to System.NullReferenceException and crash of the designer during its launch when the Auto Guides option is enabled; [Preview] - fixed a bug with shifting the position of objects when switching the view of bands while editing a prepared page; [Exports] + implemented export of watermark to Word; + implemented export of watermark to RTF; + added "Don't rotate landscape pages when printing" option in export to HTML; + added the ability to change the name of the attached file when sending by Email; + add zooming of SVG images in export matrix; + added the ability to export a property that determines the size and position of the image when exporting to Excel 2007; + implemented ability to hide or show gridlines when exporting to Excel 97; + implemented export of groups on separate sheets to Excel; + implemented export of transparency level watermark images to Word; + implemented export image size of watermark to RTF; - fixed a bug leading to System.NullReferenceException when exporting to text, tables with rows count less then one; - fixed incorrect left padding of tables in export to Word; - fixed a bug with Wingdings font in HTML tags when exporting to HTML; - fixed a bug with export Wingdings and Webdings fonts to HTML; - fixed a bug with width of frame in export to PowerPoint; - fixed a bug with exporting objects with transparent fill to RTF; - fixed a bug with exporting objects with transparent fill to Word; - fixed a bug leading to System.OutOfMemoryException when exporting to PDF; - fixed incorrect line break display when exporting to HTML; - fix out of memory when export to PDF; - fixed bugs in export to PDF in non-Windows systems; - fixed a bug with exporting tables with more than 63 columns to Word 2007; - fixed a bug leading to a memory leak and System.OutOfMemoryException in PDF-export when the "Text in curves" option is enabled; - fixed a bug with line break in HTML-export ### Release the new version of FastCube .NET 2025.1 URL: https://www.fast-report.com/pt/news/fastcube-net-2025.1 Summary: Meet the new FastCube .NET 2025.1 release — a product relaunch with many key changes. Meet the new FastCube .NET 2025.1 release — a product relaunch with many key changes. Meet the new FastCube .NET 2025.1 release — a product relaunch with many key changes. This major update includes important architectural improvements, support for new platforms, and expanded capabilities for OLAP component developers. Removed dependency on  System.Drawing.Common library in FastCube.Core One of the key changes in the FastCube .NET 2025.1 release was the complete removal of the dependency on the System.Drawing.Common library in the FastCube.Core module. This step was taken to improve the library's compatibility with various platforms and improve performance. The graphical capabilities that were previously implemented through System.Drawing.Common have been reworked. Now FastCube .NET uses more modern and cross-platform approaches to working with data visualization and other interface elements. In particular, working with charts and visual components has been moved to separate libraries. This provides more flexibility in managing dependencies and using graphics in reports. In the new version, to specify a font in FastCube .NET styles, you must use the FastFont class instead of Font . The new font implementation does not contain any logic, and is only a container for data. The OLAP engine has been moved to the FastCube.Core library One of the most significant changes in the FastCube .NET 2025.1 release was the complete separation of the OLAP engine into a separate library - FastCube.Core . If you don't need visual components, you can add only the FastCube.Core library to your projects without including other parts of FastCube. This simplifies the setup and reduces the number of libraries to include. FastCube now has a modular architecture, where each component performs its specific task. The OLAP engine, visual components, charting and other parts of the library are in separate modules. For existing projects where visual components have been connected, no additional actions will be required. Added Linux and MacOS support for FastCube.Core.Web FastCube .NET 2025.1 release adds full Linux and MacOS support for web solutions using FastCube.Core.Web for the first time. This is an important extension of platform compatibility that allows OLAP applications to run on servers running different operating systems. Cross-platform development is available. Now FastCube.Core.Web can be used not only on Windows, but also on Linux and MacOS. This opens up the possibility of developing web applications with OLAP functionality on any server. Support for Linux and MacOS allows you to easily integrate FastCube into containers (e.g. Docker), which is important for scalable web applications and cloud solutions. You will be able to create universal web applications that work equally stably on different operating systems. ARM (64 bit) support for web components The FastCube .NET 2025.1 release adds support for the ARM64 architecture for web components. This compatibility extension allows you to run web applications using FastCube on devices with ARM64 processors, such as Raspberry Pi, servers, and cloud solutions on the ARM64 architecture. ARM64 support also makes it possible to use FastCube in low-power scenarios. Separate libraries for working with diagrams and dependencies from  FastReport.DataVisualization In the FastCube .NET 2025.1 release, the libraries responsible for working with charts and dependencies on  FastReport.DataVisualization were moved to separate FastCube.Mono.Chart and  FastCube.WinForms.Chart libraries. This simplifies dependency management and increases flexibility in application development. Previously, the functionality for creating diagrams was built into the main FastCube package, which made it mandatory even for projects where diagrams were not used. Replacement for the deprecated  IHostingEnvironment The FastCube .NET 2025.1 release replaces the legacy  IHostingEnvironment interface with the more modern IHostEnvironment . This allows the platform to adapt to current development requirements and prepare for future .NET 9 updates. XML documentation for all source codes In the FastCube .NET 2025.1 release, all source codes are now accompanied by XML documentation, which significantly improves the process of developing and integrating library components. We aim to improve the developer experience and improve code understanding. Online documentation Changing the script engine The FastCube .NET 2025.1 release includes an updated script engine. This change significantly improves scripting and increases system stability. The script engine for .NET 6 is now based on Roslyn. With the new  ReferencedAssemblies property in the FastReport.Olap.Utils.Config  static class, you can control the list of assemblies included in the script. Other breaking changes In the new release, due to the reworking of the engine architecture, some methods and types have become obsolete, they do not relate to OLAP functionality and have been removed. Full list Complete changelog + added a new demo application showing the ability to save and load a cube on the web;  + added xml documentation for FastCube.WinForms package; + added xml documentation for FastCube.Mono package; + added xml documentation for FastCube.Core.Web package; + added xml documentation for FastCube.Core package; + added xml documentation for FastCube.WinForms.Chart package; + added xml documentation for FastCube.Mono.Chart package; + added xml documentation for FastCube.Mono.Report package; + added xml documentation for FastCube.WinForms.BusinessGraphics package; + added xml documentation for FastCube.WinForms.Report package; + added XML documentation for the FastCube.Core.Web package; + added a new article describing the minimum system requirements; + added a new article to the documentation about descriptions of the packages; + added compatibility library with FastReport.DataVisualization for displaying FastCube.Winforms slice charts; + added compatibility library with FastReport.DataVisualization for displaying FastCube.Mono slice charts; + added demo application for Linux docker container; + added Linux support for FastCube.Core.Web package; * updated build scripts; * changed the way plugins registration, now plugins cannot be loaded twice automatically; * now FastCube.WinForms and FastCube.Mono are not independent packages, the core of the OLAP component is completely moved to FastCube.Core; * changed scripts in three cubes for compatibility with .NET 8 and .NET 9; * the structure of the documentation has been changed, some sections have been moved to the root; * the Extras folder that stores the compatibility package sources is now only available in the source version of the product; * updated EULA; & updated script builder for working with .net 6 and higher, this is a breaking change for all new FastCube .NET packages, if you used Variant, then instead of strict typing in the script you need to use only the name of the Variant class itself, since in some scripts there is a conflict between FastReport .NET and FastCube .NET in the script by default only a minimal set of libraries are included; & security fixes in the all demo apps; & security fixes in the chart component code for FastCube.WinForms; & security fixes in the chart component code for FastCube.Mono; - fixed the list of dlls to the script; - fixed an access modifiers of class members in FastCube.Core.Web; - removed and replaced dependency on deprecated IHostingEnvironment in FastCube.Core.Web; - fixed documentation title; - the Config class and its methods of the FastCube.Core.Web library are marked as deprecated, they are no longer used and do not affect the functionality of the component; - export to BIFF8 has been removed in the FastCube.Core package because this export requires a graphic context, if there are user requests, we will add BIFF8 export in plugins; - removed dependency of System.Drawing in FastCube.Core package, now the package can be used under Linux and MacOS. ### Release the new version of FastCube .NET 2025.2 URL: https://www.fast-report.com/pt/news/release-fastcube-net-2025.2 Summary: In this update, we focused on speeding up calculations, improving compatibility with .NET 9, and making changes easier to understand. In this update, we focused on speeding up calculations, improving compatibility with .NET 9, and making changes easier to understand. In this update, we focused on speeding up calculations, improving compatibility with .NET 9, and making changes easier to understand. Transition to invariant mathematics – up to 2 times faster! One of the most significant improvements was the abandonment of the "variant" type in favor of invariant mathematics. This change led to a significant acceleration of the make and recalculation of the cube, in some cases - more than 2 times! In addition, the cube now works correctly in various localizations, including non-standard ones (other than Latin), which expands its application for international users. Splitting changes by product FastCube .NET updates are now split into different products (WinForms, Web, Mono, and general FastCube .NET). This makes the update process more transparent – you can immediately see what changes affect the version you need. Fixed error reading stream from compressed file Previously, in some cases, compressed files were not processed correctly, which could cause data to load incorrectly or not load at all. Now this bug is fixed and the mechanism for working with compressed files is completely fixed. This means: Correct reading of data from archive files. More stable performance when loading large files. No errors in multithreaded mode, which is especially important for Web applications. If your project makes heavy use of data compression, we recommend upgrading to version 2025.2 to avoid potential issues. The file signature for the cube is now immutable (const instead of static) Previously, the file signature was declared as static , which allowed it to be changed during program execution. In some cases, this could lead to errors related to data structure changes or even file corruption. New version: The signature is now declared as const , making it immutable at the code level. The integrity of the file structure is guaranteed, regardless of changes in the program code. Improved stability of working with cube files in different environments, including Web and Mono. This is especially important for developers who work in multi-user and distributed systems. Compatibility with .NET 9 One of the key improvements was the addition of .NET 9 support. FastCube .NET is now fully compatible with the latest version of the platform, allowing you to take advantage of new features and improvements offered by Microsoft. This is an important update for developers who are port to .NET 9 or planning to use it in their projects. We would like to point out that support for new versions ensures stable operation of the product and integration with the latest technologies. Updating supported versions of .NET The main version is now .NET 8, which is the current standard for most enterprise projects. However, support for .NET 6 is retained, which is a long-term version with extended support. Additionally, as mentioned, .NET 9 support has been added, giving you flexibility in choosing the platform to work with FastCube .NET, whether it's stability (via .NET 6) or the latest features and performance improvements (.NET 9). Fixes and improvements in the demo example In the demo for the boolean format, a bug was fixed that caused the data to be displayed incorrectly. Now this format works correctly and does not cause errors, which improves the experience of users working with demo examples. In the "Sales by months" demo cube, there were previously situations where the headers were displayed incorrectly. Now this error has been fixed, and the field names are displayed correctly, ensuring accuracy and ease of working with data. Improving data serialization One of the important improvements is the optimization of the data serialization process. New methods have been added and properties have been set, due to which default values are now serialized less frequently. Reducing the amount of serialized data reduces the load on the system when saving and loading information. In addition, these changes contribute to improved performance, which will be especially noticeable when working with large data sets. List of changes FastCube .NET WinForms [Common] - fixed a bug where the stream from a compressed file was read incorrectly; * the file signature for the cube now has a const modifier instead of static and cannot be changed; FastCube .NET Web [Common] - fixed a bug where the stream from a compressed file was read incorrectly; * the file signature for the cube now has a const modifier instead of static and cannot be changed; FastCube .NET Mono [Common] - fixed a bug where the stream from a compressed file was read incorrectly; * the file signature for the cube now has a const modifier instead of static and cannot be changed; FastCube .NET [Common] + added compatibility with .NET 9; + .NET versions have been updated, the main version is now .NET 8, and supported target platforms include .NET 6, .NET 8, and .NET 9; * some properties are hidden from the user in the WinForms editor; * the "variant" type was replaced by variant mathematics; * improved serialization, added methods and set properties, due to which default values are serialized less often; - corrected display of the field name in the "Sales by months" demo cube; - fixed bug in demo example for boolean format. Other critical changes General changes for FastCube Web, FastCube WinForms and FastCube Mono Deprecated delegates. They were replaced with compatible ones, because the Variant type was removed and now boxing via Object  is used instead: Click here to expand FastReport.Olap.Slice.Value2Delegate(System.Int32, System.Int32, FastReport.Olap.Utils.Variant, FastReport.Olap.Utils.Variant, System.Int32) FastReport.Olap.Slice.ValueDelegate(System.Int32, System.Int32, FastReport.Olap.Utils.Variant, System.Int32) FastReport.Olap.Slice.SliceChartDataHandler(FastReport.Olap.Slice.Slice, FastReport.Olap.Slice.ChartParams, System.String[], System.String[], FastReport.Olap.Utils.Variant[], System.Int32) Deprecated fields. The following fields have been replaced with the corresponding properties: Click here to expand FastReport.Olap.Types.BoolValue -> public System.Boolean Value FastReport.Olap.Types.ByteValue -> public System.Byte Value FastReport.Olap.Types.DateTimeValue -> public System.DateTime Value FastReport.Olap.Types.DecimalValue -> public System.Decimal Value FastReport.Olap.Types.DoubleValue -> public System.Double Value FastReport.Olap.Types.FloatValue -> public System.Single Value FastReport.Olap.Types.IntValue -> public System.Int32 Value FastReport.Olap.Types.LongValue -> public System.Int64 Value FastReport.Olap.Types.SByteValue -> public System.SByte Value FastReport.Olap.Types.ShortValue -> public System.Int16 Value FastReport.Olap.Types.StringValue -> public System.String Value FastReport.Olap.Types.TimeSpanValue -> public System.TimeSpan Value FastReport.Olap.Types.UIntValue -> public System.UInt32 Value FastReport.Olap.Types.ULongValue -> public System.UInt64 Value FastReport.Olap.Types.UShortValue -> public System.UInt16 Value FastReport.Olap.Slice.MeasureCell -> public FastReport.Olap.Utils.Variant Value Deprecated methods. Replaced with compatible methods, but instead of the Variant type, data boxing is now used via Object , which allows passing not values with memory copying, but a reference to an object. Click here to expand FastReport.Olap.Types.BoolDTP -> public FastReport.Olap.Types.BoolValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.ByteDTP -> public FastReport.Olap.Types.ByteValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.CommonDataTypeProcessor``2 -> public System.Int32 AddNewVariantValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.CommonDataTypeProcessor``2 -> public T VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.DateTimeDTP -> public FastReport.Olap.Types.DateTimeValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.DecimalDTP -> public FastReport.Olap.Types.DecimalValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.DoubleDTP -> public FastReport.Olap.Types.DoubleValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.FloatDTP -> public FastReport.Olap.Types.FloatValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.IntDTP -> public FastReport.Olap.Types.IntValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.LongDTP -> public FastReport.Olap.Types.LongValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.Range -> public System.Boolean Match(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.Ranges -> public System.Boolean Match(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.SByteDTP -> public FastReport.Olap.Types.SByteValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.ShortDTP -> public FastReport.Olap.Types.ShortValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.StringDTP -> public FastReport.Olap.Types.StringValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.TimeSpanDTP -> public FastReport.Olap.Types.TimeSpanValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.UIntDTP -> public FastReport.Olap.Types.UIntValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.ULongDTP -> public FastReport.Olap.Types.ULongValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.UShortDTP -> public FastReport.Olap.Types.UShortValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Slice.AxisContainer -> public FastReport.Olap.Utils.Variant GetValue(System.Int32, System.Int32) FastReport.Olap.Slice.MeasuresContainer -> public FastReport.Olap.Utils.Variant GetMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Slice.MeasuresContainer -> public FastReport.Olap.Utils.Variant GetSecondAdditionalTotalMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Slice.Slice -> public System.Object Calc(FastReport.Olap.Types.Expression, FastReport.Olap.Utils.Variant) FastReport.Olap.Slice.Slice -> public FastReport.Olap.Utils.Variant CalcFuncForSelectedArea(FastReport.Olap.Types.AggregateFunction, FastReport.Olap.Types.Selection) FastReport.Olap.Slice.Slice -> public FastReport.Olap.Utils.Variant GetMeasureValue(System.Int32, System.Int32) FastReport.Olap.Slice.SliceField -> public FastReport.Olap.Utils.Variant GetUniqueValue(System.Int32) FastReport.Olap.Slice.SliceField -> public FastReport.Olap.Utils.Variant GetUniqueValueFromRecord(System.Int32) FastReport.Olap.Slice.SliceField -> public System.Int32 GetUniqueValueIdAndVariantFromRecord(System.Int32, FastReport.Olap.Utils.Variant&) FastReport.Olap.Slice.UniqueValuesFieldFilter -> public System.Void SetAllowedUniqueValueByValue(FastReport.Olap.Utils.Variant, System.Boolean) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValueByAppend(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 GetValueIdAtValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CommonUniqueValues -> public FastReport.Olap.Utils.Variant GetVariantByOrder(System.Int32) FastReport.Olap.Cube.CommonUniqueValues -> public FastReport.Olap.Utils.Variant GetVariantByValueId(System.Int32) FastReport.Olap.Cube.Cube -> public FastReport.Olap.Utils.Variant GetSourceValue(System.Int32, System.Int32) FastReport.Olap.Cube.Cube -> public FastReport.Olap.Utils.Variant GetSourceValue(System.Int32, FastReport.Olap.Cube.CubeField) FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, System.Int32, FastReport.Olap.Utils.Variant&) FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, FastReport.Olap.Cube.CubeField, FastReport.Olap.Utils.Variant&) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(System.Int32, FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(FastReport.Olap.Cube.CubeField, FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(System.Int32, FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(FastReport.Olap.Cube.CubeField, FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.DatePartUniqueValues -> public System.DateTime GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.DayOfWeekPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.DayOfYearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.DayPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.HalfYearPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.HourPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.MillisecondPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.MinutePartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.MonthPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.QuarterPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.SecondPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.TimePartUniqueValues -> public System.TimeSpan GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValueFromParentValueByAppend(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public T2 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 GetValueIdAtValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public FastReport.Olap.Utils.Variant GetVariantByOrder(System.Int32) FastReport.Olap.Cube.UniqueValues``2 -> public FastReport.Olap.Utils.Variant GetVariantByValueId(System.Int32) FastReport.Olap.Cube.WeekNumberPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.YearMonthPartUniqueValues -> public System.Int32 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.YearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColOffsetTotalValueForDims(System.Int32, System.String) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColOffsetValue(System.Int32) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColOffsetValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColRowOffsetValue(System.Int32, System.Int32) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColRowOffsetWithLevelValue(System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetRowOffsetTotalValueForDims(System.Int32, System.String) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetRowOffsetValue(System.Int32) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetRowOffsetValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetTotalValueForDims(System.String) FastReport.Olap.Code.Measures -> public FastReport.Olap.Utils.Variant GetDetailValue(System.Int32, System.String) Deprecated properties. The following properties have been replaced by using boxing instead of the Variant  type: Click here to expand FastReport.Olap.Types.BoolValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.ByteValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.DateTimeValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.DecimalValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.DoubleValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.FloatValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.IntValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.LongValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.Range -> FastReport.Olap.Utils.Variant HighRange { public get; public set; } FastReport.Olap.Types.Range -> FastReport.Olap.Utils.Variant LowRange { public get; public set; } FastReport.Olap.Types.SByteValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.ShortValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.StringValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.TimeSpanValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.UIntValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.ULongValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.UShortValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Slice.CalculateMeasureEventArgs -> FastReport.Olap.Utils.Variant Data { public get; public set; } FastReport.Olap.Slice.CalculateValueEventArgs -> FastReport.Olap.Utils.Variant Value { public get; public set; } FastReport.Olap.Slice.SliceField -> FastReport.Olap.Utils.Variant CurrentValue { public get; } FastReport.Olap.Code.ContainerFieldItem -> FastReport.Olap.Utils.Variant CurrentValue { public get; } FastReport.Olap.Code.Dimension -> FastReport.Olap.Utils.Variant CurrentValue { public get; } FastReport.Olap.Code.Dimensions -> FastReport.Olap.Utils.Variant DetailValue { public get; } FastReport.Olap.Code.Measure -> FastReport.Olap.Utils.Variant CurrentValue { public get; } Deprecated Types. The following types are deprecated and have been removed entirely because they are no longer used. FastReport.Olap.Utils.Variant FastReport.Olap.Types.IVariantable FastReport.Olap.Types.UnAssigned The new delegates replace the old ones, which used the Variant  type. FastReport.Olap.Slice.Value2Delegate(System.Int32, System.Int32, System.Object, System.Object, System.Int32) FastReport.Olap.Slice.ValueDelegate(System.Int32, System.Int32, System.Object, System.Int32) FastReport.Olap.Slice.SliceChartDataHandler(FastReport.Olap.Slice.Slice, FastReport.Olap.Slice.ChartParams, System.String[], System.String[], System.Object[], System.Int32) The new field replaces the existing ones, now boxing via  Object is used instead of the Variant  type. FastReport.Olap.Slice.MeasureCell -> public System.Object Value The new methods replaced the old ones, which used the Variant  type. Now, boxing is used instead, and data is transferred by reference, not by value, which has significantly increased the speed. Click here to expand FastReport.Olap.Types.Range -> public System.Boolean Match(System.Object) FastReport.Olap.Types.Ranges -> public System.Boolean Match(System.Object) FastReport.Olap.Slice.AxisContainer -> public System.Object GetValue(System.Int32, System.Int32) FastReport.Olap.Slice.MeasuresContainer -> public System.Object GetMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Slice.MeasuresContainer -> public System.Object GetSecondAdditionalTotalMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Slice.Slice -> public System.Object Calc(FastReport.Olap.Types.Expression, System.Object) FastReport.Olap.Slice.Slice -> public System.Object CalcFuncForSelectedArea(FastReport.Olap.Types.AggregateFunction, FastReport.Olap.Types.Selection) FastReport.Olap.Slice.Slice -> public System.Object GetMeasureValue(System.Int32, System.Int32) FastReport.Olap.Slice.SliceField -> public System.Object GetUniqueValue(System.Int32) FastReport.Olap.Slice.SliceField -> public System.Object GetUniqueValueFromRecord(System.Int32) FastReport.Olap.Slice.SliceField -> public System.Int32 GetUniqueValueIdAndVariantFromRecord(System.Int32, System.Object&) FastReport.Olap.Slice.UniqueValuesFieldFilter -> public System.Void SetAllowedUniqueValueByValue(System.Object, System.Boolean) FastReport.Olap.Cube.BaseDataReaderDataSet -> public System.Object GetValue(System.Int32) FastReport.Olap.Cube.BaseDataSet -> public System.Object GetValue(System.Int32) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValue(System.Object) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValue(System.Object) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValueByAppend(System.Object) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 GetValueIdAtValue(System.Object) FastReport.Olap.Cube.CommonUniqueValues -> public System.Object GetVariantByOrder(System.Int32) FastReport.Olap.Cube.CommonUniqueValues -> public System.Object GetVariantByValueId(System.Int32) FastReport.Olap.Cube.Cube -> public System.Object GetSourceValue(System.Int32, System.Int32) FastReport.Olap.Cube.Cube -> public System.Object GetSourceValue(System.Int32, FastReport.Olap.Cube.CubeField) FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, System.Int32, System.Object&) FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, FastReport.Olap.Cube.CubeField, System.Object&) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(System.Int32, System.Object) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(FastReport.Olap.Cube.CubeField, System.Object) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(System.Int32, System.Object) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(FastReport.Olap.Cube.CubeField, System.Object) FastReport.Olap.Cube.DatePartUniqueValues -> public System.DateTime GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.DayOfWeekPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.DayOfYearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.DayPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.HalfYearPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.HourPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.IBaseDataSet -> public System.Object GetValue(System.Int32) FastReport.Olap.Cube.MillisecondPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.MinutePartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.MonthPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.QuarterPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.SecondPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.TimePartUniqueValues -> public System.TimeSpan GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 GetValueIdAtValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValueFromParentValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValueFromParentValueByAppend(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public T2 GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Object GetVariantByOrder(System.Int32) FastReport.Olap.Cube.UniqueValues``2 -> public System.Object GetVariantByValueId(System.Int32) FastReport.Olap.Cube.WeekNumberPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.YearMonthPartUniqueValues -> public System.Int32 GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.YearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(System.Object) FastReport.Olap.Code.Measure -> public System.Object GetColOffsetTotalValueForDims(System.Int32, System.String) FastReport.Olap.Code.Measure -> public System.Object GetColOffsetValue(System.Int32) FastReport.Olap.Code.Measure -> public System.Object GetColOffsetValue(System.Object) FastReport.Olap.Code.Measure -> public System.Object GetColRowOffsetValue(System.Int32, System.Int32) FastReport.Olap.Code.Measure -> public System.Object GetColRowOffsetWithLevelValue(System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Code.Measure -> public System.Object GetRowOffsetTotalValueForDims(System.Int32, System.String) FastReport.Olap.Code.Measure -> public System.Object GetRowOffsetValue(System.Int32) FastReport.Olap.Code.Measure -> public System.Object GetRowOffsetValue(System.Object) FastReport.Olap.Code.Measure -> public System.Object GetTotalValueForDims(System.String) FastReport.Olap.Code.Measures -> public System.Object GetDetailValue(System.Int32, System.String) New properties have replaced or expand the deprecated ones: Click here to expand FastReport.Olap.Types.BoolValue -> System.Boolean Value { public get; public set; } FastReport.Olap.Types.ByteValue -> System.Byte Value { public get; public set; } FastReport.Olap.Types.DateTimeValue -> System.DateTime Value { public get; public set; } FastReport.Olap.Types.DecimalValue -> System.Decimal Value { public get; public set; } FastReport.Olap.Types.DoubleValue -> System.Double Value { public get; public set; } FastReport.Olap.Types.FloatValue -> System.Single Value { public get; public set; } FastReport.Olap.Types.IntValue -> System.Int32 Value { public get; public set; } FastReport.Olap.Types.LongValue -> System.Int64 Value { public get; public set; } FastReport.Olap.Types.Range -> System.Object HighRange { public get; public set; } FastReport.Olap.Types.Range -> System.Object LowRange { public get; public set; } FastReport.Olap.Types.SByteValue -> System.SByte Value { public get; public set; } FastReport.Olap.Types.ShortValue -> System.Int16 Value { public get; public set; } FastReport.Olap.Types.StringValue -> System.String Value { public get; public set; } FastReport.Olap.Types.TimeSpanValue -> System.TimeSpan Value { public get; public set; } FastReport.Olap.Types.UIntValue -> System.UInt32 Value { public get; public set; } FastReport.Olap.Types.ULongValue -> System.UInt64 Value { public get; public set; } FastReport.Olap.Types.UShortValue -> System.UInt16 Value { public get; public set; } FastReport.Olap.Slice.CalculateMeasureEventArgs -> System.Object Data { public get; public set; } FastReport.Olap.Slice.CalculateValueEventArgs -> System.Object Value { public get; public set; } FastReport.Olap.Slice.SliceField -> System.Object CurrentValue { public get; } FastReport.Olap.Format.CustomFormat -> System.String DefaultFormatValue { public get; public set; } FastReport.Olap.Code.ContainerFieldItem -> System.Object CurrentValue { public get; } FastReport.Olap.Code.Dimension -> System.Object CurrentValue { public get; } FastReport.Olap.Code.Dimensions -> System.Object DetailValue { public get; } FastReport.Olap.Code.Measure -> System.Object CurrentValue { public get; } New types: FastReport.Olap.Utils.VMath - replaced the Variant type, now mathematics occurs through invariant calculations using boxing and type conversion. FastReport.Olap.Types.IValueStruct``1 - interface for implementing own boxing type. FastReport.Olap.Types.SimpleCompareAction - enumeration for types of invariant mathematics actions. Changes for FastCube WinForms and FastCube Mono The deprecated field has been replaced with a technically compatible one. FastReport.Olap.Controls.SizingInfo -> public FastReport.Olap.Utils.Variant Data New field: FastReport.Olap.Controls.SizingInfo -> public System.Int32 Data ### Release the new version of FastReport Desktop 2022.3 URL: https://www.fast-report.com/pt/news/fastreport-desktop-2022.3 Summary: The release of version 2022.3 in FastReport Desktop took place. We have prepared many new functions for you: a report template validator, an editor of the FRX format. The release of version 2022.3 in FastReport Desktop took place. We have prepared many new functions for you: a report template validator, an editor of the FRX format. The release of version 2022.3 in FastReport Desktop took place. We prepared a lot of new features for you: validator to check the report template and get the list of errors, FRX format editor, report converter from StimulSoft, dialog page copying and much more. 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. 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] + implemented converter reports of 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; + added the feature to store JSON connection data using the StoreData property; + optimized speed in reports containing large amount of objects; * 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 Spooler; - 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 OS; - 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 RichText line spacing when RTF translated to report objects; - 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 assemblies 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; + add tooltip about right and bottom indents for guides and objects in designer; + added ability to select color of backlight intersecting objects in designer; * 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 subtable 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 export of locale in Word, PowerPoint, Rich Text, OpenOffice Write and OpenOffice Calc exports; + 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; * 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 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
, , tags. ### Report export in FastReport.OpenSource URL: https://www.fast-report.com/pt/blogs/report-export-opensource FastReport.OpenSource has gained a lot of interest among many developers. This is a great report generator with a long history. The open source version is FastReport.Core, which appeared at the beginning of 2018, but with some restrictions. Namely - curtailed exports. Thus, only the following formats are available to us: HTML, BMP, PNG, JPEG, GIF, TIFF, EMF. Of course, this is very little. The WebReport object displays the report in html format, so it was left. It is noteworthy that in the WebReport object, we can only save the report to the fpx preview format. Therefore, you will have to export the report from the application code. Let's have a look at how it will look like by example. I will describe in details the whole process of creating a demo application so that you can repeat if you wish. Create an ASP .Net Core 2.0 project. Next, we add packages from the NuGet repository: FastReport.OpenSource and FastReport.OpenSource.Web. Now you need to add the use of the FastReport libraries to the Startup.cs file Let's use the Index view. Change it like this: ``` @using (Html.BeginForm("Save", "Home", FormMethod.Get)) { }  
```  We will display the report in a picture format, as well as a link to download the report in HTML format. Initially, we will have a download button that initiates the formation of the report file html. Then comes the image. But the file for it will be generated on the fly from the GetImage method in the controller. Let's go to the HomeController.cs controller. We will need these libraries: ``` using System.IO; using System.Diagnostics; using Microsoft.AspNetCore.Mvc; using OpenSourceReportExport.Models; using FastReport; using FastReport.Export.Image; using FastReport.Export.Html; using System.Data; using Microsoft.AspNetCore.Hosting; ```  To set the correct file paths on the server, we use the IHostingEnvironment interface. To do this, we pass the object of type IHostingEnvironment to the controller's constructor. ``` public HomeController(IHostingEnvironment hostingEnvironment) { _hostingEnvironment = hostingEnvironment; }   private IHostingEnvironment _hostingEnvironment; ```  Index method is left unchanged: ``` public IActionResult Index() { return View(); } ```  Add a new method to get the report as an image. So we will export to image, for example, jpeg format: ``` public IActionResult GetImage() { // Creatint the Report object using (Report report = new Report()) { string path = _hostingEnvironment.WebRootPath; // Loading a report report.Load(path + "\\App_Data\\Master-Detail.frx"); DataSet data = new DataSet(); data.ReadXml(path + "\\App_Data\\nwind.xml"); //Open xml database report.RegisterData(data, "NorthWind"); //Register data source in the report report.Prepare();// Preparing a report   // Creating the Image export using (ImageExport image = new ImageExport()) { image.ImageFormat = ImageExportFormat.Jpeg; image.JpegQuality = 100; // Set up the quality image.Resolution = 100; // Set up a resolution image.SeparateFiles = false; // We need all pages in one big single file   using (MemoryStream st = new MemoryStream())// Using stream to save export { report.Export(image, st); return base.File(st.ToArray(), "image/jpeg"); } } } } ```  The second method is to save the export report in html format. Roughly speaking,this methods is pretty much the same as the previous one. ``` [HttpGet] public ActionResult Save() { using (Report report = new Report()) { string path = _hostingEnvironment.WebRootPath; // Loading a report report.Load(path + "\\App_Data\\Master-Detail.frx"); DataSet data = new DataSet(); data.ReadXml(path + "\\App_Data\\nwind.xml"); //Open xml database report.RegisterData(data, "NorthWind"); //Register data source in the report report.Prepare();// Preparing a report   // Creating the HTML export using (HTMLExport html = new HTMLExport()) { using (FileStream st = new FileStream(path + "\\App_Data\\test.html", FileMode.Create)) { report.Export(html, st); return File("App_Data/test.html", "application/octet-stream", "Test.html"); } } } } ```  In this method we got one html file. And this means that there will be no pictures in it. To save the html file with images, you need to save the files in a loop. An example of such an export can be found in the FastReport Open Source documentation: https://fastreports.github.io/FastReport.Documentation/Exporting.html . Let's run our application: The image contains all report pages, because we set the SeparateFiles property = false. Otherwise, you would have to display several files. Press the button Save report in HTML: And the file is automatically loaded by the browser. That's all. As you can see, the implementation of export in code in FastReport Open Source has no difference from FastReport.Core. Tags: Export, Export, FastReport, FastReport, Open Source, Open Source ### Report generator based on Avalonia UI: FastReport Avalonia URL: https://www.fast-report.com/pt/news/announcement-fastreport-avalonia Summary: We are announcing a new Avalonia UI-based report generator for cross-platform development on Linux, macOS and Windows systems. We are announcing a new Avalonia UI-based report generator for cross-platform development on Linux, macOS and Windows systems. This spring we will release a powerful library with a single user interface that allows you to embed the report generator in Linux, macOS and Windows applications using  Avalonia UI . Avalonia UI is a .NET-based framework actively used for developing cross-platform user interfaces. With a universal API for building applications, Avalonia supports all major platforms and runtimes and has its own unique interface. Thus, 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. Also in the new product, all formats for exporting the generated report are available - PDF, Excel, MS Word and many others. The library is fully backward compatible with FastReport WPF , FastReport .NET , FastReport Mono . It supports Avalonia UI, .NET 7 and .NET 8. And even before the official release, we invite you to try its features in a free demo! Learn more about FastReport Avalonia and try the free demo now. Download demo for Windows Download demo for Linux Download demo for macOS ### Report generator in Visual Studio Express Edition URL: https://www.fast-report.com/pt/news/report-generator-visual-studio Summary: Report generator with visual designer in Visual Studio Express Edition Report generator with visual designer in Visual Studio Express Edition Visual Studio Express Edition by Microsoft is a popular software development enveronment. It is popular also because it is free. By the way this tool as all that is free has some lacks. In particular complexities with using some add-onces, third party components. For example many popular component-packs for .NET have reporting tools in set. Often they use developers environment of Visual Studio (fully or partially) as the visual report development environment. But such way is impossible in Express Edition. FastReport .NET uses another approach. There are own fully independent report designer which can be called from application (from Winforms Edition and higher). That is Visual Studioàs envirinment does not need for visual design of reports.  read more... ### Report generator with visual designer in Visual Studio Express Edition URL: https://www.fast-report.com/pt/blogs/report-generator-visual-designer  Visual Studio Express Edition by Microsoft is a popular software development enveronment. It is popular also because it is free. By the way this tool as all that is free has some lacks. In particular complexities with using some add-onces, third party components. For example many popular component-packs for .Net have reporting tools in set. Often they use developers environment of Visual Studio (fully or partially) as the visual report development environment. But such way is impossible in Express Edition. FastReport.Net uses another approach. There are own fully independent report designer which can be called from application (from Winforms Edition and higher). That is Visual Studioàs envirinment does not need for visual design of reports. So - let's setup FastReport.Net to Visual Studio Express Edition: 1. Create new project in Visual Studio. 2. Right mouse click somewhere on the blank place on Toolbox. 3. Select "Add tab" in context menu. 4. Give the name for new tab, for example FastReports Components. 5. Right mouse click on blank place of our new tab . 6. Select Choose Items in the context menu. 7. Press button "Browse..." Find and set FastReport.dll. It placed at the root folder of FastReport .NET. 8. Components will be shown on tab .NET Framework Components. Ypu can sort them by Namespace. All the components of FastReport .NET are placed on namespace FastReport. Check all needed components and press OK. Run report designer. Examle on C# Report report = new Report(); report.Design(); This is it. Tags: .NET, .NET, Visual Studio, Visual Studio, Express Edition, Express Edition, FastReport, FastReport ### Report generators family FastReport brief review URL: https://www.fast-report.com/pt/blogs/Report-generators-FastReport Summary: Describing FastReport .NET generator, its capabilities and advantages. Describing FastReport .NET generator, its capabilities and advantages. Describing FastReport .NET generator, its capabilities and advantages. Without reporting it is impossible to carry on business in any sphere of life. Bureaucracy is an irresistible part of human society. Whether it's steel plant or a school facultative - reports are needed everywhere: accounting, statistical, operational. Since the modern world strongly computerized - reports are also conducted electronically. Create reports in large quantities would be very difficult without special programs - report generator. FastReport report generator appeared in the early days of this kind of software, and became a real hit among Delphi programmers. And with the advent of version .NET Framework - it also became widespread among the adherents of the Microsoft platform. The name FastReport was created for a reason. This report generator is indeed one of the fastest in compiling complex reports. This can be said to be its main advantage over other competitors. As noted above, the FastReport report generator is designed for different platforms. In fact, these are different products with the same ideology and similar implementation. There are products to work with such frameworks as VCL, FMX, Lazarus, .NET , .Mono. FastReport features can be described for a long time, so we will consider the most important ones: The core is the engine of the report generator that allows you to create: Reporting from code  - thanks to FastReport's public library methods, you can easily create reporting objects and change their nature. In this way, you can create a complete report without a report designer. However, this needs to be understood on the basis of reporting principles; Multi-page report  - as the template is filled with data, the report is divided into pages. But you can create multiple templates - pages in a report. So you create essentially several reports within one; Web reports  - web reports are supported. Depending on the target platform, it can be a solution for ASP .NET (Core) or a Report Server for VCL. You will be able to view reports in a browser, go to the press and to perform exports in the available formats. In addition, it is possible to distinguish between access to reports on a report server (for VCL); Inheritance  - a mechanism that allows you to use a basic template in many reports. Thus, we can minimize the work of creating the same type of reports or reports with a corporate title; Cross-table  - the ability to use spreadsheets - a popular tool for data analysis Interactive reports  - reports that respond to user actions. For example, clicking on the item will result in appearance of detailing the table or hiding / opening list; Subreports  - the ability to embed one report to another. In fact, when placing an object Subreport on the page, it creates a pattern on a separate page. Number subreports are not limited to; Export - option to convert the report to one of the many popular formats: Adobe Acrobat (PDF); Rich Text; HTML; MHT; XML; Excel 2007; Excel 97; Microsoft Word 2007; Microsoft PowerPoint 2007; OpenOffice Calc; OpenOffice Writer; Microsoft XPS; CSV; DBF; Text; ZPL; Image (Jpeg, PNG, BMP, GIFF, TIFF, Windows metafile); XAML; SVG; PPML; PostScript; Json; LaTeX. Sending by Email  – the ability to send the report by email Report designer Interface  - a modern Ribbon interface is convenient for easy access to controls. This type of interface is used in Microsoft Office since 2007; Ability to embed in an application  - report designer made a separate program (library) that allows you to run it on its own, or to include in your custom application; Preview mode  - in the Report Designer, you can view reports in built form. This mode also allows you to export the report, print, send email; Master  – there are a lot of masters available in the designer, which accelerate the process of creating the report. For example, a new report wizard allows only a few steps to create the finished sample report with a data connection. A wizard for creating a data source - creates a connection to the database, and in a few clicks; Plug-ins  - the abilities of the report designer can be extended with plugins. Basically these are plugin - connectors for quick connection to the data source, but there are also plug-ins that add new objects to be placed in the report. Report. Template pages of bands  - the ideology of building a page report based on the Band - special containers for data, which are divided by purpose and have individual behavior. For example, band "Report Title" is displayed at the very beginning, at the top of the page only once. A Band "page title" appears at the top of each new page, but it is below the title on the first page of the report. Also band exists for the data output are repeated for each entry in the table, band groups, and other cellar band; Functions and variables  - in the report, you can use a variety of built-in and user-defined functions for data transformation, as well as variables. Variables can get values from the outside report that allows you to control the logic of the report from the user application; User form - before you build a report, you can deduce a user form, or several in a row. These forms are needed to determine the value of report variables, or to set the conditions for data filtering; the report has a built-in script that allows you to access any of the report's objects and properties. This means you can do everything with the report: filter the data, change the logic of data output, convert data, add and delete objects, and more; XML format  - the report template is an XML format, although it is extended. In this way, you can easily find the direction in the report template, when you browse through the familiar markup language in the text editor; In conclusion, we can say that due to the wide toolkit, multi-platform and the presence of a script built into the report, FastReport report generator can satisfy almost all user requests and are a universal solution for a wide range of tasks in the field of electronic document management. Tags: .NET, .NET, VCL, VCL, FMX, FMX, Lazarus, Lazarus, FastReport, FastReport, ASP.NET, ASP.NET, Core, Core, C#, C#, Report, Report, .NET5, .NET5 ### Report on entire web page URL: https://www.fast-report.com/pt/blogs/report-entire-web-page In previous articles, we discussed how to create a web report. And it looked like this: Agree that not very attractive looks. Scroll bars, a small display area of the report. But it is possible to stretch a report on the entire page. To do this, set the properties of an object WebReport1 SinglePage how true. This means that the report will be displayed without page breaks. Change the Width and Heigh to 100%. Thus we get a report on a single page, stretched to the entire available width and height of the page. Since the report has only one page, you can hide the toolbar above. To do this, ShowToolbar property is set to false. As you can see, the page of the report does take 100% of the available space. You can stretch the contents of the report on the entire page, if required. We use the property AutoWidth of WebReport object. If you enable it, the cells of the table will be automatically stretched to the desired width to fill the area of the report page. Moreover, when the browser window is resized, the width of the cell will be adjusted to display all the data. But for this property must disable another - Layers. This report will be exported to a HTML as tabular. Now let's see how the report changed: And so, if you resize the window: So, using the properties of the object WebReport you can easily improve the appearance of the Web report. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### Report script security URL: https://www.fast-report.com/pt/blogs/report-script-security Summary: Talking about the special tools for protecting your script on FastReport .NET, FastReport .NET Core, FastReport Mono and FastReport Open Source Talking about the special tools for protecting your script on FastReport .NET, FastReport .NET Core, FastReport Mono and FastReport Open Source Talking about the special tools for protecting your script on FastReport .NET, FastReport .NET Core, FastReport Mono and FastReport Open Source FastReport .NET  supports calculation of expressions for displaying values in the desired form, or any object visibility conditions. It is also possible to process events for each object of the report, e.g., before printing it. Event handlers are placed in a report script that supports C # and VB.NET languages. In addition to processing events, the script can contain almost any calculations or actions that can generate the necessary data or change the report behavior, as is required by the developer of the report template. Before building the program in the report script language, the report generator takes into account all expressions, functions, and calls to parameters in the report. Then the program is combined with the script that the report template developer had written. The resulting script is compiled and loaded as a library into the application that works with the report generator. When you run reports in web applications, you can edit them using the Online Designer . Editing is carried out using a browser, the edited report is sent to the server and then can be built there. While reports are edited by trusted developers and run in an isolated environment, the ability to use scripts in reports gives you freedom and almost unlimited possibilities for data processing and visualization. Editing and execution is under control. As soon as the possibility of general access to editing reports through the browser and Online Designer appears, the question of the building reports security on the server arises. It becomes possible to inject malicious code into script and report expressions. To prevent the execution of malicious code in the script and report expressions when working on the web, special security features have been added in FastReport .NET 2020.3.22 . The changes concern FastReport .NET, FastReport .NET Core, FastReport Mono and FastReport Open Source. Security features are active by default, but developers can change or disable them as needed in their applications. New properties and methods: bool FastReport.Utils.Config. EnableScriptSecurity – enables or disables checking of the report script. Works only when reports are running in web applications (FastReport.Utils.Config.WebMode == true). This property is set True by default (enabled). event FastReport.Utils.Config. OnEnableScriptSecurityChanged – the event is triggered when EnableScriptSecurity has been changed. Can be used for additional security controls. FastReport.Web.WebReport. SetScriptSecurity (IScriptChecker scriptChecker) - Installs a custom implementation of a verification method that overrides the built-in security controls. ScriptSecurityProperties FastReport.Utils.Config. ScriptSecurityProps - parameters for configuring the script security check. Is set NULL if a non-web application is running. (FastReport.Utils.Config.WebMode == false). bool FastReport.Utils.Config.ScriptSecurityProps. AddStubClasses – enables or disables adding stub classes for the script. This property is set True by default (enabled). Not overridden by setting your own SetScriptSecurity handler (see above). event FastReport.Utils.Config.ScriptSecurityProps. OnStopListChanged – the event is called when the StopList has been changed. Can be used for additional security controls. string[] FastReport.Utils.Config.ScriptSecurityProps. StopList - a list of keywords that should not be used in the report script. Contains a default list of words. FastReport.Utils.Config.ScriptSecurityProps. SetDefaultStopList() - sets the default value of the StopList (discards changes). The developed report script protection complex allows to minimize the threat of malicious code injection and its execution on the server side. It is necessary to remember that even the use of built-in report script security controls does not provide one hundred percent protection against the injection of malicious code into the saved templates. Therefore, we strongly recommend keeping access logs in web applications and allowing a limited number of privileged users to edit report templates.  Tags: .NET, .NET, Core, Core, Open Source, Open Source, Script, Script ### Report validation feature in FastReport .NET and Mono URL: https://www.fast-report.com/pt/blogs/validation-feature-net-mono Summary: Test our new report validator to check object configurations in the FastReport designer.NET and FastReport Mono. Test our new report validator to check object configurations in the FastReport designer.NET and FastReport Mono. Test our new report validator to check object configurations in the FastReport designer.NET and FastReport Mono. The "Validation" window has been added to the FastReport .NET designer and FastReport Mono, which will display errors and warnings.  Warning - Unwanted object configuration that may cause some graphical errors when exported or previewed. Errors - The object configuration will result in export errors or blocking when trying to build a report. Now the report is being checked for basic errors that occur during the creation of report templates: 1. Intersecting objects. 2. Objects that are partially or completely beyond the parent object. 3. Objects with zero height and width 4. Objects without name (property Name = ""). 5. Objects with the same name. To open the "Validation" window, go to the "View" tab, click on the "Panels" button and select "Validation" in the appearing list. When you click on a line with an error in the "Validation" window, the object related to this error will be highlighted in the designer. With the “Validation” window, users can easily find errors and omissions in their reports and avoid errors in exported documents or problems during the preview. Tags: .NET, Mono, FastReport ### Report with two data levels (master-detail) in Delphi/Lazarus by the example of FastReport VCL / FMX URL: https://www.fast-report.com/pt/blogs/master-detail-report-vcl-fmx Summary: FastReport's powerful "Multi-level Reports" feature allows you to collect reports from multiple tables. FastReport supports nesting up to 6 levels using the "Nested Report" object FastReport's powerful "Multi-level Reports" feature allows you to collect reports from multiple tables. FastReport supports nesting up to 6 levels using the "Nested Report" object FastReport's powerful "Multi-level Reports" feature allows you to collect reports from multiple tables. In this article I would like to tell you about such a powerful opportunity of FastReport as multilevel reports. Their structure can be compared to a tree – a trunk, large branches, thinner branches growing from them, and so on up to leaves – or with a company structure: divisions, subdivisions, employees. They are often called master-detail or master-subordinate and consist of several tables. One table contains a list of the main entities; another table bound with the first one contains a list of subordinate entities with a reference to the first table specifying which entity from the first table a certain entity from the second one is subordinate to, and so on. FastReport supports nesting of up to six levels (possibly more by using the Nested report object, but this will be described later). In real applications, one rarely has to print reports with large nesting of data; usually, 1–3 levels are enough. An example of building a master-detail report Let us consider creation of a two-level report. It will contain data from Customer and Orders tables. The first table is a list of customers; the second is a list of orders made by the customers. The tables contain the data of the following types: Customer: CustNo       Company 1221          Kauai Dive Shoppe 1231          Unisco 1351          Sight Diver Orders: OrderNo       CustNo       SaleDate 1003            1351          12.04.1988 1023            1221          01.07.1988 1052            1351          06.01.1989 1055            1351          04.02.1989 1060            1231          28.02.1989 1123            1221          24.08.1993 As one can see, the second table contains a list of all orders made by all companies. To get a list of orders made by a specific company, on should select the data from the table, for which the field CustNo is equal to the number of the selected company. The report built with these data will look like this: 1221 Kauai Dive Shoppe     1023 01.07.1988     1123 24.08.1993 1231 Unisco     1060 28.02.1989 1351 Sight Diver     1003 12.04.1988     1052 06.01.1989     1055 04.02.1989 Now we start making a report. We create a new project in Delphi and set for a form two TTable components, a TDataSource component, two TfrxDBDataSet components, and one TfrxReport component. Connecting data from the base to the report objects We set the components as follows: ``` Table1: DatabaseName = 'DBDEMOS' TableName = 'Customer.db' Table2: DatabaseName = 'DBDEMOS' TableName = 'Orders.db'   DataSource1: DataSet = Table1   frxDBDataSet1: DataSet = Table1 UserName = 'Customers'   frxDBDataSet2: DataSet = Table2 UserName = 'Orders'   ``` In the report designer, we connect our data sources in the Report|Data… window.  Add the 1st level data (master) and the 2nd level data (detail) bands to the page. From the data panel (on the right), we pull the table fields to the respective bands (master and detail). It will look like this: Attention – the 1st level data band must be located above! If it is located below the 2nd level data band, FastReport will inform of an error when a report is started. After starting we will see that the list of orders is the same for every customer and contains all records from the Orders table. This is because we did not switch on filtration of records in the Orders table. Let us return to our data sources. For the Table 2 component, we set the MasterSource = DataSource1 property. Thus, we set the master-subordinate connection. Now we have to set the condition of records filtration in the subordinate source. To do that, call the editor of the MasterFields property at the Table 2 component: We have to connect two CustNo fields in both sources. To do that, select the CustNo index in the list above, select the fields and click the Add button. The bunch of fields will be relocated into the lower window. After that, close the editor with ОК button. When a report is launched, FastReport will do the following. It will select the next recording from the main table (Customer) and set the filter to the subordinate table (Orders). Only the recordings which satisfy the condition Orders.CustNo = Customer.CustNo will be left in the table. That is, for each customer only the orders of that customer will be shown: Similarly, you may build reports with up to six data levels. Tags: VCL, VCL, FMX, FMX, Lazarus, Lazarus, FastReport, FastReport, Delphi, Delphi ### Reporting FMX URL: https://www.fast-report.com/pt/products/reporting-fmx Summary: Ein plattformübergreifender Satz von FMX-Komponenten zum Erstellen von Dokumenten basierend auf Embarcadero FireMonkey Ein plattformübergreifender Satz von FMX-Komponenten zum Erstellen von Dokumenten basierend auf Embarcadero FireMonkey Um conjunto de componentes FMX multiplataforma para criar relatórios e documentos com base no ambiente de desenvolvimento Embarcadero FireMonkey. Reporting FMX A cross-platform set of FMX components for creating documents based on Embarcadero FireMonkey Comprar Experimente de graça Documentação Lots of components A variety of elements are available for building reports in the designer: from text and images to mathematical formulas and 3D diagrams. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Safety Protect your templates and reports with strong data encryption. Adapt all source codes to suit your solutions. Source code This set of components includes FastReport source codes. Maximum convenience for companies wishing to adapt the code to their needs. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. Graphics core For creating graphical elements, rendering text, and managing graphic images, GDI+, D2D, and, of course, Quartz can be used. Ultimate VCL Learn more about Ultimate VCL Como instalar e usar FastReport FMX 2.8 para FmxLinux Como instalar e usar FastReport FMX 2.8 para FmxLinux. Guia rápido. Como instalar e usar FastReport FMX 2.8 para FmxLinux. Guia rápido. O que é FastCube e para que serve? Descrição do produto FastCube.Net. Lista de características. Exploring FastCube .NET and its possibilities ### Reporting FMX - FAQ URL: https://www.fast-report.com/pt/faqs/reporting-fmx Summary: Explore reporting solutions in FMX with FastReport and get tips on how to enhance your reports. Explore reporting solutions in FMX with FastReport and get tips on how to enhance your reports. Is the product compatible with the UniGUI framework? Yes, our product is compatible with the UniGUI framework Is there support for macOS? Yes, there is support for Windows, macOS, and Linux Which IDE versions does FastReport FMX support? From the Delphi XE2 version to the current version. Is there support for Lazarus? The FMX framework does not support Lazarus. If you need to create reports in Lazarus, our FastReport VCL as a package **[Reporting Lazarus](https://www.fast-report.com/products/reporting-lazarus)** is perfect for you. Is there support for Linux? Support is available with the FMXLinux framework. For more information, see **[How to install and Use FastReport FMX 2.8 for FmxLinux](https://www.fast-report.com/blogs/install-fmx-linux)** Is the product compatible with the FMXLinux framework? FastReport FMX supports the FMXLinux framework. For more information, see **[How to install and Use FastReport FMX 2.8 for FmxLinux](https://www.fast-report.com/blogs/install-fmx-linux)** ### Reporting Lazarus URL: https://www.fast-report.com/pt/products/reporting-lazarus Summary: Ein universelles LCL-Komponentenset mit Quellcodes zum Generieren von Berichten und Dokumenten unter Lazarus für Linux und Windows Ein universelles LCL-Komponentenset mit Quellcodes zum Generieren von Berichten und Dokumenten unter Lazarus für Linux und Windows Um conjunto LCL universal de componentes com códigos fonte para geração de relatórios e documentos no Lazarus para Linux e Windows. Reporting Lazarus Um conjunto LCL universal de componentes com códigos fonte para geração de relatórios e documentos no Lazarus para Linux e Windows Comprar Experimente de graça Documentação Lots of components A variety of elements are available for building reports in the designer: from text and images to tables and interactive maps. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Safety Protect your templates and reports with strong data encryption. Adapt all source codes to suit your solutions. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. Graphics core GDI and GTK are used to create graphic elements, render text, and manage graphics. Source code This set of components includes FastReport source codes. Maximum convenience for companies wishing to adapt the code to their needs. Ultimate VCL Learn more about Ultimate VCL Localization and Language Switching in FastReport VCL Starting from version 2023.2, the localization mechanism in FastReport VCL has been significantly improved — it is no longer necessary to recompile in order to translate FastReport into other languages. FastReport VCL supports 40 languages for interface localization and allows you to change the language on the fly through menus or code, without recompilation. How to Set Up WSL 2 for Working with FastReport and FastCube In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. In this article, we will explore how to set up WSL 2 for working with FastReport and FastCube components in Lazarus for Linux. New S3 transport (Amazon) in FastReport VCL In this article, we will look at the new transport in S3 (Amazon) for FastReport VCL, which is an object storage of files and buckets. In this article, we will look at the new transport in S3 (Amazon) for FastReport VCL, which is an object storage of files and buckets. ### Reporting VCL URL: https://www.fast-report.com/pt/products/reporting-vcl Summary: A set of VCL components with full source codes for creating reports and documents A set of VCL components with full source codes for creating reports and documents Um conjunto de componentes VCL com códigos fonte completos para criação de relatórios de um designer visual com exportação para vários formatos de dados. Reporting VCL Um conjunto de componentes VCL com códigos fonte completos para criação de relatórios e documentos Comprar Experimente de graça Documentação Lots of components A variety of elements are available for building reports in the designer: from text and images to mathematical formulas and 3D diagrams. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Compatibility and integration Reporting VCL is part of the unified FastReport ecosystem on Delphi. Reports created in the Lazarus solution will work in the Reporting VCL and vice versa. Smooth transition from other solutions Our report generator instantly converts your reports from Quick Report, Report Builder, and Rave Reports in FastReport format. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. System.Drawing (GDI) The familiar System.Drawing with GDI graphics functions is used to create graphical elements, render text, and manage graphic images. Ultimate VCL Learn more about Ultimate VCL Visão geral detalhada das capacidades da biblioteca FastGrid Os usuários do FastReport VCL Ultimate provavelmente já notaram que apareceram 2 novos itens no instalador: FastEditors VCL e FastGrid VCL. Além disso, uma nova demonstração foi adicionada ao Demo Center — FastGrid VCL Demo. Uma visão geral da biblioteca FastGrid para VCL e Lazarus: visualização, edição e estruturação de dados. Classificação, filtragem, agrupamento, editores de dados práticos — tudo em um único artigo! Novo sistema de validação de relatórios no FastReport VCL No suporte técnico, fomos frequentemente solicitados a adicionar funcionalidade para verificação automática de relatórios, e fizemos isso no release 2026.2. No menu “Arquivo” do Designer de relatórios, apareceram os itens “Validar” (Validate) e “Configurações de regras de validação” (Validation Rule Settings). Agora é possível não apenas verificar relatórios, mas também gerenciar o conjunto de regras, incluindo as personalizadas. Neste artigo, explicaremos como funciona a verificação de relatórios, como configurá-la, como escrever regras personalizadas com exemplos e compartilharemos novidades interessantes. Neste artigo, explicaremos como funciona a verificação de relatórios, como configurá-la, como escrever regras personalizadas com exemplos e compartilharemos novidades interessantes. Uso de marcas d'água no FastReport VCL Nas versões recentes do FastReport VCL, foi adicionada a funcionalidade para adicionar marcas d'água. Uma marca d'água é uma marca incorporada em um documento eletrônico, imagem, vídeo, áudio ou outro conteúdo digital. Seu objetivo é confirmar a autoria, proteger contra cópia e rastrear a distribuição do arquivo. Neste artigo, abordaremos detalhadamente a criação e o uso de marcas d'água em relatórios do FastReport VCL. Um exemplo de uso de marcas d'água está disponível no Demo fornecido com o FastReport VCL. O artigo abordou detalhadamente a funcionalidade de adição de marcas d'água no FastReport VCL — tanto por meio da interface visual quanto programaticamente, com código Delphi e em scripts de relatórios. ### Representation for tabular data in Excel export URL: https://www.fast-report.com/pt/blogs/representation-tabular-excel One of the most demanded formats of report exporting is Excel file. It's the most popular format in accounting reporting. You can edit the report in Excel format using MS Excel tools further on. FastReport.Net provides the range of very interesting features of report export in Excel. Let's look at the window of report export settings to Excel 2007: So, we have the capability to export: all pages, current page, selected page. Now let’s consider the export options: • Wysiwyg - the precise location of the object after export, default true. If turned off, the border will be very "rounded". Empty rows and columns will be excluded. All this greatly changes the appearance of the report. You may disable this option if the appearance of the report does not really matter. Let us consider an example. Option Wysiwyg: And now with disabled option: Changed allocation of figures on the table columns. • Page breaks - page breaks when printing in accordance with the report pages, enabled by default. Let us consider an example. In the first case shows the excel page document when printing with the option Page breaks: In the second case shows the document with the disabled option Page breaks: Data only - just triggers the export of data band, is disabled by default Here’s how the document looks if the Data only property is disabled: The report looks the same as when you build it in the designer. Now we will do the export with enabled option Data only: As you can see just the bands with the data are displayed. There is no header, no footer. • Seamless table - allows you to remove from the export the footer bands and the following header band. This is designed to excel table looked like a uniform, with no breaks in the pages. The figure below shows a table broken by the band footer. Admit it, it’s not very convenient for an excel document. Now let's see what the table looks like, if you enable the option Seamless table: I want to say a few words about the development of reports. The report has a layered structure, and the Excel file - a tabular one. When exporting to Excel, FastReport converts layers into a table. If there is an intersection of cells in the report, the conversion algorithm may fail. Check the template to the intersection cells and the gaps between them, if you want to correct export to Excel. Tags: .NET, .NET, Export, Export, FastReport, FastReport, Excel, Excel ### Resolving Conflicts at FastReport.Net assemblies URL: https://www.fast-report.com/pt/blogs/resolving-conflicts-net-assemblies Conflicts often occur If you use different versions of the same program. There might be different reasons for this.  Often after you remove the previous version - the old libraries still remain. Or a new version of the product can be installed "on top" of the previous one without prior proper removal. For example,  a strong indication of a conflict is a watermark of the demo version in the licensed version. Sometimes all you have to do is to correct references to the new libraries. But the used libraries can be from the GAC. One of the ways to resolve this issue is to completely remove FastReport .Net and reinstall it. Let's consider the process of the complete removal FastReport.Net: Close Visual Studio; Use FastReport.Net uninstall program from the control panel; Make sure that the folder "C: \ Program Files (x86) \ FastReports \ FastReport.Net Trial" removed, or delete it manually; In Windows Explorer, open the folder “C: \ Windows \ assembly”, and find in the list and delete libraries: FastReport, FastReport.Bars, FastReport.Editor, FastReport.VSDesign, FastReport.Web; In Windows Explorer, open the folder “C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL”, find the folder names with FastReport, FastReport.Bars, FastReport.Editor, FastReport.VSDesign, FastReport.Web and remove them; Delete the folder with the configuration files “C: \ Users \ USER_NAME \ AppData \ Local \ FastReport”. Removing a configuration may also be useful to restore the original location of the control objects in FastReport Designer; Re-install FastReport.Net. Let's look at the other possible sources of the conflict. • Wrong uninstall. If you just delete the folder with the program, conflicts are inevitable. Remove FastReport .Net using the uninstall utility from the folder with the program. • Damage to the official msi installer files. Also, these files can be deleted by utilities of the garbage cleaning or by user. We have examined the typical conflicts that may arise when you use FastReport.Net. Now you know how to avoid them. Tags: .NET, .NET, FastReport, FastReport ### Respostas às perguntas frequentes sobre o formato FP3 URL: https://www.fast-report.com/pt/blogs/faq-fp3-format Summary: Vamos detalhar 11 perguntas comuns sobre o formato FP3: o que são esses arquivos, como eles diferem dos arquivos FR3, quais programas podem abri-los e como convertê-los em PDF. Vamos detalhar 11 perguntas comuns sobre o formato FP3: o que são esses arquivos, como eles diferem dos arquivos FR3, quais programas podem abri-los e como convertê-los em PDF. O formato FP3 costuma gerar dúvidas — especialmente entre usuários que precisam abrir, visualizar ou converter rapidamente um relatório preparado sem se aprofundar nos detalhes de desenvolvimento. Ao mesmo tempo, a confusão pode surgir logo de início: a extensão FP3 é utilizada em diferentes ambientes de software e pode se referir a tipos de arquivos completamente distintos. Por exemplo, desde relatórios do FastReport até projetos de planejamento 3D e até mesmo dados médicos. Reunimos as 11 perguntas mais frequentes encontradas pelos usuários e preparamos respostas claras que levam em consideração tarefas do mundo real. Você descobrirá como o FP3 difere de outros formatos (em particular, do modelo FR3), quais ferramentas podem ajudar você a trabalhar com esses arquivos, como convertê-los para PDF e outros formatos e como resolver problemas técnicos comuns. O formato FP3 costuma gerar dúvidas — especialmente entre usuários que precisam abrir, visualizar ou converter rapidamente um relatório preparado sem se aprofundar nos detalhes de desenvolvimento. Ao mesmo tempo, a confusão pode surgir logo de início: a extensão FP3 é utilizada em diferentes ambientes de software e pode se referir a tipos de arquivos completamente distintos. Por exemplo, desde relatórios do FastReport até projetos de planejamento 3D e até mesmo dados médicos. Reunimos as 11 perguntas mais frequentes encontradas pelos usuários e preparamos respostas claras que levam em consideração tarefas do mundo real. Você descobrirá como o FP3 difere de outros formatos (em particular, do modelo FR3), quais ferramentas podem ajudar você a trabalhar com esses arquivos, como convertê-los para PDF e outros formatos e como resolver problemas técnicos comuns. 1. O que é o formato FP3? Os arquivos com a extensão FP3 podem estar associados a vários programas, dependendo de seu conteúdo. No entanto, esse formato é mais comumente associado a relatórios preparados criados com as ferramentas do FastReport. Nesse caso, FP3 é um formato proprietário desenvolvido pela Fast Reports e utilizado para armazenar dados de relatórios previamente preparados para visualização, que podem ser facilmente transferidos ou salvos para análises posteriores. Esse arquivo FP3 contém: um relatório pronto para visualização, uma estrutura de dados, configurações de formatação, imagens e outros elementos adicionais de design. A principal característica do FP3 (em comparação com os modelos no formato FR3) é que o arquivo já está totalmente preparado e não requer uma conexão com o banco de dados de origem, um novo processamento dos dados ou os modelos de relatório originais. 2. Onde mais o FP3 é utilizado? Além das ferramentas do FastReport, a extensão FP3 pode incluir arquivos que contêm imagens tridimensionais para prototipagem, imagens de raios X, arquivos para impressão 3D e outros documentos médicos. No entanto, na maioria das vezes, trata-se simplesmente de uma coincidência de extensão de nome de arquivo, e não do uso de um formato de dados real. Geralmente, FP3 refere-se a restaurações da classe FP3 e aos implantes dentários correspondentes. Além disso, o formato FP3 é utilizado no projeto de estruturas arquitetônicas. Ele também é utilizado em programas baseados em componentes do FastReport que oferecem suporte automático a esse formato. Por exemplo, em sistemas CRM e ERP. 3. Quais programas podem trabalhar com o formato FP3 da Fast Reports? Para abrir e visualizar arquivos FP3 no formato FastReport, você pode usar um programa especial — FastReport Viewer . Este é um aplicativo gratuito desenvolvido para a visualização e impressão convenientes de arquivos FP3. Graças à sua interface intuitiva e ampla variedade de recursos, o Viewer permite trabalhar de forma eficiente com relatórios preparados sem recorrer a softwares complexos. Você pode saber mais sobre este aplicativo no artigo " Abrimos arquivos com a extensão FP3 usando o FastReport Viewer ". O formato FP3 também é compatível com o aplicativo FastConverter , que pode ser usado para converter esses arquivos para outros formatos populares. E, é claro, os arquivos FP3 podem ser abertos e visualizados usando componentes de software do FastReport, criando seu próprio projeto e aplicativo baseado neles em um ambiente de desenvolvimento (RAD Studio ou Lazarus). 4. Quais outros programas podem trabalhar com arquivos FP3? Também existem outros formatos de arquivo FP3 que não estão relacionados às ferramentas do FastReport: Arquivos de banco de dados criados no FileMaker Pro versão 3. Para converter esses arquivos para um formato compatível com versões mais recentes do programa, pode ser necessário usar versões intermediárias do FileMaker Pro. Plantas baixas e arquivos de visualização 3D de edifícios criados no FloorPlan 3D e no TurboFLOORPLAN, da IMSI Design. Em casos raros, arquivos com essa extensão podem ser arquivos de música proprietários do FP3 Player — um reprodutor de música para crianças. 5. Como os arquivos FP3 podem ser convertidos para outro formato? Para isso, você pode usar a ferramenta FastConverter . Mais informações sobre o processo de conversão e os formatos compatíveis podem ser encontradas no artigo " Como Abrir e Converter um Arquivo FP3 Usando o FastConverter .FP3 ". 6. Quais são as características específicas dos arquivos FP3 do FastReport? A principal característica dos arquivos FP3 do FastReport é que eles não são um modelo para descrever e posteriormente criar um relatório, mas sim um arquivo pronto para visualização e impressão.  Quando um arquivo FP3 está completo e todas as ações necessárias já foram realizadas:  as instruções de criação do relatório (formato FR3) foram concluídas,  os dados foram solicitados ao banco de dados e posicionados corretamente,  as expressões foram verificadas e calculadas,  e o conteúdo e os objetos internos foram distribuídos pelas páginas.  Tudo o que resta é carregar o relatório preparado em um programa adequado e, em seguida, visualizá-lo ou imprimi-lo. Se você precisar carregar ou salvar um arquivo FP3 usando o componente TfrxReport em seu aplicativo desenvolvido em um dos ambientes de desenvolvimento compatíveis com o FastReport (RAD Studio, Lazarus), use os métodos da propriedade TfrxReport.PreviewPages:  ``` function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean; procedure SaveToFile(const FileName: String); procedure LoadFromStream(Stream: TStream); procedure SaveToStream(Stream: TStream); ``` 7. Como um arquivo FP3 do FastReport pode ser convertido para PDF? Para isso, é conveniente usar um programa especial desenvolvido pela Fast Reports — FastConverter . O processo passo a passo para criar um documento PDF nesse programa executado localmente é simples e está descrito em detalhes no artigo " Como Abrir e Converter um Arquivo FP3 Usando o FastConverter .FP3 " article. Uma abordagem mais flexível e visual é usar o designer de relatórios e a janela de visualização do produto comercial FastReport VCL: Coloque os componentes TfrxReport , TfrxPDFExport e TButton no formulário. No manipulador de eventos OnClick do botão, carregue o arquivo FP3 no componente TfrxReport . ``` frxReport1.PreviewPages.LoadFromFile('C:\fr\Demo\PreparedReport.fp3'); frxReport1.ShowPreparedReport; ``` Na janela de visualização do relatório que será exibida, clique no botão mostrado no exemplo abaixo para iniciar a exportação para PDF. Como alternativa, você pode converter o relatório diretamente no código do aplicativo usando o componente TfrxReport. Mais informações sobre esses métodos podem ser encontradas nos seguintes artigos: Como fazer um PDF a partir do Delphi / C++Builder / Lazarus Trabalhando com PDF / A do FastReport VCL designer 8. Um arquivo FP3 do FastReport pode ser aberto em outro sistema de relatórios? Sim, mas não diretamente — são necessárias várias etapas. O FP3 é um formato desenvolvido pela Fast Reports, e não há garantia de que outro sistema de relatórios será capaz de interpretar corretamente todas as especificidades de sua estrutura interna. Para essas tarefas, é conveniente usar um formato intermediário. Por exemplo, PDF, CSV, XLS, XLSX, XML ou HTML — dependendo do conteúdo do seu relatório. Primeiro, verifique se o outro sistema (por exemplo, Crystal Reports ou JasperReports) é compatível com o formato selecionado. Em seguida, converta o arquivo FP3 para o formato necessário, conforme descrito no artigo mencionado no ponto 7. Por fim, abra o arquivo convertido no sistema de relatórios de terceiros. 9. Um arquivo FP3 do FastReport pode ser aberto online? No momento, essa funcionalidade não está disponível. Para abrir e visualizar arquivos FP3 no formato FastReport, você pode usar localmente um programa gratuito especial — FastReport Viewer . No futuro, poderá ser possível visualizar relatórios preparados online com base na solução em nuvem — FastReport Cloud . Importante: não use visualizadores online de FP3 de terceiros desenvolvidos por empresas que não sejam a Fast Reports, especialmente para relatórios que contenham informações confidenciais. Isso pode ser inseguro! 10. Estou carregando um arquivo FP3 usando o componente TfrxReport e recebendo a mensagem de erro «Class preparedreport not found» Muito provavelmente, você está chamando o método LoadFromFile não na propriedade PreviewPages , mas diretamente no componente TfrxReport. Você precisa usar um código como este: ``` frxReport1.PreviewPages.LoadFromFile('C:\MyReports\FileName.fp3'); ``` 11. É possível combinar programaticamente vários relatórios FastReport preparados no formato FP3 em um único relatório grande? Sim, isso pode ser feito usando duas instâncias do componente TfrxReport. Coloque dois componentes TfrxReport no formulário. Carregue o primeiro relatório no primeiro componente TfrxReport usando o método PreviewPages.LoadFromFile ou PreviewPages.LoadFromStream . Carregue o segundo relatório no segundo componente TfrxReport usando os mesmos métodos. Use o método a seguir para “mesclar” o segundo relatório com o primeiro: ``` frxReport1.PreviewPages.AddFrom(frxReport2) ``` Repita o procedimento para cada relatório subsequente. O artigo " Como combinar vários relatórios em um arquivo PDF no Delphi / Lazarus / C ++ Builder " descreve outra solução, igualmente útil. Conclusão O formato FP3 da Fast Reports é uma solução conveniente e confiável para armazenar dados que já estão preparados para visualização e não requerem acesso aos bancos de dados e modelos de origem. Com ferramentas como Viewer e Converter, você pode trabalhar facilmente com esses arquivos. Se necessário, você pode visualizar e editar formatos FP3 em seus aplicativos usando componentes do FastReport. Esperamos que nossas respostas tenham ajudado você a entender melhor o formato e a tornar o trabalho com relatórios preparados ainda mais fácil e simples. Tags: FastReport, Viewer, Report, Converter ### Resultado da pesquisa URL: https://www.fast-report.com/pt/search Resultado da pesquisa Resultado da pesquisa: "" Nada encontrado info@fast-report.com Vendas sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Endereço Alexandria, VA 22314 66 Canal Plaza, Ste 505 Produtos Comprar Demo Documentação Como desinstalar Licenças Produtos Comprar Demo Documentação Como desinstalar Licenças Apoio SLA de suporte Suporte online Perguntas Freqüentes Vídeo tutorial Fórum Artigos Notícia Apoio SLA de suporte Suporte online Perguntas Freqüentes Vídeo tutorial Fórum Artigos Notícia Companhia Sobre Identificação Revendedores Contacte-nos Companhia Sobre Identificação Revendedores Contacte-nos Política de privacidade Política de cookies © 1998-2026 Fast Reports Inc. Trustpilot Link copiado sucesso ### Results of Embarcadero's webinar URL: https://www.fast-report.com/pt/news/results-webinar-2012 Summary: Results of Embarcadero's webinar Results of Embarcadero's webinar As you know, on 7 F ebruary there was a webinar which was devoted to RAD Studio Reporting with FastReport.  Thank you everyone for participating! You can find a video from the webinar o n our Youtube channel . Go and subscribe to our  channel . Y ou can see a post ing about this webinar in Michael Philippenko ’s blog. ### Resumo de 2024 e planos para 2025 URL: https://www.fast-report.com/pt/news/recap2024-plans2025 Summary: Principais conquistas e mudanças em 2024: lançamentos de novos produtos, suporte a tecnologias modernas e muito mais. Principais conquistas e mudanças em 2024: lançamentos de novos produtos, suporte a tecnologias modernas e muito mais. Friends, this year has been eventful and productive for us! 📌 Key achievements Release of new products: we launched FastReport Avalonia – a tool for cross-platform work on reports for Windows, MacOS, and Linux. Changes in approach to product formation: we split the product content in a way where you do not have to buy unnecessary functionality. What changed for our products? For Delphi and Lazarus: Improved work with hierarchical data in FastReport for Delphi and Lazarus by adding the TfrTreeView component. Additional capabilities for working with maps were added by supporting the GeoJSON and TopoJSON formats. Improved digital signatures, added infinite table width, expanded barcode capabilities, and improved display accuracy and compatibility of PDF, HTML5, SVG, DOCX, and XLSX export filters. In the latest version, we have enhanced the capabilities of working with reports in complex scenarios and provided a higher level of integration with modern development environments, including RAD Studio 12.2. Next year, we plan to add new components, support for RFID tag EPC in ZPL, new transports, improved export filters, and much more. For .NET: We have abandoned the legacy .NET Standard 2.0 - 3.1 and .NET 5 compatibility layer in our libraries. Now the minimum supported .NET version is .NET 6, and the minimum supported framework is .NET Framework 4.6.2. With the latest version of the FastReport .NET library, FastReport Business Graphics .NET and FastCube .NET now support .NET 9. To do this, we abandoned binary serialization (BinaryFormatter). This year, we relaunched FastCube .NET , a library for working with OLAP cubes and operational analysis of big data. Now FastCube.Core.Web supports  Linux and MacOS. It opens up the possibility of developing web applications with OLAP functionality on any server. One of the key changes in the FastCube .NET 2025.1 release was the complete removal of the dependency on the System.Drawing.Common library in the FastCube.Core module. This was done to increase the library compatibility with various platforms and improve performance. The FastReport Online Designer visual template designer has also changed. In 2024, a new "SparkGraphic" object was added, it became possible to create guidelines on the page and a new component menu was implemented. When editing the report code, the Intellisense functionality was added, which provides automatic code completion and syntax hints, which allows users to write code faster and more accurately directly in the web interface. In 2025, we plan to add a new plugin allowing you to convert user reports from MS Word to .frx. In addition, a connection to Google Sheets will be implemented in the future. FastScript .NET for executing scripts will be released in the first half of the year. The new library will contain a compilation technology that allows you to convert intermediate code into machine code for a specific platform (Native AOT). We are striving to create a complete ecosystem of products for different platforms, so next year we will also work on their integration with each other. For service solutions: In FastReport Cloud , we improved the automatic task execution system, added printing from the browser, and developed a font storage, finalized the SDK. Improved the usability and speed of the API Added new API methods for working with the cloud, allowing you to perform familiar operations faster and more conveniently: bulk copying, deleting, and moving files; a new upload method that allows you to upload large files and use fewer resources; methods for obtaining the current user's rights to files, groups, tasks, and data sources; added the ability to receive and edit report parameters without opening the report itself for editing. Made the user panel more convenient Improved work with the Online Designer: added a Richtext preview, and style templates for ChartObject. Gave the ability to edit the user's avatar, made a new trash bin for deleting files, improved the Tasks page; finalized data sources, giving the ability to use stored procedures and add custom tables from SQL. In 2025, we plan to release a new product and add parameter transfer to StaticPreview UI. We thank you for trusting us in 2024. Let's move on and create the future together! Happy Holidays! ### Resumo e planos para 2021 URL: https://www.fast-report.com/pt/blogs/2020-summary-2021-plans Summary: Resumo do ano 2020 e planeamento 2021: novas tecnologias e objectos. Resumo do ano 2020 e planeamento 2021: novas tecnologias e objectos. Resumo do ano 2020 e planeamento 2021: novas tecnologias e objectos. Poderíamos falar muito sobre nossas experiências e dificuldades no ano passado, mas vamos apenas fazer um balanço deste ano e falar um pouco sobre nossos planos para o futuro. Apesar de todas as dificuldades, trabalhamos muito este ano. Nem tudo o que planejamos foi concluído, mas estamos comprometidos em alcançar todos os nossos objetivos para o futuro previsível. O que foi feito? Durante o ano passado, fomos capazes de implementar novos processos de controle de qualidade para nossos produtos. O trabalho nessa direção continuará. Otimizamos e melhoramos as exportações para vários formatos, adicionamos novas propriedades de objetos, aprimoramos os algoritmos de geração de relatórios e corrigimos muitos bugs. Adicionamos suporte para 5 novos códigos de barras e 6 novos formatos para salvar documentos. Queremos reconhecer o trabalho árduo que nossos desenvolvedores fizeram para refatorar o código para mesclar o código-fonte da família .NET em um repositório comum. Além disso, no FastReport NET adicionamos suporte para Windows Forms, para .NET Core 3.1 e suporte para .NET 5, introduzimos o controle de segurança do script de relatório ao trabalhar em aplicativos da web e desenvolvemos uma nova demo (aplicativo de demonstração). Também substituímos o suporte do .NET Framework 2.0 no produto FastReport NET. O FastReport Mono ganhou a capacidade de construir gráficos. Adicionamos suporte para o novo RAD Studio no FastReport VCL, trabalhamos muito para melhorar a interface do usuário, adicionamos novos recursos para construir relatórios complexos e melhoramos a qualidade dos relatórios gerados. Separadamente, observamos o trabalho de melhoria do produto FastReport for Lazarus. Por sua vez, o FastReport FMX ganhou a capacidade de trabalhar em aplicativos de 64 bits no sistema operacional macOS, o designer de relatórios foi aprimorado, bem como trabalhar no processamento de dados e geração de documentos. O produto OLAP FastCube .NET pode ser usado em aplicações web ASP.NET Core agora, tem uma interface melhorada, novas possibilidades de filtragem de dados foram adicionadas e funciona em Mono. FastCube VCL tem suporte a expressões, funciona melhor no Lazarus. No FastCube FMX, novas opções para realce de dados foram adicionadas. Queremos agradecer a todos os usuários do  FastReport Open Source , aqueles que contribuíram para sua melhoria e aqueles que nos escreveram com seus problemas. O que vem depois? Nossos analistas, juntamente com toda a equipe, acompanham de perto as tendências no desenvolvimento de software e em todo o setor de TI. Estamos constantemente aprendendo e tentando melhorar nossos produtos de acordo com os desejos de nossos clientes. Vamos começar com os planos de produtos FastReport VCL e FMX: queremos lançar o FastReport VCL 7;as tabelas dos relatórios serão aprimoradas; Documentos PDF terão recursos de assinatura digital; os relatórios poderão usar imagens SVG; novos transportes serão adicionados; a versão do Lazarus obterá um objeto RichView; novos estilos de interface serão adicionados. O produtoFastReport .NET product ganhará: suporte para telas de alta resolução (alta dpi); componentes para trabalhar com o framework Blazor; suporte para o novo .NET 6; assinaturas digitais para documentos do MS Office; impressão paralela em várias impressoras; capacidade de se conectar ao banco de dados baseado em coluna estacionada. O gerador de relatórios FastReport Mono cross-plataform se tornará ainda mais compatível com diferentes sistemas operacionais - planejamos melhorar a estabilidade e o desempenho deste produto. Editor de relatório baseado em navegador, o FastReport Online Designer terá suporte adicionado para edição de gráficos, novos objetos de relatório e interface de usuário aprimorada. O trabalho de melhoria da interface de usuário do FastCube será continuado e também está planejado para expandir seus recursos para conectar-se a diferentes bancos de dados. Está planejado o lançamento de um novo produto para geração de relatório e lançamento de seu beta-teste fechado. Você pode participar. Acompanhe nossas novidades. Também planejamos atualizar e publicar a documentos de todos os nossos produtos. Também planejamos introduzir um modelo de licenciamento baseado em assinatura para os produtos que ainda não o usaram. Boa sorte no novo 2021! Queremos desejar-lhe boas e positivas emoções no próximo ano de 2021! Que seus programas estejam livres de bugs e seus relatórios sempre completos e oportunos! Que suas consultas nos banco de dados sejam executadas rapidamente e que as solicitações de novos recursos dos usuários não os atrapalhem! E deixe os fornecedores de bibliotecas para seus produtos atenderem às suas solicitações rapidamente! Em qualquer caso - faremos o nosso melhor por você! Sempre recebemos seus pedidos - escreva-nos seus desejos sobre nossos produtos, e nós tentaremos atendê-los! Com respeito, Fast Reports team Tags: FastReport ### Roslyn features in Visual Studio 2015 Preview URL: https://www.fast-report.com/pt/blogs/roslyn-features-visual-studio Introduction Release of Visual Studio 2015 Preview includes new version of C# and VB.NET compilers called "Roslyn". Roslyn is a complete rewrite of C# and VB.NET compilers; if previously they were written in C++, now C# compiler is written in C#, and VB.NET compiler - in VB.NET respectively. Also Roslyn is fully open sourced and available on GitHub. When using the previous compiler, developer couldn't affect the compilation process. New compiler follows the idea of Compiler-as-a-Service: now it's a platform with API that allows the developers taking part in the compilation process. Benefits Refactoring becomes much easier. Developers of Visual Studio extensions can use the infrastructure of Roslyn to not waste their time on writing parsers and analyzers. Roslyn can be used in .NET applications to compile and execute dynamically generated code. Roslyn can greatly help in translating C# code to another programming language. New features based on Roslyn in VS 2015 Unused «using» directives are highlighted by gray color. Ctrl+. now contains the preview window that allows developers evaluating the result of the command. The menu Ctrl +. collected new commands to solve problems with the code and refactoring commands. Added new commands for refactoring: Inline temporary variable and Introduce local . Preview is available in renaming interface and it shows messages about possible errors. Tags: Visual Studio, Visual Studio ### Salvando imagens do Delphi / C ++ Builder / Lazarus URL: https://www.fast-report.com/pt/blogs/saving-images-delphi Summary: Falaremos sobre as vantagens e desvantagens dos formatos populares de imagem. Salvar o relatório na forma de imagens com ajuste fino usando FastReport VCL e código. Falaremos sobre as vantagens e desvantagens dos formatos populares de imagem. Salvar o relatório na forma de imagens com ajuste fino usando FastReport VCL e código. Falaremos sobre as vantagens e desvantagens dos formatos populares de imagem. Salvar o relatório na forma de imagens com ajuste fino usando FastReport VCL e código. BMP, JPEG, TIFF, GIF –  existe uma variedade de formatos de imagem raster. 1. BMP Em primeiro lugar você deve saber que, como o BMP é um formato de imagem antigo, não é tão popular entre os usuários da Internet, apenas as imagens bitmap são salvas neste formato que não oferece suporte a imagens vetoriais. O tamanho dos arquivos .bmp pode ser diferente, dependendo da qualidade das imagens. Apesar de os usuários considerarem o formato BMP obsoleto, ele é usado ativamente em muitas esferas. Por exemplo, todas as interfaces do Windows foram baseadas neste formato. Por que exatamente BMP? Porque é conveniente de usar ao criar imagens que não perdem qualidade após editá-las. O BMP é frequentemente usado no Photoshop ao editar imagens; este formato também é fácil de carregar em redes sociais e vários sites. Claro, é melhor usar formatos de imagem modernos, pois eles são multicamadas e você pode enviá-los para qualquer site da Web sem problemas técnicos. Ao mesmo tempo, existem muitas opções para editar essas imagens e elas têm um tamanho de arquivo menor. 2. JPEG JPEG é um formato comumente usado para armazenar imagens. Possui uma boa qualidade de compressão para visualização de fotos. Este formato traz muitos benefícios, pois o usuário possui diversas vantagens, tais como: a possibilidade de alterar a qualidade e o tamanho do arquivo, abrir a imagem em qualquer navegador com facilidade, editar este arquivo em qualquer editor gráfico, bem como o tamanho reduzido, que não ocupa muito espaço em computadores e outros dispositivos de armazenamento de dados. Se você não comprimir muito, a qualidade da imagem será totalmente salva. Este formato tem algumas desvantagens: a) Não há transparência ao contrário, por exemplo, de PNG b) Se você comprimir (redimensionar) a imagem JPG, sua distorção (ou perda completa) será perceptível. c) Não é recomendado editar o arquivo JPG restaurado após a compressão, pois pode perder a qualidade. Apesar dessas desvantagens, esse formato é considerado o mais popular da internet e as pessoas o utilizam muito. . 3. TIFF Este é um formato raster bem conhecido que suporta quase todos os espaços de cores conhecidos. Imagens sem compressão quase se tornaram o padrão na indústria de impressão. Existem vários algoritmos de compressão com ou mesmo sem perdas. Um arquivo TIFF pode conter uma imagem armazenada nos modelos de cores CMYK, RGB e Lab no modo de cores indexadas, bem como em tons de cinza. Isso permite usar este formato para armazenar uma variedade de imagens, usadas tanto para a preparação de gráficos para a web quanto para tipografia. Além da própria imagem, o TIFF contém canais de transparência que permitem salvar áreas transparentes da imagem ou destacar objetos entre as sessões de trabalho. Outro recurso do formato TIFF é a capacidade de salvar várias imagens com seus próprios conjuntos de atributos e propriedades (tags) em um arquivo. Isso torna o TIFF semelhante ao GIF, embora não tenha a capacidade de criar imagens animadas. A popularidade desse formato facilita a transferência de imagens entre programas e plataformas de hardware. 4. GIF Os arquivos GIF têm tamanho pequeno e suportam animações simples, ou seja, troca de quadros em um arquivo. O formato GIF é muito difundido no campo da criação de banners, bem como na concha gráfica do conteúdo de vídeo. A principal vantagem é a compressão de dados sem perda óbvia de qualidade em uma profundidade de até 256 cores. As imagens animadas consistem em vários quadros estáticos, bem como dados sobre o tempo necessário de demonstração de um quadro. As pessoas usam o formato GIF em muitos campos. Por exemplo, no design de seus sites, web design, design gráfico, na redação de artigos ou livros, nas redes sociais, na forma de banners publicitários, para armazenamento de fotos e assim por diante. Usando este formato, você pode reduzir o tamanho da imagem, o que afeta positivamente a velocidade de carregamento das páginas do site da Internet. 5. SVG Este formato é vetorial. Em suma, os sites são compilados com sua ajuda. SVG é um arquivo de texto XML com tags. Este formato não perde a qualidade da imagem ao redimensionar e cortar. Para obter mais informações sobre as vantagens e desvantagens do formato SVG, bem como salvá-lo do Delphi,  veja aqui .  Agora sabemos quando e qual formato é melhor usar. Então, como podemos exportar para esses formatos à partir de um aplicativo Delphi / Lazarus? Fácil! Claro, esse não é nosso objetivo principal, existem muitas opções. Estamos presentes nas oportunidades do FastReport VCL, pois com ele podemos preparar um documento, um pôster, um banner - felizmente, o designer visual inclui primitivas gráficas e muitos objetos com efeitos. Você pode ver imediatamente e, se necessário, alterar / editar o documento antes de exportá-lo para o formato de imagem desejada. Então, precisamos criar / salvar / exportar para BMP ou GIF do Delphi? Primeiro temos que criar um documento. Simples ou complexo - não há diferença. Agora, depois de criarmos o objeto que queremos transformar em uma ilustração, abra e obseve Na janela de visualização, selecionamos o formato para salvar o relatório. Por exemplo, precisamos exportar para imagem BMP. Selecione e clique. A janela de configurações de exportação aparecerá. Configure e salve. Vamos falar um pouco sobre configurações. Podemos salvar todas as páginas, a página atual ou um intervalo. Aqui estão as capturas de tela para comparar as configurações de diferentes formatos: (TIFF, JPEG,GIF) Em alguns casos, algumas configurações não estão disponíveis (diferenças de formato). Monochrome – imagens em tons de preto; Crop pages – se deve cortar páginas; JPEG quality – definindo a qualidade do objeto gráfico; Resolution (dpi) – dots per inch; Open after export – abrindo o documento automaticamente após a exportação. Você pode especificar onde salvar seu arquivo (no armazenamento local, enviar como e-mail, fazer upload para FTP ou armazenamento em nuvem). Bem, agora aprendemos como salvar facilmente o relatório em formatos gráficos do Delphi / C ++ Builder / Lazarus da janela de visualização. Mas como podemos salvar BPM / JPEG / TIFF / GIF diretamente do código Delphi / C ++ Builder / Lazarus? Aqui está como! Export to BMP ``` procedure TForm1.Button1Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxBMPExport1.PageNumbers := '2-3'; {Set whether to export each page to a separate file.} {.N will be added to the file name, where N is the serial number of the page} frxBMPExport1.SeparateFiles := True; {Set whether to export to monochrome image} frxBMPExport1.Monochrome := False; {Set whether to crop empty edges (page margins)} frxBMPExport1.CropImages := False; {Set the resolution, DPI} frxBMPExport1.Resolution := 96; {Set whether to open the resulting file after export} frxBMPExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxBMPExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxBMPExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxBMPExport1.FileName := 'C:\Output\test.bmp'; {Export the report} frxReport1.Export(frxBMPExport1); end; ``` Export to JPEG ``` procedure TForm1.Button2Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxJPEGExport1.PageNumbers := '2-3'; {Set whether to export each page to a separate file.} {.N will be added to the file name, where N is the serial number of the page} frxJPEGExport1.SeparateFiles := True; {Set whether to export to monochrome image} frxJPEGExport1.Monochrome := False; {Set whether to crop empty edges (page margins)} frxJPEGExport1.CropImages := False; {Set the quality of JPEG} frxJPEGExport1.JPEGQuality := 90; {Set the resolution, DPI} frxJPEGExport1.Resolution := 96; {Set whether to open the resulting file after export} frxJPEGExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxJPEGExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxJPEGExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxJPEGExport1.FileName := 'C:\Output\test.jpg'; {Export the report} frxReport1.Export(frxJPEGExport1); end; ``` Export to TIFF ``` procedure TForm1.Button3Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxTIFFExport1.PageNumbers := '2-3'; {Set whether to export each page to a separate file.} {.N will be added to the file name, where N is the serial number of the page} frxTIFFExport1.SeparateFiles := True; {Set whether to export to monochrome image} frxTIFFExport1.Monochrome := False; {Set whether to crop empty edges (page margins)} frxTIFFExport1.CropImages := False; {Set the resolution, DPI} frxTIFFExport1.Resolution := 96; {Set whether to open the resulting file after export} frxTIFFExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxTIFFExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxTIFFExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxTIFFExport1.FileName := 'C:\Output\test.tif'; {Export the report} frxReport1.Export(frxTIFFExport1); end; ``` Export to GIF ``` procedure TForm1.Button4Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxGIFExport1.PageNumbers := '2-3'; {Set whether to export each page to a separate file.} {.N will be added to the file name, where N is the serial number of the page} frxGIFExport1.SeparateFiles := True; {Set whether to export to monochrome image} frxGIFExport1.Monochrome := False; {Set whether to crop empty edges (page margins)} frxGIFExport1.CropImages := False; {Set the resolution, DPI} frxGIFExport1.Resolution := 96; {Set whether to open the resulting file after export} frxGIFExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxGIFExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxGIFExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxGIFExport1.FileName := 'C:\Output\test.gif'; {Export the report} frxReport1.Export(frxGIFExport1); end; ``` Depois de ver como podemos criar e exportar para tais formatos, concluímos que é extremamente fácil! Mas, por favor - não explore esses recursos! Muitas vezes (por exemplo, muitos software para gerar relatórios fiscais ou 1040-SR forms) permitem salvar o arquivo resultante apenas em um determinado formato fechado, enviá-lo para impressão ou salvá-lo como TIFF - infelizmente, esta opção não resiste a nenhuma crítica do ponto de vista de uso posterior. Só pode ser admirado ou impresso. Afinal, não custa nada  exportat esses documentos para PDF  (ou, se necessário – PDF/A),  ODS , ODT , RTF , DOCX , XLSX  – com suporte total de padrões relevantes, é muito mais conveniente para trabalhar com eles como documentos de texto.  Tags: VCL, Export, Lazarus, FastReport, Delphi ### Salvando imagens SVG à patir do Delphi / C++ Builder / Lazarus URL: https://www.fast-report.com/pt/blogs/export-svg-delphi-vcl Summary: Usando SVG, você pode salvar relatórios em imagens sem perder a qualidade, código em Delphi. Usando SVG, você pode salvar relatórios em imagens sem perder a qualidade, código em Delphi. Usando SVG, você pode salvar relatórios em imagens sem perder a qualidade, código em Delphi. O arquivo SVG é uma imagem vetorial bidimensional baseada em documentos no formato XML. O formato SVG é usado não apenas para a descrição de gráficos vetoriais bidimensionais, mas também para imagens vetoriais raster mistas. Vamos listar as principais vantagens do formato SVG: Primeiro de tudo,  como previamente foi menciado em artigo anterior , os gráficos vetoriais são aumentados ou diminuídos sem perda de qualidade (e quando ampliada, a imagem não se transforma na arte cubista). Em segundo lugar, o SVG é totalmente compatível com as tecnologias da web e, portanto, será uma parte orgânica de qualquer site. Terceiro, adicionando Javascript aos objetos, podemos tornar a imagem interativa, ou seja, respondendo a certas ações do usuário com as respostas dadas - em relação à imagem e sua forma. Além disso, os arquivos SVG são considerados texto, então você pode otimizar o arquivo para SEO sem metatags externas, adicionando diretamente palavras-chave ao código da imagem. Este formato também tem algumas desvantagens: O tamanho do arquivo aumentará rapidamente como uma avalanche ao aumentar o detalhamento das imagens. No entanto, para imagens com muitos detalhes, é melhor usar os formatos PNG ou JPG. Portanto, infelizmente, o SVG é totalmente inadequado para fotografias realistas de alta resolução e mapas detalhados da área. SVG não é compatível com navegadores mais antigos (Internet Explorer 8 e anteriores), mas não acho que isso seja uma grande desvantagem. Por padrão, (por exemplo, WordPress), não permite que você carregue arquivos SVG, devido a problemas de segurança. O WordPress percebe essa extensão como algo malicioso e, portanto, a bloqueia. Mas você pode ignorar esse bloqueio usando plug-ins. SVG é adequado para criar objetos simples que podem ser descritos por figuras simples ou suas partes. Também devemos mencionar que as redes sociais, como Facebook e Twitter, não suportam o formato SVG. Se você usar arquivos SVG como miniaturas, terá que usar o plug-in e definir PNG ou JPG para metatags. Revisamos as principais vantagens e desvantagens do formato SVG e agora podemos retornar ao tópico principal deste artigo.  Como salvar um arquivo SVG usnado Delphi ou Lazarus? Primeiro você precisa criar a imagem! E então eu posso aconselhar (de repente) FastReport VCL, porque usando ele você pode salvar imediatamente no formato desejado do Delphi. Afinal, pode haver muitos objetos para exibir além das imagens. É conveniente - então, por que não? De códigos de barras a tabelas e mapas, é altamente recomendável salvá-los em um formato vetorial! Portanto, vamos começar! Criar um relatório. Visualizado antes de salvar, não gostou de alguma coisa? Alterado, editado! Agora, depois de criarmos o que era necessário, abra e veja o que aconteceu. Chame um preview e selecoine o formato que desejar Olhe abaixo! Selecione e clique. Agora vemos uma janela com muitas configurações diferentes. Configure tudo que precisa e click OK! Resumidamente sobre as configurações de exportação Você pode ver que ao salvar no formato SVG, as configurações não são as mesmas com BMP, JPEG, TIFF ou GIF. Mais precisamente, tais funções como: Styles – salvando estilos; Unified Pictures – imagens unificadas; Formatted – salvando formatação; Pictures – salvar um documento com imagens - esta é a escolha certa para aquelas imagens que já eram pixel quando adicionadas ao nosso documento; Multi Page – salvando multiplas páginas; Page navigator – criando um navegador de páginas; Salvando imagens em PNG, EMF, BMP e formatos JPEG. E as configurações para os formatos BMP, JPEG, TIFF, GIF são: Monochrome – imagens em tons de preto; Crop pages – se deve cortar páginas; JPEG quality – configurando a qualidade do objeto de gráfico; Resultion (dip) – resolução. Obviamente, uma imagem vetorial será rasterizada quando salva em formatos raster, mas o contrário (raster para vetor) não acontecerá. As únicas coisas que parecem ser comuns entre todos esses formatos são as configurações de ação, capacidade de salvar e abrir automaticamente o documento imediatamente após o salvamento. Tendo considerado como salvar usando a janela devisualização, vamos prosseguir para o salvamento sem uma visualização. Código para salvar arquivos SVG usando Delphi / C++Builder / Lazarus Exportar para SVG ``` procedure TForm1.Button1Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxSVGExport1.PageNumbers := '2-3'; {Set whether to export styles of the objects} frxSVGExport1.EmbeddedCSS := True; {Set whether to convert all images in accordance with PictureFormat:} {if the image in the report is in BMP format and the PictureFormat is PNG, then BMP will be saved in PNG format} frxSVGExport1.UnifiedPictures := True; {Set whether to format the source text of SVG (increases the size of the resulting file)} frxSVGExport1.Formatted := False; {Set whether to export pictures} frxSVGExport1.EmbeddedPictures := True; {Set whether to export each page to a separate SVG file} frxSVGExport1.Multipage := False; {Set whether to add navigation buttons to the resulting SVG file} frxSVGExport1.Navigation := False; {Set in which format to export pictures} //uses frxExportHelpers; // TfrxPictureFormat = (pfPNG, {$IFNDEF FPC}pfEMF,{$ENDIF} pfBMP, pfJPG);) frxSVGExport1.PictureFormat := pfPNG; {Set whether to open the resulting file after export} frxSVGExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxSVGExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxSVGExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxSVGExport1.FileName := 'C:\Output\test.svg'; {Export the report} frxReport1.Export(frxSVGExport1); end; ``` Vamos comparar os resultados da exportação de objetos raster e vetoriais! Fornecerei exemplos JPEG e SVG abaixo. JPEG SVG E ... aqui imediatamente vemos a diferença. Você pode notá-la? :) Bem, por exemplo, uma imagem raster tem um tamanho maior do que uma imagem vetorial e, ao dimensionar, a clareza diminui. Mas quanto a uma imagem vetorial (SVG), ao dimensionar, a clareza permanece a mesma e o tamanho do arquivo é muito menor. A única desvantagem é que o SVG não é adequado para fotos realistas (mas não as temos de qualquer maneira). Vamos resumir! O formato vetorial SVG é muito conveniente (se você usá-lo no lugar certo), e salvar via FastReport VCL torna isso simples. Tags: VCL, Export, Lazarus, FastReport, SVG, Delphi ### Save $100 on PASS tickets in November! URL: https://www.fast-report.com/pt/news/fastreport-economy-november-2019 Summary: Save $100 on PASS tickets in November! Save $100 on PASS tickets in November! We are excited to be a part of PASS Summit 2019 . Use promocode  PASSExhibitor  during registration to save $100 on your ticket. See you on November 5-8 in Seattle! ### Save the original image quality when exporting to PDF URL: https://www.fast-report.com/pt/blogs/save-original-image-quality-pdf In PDF export report there is a new option - "Original Resolution". It allows you to save images in full resolution. Sometimes it is important to transfer an image with the original quality. Using this new option, you will be able to get the image from a PDF document without any quality loss. Here there is one restriction - you cannot rotate the image in the report because it will require a change of the image. However, FastReport has a special protection on the odd chance that you have rotated the image. PDF export will get the original picture. What if you find an image of not a desired angle in your PDF report? In this case, you should check the export options to make sure that the "Original Resolution" option is enabled. If it is necessary, you can scale the image. Let us take a look at the following example.  First, create a simple report. Add an object "Picture" to the report page. Double click on the added object "Picture". After this, a picture editor will open: Use the "Load" button and select the image on the local disk. Click "OK". Here, scaling of the object "Picture" is optional: Run the report in preview mode. Select «Save» -> «Adobe Acrobat» In the PDF export settings select the "Options" tab: Click "OK" and save the export file: Now change the report template. Establish the "Angle property" of the object "Picture" to 90 degrees. Take into account, that you should make export to PDF with the enabled "Original resolution": As you can see, the image has not been rotated by 90 degrees. Let us make another export to PDF, but with a disabled option "Original resolution": In this case, we get an image, rotated by 90 degrees. But what happened to the "original" image? The quality is lost. It is seen from the size of the file: In the last export, we have disabled the option "Original Resolution" and got the file size of 93 KB instead of 14 703 KB. You can stretch the image if you open your PDF file in the editor. In first two exports the picture with high resolution will retain quality: In the third one you will see a terrible pixelation: Summing up, in the article we have illustrated a method, that helps you to send documents, retaining the original image quality. Tags: .NET, .NET, FastReport, FastReport, PDF, PDF ### Saving a report in PDF/X format URL: https://www.fast-report.com/pt/blogs/saving-report-pdf-x-format Summary: PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. It is important for polygraphy, where it is important to print documents on any print device uniformly, whether the printer or plotter. PDF/X document contains color profiles for printers, due to which will be printed out exactly the color, which was conceived by the author. Thus, the standard PDF/X gives us guarantee of unchanging the final document. That makes PDF format ideal for document management in the sphere of publishing and polygraphy. The disadvantage of this format is the impossibility of use of properties: encryption, compression JBIG2 and transparent. PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. It is important for polygraphy, where it is important to print documents on any print device uniformly, whether the printer or plotter. PDF/X document contains color profiles for printers, due to which will be printed out exactly the color, which was conceived by the author. Thus, the standard PDF/X gives us guarantee of unchanging the final document. That makes PDF format ideal for document management in the sphere of publishing and polygraphy. The disadvantage of this format is the impossibility of use of properties: encryption, compression JBIG2 and transparent. PDF/X standard is constantly evolving and has already presented 5 th generations: • PDF/X-1a - the first standard, designed to work with documents: black / white, CMYK or spot color; • PDF/X-3. The PDF/X-3 has a color management support; • PDF/X-2. Add-on PDF/X-3. Designed to interact more closely the supplier and the recipient of the file. Support OPI (Open Pre-Press Interface) and does not support embedded fonts; • PDF/X-4. The updated version of the PDF/X-3, which supports transparency and spot colors; • PDF/X-5. Based on PDF/X-4, allows external images. You probably noticed that the standard X-2 is located after X-3. It's not a mistake. Developers have created X-2 after X-3. Apparently they did not want a gap in numbering. FastReport.Net supports export to PDF/X-3 format. Thus, later on we will consider its features. There are some restrictions applicable to the PDF/X-3 files: • All fonts must be embedded in the document; • All the color data can be grayscale, CMYK or spot colors. It is also permissible RGB, LAB or ICC based color spaces. If you are using a device-independent color, the embedded ICC profiles and the Rendering Intent, should be taken into account when processing the PDF/X-3. This means that you need to know the color management process to be able to process PDF/X-3 files; • OPI is not allowed; • PDF/X-3 files can not contain music, videos, or other non-printing data; • If there are annotations (notes) to PDF, they should be located outside of the bleed; • The file should not contain any forms or Javascript code; • Supported by a limited number of compression algorithms; • You cannot use encryption; • Do not use curves; • Do not use transparency. In addition to restrictions there is also a list of what should be in PDF/X-file 3. This is what distinguishes it from ordinary PDF files: • metadata that indicates that the file is a PDF/X and some details indicating the version of the standard; • PDF/X-3 contains additional statements that define the bleed (bleed area) and the area to crop (trim area): MediaBox defines the size of the entire document; ArtBox or TrimBox defines the boundary of the printing area; If the file is printed with the bleed, you should ask BleedBox. It must be more than TrimBox / ArtBox, but less than the MediaBox. • The file must contain the ICC color profile, which specifies the color space CMYK. This profile should be implemented as OutputIntent. Now consider the process of creating a report export in PDF/X. So: - Prepare a report template and run it in preview mode; - Choose Export to PDF format. We are interested in "Settings" tab: There are some changes unlike in previous versions of FastReport. This tab looked like this, before: Added the new option " Lossless images". It allows you to use the original image without conversion to Jpeg. This is especially important for vector images and barcodes. The main differences in the "Compliance" section. Now you do not need to choose this option. The default is PDF 1.5 format. This is the usual Export as PDF. The list of compliance standards contains one more - PDF/X-3. Select it. The options of the "Security" tab will not be available. Open the export file in a PDF program Adobe Acrobat Pro. you need to open the panel "Standard" to verify compliance with the standard document. "View" opens the menu - "Show / Hide" -> "Navigation Area" -> "Standards". Now we can see that the document does conform to the PDF/X-3 ISO 15930-3: Thus FasrtReports reports become more useful, especially for polygraphy and publishing. Now there is no need to worry about repetition reproduction of a document on the different sources of print. The report will always look the same. Tags: .NET, FastReport, PDF ### Saving FastReport .NET template to RDL file URL: https://www.fast-report.com/pt/blogs/saving-net-template-rdl Why is it necessary Possibility to save FRX report to RDL is needed for some users. Unfortunately, some objects of FRX report will be lost, because there is no relevant in the RDL . Saving the report to RDL format To do this go to the File menu in designer and select Save As... . On next window select the filter RDL file (*. rdl) and enter the file name. The designer saves report template in the RDL file. The next pictures shows FRX report (left) and the same report saved in RDL (right). Tags: .NET, .NET, FastReport, FastReport ### Saving report in cloud services from a user application code URL: https://www.fast-report.com/pt/blogs/saving-report-cloud-services You are not only available report exports, but also some options for saving the report, for example, into Box, into DropBox, into Google Drives and others. In the menu "Save" allocated a special section with options for saving the report in a variety of cloud services: We are available: 1)      Box; 2)      Dropbox; 3)      FastCloud; 4)      GoogleDrive; 5)      OneDrive; 6)      XMPP. The latter option uses the FastCloud cloud service for storing and building reports. The XMPP protocol sends a link to the report to the jabber client. Using these save options is not difficult if you manually set the preferences in preview mode. But how to automate the process of saving, using code? This will be discussed in this article. With the exception of FastCloud, all cloud services use OAuth-type authorization. This is an authorization protocol that allows you, without using a real login and password from the service, to give the application access to the cloud service. However, you can restrict access rights. You will be given an identifier and a secret key that you need to use for authorization. To get the Client Id and the Client Secret, you need to create the application and register it on the OAuth server of your cloud service. Therefore, we need to specify at least two parameters to save the report to the cloud service. Let’s consider in order. 1)      For the Box service: First of all, you need to add the FastReport library: using FastReport; We create an instance of the ClientInfo class, which will contain information for authorization:  ``` FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); ```  ClientInfo can take three parameters: ClientName, ClientId and ClientSecret. In our case, ClientId and ClientSecret are required. Then create a GoogleDrive client to save the report: ``` FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient client = new FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient(clientInfo); ```  Create a report object and load the report into it: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  If you want to save the report in a format other than native fpx (the format of the report preview), you need to create an export instance: ``` FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); ```  Save the report using the client: ``` client.SaveReport(report, pdf); ```  If you save a report in the fpx format, you can pass null instead of the second parameter: ``` client.SaveReport(report, null); ```  2)  For the DropBox is slightly different. Within OAuth, you can also use access token. This is an access key that is generated as a result of successful authorization. Passing such a token, we seem to restore the previous authorization. Create a client for the DropBox and pass it access token in text format: ``` FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient drop = new FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient("accessToken"); ```  Proxy settings: ``` drop.ProxySettings.Server = ""; drop.ProxySettings.Port = 999; drop.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; drop.ProxySettings.Username = "Username"; drop.ProxySettings.Password = "Password"; ```  Next, as in the previous example: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  Save the report: ``` drop.SaveReport(report, null); ```  3)  For the GoogleDrive: ``` FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); GoogleDriveStorageClient client = new GoogleDriveStorageClient(clientInfo); ```  Proxy settings if needed: ``` client.ProxySettings.Server = ""; client.ProxySettings.Port = 999; client.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; client.ProxySettings.Username = "Username"; client.ProxySettings.Password = "Password"; ```  Create a report: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  Create export: ``` FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); ```  Save the report:            ``` client.SaveReport(report, pdf); ```  4)  For the OneDrive: ``` FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); FastReport.Cloud.StorageClient.SkyDrive.SkyDriveStorageClient one = new FastReport.Cloud.StorageClient.SkyDrive.SkyDriveStorageClient(clientInfo); ```  Proxy settings if needed:             ``` one.ProxySettings.Server = ""; one.ProxySettings.Port = 999; one.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; one.ProxySettings.Username = "Username"; one.ProxySettings.Password = "Password"; ```  Create a report: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); one.SaveReport(report, null); ```  5) For FastCloud there are differences. It does not use the OAuth protocol. Authorization is carried out by email address and password. Create a FastCloud client: ``` FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient fast = new FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient(); ```  Assign a token. To generate a token, use the GetAccessToken method:  ``` fast.AccessToken = fast.GetAccessToken("email@mail.com", "password"); ```   Create an instance of the export: ``` FastReport.Export.RichText.RTFExport rich = new FastReport.Export.RichText.RTFExport(); Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); fast.SaveReport(report, rich); ``` 6)  Send the report to Jabber (XMPP). Previously, we need to create an xmpp client: ``` FastReport.Messaging.Xmpp.XmppMessenger messenger = new FastReport.Messaging.Xmpp.XmppMessenger("user@xmpp.jp", "password", "user@xmpp.jp"); ```  If you need to configure Proxy: ``` messenger.ProxySettings.Server = "server"; messenger.ProxySettings.Port = 999; messenger.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; messenger.ProxySettings.Username = "username"; messenger.ProxySettings.Password = "password"; ```  Then, or before, create a report object: ``` Report report = new Report(); report.Load(@"С:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  And we pass it to xmpp client: ``` messenger.SendReport(report, null); ```  Having executed this code, we send the report to the cloud service FastCloud. At the same time, the jabber user receives a message with a link to the report. The link in the xmpp client looks like this: https://cloud.fast-report.com/reports/3da0fcd3f76ac1f6d87c21df85f5d5e2 Tags: .NET, .NET, FastReport, FastReport, Web Storage, Web Storage ### Saída do N-ésimo número de registros na página do relatório URL: https://www.fast-report.com/pt/blogs/display-estimated-number-records Summary: Obtenha dicas úteis sobre como exibir N-número de registros em uma página de relatório no FastReport .NET. Encontre mais dicas e artigos úteis em nosso blog. Obtenha dicas úteis sobre como exibir N-número de registros em uma página de relatório no FastReport .NET. Encontre mais dicas e artigos úteis em nosso blog. Obtenha dicas úteis sobre como exibir N-número de registros em uma página de relatório no FastReport .NET. Encontre mais dicas e artigos úteis em nosso blog. The function of limitation of the number of output records often causes some difficulties with FastReport.Net users despite the fact, that it is considered to be rather simple. This work seeks to bridge the knowledge gap in the way of displaying a certain number of records on a page with the help of a script report.  It must be mentioned, that the following script is very simple and requires basic knowledge in programming only. Let us take a close look at the demo report given bellow: The following list will be formed with the help of the system variable [#Row]. Set “RowCoun value” 25 in the "data band" properties. Now, the list will consist of 25 lines.   Build the report: The example aims to output 5 lines on a page. For the band "Data" create an event “BeforePrint”.  Go to the editor of the report script: Write the following code: ``` public class ReportScript { int counter = 0;   private void Data1_BeforePrint(object sender, EventArgs e) { if (counter >= 5) { Engine.StartNewPage(); counter = 0; } counter++; } } ```  It should be mentioned, that the counter variable is declared globally. As it is seen, before every displaying of data the counter is checked. After reaching the number of 5 lines, the report engine starts a new page of the report and the counter is reset. So, we need to have 5 pages with lists of 5 lines. Since the page contains a list consisting of only 5 lines, it is needed to set the automatic page height: “UnlimitedHeight” property will allow to reduce the height of the page in our case.  Now, run the report:  A report script is a flexible tool. By adding only 5 lines of a code, we have achieved the desired result. Tags: .NET, FastReport ### Scale management when printing in Excel URL: https://www.fast-report.com/pt/blogs/scale-management-printing-excel FastReport .NET 2018.4 version brought quite a few innovations. One of them is the ability to set the scale of the Excel page of the document when printing in the Excel export settings. You can export the report to Excel in preview mode or from the code of the user application. Let's consider both options. Export to Excel 2007 from pre-view. For example, I will take a report with a large number of rows and columns - a matrix of 100 by 100. Let’s open the export menu in Excel 2007: At the bottom of the form is the “Print Scaling” option. The default setting is “Actual Size” (No Scaling). Let's make an export and see the Excel document in the view mode when printing: As you can see, the report did not fit one printing page. It will take 6 pages for our matrix. Let's export the report again. But now, for Print Scaling, we select Fit Sheet on One Page. What will we see in the print mode of an Excel document? The scale of the document is reduced so that it fits entirely one page. Well, this is a very valuable option. Often we need to print the entire report on one page. It is necessary to select the scale by trial and error. Let's move on to the next value of the “Print Scaling” option - “Fit All Columns on One Page”. In this case, our example with the matrix will not be the most indicative. As far as you understood, this option allows you to place all data columns on one printing page. In this case, the lines may not fit one page and another one will be generated. But, since our matrix is square, both the columns and the rows will fit on the same printing page. Therefore, I will generate another 30-by-100 matrix. Let's export it to Excel with the value "Fit All Columns on One Page” of the" Print Scaling "option. Let's see how it looks like in print mode in Excel: The scale of the document was chosen so that all columns fit in the width of one page. But the lines did not fit, but this is not important for us, because we chose "All columns on one page." Another value of the option "Scaling when printing" - "All lines on one page." In this case, it is important for us to put all the lines on one page, and whether the columns fit in is not of interest to us. Let's make export to Excel of our matrix 100 by 100. Let's see what happened: All requirements are met - the lines fit on one page. And only 56 columns fit. For the rest, a second print page was created. So, we consider 4 document scales when exporting a report to Excel 2007. Now let's see how to use the considered option in the code of the user application: ``` Report report = new Report(); FastReport.Export.OoXML.Excel2007Export exp = new FastReport.Export.OoXML.Excel2007Export(); exp.PrintFit = FastReport.Export.OoXML.Excel2007Export.PrintFitMode.FitAllColumsOnOnePage; report.Export(exp, @"C:\result.html"); ```  4 values available for PrintMode: NoScaling, FitSheetOnOnePage, FitAllColumsOnOnePage, FitAllRowsOnOnePage. And for the web report, only one mode of scaling Excel document is available - Place on one page: ``` webReport.XlsxPrintFitPage = true; webReport.ExportExcel2007(); ```  Thus, we have at our disposal another useful option. Tags: .NET, .NET, FastReport, FastReport ### Seminar Firebird and FastReport, Prague, 9. November 2007 URL: https://www.fast-report.com/pt/news/seminar-firebird-prague-2007 Summary: Seminar Firebird and FastReport, Prague, 9. November 2007 Seminar Firebird and FastReport, Prague, 9. November 2007 Seminar Firebird and FastReport, Prague, 9. November 2007 We cordially invite you to a one-day seminar on The Firebird and FastReport database systems, which will be held in patek 9. November in Prague hotel Angelo na Smichove (Radlicka 1g, Prague 5, metro station Andel). Preface: Dmitry Yemanov, chief developer of Firebird Pavel Cisar, IBPhoenix and Firebird QA Mikhail Phillipenko, CEO of FastReport Dmitry Kuzmenko, CEO of IBSurgeon and IBPhoenix expert on data optimization and data recovery. The topic of the seminar will be news in Firebird, security, data protection and optimization, business intelligence and reporting with fastreport and Firebird products. You will not miss the chance to meet members of the developing Firebird team and the opportunity to get prime answers to your questions at the round table! Lectures will be presented in Czech and English. Admission to the seminar is free. However, the number of mist is limited, so register as soon as possible! Seminar programme: 1. Introduction 2. New features of Firebird (English, Dmitry Yemanov) 3. Fastreport kits (English, Mikhail Phillipenko) 4. Protection against damage or loss of data (English, Dmitry Kuzmenko) 5. Firebird Internals by Dmitry Yemanov 6. Business intelligence with FastCube (English, Mikhail Phillipenko) 7. Firebird and security (Czech, Pavel Cisar) 8. Optimization (English, Dmitry Kuzmenko) 9. Round table (English and Czech, all lecturers) http://ibphoenix.fr/spip.php?article80 ### Seminar in Warsaw URL: https://www.fast-report.com/pt/news/seminar-warsaw-2007 Summary: Seminar in Warsaw Seminar in Warsaw On behalf of Fast Reports Inc. and Firebird we are pleased to invite you to a seminar devoted to new functionalities of the Fast Report and Firebird programmes. The seminar will take place on 07.12.2007 at Hotel Lord in Warsaw, Al. Krakowskie 218.    Fast Reports Inc company has been operating on the IT market since 1998 and its main objective is to develop report-generating software.  The aim of the seminar is to present new functionalities and features of Fast Report and Firebird, as well as other tools.  All the advantages and functionalities of the programmes will be presented by: Fast Reports' BI solutions for developers and end-users, Michael Philippenko, CEO Fast Reports Fighting database corruptions, Dmitry Kuzmenko, CEO IBSurgeon Fast Reports' new products and new features, Michael Philippenko, CEO Fast Reports Optimization of Firebird databases, Dmitry Kuzmenko, CEO IBSurgeon  Participation in the seminar is free of change.   All the interested persons are asked to contact us by phone: 022 885-43-21 or by writing to the e-mail address:  info@softkey.pl  in order to receive an application form.  The number of participants is limited. We invite you to take part in our seminar! ### Sending report from Delphi program via MAPI protocol URL: https://www.fast-report.com/pt/blogs/send-report-delphi-mapi-protocol Just copy following code for sending the report from your own application: ``` procedure TForm1.Button2Click(Sender: TObject); var mail: TfrxMailExport; txt: TfrxTXTExport; begin txt := TfrxTXTExport.Create(nil); mail := TfrxMailExport.Create(nil); mail.UseMAPI := MAPI; mail.Address:='Recepient Name '; mail.ExportFilter:=txt; mail.FilterDesc:='TXT per E-Mail'; mail.FromMail:='Sender Name '; mail.Login := ''; mail.Password := ''; mail.Subject:='Subject-Text here'; mail.Lines.Add('Hi there, ' + #13#10#13#10+ 'heres comes an email with attached file'); frxReport1.Export(mail); mail.Destroy; end; ``` There are two important issues for this example:  The recepient address must be written in canonical form Name . Simple forms  - user@host.net will be rejected by some mail clients. For example, Microsoft Outlook require a  canonical form of the recepient address. You must set fields Login and Password  with empty values. Tags: VCL, VCL, MAPI, MAPI, FastReport, FastReport, Delphi, Delphi ### Sending report in PDF to Email from application code URL: https://www.fast-report.com/pt/blogs/send-report-pdf-email-application-code It is no secret that FastReport .Net allows you to send reports by email. But few people know how to do it by using the code in a custom application. In such way that you wouldn't have to run a report and send it via email manually. The required reports will be automatically sent to a specified e-mail address with help one button, or schedule. Let's consider the example of sending the report in PDF format by e-mail. Create WindowsForms application. Add buttons and two text fields. In the first one, we will input recipient's email address, and the second - mail server for outgoing mail. We will need the following libraries: ``` using FastReport; using FastReport.Export; using FastReport.Utils; ``` Create an event handler for the button click:      ``` private void button1_Click(object sender, EventArgs e) { Config.ReportSettings.ShowProgress = false; //Disable progress window Report report1 = new Report(); //Create new report object report1.Load(Environment.CurrentDirectory+"\\text.frx"); //Load report report1.Prepare(); //Prepare report FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); //Cteate PDF export FastReport.Export.Email.EmailExport email = new FastReport.Export.Email.EmailExport(); //Create Email export   //email mailer settings email.Account.Address = "gromozekaster@yandex.ru"; email.Account.Name = "TestUser"; email.Account.Host = textBox2.Text; email.Account.Port = 25; email.Account.UserName = "Gromozekaster"; email.Account.Password = "Password"; email.Account.MessageTemplate = "Test"; email.Account.EnableSSL = true;   //email addressee settings email.Address = textBox1.Text; email.Subject = "Test Report"; email.MessageBody = "Test message";   email.Export = pdf; //Set export type email.SendEmail(report1); //Send email } ``` First of all I disabled the progress window in the report settings, but you can skip this step. If you do not need it, just do not write this line of code. Then create an instance of a report object and load the report into it. Before the export you need to prepare a report (Prepare), in other words - build it. Since the title of the article contains “PDF”, let's create an object of export to PDF.  Likewise we create export to email. Now we can customize the export settings in the Email. In the Account - the sender's settings. Basically it is the outgoing mail server settings. Next - set the parameters of the recipient as well as the email address, subject line, message text and export to the desired file type. Here it should be noted that is not necessary to export to PDF, you need only to create an export object. Email export makes exports to the specified format. If you do not specify Export parameter, then the report will be sent in the FPX format. This file is preview of the report. You can view, print or export the report, but can not edit it. Finally, we will send a letter using Sendmail method. Be sure to pass the report object to this method. Considered method will be useful for standard emails, for example, you can arrange to automatically broadcast daily reports to your chief email. Tags: .NET, .NET, FastReport, FastReport, PDF, PDF, Report, Report, Email, Email ### Sending reports by E-mail via MAPI protocol URL: https://www.fast-report.com/pt/blogs/sending-reports-email-mapi FastReport.VCL with the very first version uses the original realization of SMTP protocol, written for sending generated reports via email. Excellent implementation, which is used by many users. These days some providers of postal services have demanded secure authentication to send mail, therefore some users have difficulty in sending reports. Customers of .NET version of the report generator does not run into this problem, because the implementation of sending reports in FastReport.NET based on MAPI protocol. In this case, the report generator uses an external mail program for sending the reports. Due to numerous requests the support of MAPI protocol was included in VCL version. We apologize to all users who are prematurely get informed of readiness MAPI - our implementation had contained some errors that did not allow to send mail when using the report generator with modern versions Delphi with Unicode support. We are pleased to report that MAPI error corrected now. All comments, bug reports and suggestions regarding sending reports via MAPI protocol in FastReport.VCL you can write into this blog. Tags: VCL, VCL, MAPI, MAPI, FastReport, FastReport, Email, Email ### Service Solutions Update to Version 2026.1 URL: https://www.fast-report.com/pt/news/release-service-2026.1 Summary: In the 2026.1 release of our service solutions lineup, we focused on improving usability, security, and expanding capabilities. In the 2026.1 release of our service solutions lineup, we focused on improving usability, security, and expanding capabilities. In the 2026.1 release of our service solutions lineup ( FastReport Cloud , FastReport Publisher , FastReport Corporate Server ), we focused on improving usability, security, and expanding capabilities. The update includes dozens of improvements to the interface, integration mechanisms, user tools, and increased stability. Saving Documents to S3-Compatible Storage A component for working with Amazon S3-compatible storage has been added. This allows saving templates, reports, and finished documents in various formats (pdf, docx, xlsx, etc.) to S3. One use case is creating an annual report (by passing start and end dates as report parameters), exporting it to PDF, and saving it to S3-compatible storage, where it will be available for viewing and downloading.  For more details on saving to S3  and its programmatic use , please refer to the documentation. Sending Documents to Telegram Telegram Bot API support has been added. Similar to saving to S3, documents and report templates can now be sent to Telegram. Sending to channels, direct messages with the chatbot, and group chats is supported. To send, use the unique identifier or name of the public channel or group where the bot has been added. More information on Telegram bots and their creation can be found on  the official Telegram website .  Additionally, the most convenient way to send documents to Telegram is by using an export task followed by sending. To do this, select the previously created Telegram sending task from the dropdown list in the export task settings. Hotkey Hints Added to Context Menus Interface usability has been improved: hotkey hints now appear in context menus. These allow for faster interaction with the user panel interface. Enhanced API Security: CORS Support and Trusted Domain Management We have updated the API request protection mechanism in accordance with modern web security standards. Now, authorized API requests require explicitly specifying trusted domains—this enables correct handling of CORS (Cross-Origin Resource Sharing) and preflight requests in modern browsers. Browsers block cross-domain requests without explicit permission—this protects users from CSRF (Cross-Site Request Forgery) and other attacks. The previously used approach stopped working after security policy updates in Chrome, Firefox, and other browsers. Workspace administrators can configure the list of allowed domains in the “Settings → Workspace” section. Only requests from these domains will have authorized access to the API. This enhances security without compromising convenience—integrations continue to function, but now reliably and according to standards. Added Script Autocompletion Support for FastReport Online Designer Online Designer now includes support for autocompletion hints (similar to IntelliSense), which increases the speed and accuracy of template development. For other new features of the Online Designer, please refer to the 2026.1 release news .  New Template and Report Preview Modes Added The preview component has received additional modes. The following are now available: Static preview (a lightweight mode that displays/renders templates and reports in SVG format); WASM Static Preview—a more accurate, but also resource-intensive component, written in Blazor; Interactive WASM Preview—the most accurate and powerful mode, allowing interactive reports to be run. The appropriate mode can be selected before opening a template or report.  It is also possible to set a default mode in the user settings. Nested Parameters Added to Static Preview Static Preview now supports parameters of any nesting level. This improves work with complex templates and allows parameters to be grouped by topic. Global File Search Added to API The ability to perform a global search for files and folders via API has been added.  This allows you to find a template, report, or any document by its name, even without knowing which folder it is located in. Additional Changes for FastReport Corporate Server and FastReport Publisher Below are additions that apply only to the on-premise products in the lineup. Docker Image Repository Builds are now distributed via Docker Registry. Documentation has been added and updated, and related docker-compose scripts have been fixed. This simplifies product updates and deployments. Separate Sign-In Form A separate sign-in form has been introduced, fully supported by Gateway mechanisms. Old settings (SignInPagePath, DisabledPath) have been removed—they are now replaced by the built-in system. The authorization process has become simpler and requires less traffic. As of the 2026.1 release, this functionality is used for logging into the administrator panel. Support for other services will be added in future releases. Information on Active Users and Subscriptions on the Audit Page The administrator panel has gained additional functionality: the “Audit” page now displays the IDs of active users and subscriptions for a specified time interval. This allows for more effective system usage control and better user understanding. Font Management in the Administrator Panel A dedicated font management page has been added to the administrative panel. Corporate Server and Publisher Installation Wizard The installation wizard has received a major update: Added the option to install FerretDB and PostgreSQL as databases. Users can now choose to install either Publisher or Corporate Server. Added the option to select a demo version for installation. Improved configuration file creation. Reworked interface and bug fixes. Documentation The documentation has been significantly revised and expanded: Documentation for Cloud, Corporate Server, and Publisher is now unified into a single build. Added guides for working with S3, FerretDB, and Docker Registry. Added an article on integrating static preview via iframe. Corrected errors and typos. Added canonical tags and current version to the online documentation. Full list of changes [Frontend] + added font interface to workspace information page + added export parameters to localstorage + added virtualization to users page + added s3 component to user panel + added hotkey hints to various context menus + added telegram task component * added support for alternative uid / pwd keys in MySQL connection dialog (now it will also parse “user id” and “password”) * added new components for font limit designation * added S3 and FTP tasks to workspace information page - fixed product purchase link - fixed automatic connection string parsing in data source setup dialog for MS SQL - fixed file renaming with F2 - fixed export to docx in paragraph breaking mode [Admin Panel] + added more links to entities in the admin panel + added information about active users and subscriptions to the audit page in the admin panel + added a new page in the admin panel for fonts + added checks for duplicate file names and incorrect user IDs in analytics * fixed an error with parameters in the admin panel - fixed visual errors when loading fonts in the admin panel - fixed a bug where the problem solver returned an error when analytics found font problems - fixed a bug where the check for unlinked documents marked all font description models as unlinked (belonging to a non-existent workspace) [Docs] + added documentation on how to use FerretDB instead of MongoDB + added documentation for S3 + added an article to the documentation on integrating staticpreview via iframe + added canonical tag for documentation pages * added current version to online documentation * updated documentation for working with docker registry * fixed some typos in the documentation * unified documentation into one [Online Designer] * disabled html5 notifications in Online Designer * changed the preview generation mechanism for Online Designer; now the temporary template file is deleted after creation [Backend] + added S3 upload task + added Telegram sending task + added domain permissions; now, to execute authenticated requests, a list of allowed domains must be specified in the workspace; previously, due to the new browser security system, this functionality was inoperable + added IntelliSense support for Online Designer + added global file search to API * improved font caching mechanism in the worker service * added search by subscription plan to audits * replaced the view model for the request for space occupied by fonts. Now it is not the same model as for files - fixed an error where many parallel requests led to memory leak and caused an error - fixed data types of returned view models in the task controller - fixed a bug where font space calculations accounted for all workspaces - fixed a bug where OpenID users did not display any useful information in the workspace user list - fixed a bug where nested transport had a null subscription ID [Tasks] - fixed an error where a task could sometimes enter an infinite loop and hang the entire system [Preview] + added new preview modes + added localization switching logic for wasmpreview, identical to staticpreview + added nested parameters to static preview [Installer] + added FerretDB installation option + added Publisher installation capability + added Docker-related text to the final page + added demo version license keys • changed behavior: the “Next” button will now be disabled if a license key is not specified • changed behavior: the installer now creates an extended configuration file - fixed a bug where the installer crashed when clicking to show the RabbitMQ password [Demos] + added WPF demo application for FastReport .NET + Cloud [Common] + added a new AllowLocalSignUp property for Auth, which allows enabling and disabling user registration + added a new FaviconLink property for Server, which allows setting the favicon link for a white-label license * assembly download is now available via Docker Registry instead of ZIP * changed the API test cleanup method * the gateway now handles the sign-in form; sign-in is simplified and requires less traffic - fixed an error where license restrictions erroneously prevented the use of OpenID (OIDC) - removed SignInPagePath property from Gateway config; it is replaced by the built-in sign-in mechanism - removed DisabledPath property from Gateway config; it is replaced by the built-in mechanism - fixed docker-compose script for installation files, updated RabbitMQ version [Font Server] - fixed a bug where some TTF files failed to load ### Service Solutions Update to Version 2026.2 URL: https://www.fast-report.com/pt/news/release-service-2026.2 Summary: In the 2026.2 release of our service solutions lineup (FastReport Cloud, FastReport Publisher, FastReport Corporate Server), we focused on improving reliability and usability. In the 2026.2 release of our service solutions lineup (FastReport Cloud, FastReport Publisher, FastReport Corporate Server), we focused on improving reliability and usability. In the 2026.2 release of our service solutions lineup ( FastReport Cloud , FastReport Publisher , FastReport Corporate Server ), we focused on improving reliability and usability: task scheduling has been enhanced, the admin panel has been extended with new capabilities, new integration options have been added, and bugs have been fixed across several key components. API Key Support in Online Designer Online Designer now supports authentication via API keys, expanding integration capabilities for enterprise systems. To authenticate via an API key, add the apikey parameter to the URL. For example: {hostname}/designer/?uuid={templateId}&v=df&apikey={apikey} . Online Designer also now uses the icon from the server configuration, allowing branding to be applied correctly without additional setup. Faster Task and Scheduler Execution Cron expression execution caching has been added. This significantly reduces the number of database calls when working with the scheduler. Also fixed bugs that caused tasks to run without proper permissions or execute too frequently. Documentation Updates The current product version has been added to all documentation articles. This allows you to use scripts from the documentation to install the current product version. Documentation for tasks and the scheduler has been improved, and a new article has been added on the limitations of the demo version of Publisher and Corporate Server. Additional Changes for FastReport Corporate Server and FastReport Publisher The following changes apply only to the on-premise products in the lineup. New Admin Panel built on Fluent UI The admin panel has been completely rebuilt using Fluent UI — a modern Microsoft component library. The interface is now more consistent, user-friendly, and accessible. Error handling on the bulk plan editing page has also been improved. The new admin panel is currently being tested in the cloud infrastructure and will soon be set as the default in Publisher and Corporate Server. Bulk Editing Plans in Workspaces A new flag has been added to the UpdateSubscriptionPlan method — it allows updating the current plans for all subscriptions that use the plan being updated. This simplifies bulk configuration management. Local Browser Time Support Workspace creation and renewal are now set using the browser's local time. The audit creation date on the audit page is also displayed in local time — eliminating date discrepancies for users across different time zones. Default Product Name from the License Key The product name (Corporate Server or Publisher) can now be automatically determined from the license key. Initial product configuration during deployment will now be easier. Extended FerretDB Integration A bug that prevented migrations from being applied when using FerretDB has been fixed. Additionally, the migration mechanics have been improved. Swagger File for the Admin Panel A Swagger file describing the Admin Panel API has been added to Corporate Server and Publisher. This simplifies integration and makes it easier to explore the available administrative API capabilities. The Admin Panel API description is available at /api/swagger/index.html by selecting the appropriate section in the top right corner of the screen. Installer Fix A bug has been fixed that caused the installer to use incorrect demo keys during installation. FastConverter A new service, FastConverter, has been released. It allows converting *.FPX files to various formats supported by FastReport Cloud (for example, *.PDF, *.DOCX). The service does not require installation or registration. You can convert your reports here . Full Changelog [Admin Panel] + a new flag has been added to the UpdateSubscriptionPlan method — it allows updating the current plans for all subscriptions that use the plan being updated; * workspace creation and renewal are now set using the browser local time; * the audit creation date on the audit page is now displayed in browser local time; - improved error handling on the bulk plan editing page; - fixes for the new admin panel; [Backend] + added missing audit messages; - fixed a bug where CORS returned a 500 error for static files; - added the ability to set the default product name (Corporate Server, Publisher) from the license key; - fixed permission check during bulk file move; - fixed a bug in migration #48 where a null value could not be processed as a string; - fixed MHT export; [Common] + added a Swagger file for the admin panel in Corporate Server and Publisher; + added additional health checks for FerretDB; - fixed a bug where MySQL did not allow creating SELECT command parameters for the database; - fixed a bug where migrations were not applied when using FerretDB; [Docs] + added the current product version to all documentation articles; + improved documentation for tasks and the scheduler; + added an article on the limitations of the demo version of Publisher and Corporate Server; [Frontend] + added a new admin panel built on Fluent UI; - fixed the file selection dialog in transport tasks; [Installer] - fixed a bug where the installer used incorrect demo keys; [Online Designer] + added API key support in Online Designer; * Online Designer now uses the icon from the server configuration; [SDK] - fixed a bug when passing date and time values; [Tasks] + added cron expression execution caching, which significantly speeds up database operations; - fixed a bug that allowed tasks to run if the user had no active cloud workspace; - fixed a bug where tasks executed even if the workspace had no permission to use the scheduler; - fixed a bug where a task executed too frequently when a cron expression was specified. ### Serviços em nuvem para empresas: vantagens e oportunidades URL: https://www.fast-report.com/pt/blogs/cloud-services-fo-business Summary: Neste artigo, vamos explorar os principais serviços em nuvem, seus benefícios e seu impacto nos negócios. Neste artigo, vamos explorar os principais serviços em nuvem, seus benefícios e seu impacto nos negócios. Nos últimos anos, as tecnologias de nuvem se tornaram parte integrante dos negócios. Empresas de vários tamanhos e setores estão cada vez mais recorrendo a serviços em nuvem para melhorar a eficiência, a flexibilidade e a segurança de suas operações. Neste artigo, vamos explorar os principais serviços em nuvem, seus benefícios e seu impacto nos negócios. Nos últimos anos, as tecnologias de nuvem se tornaram parte integrante dos negócios. Empresas de vários tamanhos e setores estão cada vez mais recorrendo a serviços em nuvem para melhorar a eficiência, a flexibilidade e a segurança de suas operações. Neste artigo, vamos explorar os principais serviços em nuvem, seus benefícios e seu impacto nos negócios. O que são serviços em nuvem? Serviços em nuvem são recursos e serviços fornecidos pela Internet. Eles permitem que as empresas utilizem poder de computação, armazenamento de dados, plataformas de desenvolvimento e vários aplicativos sem a necessidade de comprar e manter hardware físico.  Os Serviços em nuvem são divididos em três tipos principais: 1. Infraestrutura como serviço (IaaS) — fornece recursos de computação virtualizados: servidores, armazenamento e redes. 2. Plataforma como serviço (PaaS) — oferece uma plataforma para desenvolvimento, teste e implantação de aplicativos. 3. Software como serviço (SaaS)  — fornece acesso a programas de software pela Internet sem a necessidade de instalá-los em dispositivos locais. Quem se beneficia com os Serviços em nuvem Os Serviços em nuvem são adequados para qualquer negócio—desde empresas individuais sem funcionários e startups até agências governamentais e corporações internacionais. Durante a pandemia, muitas empresas tiveram que fazer a transição para um formato de trabalho remoto e utilizaram serviços "em nuvem" para esse fim. Com isso, as empresas conseguiram automatizar suas operações e aumentar os lucros. Vantagens dos Serviços em nuvem para empresas 1. Redução De Custos A transição para tecnologias em nuvem permite que as empresas reduzam significativamente as despesas relacionadas à infraestrutura de TI. Em vez de investir em hardware caro e sua manutenção, as organizações podem utilizar soluções em nuvem com pagamento conforme o uso. 2. Flexibilidade e escalabilidade Os Serviços em nuvem permitem fácil dimensionamento de recursos de acordo com as necessidades do negócio. Isso é especialmente importante para empresas que experimentam um crescimento rápido ou enfrentam flutuações sazonais na demanda. 3. Acessibilidade e mobilidade As soluções em nuvem fornecem acesso a dados e aplicativos de qualquer lugar do mundo com conexão à internet. Isso promove um trabalho mais flexível para os funcionários, incluindo a capacidade de trabalhar remotamente e colaborar em tempo real. 4. Segurança Os provedores de nuvem modernos investem em tecnologias avançadas de segurança, garantindo a proteção dos dados contra perdas e ataques cibernéticos. Criptografia, autenticação multifator e backups regulares são apenas alguns métodos usados para proteger as informações. 5. Atualizações Automáticas Os Serviços em nuvem oferecem atualizações e aprimoramentos automáticos, permitindo que as empresas permaneçam na vanguarda da tecnologia sem a necessidade de gerenciamento manual de atualizações de software. Serviços Em Nuvem Populares Amazon Web Services (AWS) A AWS oferece uma ampla gama de serviços, desde hospedagem até Machine learning. É indicado para empresas de todos os portes e é usado ativamente por startups e grandes empresas. Salesforce A Salesforce é líder em soluções de CRM baseadas em nuvem. Ele ajuda as empresas a gerenciar as interações com os clientes e automatizar os processos de vendas. FastReport Cloud É um serviço em nuvem (SaaS) projetado para armazenar, editar, criar e enviar relatórios dentro de uma empresa, com acesso disponível de qualquer lugar do mundo para toda a sua equipe sem a necessidade de criar seu próprio aplicativo. Tipos de Serviços em nuvem Existem três tipos de serviços em nuvem: Privado Público Híbrido Uma nuvem privada pertence a uma única empresa e opera em seu próprio equipamento. É utilizado apenas pelos funcionários dessa empresa. Todas as informações permanecem internas, facilitando o controle e a proteção. No entanto, apenas grandes empresas podem pagar por uma nuvem privada porque ela é cara de usar: exige a compra ou aluguel de equipamentos, além de gerenciá-los e mantê-los. Uma nuvem pública é mantida por um provedor, que aluga poder de computação para vários clientes. Uma empresa pode comprar exatamente a quantidade de recursos necessários para Operações e armazenamento de dados. Isso é conveniente e econômico. Quando falamos sobre o uso de serviços em nuvem, na maioria das vezes estamos nos referindo a nuvens públicas. Uma nuvem híbrida ocorre quando parte da carga de trabalho está em uma nuvem pública, enquanto outra parte está em uma nuvem privada ou mesmo no armazenamento físico. Isso geralmente acontece durante a transição gradual de uma empresa da infraestrutura tradicional para os serviços baseados em nuvem. Nossa Solução Em Nuvem A geração de relatórios e documentos usando o FastReport Cloud não apenas economizará o tempo da sua empresa, mas também otimizará os fluxos de trabalho. A criação do modelo de documento necessário ocorre no FastReport Online Designer . Você pode modificar a aparência do documento em qualquer navegador sem uma conexão constante com a internet. Ao usar nossa nuvem para o seu negócio, você pode facilmente transformar seus dados em documentos claros e estilizados, aplicar formatação a qualquer texto, adicionar códigos de barras e muito mais. O FastReport Cloud oferece suporte a várias maneiras de conectar dados de JSON, CSV, XML, MS SQL, PostgreSQL, MySQL e Oracle. Além disso, você pode agrupar usuários do serviço e atribuir a eles diferentes direitos de acesso aos recursos do workspace. Crie equipes de administradores, gerentes, designers e desenvolvedores para o trabalho colaborativo. Enquanto um grupo de usuários pode criar novos documentos, outro grupo pode gerar relatórios em PDF a partir de modelos. Conclusão Os Serviços em nuvem oferecem às empresas inúmeras oportunidades para otimizar as operações e reduzir custos. Eles estão se tornando um elemento-chave das estratégias de transformação digital, permitindo que as empresas sejam mais flexíveis e se adaptem às mudanças do mercado. Ao investir em tecnologias de nuvem, as empresas obtêm acesso a soluções modernas que ajudam a atingir metas definidas e manter uma vantagem competitiva. Tags: Cloud, Web Storage ### Session: Generating document templates using machine learning in Azure URL: https://www.fast-report.com/pt/news/generating-document-azure Summary: Session: Generating document templates using machine learning in Azure Session: Generating document templates using machine learning in Azure On September 26 lead developer of Fast Reports Viacheslav Shamshin will hold a session on generating document templates using machine learning in Azure during Basta! conference in Mainz. The session discusses the current MS Azure cloud possibilities focused on artificial intelligence and machine learning technologies for automatical creation of reports and document forms. In addition, the speaker presents a new approach for report generation using machine learning for data blocks recognizing. Models for templates deploying of databases and report generators based on cloud structure finalize the session. Buy your tickets for Basta! conference here:  https://basta.net/tickets/ ### Several reports in the same object WebReport - Working with tabs URL: https://www.fast-report.com/pt/blogs/several-reports-same-object-webreport Web Reports direction actively develops in FastReport.Net. A new feature - bookmarks, you can create a bookmark to a web report toolbar. These tabs allow you to open other reports in the same window. Such a decision may be convenient to display a series of reports similar subjects or reports related by the context. It looks like this: Tabs are presented in the form of buttons. By selecting a tab, we run the report in the same window. Now there is no need to display each report in individual object WebReport. This will help to save space on the page and to avoid congestion of the site. Let's look at the implementation of this function in the example. I used the MVC web project. Add FastReport libraries to the project: FastReport.dll; FastReport.Web.dll. They can be found in the folder FastReport.Net application. Create in the controller Home: instances of report objects, data source, tabs. In general, all the logic here. Declare the libraries: ``` using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using FastReport.Web; using System.Web.UI.WebControls; ```  For Index method write the following code: ``` public ActionResult Index() { string report_path = "C:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; //Report path System.Data.DataSet dataSet = new System.Data.DataSet(); //Create DataSet instance dataSet.ReadXml(report_path + "nwind.xml"); //Read XML databse WebReport webReport = new WebReport(); //Create webReport instance webReport.Width = Unit.Percentage(100); //Set the webReport object width 100% webReport.Height = Unit.Percentage(100); //Set the webReport object heigh 100% webReport.SinglePage = true; //Enable SinglePage mode webReport.Report.RegisterData(dataSet, "NorthWind"); //Register data source in the webReport object webReport.Report.Load(report_path + "Simple List.frx"); //Load a report into the webReport object webReport.CurrentTab.Name = "Simple List"; //Set the current tab name Report report2 = new Report(); //Create a Report instance which will be displayed in the second tab report2.RegisterData(dataSet, "NorthWind"); //Register data source in the report object report2.Load(report_path + "Labels.frx"); //Load a report into the report object webReport.AddTab(report2, "Labels").Properties.SinglePage=true; //Add web tab in the webReport object. Pass as parameters report object and tab name. Enable SinglePage mode for the tab. Report report3 = new Report(); //Create a Report instance which will be displayed in the third tab report3.RegisterData(dataSet, "NorthWind");//Register data source in the report object report3.Load(report_path + "Master-Detail.frx");//Load a report into the report object webReport.AddTab(report3, "Master-Detail");//Add web tab in the webReport object. Pass as parameters report object and tab name. webReport.TabPosition = TabPosition.InsideToolbar;//Set the property TabPosition ViewBag.WebReport = webReport; //Set the ViewBag as webReport return View(); } ```  There is another interesting property: webReport.ShowTabCloseButton If it is set to true, the tabs will have an "X" to close the tab. This option may be useful in interactive reports, where tabs will be dynamically created and contain detailed reports. If a report is not needed, you can close the tab. Then, if necessary, it will be possible again to generate its tab. Above we have looked at how to create a tab, send them reports. We used: ``` public ReportTab AddTab(Report report, string name); ```  As parameters we pass the report object and the name of the tab. However, you can do one parameter: ``` public ReportTab AddTab(Report report); ```  Pass a report object. This tab name will be generated automatically. This will be the serial number of a tab. It is possible to pass the already built report to bookmark of a Web report: ``` public ReportTab AddTab(Report report, string name, bool reportDone); ```  Here, we pass: report, name for the tab and the property that indicates whether the report is to be pre-built. You can upload a file of already prepared report into the report object, and the last parameter specify as true. Then the report will be loaded from the specified file fpx. It might look like this: ``` Report report2 = new Report(); //Create a Report instance which will be displayed in the second tab report2.RegisterData(dataSet, "NorthWind"); //Register data source in the report object report2.Load(report_path + "Labels.frx"); //Load a report into the report object report2.Prepare();//Prepare the report string s = this.Server.MapPath("~/App_Data/Prepared.fpx");//Set the location to save prepared report report2.SavePrepared(s);//Save prepared report   Report firstReport = new Report();//Create instance of Report object firstReport.LoadPrepared(s);//Upload prepared report to the Report object webReport.AddTab(firstReport, "First tab", true);//Add the tab to the WebReport toolbar ```  I showed how to keep the prepared report to a file, and then download it and use it in a web report tab. Go to the view. In the folder Views-> Home open the file Index.cshtml. All page code consists of four lines: ``` @{ ViewBag.Title = "Home Page"; } @ViewBag.WebReport.GetHtml() ```  In the last line of the report output. Home controller sends a report to the page. Add scripts for the web report in the initialization of view _Layout.cshtml (in Views-> Shared folder): ``` … @WebReportGlobals.Scripts() @WebReportGlobals.Styles() … ```  Edit the Web.config, which is located in the Views folder Add the namespace: ``` … ```  Edit the Web.config, which is located in the project root. Add the handler: ``` … ``` Undoubtedly, the new feature of the addition of tabs in the Web report will be useful and in demand. Features of web reports is gradually expanding. It seems that in the near future, web reports nothing will not yield to the desktop reports. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### Shape property of PictureObject in FastReport .NET URL: https://www.fast-report.com/pt/blogs/shape-property-dotnet Summary: With the release of 2024.1, a new property called "Shape" has been added to the PictureObject element, allowing to change the image's shape. With the release of 2024.1, a new property called "Shape" has been added to the PictureObject element, allowing to change the image's shape. With the release of 2024.1, a new property called "Shape" has been added to the PictureObject element, allowing to change the image's shape. With the release of 2024.1, a new property called "Shape" has been added to the PictureObject element, allowing to change the image's shape. The following shapes are available for the Shape property: Rectangle. RoundRecangle. Ellipse. Triangle. Diamond. In the designer, they look like this: It is worth considering that the form is not attached to the picture but to the PictureObject. Also, for correct export to PDF format, you must disable the "Original resolution" setting, otherwise, the export may not be correct. Tags: .NET, .NET, FastReport, FastReport, Designer, Designer ### Simplifying the work with TableObject in the report designer URL: https://www.fast-report.com/pt/blogs/table-object-dotnet Summary: New features for the "Table" object in the report designer will allow you to create templates faster through the context menu. New features for the "Table" object in the report designer will allow you to create templates faster through the context menu. New features for the "Table" object in the report designer will allow you to create templates faster through the context menu. Before the 2024.1 update, to add a row or column, you had to look for the desired property in the properties panel and set the desired value. If you wanted to insert a row or column other than at the end of the table, you had to transfer all the cell values manually. In addition, to transfer values, it was necessary to open the editor, copy the value, and paste it through the same editor of another cell. To resolve these issues and make working with TableObject easier, we have added several changes to the designer. 1. Adding columns and rows using the “+” buttons; 2. Copying, cutting, and pasting cell contents into other cells using keyboard shortcuts; 3. Adding lines above and below using the context menu; 4. Adding columns on the right and left using the context menu; 5. Setting styles for a group of cells via the context menu; Thanks to all these changes, working with tables in the designer has become much easier. Tags: .NET, .NET, FastReport, FastReport, Designer, Designer ### Single ecosystem for Delphi products in FastReport 2023.2 release URL: https://www.fast-report.com/pt/news/fastreport-vcl-2023.2 Summary: This major update links our core Delphi and Lazarus products into a single ecosystem with shared installation and authorization. This major update links our core Delphi and Lazarus products into a single ecosystem with shared installation and authorization. This major update combines our core products for Delphi and Lazarus into a single ecosystem. What does it mean? One installation system with online authorization—install and update all your products at once. Shared release system—major releases are a shared release of all products. Shared library for all products—fixes and new functions are available in several products. The Recompile utility has been removed. The functions of package rebuilding are now performed by the installer. ❗️To download the update, we recommend you uninstall all products through the old installer and then use the new one (installer). ❗️ Core library There are new Core, Core Graphics, and Core Localization packages combining products into one ecosystem. The product localization system has been changed. Now it does not require rebuilding packages: it is enough to install language packs during installation, add the TfrLocalizationController component, and select the desired language. FastReport VCL The system for editing and using styles in the report designer has been revised. The new mode allows you to: create, edit and assign styles during report design. The created styles copy the formatting of the object by default. Changing a style affects all objects that have been assigned this style. The new Style Table tool allows you to customize the appearance of a report using styles and switch between them on the fly. You can: Select style table mode; Create new custom styles and color schemes that would fit your report; Change already created styles of report objects to your taste; Switch almost instantly between ready-made solutions. Style tables are supported in a rendered report and allow you to change the report style without rebuilding. These styles are saved to the rendered report file to allow report distribution to other users. Each user can choose their style. Composite barcodes We have added a new container object for composite barcodes. The object has ready-made settings for composite barcodes: EAN 8+2, EAN 8+5, EAN 13+2, and EAN 13+5. The object editor offers functionality for quick compilation of your compound barcodes. An example of barcodes used when printing price tags. Powerful tools for your reports For the efficient work of multi-threaded applications, we have added the ability to print in multiple threads. Each thread can print to the printer without blocking others. This approach is efficient for applications running in print service mode. We have improved the digital signature object for PDF export. Now you can supplement the signature with the current signed date, name, and other additional information. The ability to override and replace the standard export dialog has been added to export filters without changes in the FastReport source codes. Example: ``` uses frxExportPDFDialog; type TfrxCustomPDFExportDialog = class(TfrxPDFExportDialog) protected procedure InitControlsFromFilter(ExportFilter: TfrxBaseDialogExportFilter); override; end; procedure TfrxCustomPDFExportDialog.InitControlsFromFilter(ExportFilter: TfrxBaseDialogExportFilter); begin inherited; SignaturePage.TabVisible := False; end; procedure SetDialogClass; begin frxPDFExport1.CustomExportDialogClass := TfrxCustomPDFExportDialog; end; ``` We have improved and fixed the bugs in export filters. PDF export has received support for handling translucent SVG images. Report compatibility between Lazarus and Delphi versions has been improved. The transfer of report variables between versions has been fixed. FastCube VCL and FastCube FMX For FastCube VCL and FastCube FMX products, we have added integration with FastScript, which we moved to a separate package. For FastScript support, it is enough to install one additional package and not rebuild all the others. We also paid attention to fixing errors in highlighting and editors. FastCube VCL gets HiDPI support for high-resolution monitors. It supports all available RAD Studio development environment modes. FastQueryBuilder gets package support for the latest RAD Studio versions. RAD Studio 11 compatibility bugs have been fixed in FastReport FMX. Product optimization and performance have been improved, and internal architectural changes have been made. The full changelog for the 2023.2 version Сore library --------------- + Added new core package with a shared code for all products + Added a new graphics core package with a shared code for all products + Added new localization packs * Changed product localization system Fast Report VCL --------------- [Designer] - Fixed Int64 support in Object Inspector - Fixed filter behavior in the data selection dialog - Fixed TfrxRichView frame borders in the designer - Fixed a bug when the dropdown code completion did not copy styles from Syntax Memo [Engine] + Added support for style tables and improved work with styles in the report designer + Added the option of simultaneous multi-threaded printing - Fixed form scaling for additional display for Delphi 10.1 and later - Fixed bug with parent container component interactive events - Fixed error handling in CrossView events - Fixed printing of current page mode - Fixed Duplex printing for multiple copies of documents with collation enabled [Exports] + Added new CustomExportDialogClass property for export filters, which allows you to override the export dialog for standard export filters * Improved translucent SVG export in PDF export via EMF - Fixed memory leak with embedded files in PDF export - Fixed progress dialog in HTML export when entering the wrong page number - Fixed export of TfrxLineView and TfrxShapeView in PPTX export [Lazarus] + Added support for variable portability in templates (Delphi <--> Lazarus) - Fixed behavior of empty TfrxPictureView in Lazarus [Preview] - Fixed button order in the preview [Report object] + Added composite barcodes (EAN 8+2, EAN 8+5, EAN 13+2, EAN 13+5) + Added TfrxPictureView.LoadFromStream method + Added handling of Hint property (similar to TagStr) - Fixed placement of SVG pictures in TfrxPictureView [Resources] * Updated Portuguese resources * Updated Polish resources FastReport FMX --------------- - Fixed integer overflow error in gradient fill object - Fixed crosstab editor bug in RAD Studio 11 FastQueryBuilder --------------- - Added packages for new Delphi versions (RAD Studio 10-11) FastCube --------------- + Added HiDPI support for high-resolution monitors + Added integration package with FastScript (integration does not require rebuilding of the main packages) - Fixed bugs in highlighting rules - Fixed Access violation error when using the component in some editors ### Sobre O Fast Reports URL: https://www.fast-report.com/pt/about-company Summary: A Fast Reports cria bibliotecas e ferramentas para geração de relatórios e documentos a partir de bancos de dados desde 1998. A Fast Reports cria bibliotecas e ferramentas para geração de relatórios e documentos a partir de bancos de dados desde 1998. A Fast Reports cria bibliotecas e ferramentas para geração de relatórios e documentos a partir de bancos de dados desde 1998. Os componentes Fast Reports são a base de centenas de milhares de programas em diferentes linguagens de programação e para diferentes plataformas:. net Core, RAD Studio, Visual Studio, Lazarus, Mono e outros. Os produtos estão localizados em 32 idiomas para usuários em todo o mundo, incluindo os da lista Fortune 500. Nossos prêmios: Nossos contatos: Telefone: 800-985-8986 (Inglês, EUA) Telefone: +3197010258466 (Inglês, Europa) Telefone: +49 30 56837-3928 (Alemão) Telefone: +55 19 98147-8148 (Português) Mail:  info@fast-report.com Endereço:  66 Canal Center Plaza, Ste 505, Alexandria, VA 22314 ### Start FastCube 2 VCL beta-testing! URL: https://www.fast-report.com/pt/news/fastcube-vcl-beta-testing Summary: Start FastCube 2 VCL beta-testing! Start FastCube 2 VCL beta-testing! We announce powerful beta-testing of FastCube 2 VCL! What does it mean? - Trial versions of FastCube 2 for all supported IDEs are available here:  https://www.fast-report.com/en/download/fast-cube-2/ - All who ordered FastCube 1 from now to date of release of FastCube 2 (approximately May 2013) will get FastCube 2 for free (beta - today and release then). - All customers of FastCube 1 can order FastCube 2 with great discount (see customer panel ) ### Styles in FastReport .NET URL: https://www.fast-report.com/pt/blogs/styles-fastreport-net In this article, I would like to talk about the use of styles in FastReport .NET. Indeed, many people underestimate this feature. They think that styles helps bring documents to a unified specie. Almost every user faced with a text editor Microsoft Word. And most know that styles help instantly change the appearance of objects (such as titles). FastReport .Net also allows styles to bring individual objects or groups of objects to uniformity. The practice of style greatly accelerates the development of reports. So, open the report designer. The toolbar Stiles is located on the tab Home: There is the drop-down list that allows you to choose the current style. To apply the style you need to select an object or group of objects. Then select the desired style from the drop-down list. To open the Style Editor, use the icon below the drop-down list: In the Style Editor, you can add, delete, and edit. In addition, you can save a set of styles file * .frs, and then load styles from this file to create another report. This is very useful if you are developing many reports in the same style. Style allows you to: set the object frame. This can be a whole frame and one or more lines to choose from. Also, is defined style, thickness and color of lines; Set the fill color. This can be not only a solid color, but a gradient or hatching; Set the font. Traditionally, you can set the size, style, alteration; Set the font color. For example, apply a style for headlines data in the report Master-detail: Bands also have property Style. This means that it is possible to apply the custom styles. But let's turn our attention to the property EvenStyle. Because of this property we can set style for even rows in the table. Create another style with a light gray fill. Choose a band with the data (in our case, a detailed band data). For the property EvenStyle select created style. Preview the report: Admit this is a very simple and effective. Thus, using the styles in your reports, you will: accelerate the creation of the report, achieve a uniform design of report objects, and improves the appearance of the lists through the property EvenStyles. Tags: .NET, .NET, FastReport, FastReport ### Subscribe on save events in FastReport Online Designer URL: https://www.fast-report.com/pt/blogs/subscribing-save-events-online-designer In case you need to do some actions on client side after saving the report like show some beautiful dialog from your code or do redirect to the other page you can use following techniques. 1) you can use the following code: ``` const eventName = 'save_success';   window.addEventListener('message', e => { if (e.data === eventName) { // here is your code. It could be something like showSuccessDialog(); } }, false);   ``` where eventName can also be: save_begin - will be executed when user starts saving the report but before sending request to the server save_failure - will be executed in case the request failed and report was not saved. 2) Another possibility to do some actions on save events is to set URL option in config section during building your online designer : Tags: FastReport, FastReport, Online Designer, Online Designer ### Summary and plans for 2022 URL: https://www.fast-report.com/pt/news/summary-and-plans-2022 Summary: We are wrapping up the outgoing 2022: the release of FastConverter.FP3, the end of support for Delphi 7, and also share our plans for 2023. We are wrapping up the outgoing 2022: the release of FastConverter.FP3, the end of support for Delphi 7, and also share our plans for 2023. The year 2022 was full of important events. Despite its unpredictability and all challenges, that we've faced over the past 12 months, we've continued to work hard to improve document generation in thousands of apps. What important happened? A milestone for the VCL report generators was the end of support for obsolete non-Unicode versions, which will allow us to work harder to improve FastReport and introduce more sophisticated features with each release. Since the release of 2023.1, FastReport VCL supports Delphi versions starting from 2010. We have released the fp3 converter which converts to any FastReport VCL data format — FastConverter .FP3 . We have launched NuGet server for the .NET direction — a repository of licensed products for users. Now you can conveniently download the latest versions of our components on any operating system. FastReport.Core now supports graphics and text rendering using the SkiaSharp library. Also, FastReport .NET got a bronze medal in the "Reporting, Analysis and Visualization" nomination in the Reader's Choice Awards by Visual Studio Magazine. We were happy to share the stand with Devexpress and SAP Crystal Reports. What about plans? The release of several services at once will be a truly revolutionary breakthrough in 2023. One of them is FastReport Cloud cloud report builder. This is an online service for creating, storing, and editing reports and documents, which allows you to set up and implement reporting in companies with minimal involvement of programmers. Stay tuned and you will be one of the first to try it! We are also working on a high-performance WPF reporting and document library for business application development. Other products will have the following features: WASM support New report objects Support for the latest version of the environment — NET 8, RAD Studio 11.3 Updated user interface and user experience Digital signature stamp Support for RFID tags for ZPL export Map implementation based on GeoJson And much more! It's also time for New Year's wishes. Maybe it's reporting for Android? Or export to some exotic format? Write to us your wish in the form below. It would be great if you also tell us how this will change the work of your applications. Congratulations on the upcoming holidays, Fast Reports team. Загрузка… ### Summer events with Fast Reports URL: https://www.fast-report.com/pt/news/summer-events-2018 Summary: Summer events with Fast Reports. We are having a busy-busy summer and invite you to meet us at the following events in Europe that we organized together with our partners Summer events with Fast Reports. We are having a busy-busy summer and invite you to meet us at the following events in Europe that we organized together with our partners We are having a busy-busy summer and invite you to meet us at the following events in Europe that we organized together with our partners:  Date Name Location For .Net Developers For Delphi Developers Link June 6 – 7 Delphi Day Italy Piacenza, Italy + June 15 SDN (Free!) Zeist, Netherlands + + June 25-28 DWX Nuremberg, Germany + June 29 Workshop (Free!) Nuremberg, Germany + + July 2 Workshop (Free!)  Barcelona + + ### Summer offer: 10% off on FastReport VCL editions URL: https://www.fast-report.com/pt/news/fastreport-vcl-discount-2023 Summary: Get Lazarus support and source code with 10% off in FastReport VCL Professional and Enterprise editions with VCL Ultimate. Get Lazarus support and source code with 10% off in FastReport VCL Professional and Enterprise editions with VCL Ultimate. From  July 11 to July 25 , get Lazarus support and source code with 10% off in FastReport VCL Professional and Enterprise editions, or full cross-platform with FastReport VCL Ultimate. Save from $39,9 when purchasing a Single license, $89,9 when purchasing a Team and $599,9 when purchasing a Site! Take advantage of getting much more functionality for less cost. You can see the differences between editions here . The offer is valid only for the license purchase and does not apply to an upgrade or renewal. You can use the hot offer by clicking on the link. ### Summing up. Rewarding our partners URL: https://www.fast-report.com/pt/news/summing-up-rewarding-our-partners Summary: We would also like to acknowledge sales growth in the UK of 52% and the Czech Republic of 69%. We would also like to acknowledge sales growth in the UK of 52% and the Czech Republic of 69%. Dear Friends! We are going to reward our best dealers and present them with personal certificates for their good work and special contributions in FastReport product promotion. The key results and awards given are:  Germany. We have awarded a certificate and "Partner of the Year" status to  Christian Haimerl  and  McLicense   for their active promotion of our products and high sales levels. Japan! This is exceptional! The  Ag-Tech  company has localized FastReport.Net and FastReport VCL to Japan, and sales have grown by 1973% Brazil. Very good performance. Growth is low at 8% but we thank  our dealers  from Brazil for the stable sales and technical support. Netherlands.  Growth is 73% for the year 2011. We would like to mention in a special way  Isah , our technical partner in Holland. Poland. Rising sales  of 73%. Moreover, we have opened a training center for FastReport customers. An award goes to  Softkey.pl  and  BSC Polska . China. Very good work by resellers in this country. We thank our partners for their hard work and marketing campaigns! Awards go to  Qast Software Group ,  Panyan Tehnology (Component CN) ,  Chongqing Huidu Technology (Evget) . Italy. Many thanks to  Andrea Urbani   for his work and product technical support. Andrea is our friend and very good partner. We would also like to acknowledge sales growth in the UK of 52% and the Czech Republic of 69%. We thank our partners from other countries and give them “Partners of Year 2011” status : Component Source  (UK and World),  Jan Kadlecek  (Czech Republic),  Olivier Pennec  (France),  Danysoft  (Spain),  Linksoft  (Taiwan). Michael Philippenko rewards Jan Kadlecek ### Support URL: https://www.fast-report.com/pt/support Summary: Central De Atendimento Ao Cliente. Entre em contato conosco de forma conveniente ou deixe uma solicitação através do formulário de contato. Estamos sempre prontos para ajudá-lo. Centro de Suporte Estamos aqui para te ajudar Contatos Bilhetes Fórum Perguntas frequentes Questões de licenciamento FastReport .NET - FAQ FastReport VCL - FAQ Reporting FMX - FAQ Analysis VCL - FAQ Online Designer - FAQ FastReport Publisher - FAQ Precisa de ajuda? Materiais úteis Documentação Artigos Vídeo tutorial info@fast-report.com Vendas sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Endereço Alexandria, VA 22314 66 Canal Plaza, Ste 505 Produtos Comprar Demo Documentação Como desinstalar Licenças Produtos Comprar Demo Documentação Como desinstalar Licenças Apoio SLA de suporte Suporte online Perguntas Freqüentes Vídeo tutorial Fórum Artigos Notícia Apoio SLA de suporte Suporte online Perguntas Freqüentes Vídeo tutorial Fórum Artigos Notícia Companhia Sobre Identificação Revendedores Contacte-nos Companhia Sobre Identificação Revendedores Contacte-nos Política de privacidade Política de cookies © 1998-2026 Fast Reports Inc. Trustpilot Link copiado sucesso ### Support ao Lazarus no FastReport VCL 6 URL: https://www.fast-report.com/pt/news/support-lazarus-vcl6 Summary: Support ao Lazarus no FastReport VCL 6 Support ao Lazarus no FastReport VCL 6 Estamos entusiasmados em anunciar que o FastReport VCL 6 agora oferece suporte ao Lazarus em modo de teste beta. Atualize sua edição FastReport VCL Professional e veja-a primeiro. Feedback são bem-vindas em  support@fast-report.com O que há de novo? - Suporte ao Lazarus 2.0.0 Melhorias: - manuseio de papel por padrão - atualização da contagem de páginas ao saltar entre as guias - lista suspensa de fontes Fixed: - buffer desfazer-refazer no Linux - hiperlinks no objeto de texto - objetos cruzados aninhados - variáveis de relatório Added: Exportação para os seguintes formatos: HTML, HTML5, RTF, DBF, CSV, ODS, ODT, XML, PDF, DOCX, PPTX, XLSX. ### Support for .NET 7 in new FastReport .NET 2023.1 URL: https://www.fast-report.com/pt/news/fastreport-net-2023.1 Summary: We are pleased to present you a integration with FastReport Cloud, .NET 7 support, JasperReports converter, connection to stored procedures in MsSQL. We are pleased to present you a integration with FastReport Cloud, .NET 7 support, JasperReports converter, connection to stored procedures in MsSQL. The autumn update for the report generator is now available! The functionality of our solutions is expanding every day and we are pleased to present you a partial integration with FastReport Cloud, .NET 7 support, JasperReports template converter, connection to stored procedures in MsSQL, and much more. Integration with FastReport Cloud FastReport .NET, FastReport Core, and FastReport Mono now support some interaction experience with FastReport Cloud. Downloading and uploading reports Now you can download the report from Cloud and work on it in the designer, or vice versa — upload your files to Cloud. Web Preview A web preview function has also appeared in addition to the standard preview. The report can only be viewed this way if it was opened from Cloud. Connecting to FastReport Cloud data sources FastReport Cloud can store connections to data sources. From now on, you have the option to add these data sources to your report.  It also became possible to add the connection to Cloud. R ead this article to learn more about the new features.  .NET 7 support We have added  .NET 7  support for FastReport.Core and FastReport.CoreWin. This platform improves application performance and adds many new features to your projects. Report validator improvements Increased work speed Now the report validator runs in a single thread. The speed of its work is significantly optimized. You can notice the changes in processing reports with a large number of errors. While the validator is checking the report, the check window shows a respective message. In this case, you can edit the report. A table with errors will appear upon completion of the validator. Validator table setup For convenience, we have added a new column with error numbers. Its display can be enabled or disabled via the table context menu. In the same way, you can customize the display of the error type column. JasperReports Template Converter We have added the option to convert report templates from JasperReports to FastReport .NET templates. JasperReports reports may contain objects that are not supported by the FastReport designer. These objects will not be converted or will be replaced to make the generated report as similar as possible to the one created in JasperReports. Read more in the article. MSChartObject improvements and fixes The MSChartObject object has many properties and settings. The most frequently used ones are moved to the object editor. Properties that are not available in the editor can be modified using the Object Inspector. However, there was a problem with these properties — when they were changed, the report was not seen as modified. As a result, saving was not available. To save the report, it was necessary to change its other property or object. In addition, the values of the specified properties were reset to their default values when preparing a report and after closing the preview window. This bug has been fixed in the new version. Connection to Stored Procedures in MsSQL We have added the option to connect to procedures stored in MsSQL. This was previously available via a database query. Now you can connect to procedures much more conveniently using the interface of database table connection. They will be displayed in the selection window along with the tables. Once you select a procedure, a window with parameter settings, if any, will appear.  Read more in the article. Export Improvements "Print optimized" option in RTF export We have added a new PrintOptimized property and a corresponding option in the export window. Enabling this option will greatly increase the quality of the exported image. However, the size of the output file will be bigger. UseFileStream property in Excel 2007 export We have added a new option, UseFileStream, for exporting to Excel 2007. It can only be used when exporting from code to a file. This option is useful when exporting reports with a large number of pages (several tens of thousands) in multiple threads. This will help you avoid memory shortage errors. In other cases, it does not make much sense to use it and it is not recommended to do it. Example: ``` Report report = new Report(); Excel2007Export export = new Excel2007Export(); export.UseFileStream = true; report.Export(export, "report.xlsx"); ``` Accounting format when exporting to Excel 2007 You can now export the currency data format as an accounting format. To do this, a corresponding option has been added in the export window and the CurrencyToAccounting property. Upgrading the minimum .NET Framework version from 4.0 to 4.6.2 We are upgrading the minimum supported version of FastReport .NET to .NET Framework 4.6.2 due to the following: support for .NET Framework 4.0 has long been ended; there are problems with building the FastReport source code in the latest versions of Microsoft Visual Studio; the need to implement new APIs. The full list of changes is available at the following link. ### Support for editable fields in WebReport URL: https://www.fast-report.com/pt/blogs/support-editable-fields-webreport In the article "Interactive forms in the PDF export of Fast Report .Net 2018" I have already considered editable fields. The bottom line is that the Text and Checkbox objects can be edited in the report preview mode if you include the Editable property. Until recently, this function was supported only for desktop reports. Now, starting with version 2018.2.3, web reports can also have editable fields. That is, when viewing the report in the browser, you can change the text and the checkboxes, and after that, for example, export the report to the desired format. Let's look at an example of how this works. Let's say we have a Web application with a WebReport object. An arbitrary report is displayed in the object. I took for example the Master-Detail report from the FastReport.Net delivery. Select the desired text object and set its properties to Editable = true. I made two fields editable: Unit price and Discontinued. Launch the web application: Before us there are categories with lists of goods. Let's say I'm a businessman and look through the goods of my store. I see an error in the price or description and correct it right in the report. Then, I can save the report or print it to transfer it to the price adjustment to the administrator. Everything is simple and convenient. Let's fix the price for a product. Just click on the desired text field, and before you open the editing window: Put the check boxes in the Discontinued field for other products: By the way, if you use the Editable property, and set the InteractiveForms option when exporting to PDF, you will get editable fields in the PDF document. Tags: FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### Support our products in Community Choice Awards URL: https://www.fast-report.com/pt/news/community-choice-awards-2010 Summary: Support our products in Community Choice Awards Support our products in Community Choice Awards Two community choice awards votings are taking place now. These are:  1. "2010 SQL Server Magazine Community Choice Awards" Our great reporting product- “Fast Report .Net"- is taking part in this voting .It is in the second category called “Best Business Intelligence & Reporting Product”. This is our great chance to vote for our product, let others what it can do and promote it in different communities.  And to add to that, are you impressed with our tech support team?  Then you have a chance to vote for our own team in the ninth category called “Best vendor tech support”. And what can be the best way to encourage our team than to vote for it?  2. "2010 DevProConnections Community Choice Awards". Our impressive and effective data analysis tool –FastCube- is taking part in the second category “Charting & Graphics Tool”, The best way to tell others that there is a better way to analyze their data is by voting for our product. And this will do us all pride that once again, we are together supporting our team and making others aware of better ways to handle and report their data. Thanks for your support! ### Tabs in WebReport URL: https://www.fast-report.com/pt/blogs/tabs-web-report We can use tabs to view multiple reports in WebReport  in version FastReport.NET 2013.4 and newer. Tabs can be useful for viewing many reports with additional information. Each report in tab has own navigation and may be attached to any data source. Saving in different formats is performed for each tab. We have plans to implement FastReport.NET for open the detailed report in a separate tab by clicking on the object page. Also we will add the ability to close unnecessary tabs. Tabs can be added directly in the application code, for example: ``` WebReport webReport = new WebReport(); webReport.Report.RegisterData(dataSet, "NorthWind"); webReport.Report.Load(report_path + "Simple List.frx"); webReport.CurrentTab.Name = "Simple List"; // tab 2 Report report2 = new Report(); report2.RegisterData(dataSet, "NorthWind"); report2.Load(report_path + "Labels.frx"); webReport.AddTab(report2, "Labels"); // tab 3 Report report3 = new Report(); report3.RegisterData(dataSet, "NorthWind"); report3.Load(report_path + "Master-Detail.frx"); webReport.AddTab(report3, "Master-Detail");   ``` A property “webReport.CurrentTab” needs for access to the current tab, for example: “webReport.CurrentTab.Report”. By default, the first tab is available. In each of the tabs we have next available properties: “Report” – report object, “Name” – tab name. The name of the tab will be taken from the properties of report or report file name if the “Name” property is not specified. The collection of tabs "webReport.Tabs" is also available. These can be used to refer to the tab by its index, for example: webReport.Tabs [0]. Name. WebReport.AddTab method adds a new tab. We can use any declaration from next: ``` // an adding of report object public ReportTab AddTab(Report report); // an adding of report object with its name public ReportTab AddTab(Report report, string name); // an adding of prepared report object with its name (reportDone = true) public ReportTab AddTab(Report report, string name, bool reportDone);   ``` Last call declaration can add any prepared report. An example of adding some prepared reports: ``` webReport.Tabs.Clear(); string s = this.Server.MapPath("~/App_Data/Prepared.fpx"); // first Report firstReport = new Report(); firstReport.LoadPrepared(s); webReport.AddTab(firstReport, "First tab", true); // second Report secondReport = new Report(); secondReport.LoadPrepared(s); webReport.AddTab(secondReport, "Second tab", true);   ``` In the near future we will add the display settings for tabs and an implementation of interactive reports. LIVE DEMO Thank you for attention! Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC ### Thank you for your request URL: https://www.fast-report.com/pt/user-request-successful Summary: You succesfully applied your contest project! Thanks for being a part of it. We will notify you about your status change via email You succesfully applied your contest project! Thanks for being a part of it. We will notify you about your status change via email You succesfully applied your contest project! Thanks for being a part of it. We will notify you about your status change via email ### The content of .NET component packages URL: https://www.fast-report.com/pt/fastreport-packs-net Summary: The composition of the product line .NET directions, effective from June 1, 2024: now the products are more specialized The composition of the product line .NET directions, effective from June 1, 2024: now the products are more specialized Here you can learn how .NET products will be formed starting on June 1, 2024. Instead of the usual product and edition, we suggest choosing the set of components (pack) that is right for you.  Ultimate WEB Avalonia WinForms WPF Mono Open Source The composition of component sets Run-time report designer ✓ ✓ ✓ ✓ ✓ ✓ ✓ Report Viewer ✓ ✓ ✓ ✓ ✓ ✓ ✓ Saving and uploading templates to  FastReport Cloud ✓ ✓ ✓ ✓ ✓ ✓ ✓ Saving prepared reports to the cloud ✓ ✓ ✓ ✓ ✓ ✓ Report script ✓ ✓ ✓ ✓ ✓ ✓ ✓ Print support ✓ ✓ ✓ ✓ ✓ ✓ In-report data sources ✓ ✓ ✓ ✓ ✓ ✓ ✓ In-report dialogue forms ✓ ✓ ✓ ✓ ✓ ✓ Export the prepared report to other formats ✓ ✓ ✓ ✓ ✓ ✓ Partly* Advanced report objects : Table, Matrix, AdvMatrix, Barcode, Charts, Maps, RichText, Checkbox, Zip code, CellularText, Digital signature ✓ ✓ ✓ ✓ ✓ ✓ Partly** Report objects - Text, Picture, Shape, Line, Subreport ✓ ✓ ✓ ✓ ✓ ✓ ✓ System.Drawing (GDI) ✓ ✓ ✓ ✓ ✓ ✓ ✓ FastReport.Drawing (Skia) ✓ ✓ ✓ Blazor Server ✓ ✓ Blazor Webassembly (WASM) ✓ ✓ ASP.NET components (WebReport) ✓ ✓ ✓ WinForms components ✓ ✓ WEB components  ✓ ✓ ✓ Avalonia components ✓ ✓ WPF components ✓ ✓ Mono components ✓ ✓ OLAP components ✓ Business Graphics components ✓ Online Designer included ✓ ✓ Source code ✓ Operating systems Windows ✓ ✓ ✓ ✓ ✓ ✓ ✓ macOS ✓ ✓ ✓ ✓ Linux ✓ ✓ ✓ ✓ ✓ Pricing policy Single $1,499 $799 $599 $499 $499 $499 Team $4,499 $2,399 $1,799 $1,499 $1,499 $1,499 Site $22,499 $11,999 $8,999 $7,499 $7,499 $7,499 *Only PDFSimple, Images (Jpeg, PNG, BMP, GIF, TIFF, EMF), HTML, HTML5 (layered) are supported **Only Table, Matrix, Barcode, RichText, Checkbox, Zip code, CellularText are supported ### The content of Delphi component packages URL: https://www.fast-report.com/pt/fastreport-packs-delphi Summary: The content of the Delphi product line, effective from June 1, 2024: now the products are more specific foк your needs The content of the Delphi product line, effective from June 1, 2024: now the products are more specific foк your needs Here you can learn how Delphi products will be for med starting on June 1, 2024. Instead of the usual product and edition, we suggest choosing the set of components (pack) that is right for you. Ultimate VCL Optimum VCL Reporting VCL Reporting FMX Reporting Lazarus Analysis VCL Embarcadero Edition The composition of component sets Report Designer ✓ ✓ ✓ ✓ ✓ Partly* Report script ✓ ✓ ✓ ✓ ✓ Connecting data sources ✓ ✓ ✓ ✓ ✓ ✓ ✓ In-report dialogue forms ✓ ✓ ✓ ✓ ✓ Export to other formats ✓ ✓ ✓ ✓ ✓ ✓ Partly** Advanced report objects - Table, Matrix, Barcode, Charts, Maps, RichText, Checkbox, Zip code, CellularText ✓ ✓ ✓ ✓ ✓ Partly*** Report objects - Text, Picture, Shape, Line, Subreport ✓ ✓ ✓ ✓ ✓ ✓ Converters from Quick Report, Report Builder, Rave Reports ✓ ✓ ✓ VCL components (Core, Core controls, Core Graphic, Core Localization) ✓ ✓ ✓ ✓ VCL OLAP components ( FastCube VCL ) ✓ ✓ ✓ VCL ClientServer components ( learn more ) ✓ ✓ FMX components (Core, FastScript, Reporting) ✓ ✓ FMX OLAP components (FastCube FMX) ✓ Lazarus components (Core, Core UI,  FastScript, Reporting) ✓ ✓ Lazarus OLAP components (FastCube Lazarus) ✓ Lazarus ClientServer components  ( learn more ) ✓ Save prepared reports to clouds (transports) ✓ ✓ Source code ✓ ✓ ✓ ✓ ✓ ✓ FastScript included ✓ ✓ ✓ ✓ ✓ ✓ FastQueryBuilder included ✓ ✓ ✓ Operating systems Windows ✓ ✓ ✓ ✓ ✓ ✓ ✓ macOS ✓ ✓ ✓ Linux ✓ ✓ ✓ Pricing policy Single $1,299 $899 $499 $499 $499 $399 Download Team $3,899 $2,699 $1,499 $1,499 $1,499 $1,199 Site $19,499 $13,499 $7,499 $7,499 $7,499 $5,999 *Design time only **Only PDF, RTF, HTML, TXT, Images, CSV  are supported ***Only Сharts, Linear barcodes, Rich Text, Checkbox are supported ### The era of WinForms is over, the era of FastReport.Core.Skia began URL: https://www.fast-report.com/pt/blogs/fastreport-core-skia Summary: The new Sharp graphics engine for creating high-quality reports and correctly exporting to different formats is available in FastReport .NET. The new Sharp graphics engine for creating high-quality reports and correctly exporting to different formats is available in FastReport .NET. The new Sharp graphics engine for creating high-quality reports and correctly exporting to different formats is available in FastReport .NET. To create high-quality reports and correctly export them to different formats (PDF, Word, Excel, etc.), it is necessary to use the graphics engine. Since the earliest versions of the .NET Framework, Microsoft has used GDI+ and its wrapper as part of the System.Drawing library. FastReport .NET has long been using the same library to create beautiful and functional reports. The Mono team has developed their GDI+ version for Unix systems: libgdiplus, which is used by System.Drawing.Common. However, this method does not work perfectly. GDI+ problems Unfortunately, unlike on Windows, System.Drawing.Common works on other platforms very specifically. Such common issues that we receive from our users include incorrect rendering text sizes, lack of RTL language support, incorrect word spacing, word break error in sentences, lack of ARM processor support, and general libgdiplus instability (“Out of memory”, problems during the work in a multi-threaded configuration). You can solve some of these problems by manually rebuilding libgdiplus from the Mono repository  with Pango/Cairo support . In any case, this is inconvenient, especially if your application uses containerization. The other problems affect the quality of report export on all operating systems except Windows. As a result, Microsoft officially dropped support for System.Drawing.Common on non-Windows platforms. Here is their post:“ Breaking change: System.Drawing.Common only supported on Windows - .NET | Microsoft Docs “ . After it, our users began to actively ask how they could use the powerful functionality of FastReport on Linux or macOS. Solution We have developed a special version of FastReport.Core, which uses Skia as a graphics engine and its wrapper for .NET - SkiaSharp, called FastReport.Core.Skia. The FastReport.Core.Skia and FastReport.Web.Skia packages are available on our private NuGet server.  In case you have problems rendering text under Linux with libgdiplus, we highly recommend trying FastReport.Core.Skia. To use it in your application, just change the package name  FastReport.Core -> FastReport.Core.Skia , and add the following packages on Linux (on Windows and macOS, the necessary packages are added automatically) : - SkiaSharp.NativeAssets.Linux ( NuGet ). - HarfBuzzSharp.NativeAssets.Linux ( NuGet ). Let's now compare FastReport.Core with libgdiplus and FastReport.Core.Skia on Linux/macOS. First, let's look at the incorrect calculation of text length after exporting to HTML format on Linux Ubuntu 20.04. In the images below, you can see how libgdiplus with Pango, even rebuilt from the source, does not display the end of the 1st line correctly, dropping some information, Skia works fine. Incorrect HTML export on Linux, libgdiplus + Pango Correct HTML export on Linux, SkiaSharp Let's look at exporting the Unicode.frx report from our demo with texts in different languages. Unfortunately, even after rebuilding libgdiplus with Pango, it does not work with RtL languages such as Hebrew, Arabic, and others. FastReport.Core.Skia can work with such languages. Incorrect PDF export of RtL text on Linux, libgdiplus with Pango wrote all text in 1 column for 8 pages Correct PDF export of RtL text on Linux, SkiaSharp We can see the similar situation with some Eastern languages, the correct display of which requires a special font: Incorrect PDF export of text on Linux, libgdiplus with Pango Correct PDF export of text on Linux, Skia. An appropriate font is automatically selected for each text. Let's try FastReport.Core.Skia in a previously unsupported scenario: working on devices with ARM processors, such as Apple M1. Let's create a .NET 6 console application (because only .NET 6 has native support for ARM architecture for macOS) and export the Simple List.frx report from our demo. In the end, we recall that System.Drawing.Common, starting with version 7.0, will completely stop supporting non-Windows systems, so the examples of libgdiplus given above will soon not work at all. Limitations: This version of FastReport.Core cannot be used with the System.Drawing API: in some .NET Framework projects, NET Core 3.1/ NET 5+ WindowsForms projects, and in projects with System.Drawing.Common due to the specifics of this modification. Try the new version of FastReport.Core with SkiaSharp support and enjoy all its advantages. If you have any questions, please contact our  Support . Tags: .NET, MacOS, Mono, FastReport, Linux, Core, PDF, WinForms, HTML, Libgdiplus, Windows ### The Event of ExportParameters in WebReport.Report URL: https://www.fast-report.com/pt/blogs/exportparameters-in-webreport Summary: The article discribes how to use event ExportParameters with FastReport.Net reports. The article discribes how to use event ExportParameters with FastReport.Net reports. The article discribes how to use event ExportParameters with FastReport.Net reports. In FastReport 2020.1 we have added the ability to change export parameters. To do this, you must subscribe to the ExportParameters event in WebReport.Report. Until now the FastReport.Net library did not provide access to the export parameters. Or rather, it did, but only to some of the parameters, and with the help of individual properties of the Web report. All these properties are piled up and working with them using intelisense is quite inconvenient, and they do not cover all the needs of users. So it was decided to give users access to all properties of the export object, using a special ExportParameters event. In the event handler you can get the export object and set all the properties you need. Thus, it is now possible to configure the export more precisely due to previously unavailable properties. This is how you can use the new event: ``` WebReport.Report.ExportParameters += (sender, e) => { PDFExport export = e.Export as PDFExport; if (export != null) { export.Title = "test"; export.DefaultPage = 2; } }; ```  In this example, we only changed the header and the default page. Note that we are expecting a PDF export when processing, which means that this code will not work for another type of export. In one handler you can specify settings for several export types at once. Now, let's take the example of PDF export as an example of how the available export properties have expanded. Previously WebReport offered us a set of export properties, which were essentially wrappers over the properties of the PDFExport export object: ``` public string PdfTitle { get; set; } public string PdfAuthor { get; set; } public string PdfSubject { get; set; } public string PdfKeywords { get; set; } public string PdfCreator { get; set; } public string PdfProducer { get; set; } public string PdfUserPassword { get; set; } public bool PdfPrintScaling { get; set; } public string PdfOwnerPassword { get; set; } public bool PdfAllowModify { get; set; } public bool PdfAllowCopy { get; set; } public bool PdfAllowAnnotate { get; set; } public bool PdfA { get; set; } public bool PdfShowPrintDialog { get; set; } public bool PdfImagesOriginalResolution { get; set; } public bool PdfJpegCompression { get; set; } public bool PdfAllowPrint { get; set; } public bool PdfCenterWindow { get; set; } public bool PdfHideWindowUI { get; set; } public bool PdfFitWindow { get; set; } public bool PdfEmbeddingFonts { get; set; } public bool PdfBackground { get; set; } public bool PdfInteractiveForms { get; set; } public bool PdfPrintOptimized { get; set; } public bool PdfOutline { get; set; } public bool PdfDisplayDocTitle { get; set; } public bool PdfHideToolbar { get; set; } public bool PdfHideMenubar { get; set; } public bool PdfTextInCurves { get; set; } ```  I must say that this list of properties includes the main and most popular, but not all. Many users want more. And now, with the new event ExportParameters, they have the full set of properties available: ``` public bool HideWindowUI { get; set; } - hide user interface; public bool ShowPrintDialog { get; set; } – show printing dialog; public bool HideToolbar { get; set; } – hide toolbar in PDF viewer; public bool HideMenubar { get; set; } – hide menubar in PDF viewer; public GradientInterpolationPointsEnum GradientInterpolationPoints { get; set; } – gradient interpolation poinrs; public bool FitWindow { get; set; } – enable window fitting; public bool CenterWindow { get; set; } – center window; public bool PrintScaling { get; set; } – show scaling; public bool Outline { get; set; } – show contents; public MagnificationFactor DefaultZoom { get; set; } – default zoom; public int RichTextQuality { get; set; } – RichText quality; public bool Compressed { get; set; } – compress file; public bool TransparentImages { get; set; } – transparent image; public bool DisplayDocTitle { get; set; } – display document title; public int DefaultPage { get; set; } – default page number; public byte[] ColorProfile { get; set; } – color profile; public ExportType ExportMode { get; set; } – export type; public bool InteractiveForms { get; set; } – enable interactive forms; public bool IsDigitalSignEnable { get; set; } – enable digital signature; public bool SaveDigitalSignCertificatePassword { get; set; } – save digital signature certificate password; public X509Certificate2 DigitalSignCertificate { set; } – digital signature certificate; public string DigitalSignCertificatePath { get; set; } – digital signature certificate path; public string DigitalSignCertificatePassword { set; } – ; digital signature certificate password public string DigitalSignLocation { get; set; } – digital signature location; public string DigitalSignReason { get; set; } – digital signature reason; public string DigitalSignContactInfo { get; set; } – digital signature contact info; public CurvesInterpolationEnum CurvesInterpolation { get; set; } – curves interpolation; public bool AllowAnnotate { get; set; } – allow annotation; public bool AllowCopy { get; set; } – allow copying; public bool AllowModify { get; set; } – allow editing; public bool AllowPrint { get; set; } – allow print; public GradientQualityEnum GradientQuality { get; set; } – gradient quality; public PdfStandard PdfCompliance { get; set; } – PDF standard complience; public bool EmbeddingFonts { get; set; } – enable embedded fonts; public bool Background { get; set; } – enable background; public CurvesInterpolationEnum CurvesInterpolationText { get; set; } – interpolation text curves; public PdfColorSpace ColorSpace { get; set; } – color space; public bool ImagesOriginalResolution { get; set; } – use original image resolution; public bool PrintOptimized { get; set; } – print optimization; public bool JpegCompression { get; set; } – Jpeg image compression; public bool TextInCurves { get; set; } – make text in curves; public string Title { get; set; } – title; public string UserPassword { get; set; } – user password for encrypted documents; public int JpegQuality { get; set; } – Jpeg image quality; public string OwnerPassword { get; set; } – Owner’s password; public string Producer { get; set; } – Producer; public bool SvgAsPicture { get; set; } – Display Svg objects as pisctures; public string Keywords { get; set; } – Keywords; public string Subject { get; set; } – Subject of the document; public string Author { get; set; } – Author; public string Creator { get; set; } – Creator; ```  And this is without considering the properties common to all exports. Let's summarize what benefits the new ExportParameters event brings us. By using an object for a specific export, we can only access the properties of that export. Previously, it was required to select from a common list of properties of all possible exports, which is not always convenient, because the names of some properties are not obvious to identify the export. You will see the full list of available properties using Intellisense or you can see the full list of available properties. Tags: .NET, .NET, Export, Export, FastReport, FastReport ### The first issue of "The InterBase and Firebird Developer Magazine" URL: https://www.fast-report.com/pt/news/firebird-developer-magazine-2005 Summary: The first issue of "The InterBase and Firebird Developer Magazine" The first issue of "The InterBase and Firebird Developer Magazine" The first issue of "The InterBase and Firebird Developer Magazine" is published. It is a free electronic magazine in PDF devoted to InterBase`and Firebird database development. You can download the first issue and subscribe to the next issues at  www.ibdeveloper.com ### The Future of Report Generation with Blazor WebAssembly URL: https://www.fast-report.com/pt/blogs/blazor-webassembly-manual Summary: Step-by-step instructions for creating a demo application on .NET 6 and 7 directly in the browser using Blazor WebAssembly in FastReport .NET. Step-by-step instructions for creating a demo application on .NET 6 and 7 directly in the browser using Blazor WebAssembly in FastReport .NET. Step-by-step instructions for creating a demo application on .NET 6 and 7 directly in the browser using Blazor WebAssembly in FastReport .NET. Microsoft has long introduced a framework for creating an interactive web interface with C#, HTML and CSS. It comes in two versions: Server-side (Blazor Server) and Client-side (Blazor WebAssembly). WebAssembly is particular because it is executed right in the user’s browser and accesses the remote server only for the libraries required for code execution. FastReport .NET already supports Blazor technology as part of the FastReport.Web package ( more ). However, until now, we have only supported Server-side rendering (Blazor Server). It took us a long time to get FastReport .NET working right in the user’s browser because we needed  Skia  support for stable work. Starting with version 2023.2, we are pleased to announce Blazor WebAssembly support as part of the FastReport.Blazor.Wasm package. This package is available as part of a FastReport .NET Enterprise subscription and higher (including Ultimate).  Attention! Blazor WebAssembly support is currently in beta. Some reports and functionality may not work. Read the documentation and restrictions carefully before using. Creating a demo application Let’s create a test demo application to see the work of FastReport in WebAssembly. First, install WebAssembly Build Tools to build your project with WebAssembly. If it is not installed, then run the following commands on the command line, depending on the TargetFramework of your application: For .NET 6: ``` dotnet workload install wasm-tools-net6 ``` For .NET 7: ``` dotnet workload install wasm-tools ``` Now let’s create a simple Blazor WebAssembly demo project from a template. You can do this using Microsoft Visual Studio 2022 or the dotnet CLI. For simplicity, let’s use the command: ``` dotnet new blazorwasm -n BlazorWasmDemo ``` Let’s edit the csproj of our project and add the latest FastReport.Blazor.Wasm package: ``` ``` Now, if you want to prepare your report in the browser (.frx), you must disable Trimming, as it interferes with the report script compilation. You can do this in the following way: ``` false ``` Now we add the native SkiaSharp libraries as part of our application. Depending on the TargetFramework we need to add: For .NET 6: ``` ``` For .NET 7: ``` ``` In the _Imports.razor file, similarly to the Blazor Server components, add the necessary namespace to view the FastReport components: ``` @using FastReport.Web @using FastReport.Web.Blazor.Components ``` Register FastReport services in our DI container (file Program.cs): ``` builder.Services.AddScoped(_ => new HttpClient{ BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); builder.Services.AddFastReport(); ``` Note that for FastReport to work in WebAssembly, you must have a configured HttpClient in a DI container that can access root to load the necessary dlls builds. If you need to override HttpClient for your use, you can just set a separate HttpClient only for FastReport needs: ``` builder.Services.AddFastReport(options => options.HttpClient = new HttpClient{ BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)}); ``` We have almost completed our long journey of preparing FastReport in WebAssembly, but there are just a few finishing touches. In the standard wwwroot\index.html file, we need to add the loading of js scripts for the proper work of FastReport: ``` ``` Font registration FastReport must interact with the user’s fonts since FastReport works with reports and the font is an integral part of any report with text. This is what happens when the report generator runs on Windows or Linux. However, the information about installed fonts on the user’s computer becomes unavailable when FastReport runs in a browser. Thus, our application must register the fonts that we will use in our reports. In our application, we will use a font that we will embed in our library as an embedded resource (EmbeddedResource) in advance. For this, specify in our project (.csproj): ``` Fonts\%(RecursiveDir)%(Filename)%(Extension) ``` Let’s put all the fonts we need in the Fonts folder and register them in our Program.cs. Let’s create this method and call it immediately: ``` static void AddFonts() { var resources = Assembly.GetExecutingAssembly().GetManifestResourceNames(); foreach (var resource in resources) { using var font = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource); FastReport.Utils.Config.PrivateFontCollection.AddFontFromStream(font); } }   AddFonts(); ``` Data registration That’s quite difficult. Few database connectors can work directly from the user’s browser. Therefore, we leave this to the discretion of our users. For example, you can request data from some third-party resource via HTTP and then register this data in a report before preparing it. In our application, for demonstration, we use the data from the xml file, which we put in wwwroot together with the report. Attention! Do not use this method for the final project publication because hackers can easily steal your data. Using WebReportContainer component Finally, let’s change the file Index.razor to use our WebReportContainer component. It will require the following code: ``` @page "/" @using FastReport @using System.Data; @inject HttpClient HttpClient   @if (isReady) { }   @code{ WebReport myWebReport; private bool isReady = false;   protected async override Task OnParametersSetAsync() { // We receive a report var reportBytes = await HttpClient.GetByteArrayAsync("Simple List.frx"); var reportStream = new MemoryStream(reportBytes); var report = Report.FromStream(reportStream);   // Get xml database and register it var dataBytes = await HttpClient.GetByteArrayAsync("nwind.xml"); var dataSet = new DataSet(); dataSet.ReadXml(new MemoryStream(dataBytes)); report.RegisterData(dataSet, "NorthWind");   // Create a WebReport and assign a report to it myWebReport = new WebReport() { Report = report, EmbedPictures = true }; isReady = true; } } ``` Everything went well if we saw our report in the browser: You have access to the reporting engine, you can build reports and view ready-made. Online designer support will be added in future. For security reasons, database connections are disabled inside reports, you will need to connect data from your application yourself. We are working hard on improving our WebAssembly component. If you have any questions, write to our support at  support@fast-report.com . Tags: .NET, FastReport, WebReport, Blazor ### The indicator of the presence of events in the object in the report designer FastReport.Net URL: https://www.fast-report.com/pt/blogs/indicator-presence-events-designer-net In FastReport 2018.2.3, new settings for the report designer appeared - objects appearance. Settings can be opened in the File menu - Settings. The new section contains only two settings for now: • Show indicator on bands with events; • Show indicator on objects with events. Both settings allow you to enable the indication of the presence of events in the object. Thus, you can quickly find in the report objects for which there is code in the report script. The indicator is a small red triangle in the upper left corner of the object: For example, select the CheckBox object and look in the Property inspector for the events for it: Indeed, it's fast and convenient to search for objects with events. An alternative path is to go to the Code section, find the desired event and read the name of the report object. Then you need to return to the report page and, in the Property inspector, select the desired object from the drop-down list. This is very inconvenient, isn’t it? With the indicator, you can open a large, complex report and instantly detect objects with events. Obviously, the new settings section "Appearance of objects" will be replenished with other interesting options. Tags: .NET, .NET, FastReport, FastReport ### The new version of FastCube FMX - 2021.1 URL: https://www.fast-report.com/pt/news/fastcube-fmx-2021.1 Summary: The new FastCube FMX with the support of RAD Studio 11 Alexandria, improved interface, and the new licensing model - subscription. The new FastCube FMX with the support of RAD Studio 11 Alexandria, improved interface, and the new licensing model - subscription. New features Now FastCube OLAP decision cube for FireMonkey supports the new RAD Studio 11 Alexandria. On top of that, we have improved the interface - there are new items in the context menus, improved the ability to search for values. We also fixed bugs. New licensing mode l Starting version 2021.1 all FastCube FMX editions are subscription-based. It means that you will always have an up-to-date version as long as your subscription is valid. Full list of changes + Add support for RAD Studio 11 Alexandria. + Axis position changes on DblClick in the axis field popup. + Added search in the popup list of unique values by pasting from the clipboard. + Added "Copy" menu item to the axis menu. Item copies dimension value to the clipboard. * Fixed keyboard handling in the popup grid list (grid must have CanFocus = True). * DataZone gets the focus and therefore keyboard handling on the grid focus (grid must have CanFocus = True). ### The new version of FastReport Online Designer 2024.1 URL: https://www.fast-report.com/pt/news/fastreport-online-designer-2024.1 Summary: With the release of 2024.1, the visual convenience when creating reports has been improved, new fills and gradients for objects and bands have been added. With the release of 2024.1, the visual convenience when creating reports has been improved, new fills and gradients for objects and bands have been added. Exciting updates to the report designer in the 2024.1 release! We have paid special attention to the internal architectural product changes and improved the visual ease of reporting. We have also added new object fills and gradients. New opportunities We added the ability to apply a "Linear Gradient" fill to an object or band To apply the "Linear Gradient" fill to an object or band, you need to select the element first and then click on the "Fill" group in the properties panel: A dialogue box will open where you need to navigate to the "Gradient" tab. After that, you can choose the gradient parameters (start color, end color, gradient angle, focus, and contrast) and apply the changes: Added the ability to apply a "Shape Gradient" fill to an object or band To apply a "Shape Gradient" fill to an object or band, you need to select an element and then click on the "Fill" group in the properties panel: You will see a dialog box in which you need to go to the "Shape Gradient" tab. After, you can select the parameters of the figure gradient (center color, edge color, shape) and apply the changes: Added the ability to apply the "Hatch" fill to an object or band To apply the "Hatch" fill to an object or band, you need to select an element and then click on the "Fill" group in the properties panel: A dialog box will open in which you need to go to the "Hatch" tab. Here, you can select hatch parameters (hatch color, background color, hatch style) and apply the changes: Added the ability to apply the "Glass" fill to an object or band To apply the "Glass" fill to an object or band, you need to select an element and then click on the "Fill" group in the properties panel: You will see a dialog box in which you need to go to the "Glass" tab. Then you can select the glass fill parameters (color, transparency, shading) and apply the changes: Added the ability to apply a "Texture" fill to an object or band To apply the "Texture" fill to an object or band, you need to select an element and then click on the "Fill" group in the properties panel: You will see a dialog box in which you need to go to the "Texture" tab. After this, you can select the texture parameters (image, texture pattern dimensions, transfer mode, "save proportions" option, pattern shift along the X and Y axes) and apply the changes: Added the ability to drag a field onto a barcode so that it is recorded in the DataColumn Now, to insert any data into a barcode, you can, in addition to using the properties panel, drag data from the data panel directly onto the barcode: Added the ability to delete a matrix via the context menu Based on user requests, we have added a useful "Delete" item in the context menu of the matrix: Improvements Rework and new design of pop-ups All pop-up windows, such as the expression and format editor, have been completely redesigned and improved to meet modern UI standards. We have completely reviewed and rewritten all dialog boxes in our project. This was done to ensure better performance, ease of use, and optimize user experience. For example, now the expression in the expression editor field is transferred to the specified location: Here is the full list of changed windows: MS Chart editing; Band editing; Border editing; Connection string editing; Data band editing; Fill editing; Font editing; GroupHeader editing; Conditional selection editing; Map editing; Matrix cells editing; MS Chart series editing; Image editing; RichText editing; Format; Link editor; Map layer loading; Adding connection; Outline editing. Rework and new design of elements in pop-up windows In addition to functional improvements, you will also notice visual changes. The design of controls has become more modern, clean, and intuitive. These changes improve user experience with the application. Rework and new design of the work panel (properties, report tree, data, events) The work panel has been redesigned and changed. It includes: Properties panel; Report tree panel; Data panel; Events panel. Now, the work panel is located on the right: The design of the properties panel has been changed. Now it looks like this: Also, the report tree panel has been redesigned: The data panel has been redesigned: And another event panel: New Components Panel for Desktop Devices For desktop devices such as personal computer or laptops, the component panel is now on the left: For devices with a touchscreen display, the component panel remains in the same place: Changed Color Picker The color picker has been updated to a more powerful version. The new version of the tool allows you to select preset colors and adjust color transparency. The old version of the tool looked like this: The new version looks like this: Now, when deleting GroupHeader, the Data band is not deleted with it Previously, if you deleted a GroupHeader, the Data band was also deleted. Now the Data band is saved: If you used JS injections for FastReport Online Designer, their functionality may be impaired! If you have any problems, please contact our support . Full list of changes ----- + Added the ability to apply a "Linear Gradient" fill to an object or band; + Added the ability to apply a "Shape Gradient" fill to an object or band; + Added the ability to apply the "Hatch" fill to an object or band; + Added the ability to apply the "Glass" fill to an object or band; + Added the ability to apply a "Texture" fill to an object or band; + Added the ability to drag a field onto a barcode so that it is recorded in the DataColumn; + Added the ability to delete a matrix via the context menu; * Rework and new design of pop-up windows; * Rework and new design of elements in pop-up windows; * Rework and new design of the work panel (properties, report tree, data, events); * New component panel for desktop devices; * Replacement of the color selection tool; * Now, when deleting a GroupHeader, the Data band is not deleted along with it; * Updated localization; * And other improvements; - Fixed a bug when the "Simple Progress Sensor" object was not displayed; - Fixed a bug when nothing happened when selecting a data format in some cases ; - Fixed default color for table borders; - Fixed reset of the separator when re-opening the "data format" form; - Fixed a problem where the CheckedListbox on the dialog form was not updated; - Fixed compatibility issues for old reports; - Fixed display of numbered list in RichText; - Correction of errors in dialog forms; - Fixed display of events after report reloading; - And other fixes. ### The new version of FastReport VCL 2022.3 is now available! URL: https://www.fast-report.com/pt/news/fastreport-vcl-2022.3 Summary: We have compiled the most interesting improvements and fixes that came out with the release of FastReport VCL 2022.3. We have compiled the most interesting improvements and fixes that came out with the release of FastReport VCL 2022.3. We have compiled the most interesting improvements and fixes that came out with the release of FastReport VCL 2022.3. We have decided to drop support for non-Unicode Delphi versions to ensure quality and constant updating. All further releases will use Delphi 2010. FastReport VCL 2022.3 now supports the latest update of Embarcadero RAD Studio 11.2. Report engine The new ClearEmptyLines property of the Text object allows to delete empty lines in the object. Combined with the CanShrink and ShiftAlways properties, this property makes it possible to collapse objects with empty values. In this case, the entire tree of objects at the bottom will move up. The new stretch mode of the text object (StretchMode) is smPartMaxHeight. Breaking objects in this mode use the height of each part after the break with correction. Unlike the smMaxHeight mode, which uses the band's height before the break. Static table cell objects now have OnBeforePrint / OnAfterPrint / OnAfterData events. We have added support for printing translucent images for non-AlphaBlend devices using Dithering. Note: Some devices may not be supported. Report Objects We have added support for TfrxPDFView object rotation. We have added a basic rotation of some figures in the report. We have added a new Code11 barcode. You can now use the TfrxHtmlView object in Lazarus. We have also added the output format from left to right with the processing of the dir="rtl" parameter. Exports and transports 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 and create questionnaires and survey forms. 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 end  Gmail  from FastReport VCL. We have added the possibility to hash duplicate images in export filters. The new cache reduces the number of duplicate images and the resulting export size. You can enable this feature using the CalculatePictureHash property of the export filter. Report Designer New pop-up tips (hints) for text objects, which do not fit in the box. 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”. Client-Server We have added the option of using the mask ‘*’ in configuration files with a list of IP addresses. An example of using a server via GCI was added in Lazarus. Full list of changes in the 2022.3 version --------------- [Transports] + New Outlook webmail transport; + New Gmail webmail transport; - Unicode names in GDrive transport have been fixed; [Client-server] + GCI example for Lazarus has been added; + Support for '*' mask in IP server lists has been added; [Designer] + New pop-up tips in the report designer that show the full text of the Memo object; + Quick comments in the Syntax Memo editor for selected text (default hotkey "Ctrl + /"); + New tooltips in the Syntax Memo editor; + Step over and StepReturn debugging modes have been added; + Quick addition of selected text from Syntax Memo to the Watches list from the context menu; - TfrxDesignerForm.GetCurrentForm has been fixed (TFrame support has been added); - We have fixed the issue with the component editors of the report designer when editors have the same property names with different flags (paMultiSelect); - Fixed paper size B4 has been adjusted (JIS); - We have fixed the destruction of CodeCompletion thread when custom scripts are assigned by Report.Script.Parent; - The generation of Unicode names for objects during Drag&Drop from DataTree has been fixed; [Report engine] + We have added a new ShiftMode, smPartMaxHeight stretches each part of the split object to the maximum height of the Band and adjusts the height of each part; + We have added the hash calculation for images used in the report, for export filters (ExportFilter.CalculatePictureHash property), and the prepared report (TfrxReport.PictureCacheOptions.CalculateHash); + We have added the emulation for printing a translucent mask using dithering for printers without alpha blending (may not be supported on all printers); + We have added TfrxTableCell.OnBeforePrint/OnAfterPrint/OnAfterData event handlers for static table object; + We have added a new property of the Memo object ClearEmptyLines, which removes all empty lines inside the Memo object after the GetData method; - We have fixed a bug in using a combination of MemoView.AutoWidth=True and Align=baWidth to position objects on container; - We have fixed a bug with the wrong value of basic object shift when the first object in the container moved to the next page; - Proper removal of editors when unloading packages; - We have fixed the mechanism for partitioning the Table static object; [Exports] + We have added interactive PDF support for Listbox and Combobox objects; - We have fixed a Unicode password when exporting to PDF; - We have fixed the export of HTML tags to PDF for Embarcadero edition; - We have fixed the export of translucent vector graphics (SVG) when AllowVector is set to False. - We have fixed XLSX export for Delphi versions, which do not support Unicode; - PDF export with European ligatures via EMF (ETO_GLYPH_INDEX) has now been fixed; - PDF export now doesn't export clip text if the entire line doesn't fit; [Other] + We have added new openssl libraries (static crt and x64 support); - We have fixed the generation of CBuilder 2007 headers; - We have fixed the issues with HiDPI PerMonitorV2; [Preview] - Setting units of the preview page have been fixed; [Report objects] + New Code11 barcode; + Basic rotation has been added to the TfrxShapeView object; + Linux support for TfrxPDFView has been added in Lazarus; + TfrxPDFView rotation has been added; + Support for RTL attributes in the TfrxHtmlView object has been added; + Support for TfrxHtmlView object in Lazarus has been added; - The bug in QR EPC barcode has been fixed; - We have fixed the bug in Datamatrix C40 encoding when data size was equal to code size limits; - We have fixed the bug in scaling of 2D barcodes during the export to PDF for applications that do not support dpi; - The processing of TfrxHTMLView expressions for data fields has been fixed; - The bug in GS1-128 code has been fixed; - RichView splitting in double pass reports has been fixed; * Laz Chart support has been updated to version 2.2.0; [Resources] * Swiss resources have been updated; * German resources have been updated. ### The object rendering border for the Clip property URL: https://www.fast-report.com/pt/blogs/clip-setting-boundaries-drawing Summary: Let's take a closer look at how the object rendering boundary works for the Clip property in FastReport. Find more usefull tips and articles in our blog. Let's take a closer look at how the object rendering boundary works for the Clip property in FastReport. Find more usefull tips and articles in our blog. Let's take a closer look at how the object rendering boundary works for the Clip property in FastReport. Find more usefull tips and articles in our blog. In this article I would like to draw your attention to an interesting property of the of the object Text. Clip property determines whether to display the text, if it goes beyond the boundaries of the object. If this feature is enabled, the text will be cut according to the boundaries of the object. If disabled - will be displayed in full, as if the object was stretched. Let's look at an example. Create a simple report. For example, I bring a list of product categories with pictures: Please note that the selected text object with the name of the category has a small size. I specifically disabled text wrapping (WordWrap property) for clarity. Preview the report: As you can see, the names of the categories cut because of the small size of the text object. Now, set the Clip property to false (default true) for the same object. Let's see how the report will look is now: Names are displayed in full, despite the size of the text object. Now do export to PDF format:  The document corresponds to the report, everything is correct. I went ahead and decided to display the text vertically. To do this, change the angle of the text of the object in the Angle property, for example - 270. Now the object of the text is as follows:  Run the report:  At this time, the property did not work. But it is not all that bad. Let us export the report in PDF: And here, the Clip property really disabled and the text is displayed correctly, despite the size of the text object. Make text slope of 45 degrees and repeat the experiment.  The report is still not fully displayed text. And now export to PDF: And this time, export to PDF did not disappoint. Everything looks correct. Summarize. The property Clip of the text object truncates text that does not fit within the boundaries of the object. If you use the autogrow feature object may occur displacement of neighboring objects or objects overlap that for some exports will lead to an incorrect display of the report. In such cases it is convenient to disable Clip property. From considered above, it is clear that now this "feature" works only with horizontal withdrawal of the text in the reports. However, when exporting to PDF, the rotation angle of the text does not matter. The text is always displayed in its entirety. Tags: .NET, FastReport, Designer ### The way to add a data field to a matrix row URL: https://www.fast-report.com/pt/blogs/add-data-field-matrix-row Summary: Let's take a detailed look at how to add a data field to a matrix row in FastReport. Find more usefull tips and acticles in our blog. Let's take a detailed look at how to add a data field to a matrix row in FastReport. Find more usefull tips and acticles in our blog. Let's take a detailed look at how to add a data field to a matrix row in FastReport. Find more usefull tips and acticles in our blog. In this article, we'll have a look at the way to create a dynamic matrix that is populated from the report's script code. The peculiarity of this matrix is that in addition to the data added from the script, we will insert the data field in the report cell using a text object. Suppose you create a matrix with a variable number of columns, which will be added depending on any conditions, but some of the data you have is constant. They are always filled. It would be nice just to put these data fields simply in the matrix, and the remaining cells should be filled from the code. Despite the fact that the filling of the matrix data is provided only in two ways (from the code or automatically, the data fields) we will match them. In fact, the technology is very simple. The data field is simply inserted into the cell as a separate text object. However, this is not all. When you add data to the matrix in the report, you must add the row number from the data set. Let's have a look at the example. Create a report and add the matrix to the "Data" band. Connect the data source - the demonstration database from the delivery, the Employees table. The matrix template looks like this: In the cell with a value of 2, we added a text object. In it, select the field Employees.LastName. This is exactly the "static" field about which we have spoken in above. Create the AfterData event handler for the matrix. ``` private void Matrix1_AfterData(object sender, EventArgs e) { DataSourceBase rowData = Report.GetDataSource("Employees"); // we get the data source Employees. Matrix1.DataSource = rowData; // assign it to the DataSource matrix property   rowData.Init(); // initialize the data source // we go through all records of the data source while (rowData.HasMoreRows) { Matrix1.Data.AddValue(new Object[] {"Phone" }, new Object[] { (string)Report.GetColumnValue("Employees.City"), (string)Report.GetColumnValue("Employees.FirstName")}, new Object[] {(string)Report.GetColumnValue("Employees.HomePhone") }, Report.GetDataSource("Employees").CurrentRowNo); // add another record rowData.Next(); //get the next record } } ```  It is clear from the comments that when you add a data string, we define the title of Phone. Then we insert the data in order: city, name and phone. And also, we need to transfer the data line number to insert the last name from the current data record. Now run the report: As you can see, you can make it easier for yourself and not add all the necessary data in the report script, but simply place them in the matrix template using a text object. Tags: .NET, FastReport, Data Source ### Toilet paper printing URL: https://www.fast-report.com/pt/blogs/printing-on-toilet-paper Summary: How to print report on toilet paper if needed with FastReport .NET. How to print report on toilet paper if needed with FastReport .NET. How to print report on toilet paper if needed with FastReport .NET. Gentlemen jokes aside! Today we are talking about toilet paper. This essential hygiene product was only recently developed in the United States in the 19th century. But to be honest, toilet paper was first mentioned in China as early as the 6th century, but this product was only available for a narrow circle of people. In preparation for the self-isolation in the midst of a pandemic, almost every inhabitant of the planet has got a myriad supply of toilet paper. It is worth remembering that first of all this is a paper. And so happened, that the paper - the carrier of information. So let's consider if we can use toilet paper to output information? You can ask a reasonable question: why? Of course for fun! For example, here is a shortlist of possible applications of printing on toilet paper: News - but they quickly become out of date, it is unlikely you will spend the toilet paper as fast; Jokes - humor never hurts, and such information is quite appropriate in this medium; Comics, manga, stories - as well as anecdotes - easy entertaining reading, just what we need; Images and pictures - are purely decorative prints. By the way, this kind is the most popular now print on toilet paper. Advertising - and this is a commercial approach. It is strange that until now there are no advertising prints on toilet paper, they are certainly more effective than billboards; Calendars and horoscopes. And these are only the options that appeared in my mind right now. You are limited only by your imagination. Let’s print on toilet paper! Printers Many inkjet and matrix printer models support roll printing. This function is not new, but the dying function on the home printer. But the laser printer is not suitable for printing. This is related to the mechanism of making news pages. A laser printer stores the entire page in memory in a line with jet or matrix printing. Therefore, we will no longer consider laser printers. Given the high roughness of toilet paper, printing on an inkjet printer will be fuzzy. The paint will fade on soft paper. Therefore, do not expect high-quality printing. Try printing the image on ordinary office paper. Even her stiff paper is not able to give a decent picture. A good matrix printer will give more clarity, simply because it was originally created for low-quality paper. The thinnest needles of the printing head carry microscopic drops of ink on paper, which are much thicker than the colors of the inkjet printer. Therefore, if you do not need color printing and you are ready to tolerate low printing speed, then the matrix printer is the best choice for your purposes. Carrier size Now it is necessary to think about the source of printing, the document itself. In fact, you will not be able to find a toilet paper template in any text or graphic editor. Width and length have to be chosen by yourself. FastReport.Net report generator allows you to create pages with reports of arbitrary width and length - according to our needs. What are the dimensions of the toilet rolls? Very different. Nevertheless, we can highlight the most popular sizes. As you remember, in the US and the UK to measure the length and width is inches, and in all other countries - centimeters. The most common sizes of roll width are 4.5 "(11cm), 4.1" (10 cm) and 3.7 "(9.4cm). The length can be completely different for different manufacturers and models. For example, rolls with an empty middle are more likely to be about 17 meters long. But there are quite large ones - 200m and even 500m. Among all the characteristics of toilet paper examined, we can draw the conclusion that the most suitable for printing is a harder paper with the minimum roughness. This kind of paper can often be seen in public toilets, placed on the large steering wheel. This is usually a single layer of grey paper from the second material. It's harder to break than soft. How to print? Now let’s move to create the document for printing. Let’s create it with the help of FastReport .NET report designer icon: In the form you need to set only the height and width: For example, the length of paper in a roll is 17 meters, and the width is 11 centimeters (670"). By default, the values are set in centimeters. Therefore, we introduce 1700cm in length and 11cm wide. The units can be changed in the designer's settings: Now, in the property inspector on the right, you need to select the object of the page and set the Property UnlimitedHeight to true. This property will not break the report into separate pages and will output all on one, as on a roll. Also, we set the PrintOnPollPaper property to true. It can't be set as true until you turn on the UnlimitedHeight property. Now it's time to decide what we will print. Report Generator can take the data not only from the database but also from the files. You can also add images. If your toilet paper is perforated to break into individual sheets, it is necessary to adjust the height of the DataBand according to the length of the resulting paper passage. In this case, the remaining bands are better to remove or take into account their height. Suppose we decided to display images. Then add on the band Picture object and set its properties Dock = Fill, so that it fills the entire area. Given that the band height 10 cm, and 1700 cm roll length, it is necessary to display the band 170 times. When the DataBand band is connected to a data source, then for each row of data appears a new instance of a band. But, as in our case there is no data source, we're just in the properties of the band shall indicate the number of times it should be repeated. To this end, the properties of the band set a property RepeatBandNTimes = 170. This is how will look like part of our report: Now you can load paper in the printer and start printing right out of the mode of viewing the report. But if you do not want to print right now, or want to share a document obtained, with colleagues working remotely, you can export the report, for example, in PDF. Tags: .NET, .NET, FastReport, FastReport, Printing, Printing ### Toolbar customization and export settings in FastReport.Web for Core URL: https://www.fast-report.com/pt/blogs/toolbar-customization-and-export-settings-in-fastreport-web-core Summary: We add colors to your application by customizing the appearance of the toolbar. We add colors to your application by customizing the appearance of the toolbar. We add colors to your application by customizing the appearance of the toolbar. Our users often need to change the appearance of the toolbar or customize the export menu, but not everyone knows how to do this. Let’s say that we already have a finished project. As an example, we can use any report from the FastReport .NET demo application. Let’s add some colors to our toolbar. We need to write a code that will be responsible for customization: ``` ToolbarSettings toolbar = new ToolbarSettings() { Color = Color.Red, DropDownMenuColor = Color.IndianRed, IconColor = IconColors.Left, Position = Positions.Left, IconTransparency = IconTransparencyEnum.Low, }; webReport.Toolbar = toolbar; ``` Now let's run our application and see the result: Let’s take a look at how customization of the toolbar works in FastReport Web for Core in more detail. All customization parameters are stored as a collection of properties. There are several options of how you can implement changes in the appearance of the toolbar, but they all come down to adding or changing parameters. Let’s consider the appearance customization from the code, where you can see a list of collections and properties. Here are some of them: Color – change the background color of the toolbar. DropDownMenuColor – set the background color of the dropdown menu. DropDownMenuTextColor – set the text color of the dropdown menu. Position – change the toolbar position in the report. Roundness – add roundness to the toolbar. ContentPosition – change the content position. IconColor – change the icon colors. IconTransparency – adjust the icons transparency. FontSettings – fine-tune text styles. Let’s assume that we want to change the color of the dropdown menu and display all kinds of export options in it. To change the appearance of the dropdown menu, you just need to write some changes in the toolbar. But to display all the exporting data options, you need to add the following piece of code: ``` ToolbarSettings toolbar = new ToolbarSettings() { Color = Color.Red, DropDownMenuColor = Color.Red, DropDownMenuTextColor = Color.White, IconColor = IconColors.White, Position = Positions.Right, FontSettings = new Font("Arial", 14, FontStyle.Bold), Exports = new ExportMenuSettings() { ExportTypes = Exports.All } }; model.WebReport.Toolbar = toolbar; ``` If we run our project, we will see that the dropdown menu has changed, and the exporting data options have significantly increased: Now we see a customized menu with export formats. But what if we need only certain formats? For example, we need PDF, XPS, and CSV only. Let’s implement it! We need to slightly change the export settings in the container: ``` Exports = new ExportMenuSettings() { ExportTypes = Exports.Pdf | Exports.Xps | Exports.Csv } ``` Let’s run our application and see the result: If only these export options are displayed, then you did everything right. So, we have described how to customize the toolbar and edit the dropdown menu with export options in FastReport Web for Core. In addition to these examples, you can use the parameters discussed in combination with the other ones. Customization of objects appearance in Blazor We also need to mention Blazor, which includes everything that a regular version does, but with more advanced functionality. We will use the project from the following article:  Reports and PDF documents in Blazor .  Let’s customize the toolbar appearance. Go to the Pages/Index.razor.cs file. Here we will customize the toolbar, and add a part of the code that is responsible for customization in Blazor: ``` var toolbar = new ToolbarSettings { FontSettings = new Font("Verdana,Arial sans-serif", 15), Color = Color.Red, DropDownMenuColor = Color.Red, DropDownMenuTextColor = Color.White, IconColor = IconColors.White, Position = Positions.Bottom, ContentPosition = ContentPositions.Center, }; ``` Let’s run our application and see the result: Imagine, that in addition to simple customization we need to add export to PS, HPGL, JSON, and PDF. Let’s add the following code to implement this: ``` Exports = new ExportMenuSettings() { ExportTypes = Exports.PS | Exports.Hpgl | Exports.Json | Exports.Pdf } ``` As a result, we will get the export settings we need. At the moment, the Index.razor and Index.razor.cs files look like this: Pages/Index.razor ``` @page "/" @page "/{ReportName}" @inject NavigationManager NavManager     @code { [Parameter] public string ReportName { get; set; }   protected override void OnParametersSet() { base.OnParametersSet();   Load(); } } ``` Pages/Index.razor/Index.razor.cs ``` using System; using System.Drawing; using System.IO; using FastReport; using FastReport.Web; using System.Data;   namespace Blazor.UserDebugApp.Pages { public partial class Index { private readonly string directory;   private const string DEFAULT_REPORT = "Simple List.frx";   public WebReport UserWebReport { get; set; }   Report Report { get; set; } DataSet DataSet { get; } ToolbarSettings Toolbar { get; }   public Index() { directory = Path.Combine( Directory.GetCurrentDirectory(), Path.Combine("..", "Demos", "Reports"));   DataSet = new DataSet(); DataSet.ReadXml(Path.Combine(directory, "nwind.xml"));   Toolbar = new ToolbarSettings { FontSettings = new Font("Verdana,Arial sans-serif", 15), Color = Color.Red, DropDownMenuColor = Color.Red, DropDownMenuTextColor = Color.White, IconColor = IconColors.White, Position = Positions.Bottom, ContentPosition = ContentPositions.Center, Exports = new ExportMenuSettings() { ExportTypes=Exports.PS|Exports.Hpgl|Exports.Json|Exports.Pdf } }; }   private void Load() { Report = Report.FromFile( Path.Combine( directory, string.IsNullOrEmpty(ReportName) ? DEFAULT_REPORT : ReportName));   Report.RegisterData(DataSet, "NorthWind");   UserWebReport = new WebReport(); UserWebReport.Report = Report; UserWebReport.Toolbar = Toolbar; } } } ``` We have covered how to customize the objects appearance and set up the list of export options in Blazor. Now you can use the discussed options in your own applications.  Tags: .NET, Visual Studio, FastReport, Core, WebReport, C#, Customization, Toolbar, Blazor ### Trabalhando com códigos de barras no FastReport .NET URL: https://www.fast-report.com/pt/blogs/barcodes-in-net Summary: Vamos dar uma olhada detalhada em como os diferentes códigos de barras funcionam no FastReport .NET. Encontre mais dicas e artigos úteis em nosso blog. Vamos dar uma olhada detalhada em como os diferentes códigos de barras funcionam no FastReport .NET. Encontre mais dicas e artigos úteis em nosso blog. Vamos dar uma olhada detalhada em como os diferentes códigos de barras funcionam no FastReport .NET. Encontre mais dicas e artigos úteis em nosso blog. For more than half a century used barcodes. But this popularity they received during the database development. Barcodes allows you to quickly identify the goods and to find information about it in the database. However, today's two-dimensional bar codes can contain all the information about the product inside. In the traditional sense bar code - a set of characters or lines arranged in a certain order according to the standard. Classic bar codes are a series of vertical lines of varying thickness. The specific order and line size allows to encode characters. Two-dimensional barcodes typically take a square or rectangular area and are composed of pixels, and combinations thereof. These codes allow you to encode more information than linear. In addition to characters can be encoded binary code. Linear bar codes are used mainly in trade, logistics and inventory control, whereas the two-dimensional - in transport networks, government documents, identity cards. The main advantage of the barcode - the quick and accurate code reading. Perhaps today there is no supermarket without a barcode scanner. One can imagine what would happen if the cashier will enter the identifiers of goods manually  - long queues. In addition, there is a risk to make a mistake when entering a sequence of numbers. Some linear codes are provided with self-checking. This avoids erroneous reading of the code, if it is damaged. Two-dimensional codes have the same error correction mechanism. Even partially damaged code can be read, because of inherent in it redundant. Different bar code standards are used for different purposes. Below is a list of the most popular barcode standards and contains the scope of each standard. There is a great variety of barcode standards. All of them have a certain scope. FastReport .NET allows the use of the most popular bar codes in your reports: -        Linear: 2/5 Interleaved, 2/5 Industrial, 2/5 Matrix, Codabar, Code 39, Code 39 Extended, Code 93, Code 93 Extended, Code 128 (A,B,C) autoencode, EAN8, EAN13, UPC-A, UPC-E, Supplement code, MSI, PostNet, Plessey, GS1-128 -        2D: QR code, Aztec code, PDF417, Datamatrix Consider the scope of each of them: 2/5 Interleaved -  very popular high density barcode for coding numeric data. Based on algorithms Standart 2 of 5. It is used in logistics and warehouse inventory. 2/5 Industrial - barcode of any length to encode numeric data. This standard is used with the 60-ies for marking tickets and other purposes. Also known as Standard 2 of 5. The disadvantages are low coding density as light strips are not involved in coding, and perform only the role of the separators. Used in industry. Almost expelled by Code 39. 2/5 Matrix - the bar code of any length to encode numeric data. Legacy format. Disadvantages - low code density. Used in inventory control, marking tickets. Currently almost not used. Codabar - discrete symbology with self-monitoring, developed in 1972 g. known in Japan as NW-7. It has the narrow and wide strips and the elements 7 to the symbol. It is intended to encode numeric data, some characters and four letters: A, B, C, D. Advantage - coding 6 special characters. Disadvantage - a small effective code density. Used in warehouses, transport, logistics, libraries, and some hospitals. Code 39 - barcode with self-examination. Usually encoded alphanumeric data. This standard is widely used for many years and is the most popular in the world for common tasks. Now superseded by more modern Code 93 and Code 128, due to their greater compactness. Code 39 is a discrete symbology - so that the gap between the ciphers may be more than one character. Some people mistake the gap between the ciphers of the gap. Large gaps wider than do other code barcode with the same data, which is a major disadvantage. Code 39 Extended - includes lowercase letters and punctuation marks. It should be noted that Extended Code 39 represents the majority of the additional symbols using two characters from the standard set of characters Code 39. Consequently, Extended Code 39 characters is approximately two times longer than the standard Code 39 characters. Code 93 - the code of arbitrary length. Code 93 was developed in addition to the Code 39 is a more compact code than the last. Code 93 symbology don't have self-checking. Code 93 characters include two Mod 47 check character. Special codes are used to provide a complete set of ASCII characters, which makes the system more reliable than Code 39. Code 93 Extended . Standard Code 93 encodes numerals and capital letters, and the extended code 93 encodes the full ASCII character set. Code 128 - Modern bar code high density to encoding of numbers, letters and other symbols. Advantages - Compact, alphanumeric data. It is used in the trade, documents and various other areas that require a coded text. EAN-8 - a European standard bar code to encode to 8 digits. It is used in trade to identify the product, the manufacturer. The advantage - compactness. EAN-13 - this is an expanded version of the EAN-8. It allows you to encode 13 digits. In addition to Product ID and the manufacturer, was added a country code. It is also widely used in the retail trade. UPC-A - is a bar code similar to destination EAN-13, but is designed and operates in the United States. Encoded 12 digits. Scope - retail trade. UPC-E - a shortened version of UPC-A. Encoded 6 digits. It is used in the retail industry, to be placed on small products where it is impossible to use a full format UPC-A. Supplement code.  EAN-8, EAN-13, UPC-A, UPC-E, may include additional bar code to the right of the main bar code. This second bar code is used to encode additional information for newspapers, books and other periodicals. An additional bar code may encode 2 or 5 digits of information. MSI - bar code to encode the numbers. It does not support the self-checking. It is commonly used to monitor the availability of goods on retail warehouses. This is a relatively "weak" code that not effectively uses the space. PostNet - bar code is designed specifically for the US Postal Service. Lets you encode numbers only. Coding postcodes dimension 5 or 9 characters and delivery code with size of 11 characters. Plessey - outdated barcode is still popular in some industries. Supports encoding of numbers and letters: X, B, C, D, E, F. Also, an 8-bit CRC, divided by two control characters. Disadvantages include more stringent requirements for code printing quality, due to the thin strip cipher. GS1-128 (UCC / EAN-128) - a modern type of barcode. It has a high density. Based on the algorithm of the standard Code 128. It is used mainly in logistics for the exchange of information on the cargo between enterprises. When encoding, just before the data is established a special identifier that identifies the type of data (date of manufacture, expiry date and al.) PDF417 - a two-dimensional bar code to encode alpha-numeric data. It allows you to encode up to 2710 characters. It is used in the trade, the document flow in the organs of accounting and control, transport networks. coding algorithm is very similar to another format - DataMatrix. DataMatrix - a two-dimensional bar code to encode text and numeric data. The volume of data to be encoded on the enormous truth - from a few bytes to hundreds of kilobytes. But the most commonly used sizes of codes of 2 bytes up to 2 kilobytes. coding algorithm allows correcting code read errors due to redundancy. DataMatrix is used for labeling luggage transport networks, marking of electronic devices and components, on identity cards. QR Code - a popular two-dimensional bar code to encode different information: numbers, text, binary, characters. Code is popular due to the ease of reading and resistance readings or damage to the error code. Developed and widely used (in virtually all sectors) in Japan. But in European products can often find this code. Aztec code - another two-dimensional bar code to encode different information. The main advantages of which are: resistance to damage and distortion of the code, indifference to the orientation of the code when reading (even at an angle), compactness. Actively used in the railway and air transport, in public documents in some countries. So, we have considered a brief description of each of the bar codes represented in FastReport .NET. Barcodes are used in most industries. For example, in logistics barcodes contain information about the cargo and route. All of the waybill information may be encoded in a two-dimensional bar code. This ensures the integrity of the information. In addition, bar code could replace the manual entry of information in the information system. This is useful in retail trade. The work of the cashier is much easier, and customer service rate increases. Thus, FastReport .NET allows you to create reports for such scopes of activity as trade, logistics, inventory control, and other industries. Tags: .NET, FastReport, Barcode ### Transition to a new product forming system URL: https://www.fast-report.com/pt/news/fastreport-packs Summary: We are changing our approach to product line formation: the new system will allow to select only the components and platforms needed in development We are changing our approach to product line formation: the new system will allow to select only the components and platforms needed in development Starting  June 1 , Fast Reports will switch to a new product forming system. Previously, the product line was formed on the principle of "Product + platform", and compatibility with platforms was evolutionarily added to the entire tool. Now a software product will represent a more specific set of components, providing a wider range of choices for the specific needs of developers. We have divided products into a set of components and put them together in such a way that you no longer have to pay for unnecessary or unused functionality. This makes our software solutions more flexible. Now you can purchase not the entire report generator, for example FastReport .NET, but choose the set of its components that you need. We kept the possibility to choose the license by the number of developers, and also left the option to purchase a separate version with source code or web components. Ultimate edition will also be available, which contains maximum components and additional tools for working with reports. The changes will take effect on June 1, 2024. You can read about the package components and prices here: Delphi direction .NET direction ### Try Beta-version of FastReport VCL 5 URL: https://www.fast-report.com/pt/news/beta-fastreport-vcl Summary: Try Beta-version of FastReport VCL 5 Try Beta-version of FastReport VCL 5 Trial version and install packages of FastReport VCL 5 for Delphi 7'XE5 and C++ Builder 2005-XE5 published. You can download and try it. If you are our customer of FastReport VCL 4 you can get discounted upgrade to FastReport VCL 5 beta (and than free upgrade to release) from your customer panel . ### Turn database data into a document in Delphi / Lazarus / C++ Builder URL: https://www.fast-report.com/pt/blogs/turning-database-into-documents Summary: How to use the data more efficiently by turning it into an understandable and structurized document. How to use the data more efficiently by turning it into an understandable and structurized document. How to use the data more efficiently by turning it into an understandable and structurized document. How to make a mush of data into an informative report? Oracle DB, MySQL, Microsoft SQL Server, PostgreSQL, FireBird are probably the most popular, but by no means all, of the many DBMSs in which data can be created, populated, modified and managed. Often they are filled with this very data for quite a long time (e.g. in timekeeping systems, goods-orders, and the question "how to get information out of them?" (readable, encompassable by sight and human mind, for further analysis) is put off for later. Let's consider what to do "then" - when we have a "full database" and we (or the company's management) have wondered "what's actually happening? Let's make effective use of the data we collect in the process, derive information from that data and make decisions based on that information!". Basically, this is the definition of Business Intelligence (BI) in plain language. There are many possibilities to create them (reports), but here we will look at FastReport VCL. There's a designer for generating templates, a preview and many other features to perform different levels of tasks - we've looked at them in other articles, but we still haven't looked at all of them. FastReport can work with several data sources (databases) at the same time, or retrieve them from so-called user sources (not databases) - arrays or regular files. How to get information from DB in Delphi? In order to connect the data source, a connector (TfrxDBDataSet) must be applied from the component palette. This is the link between the data and FastReport. Now I will tell you briefly about the role of the components: TfrxDBDataSet is an element used to work with data source, it is also compatible with TDataSet, but TfrxIBODataSet is used for IB Objects, also TfrxUserDataSet is used for other resources - arrays, files, etc. First of all, using the DataSet property, connect to the query or table itself, well, or DataSource (it connects to the TDataSource component). For the data to already be in the report, you will need to specify which of them will go into our report! This is also easy to do. Select in FastReport VCL designer in menu Report -> Data. Select necessary elements and click “OK”!  Connect this data source to the band. Select DataSet (table) in its properties. Now drag and drop table/request fields to the appropriate bands. After single dragging have peculiarity of automatic linking on band - fields of base. If you need to view the generated report, you can use the preview! Don't forget that you can add almost anything, be it QR codes, maps  and other add-ons, which are enough in FastReport VCL. Preview: In the top left corner select “File” . A list of settings appears immediately. In it, select "Preview". That's it! After this action, you will see what the finished report will look like. If you are satisfied, you can save to different formats and export to cloud storage or PC memory, as well as print. Select "Save" and the desired format. The selected one will be sent to the specified location for saving/export! The following steps are required to generate a report from the code: - clear the report. - add data source. - add “Data” page - add report page. - add bands on the page. - set band properties and connect them to the data. - add objects on every band. - set object properties and connect them to the data. Save the template and press “Preview”!  The report is ready! We can also save it in XML, PDF, even CSV or DBF for further analysis! I understand that such an abundance of screenshots can make one get depressed. But in writing this article making all these screenshots was the longest and most time consuming task. Preparing the report itself took about 5 minutes. And if it is quicker and without screenshots? Create a report from our database from Delphi / Lazarus - code! Consider creating a simple "list" type report. Assume we have the components frxReport1: TfrxReport and frxDBDataSet1: TfrxDBDataSet (the latter is connected to data from DBDEMOS, table Customer.db). Our report will contain one page with report title and master data banks. The report title band will have an object with the text "Hello FastReport!" and the master data will have an object with a reference to the field "CustNo". Turn database data into a document in Delphi / Lazarus / C++ Builder ``` var DataPage: TfrxDataPage; Page: TfrxReportPage; Band: TfrxBand; DataBand: TfrxMasterData; Memo: TfrxMemoView;   { Clear the report } frxReport1.Clear;   { add data source to the available list for the report } frxReport1.DataSets.Add(frxDBDataSet1);   { add “data” page } DataPage := TfrxDataPage.Create(frxReport1);   { add page } Page := TfrxReportPage.Create(frxReport1); { create unique name } Page.CreateUniqueName; { set page properties by default } Page.SetDefaults; { change page orientation } Page.Orientation := poLandscape;   { add report title } Band := TfrxReportTitle.Create(Page); Band.CreateUniqueName; { it’e enough for a band to set coordinate Top and hight } { both coordinates are in pixels } Band.Top := 0; Band.Height := 20;   { add object on report title } Memo := TfrxMemoView.Create(Band); Memo.CreateUniqueName; Memo.Text := 'Hello FastReport!'; Memo.Height := 20; { this object will be aligned with the band width } Memo.Align := baWidth;   { add master data } DataBand := TfrxMasterData.Create(Page); DataBand.CreateUniqueName; DataBand.DataSet := frxDBDataSet1; { coordinate Top shouldn’t cross the previous band! } DataBand.Top := 100; DataBand.Height := 20;   { add object on master data } Memo := TfrxMemoView.Create(DataBand); Memo.CreateUniqueName; { connect to data } Memo.DataSet := frxDBDataSet1; Memo.DataField := 'CustNo'; Memo.SetBounds(0, 0, 100, 20); { align text on the right side of the object } Memo.HAlign := haRight;   { show the report } frxReport1.ShowReport; ```  So - we have learned how to turn invisible but collected data into reports - documents. You can now publish them or pass them on to analysts! Tags: VCL, Lazarus, FastReport, Data Source, SQL, Firebird, Delphi ### Ultimate .NET URL: https://www.fast-report.com/pt/products/ultimate-net Summary: Eine Reihe von Tools zum Erstellen einer Berichtsinfrastruktur für .NET-Geschäftsanwendungen und plattformübergreifende Entwicklung. Eine Reihe von Tools zum Erstellen einer Berichtsinfrastruktur für .NET-Geschäftsanwendungen und plattformübergreifende Entwicklung. Um conjunto de ferramentas para criar infraestrutura de relatórios para aplicativos de Negócios .NET Um pacote definitivo para a criação de infraestrutura de relatórios com ferramentas adicionais para criação de relatórios e análise de dados Ultimate .NET Um conjunto de ferramentas para criar infraestrutura de relatórios para aplicativos de negócios.NET e desenvolvimento multiplataforma. Comprar Experimente de graça Documentação Praticamente qualquer: notas fiscais, relatórios financeiros, catálogos de produtos com suporte ao perfil de cores, cardápios de restaurantes, detalhes de vendas, questionários com formulários eletrônicos, passagens aéreas, contas de serviços públicos e muito mais. Se você tem dados que precisam ser visualmente compreensíveis, o FastReport é a solução perfeita para você. Embeddability em projetos Instale o pacote necessário do repositório NuGet ou baixe o pacote do nosso site para o seu computador e adicione as bibliotecas necessárias ao projeto. Não são necessários módulos adicionais ou extensões especiais. Alta performance Nossos componentes passaram por vários estágios de testes para realmente trabalhar de forma estável com grandes volumes de dados. Seu relatório de várias páginas será processado em tempo real. Controle total sobre o desenvolvimento Este conjunto de ferramentas é fornecido com o código fonte. A maior comodidade para empresas que desejam ajustar o código às suas necessidades. Acesso rápido ao relatório e estrutura de dados Na árvore de relatórios e na árvore de propriedades, Você pode editar a estrutura, os parâmetros e os filtros do relatório, bem como as fontes de dados com estilos globais. Compatibilidade e integração O Ultimate .NET permite criar o ecossistema FastReport em C#. Os relatórios criados em todos os produtos dentro do Pacote Ultimate são totalmente compatíveis entre si. Transição suave de outras soluções Nosso gerador de relatórios converte instantaneamente seus relatórios da Biblioteca List & Label, DevExpress, Microsoft Reporting Services (RDL, RDLC), Crystal Reports, StimulSoft e Jasper para o formato FastReport. Desenvolvimento multiplataforma Denunciar no navegador .NET Core demo Online Designer demo Blazor WASM demo Blazor Server demo Como configurar um agente de IA para o FastReport .NET: arquitetura, limitações e migração de relatórios Trabalhando com relatórios, muitas vezes, se transforma em uma rotina: a edição de XML (modelos.frx), a configuração de ligações de dados, e adaptação de formatos herdados. Para automatizar este trabalho, uma empresa especializada AI agente foi criado. Este agente entende o FastReport .NET arquitetura e segue estritamente empresa de desenvolvimento de padrões. Recursos de IA para o FastReport .NET: migração automatizada de relatórios do Crystal Reports e do StimulSoft, refatoração para .NET 8/9, geração de modelos e proteção contra vazamento de dados. Como exportar um relatório do FastReport .NET para o formato DXF DXF (Drawing Exchange Format) é um formato aberto de troca de dados gráficos, desenvolvido pela Autodesk para armazenamento e transferência de desenhos bidimensionais e tridimensionais. Graças ao amplo suporte por parte de diversos sistemas CAD, o DXF tornou-se um dos formatos mais utilizados paratroca de documentação de engenharia e técnica entre aplicações. Neste artigo, veremos os métodos de exportação de um relatório para o formato DXF e também analisaremos como fica o resultado obtido após a abertura do arquivo em um aplicativo CAD. Neste artigo, veremos os métodos de exportação de um relatório para o formato DXF e também analisaremos como fica o resultado obtido após a abertura do arquivo em um aplicativo CAD. Como exportar um relatório do FastReport .NET para PostScript O FastReport .NET oferece suporte à exportação de relatórios para diversos formatos populares, como PDF, Excel, Word e outros. No entanto, para impressão profissional, uso com plotters ou equipamentos de impressão especializados, o formato PostScript (.ps) costuma ser necessário. Neste artigo, veremos, por meio de um exemplo prático, como exportar um relatório do FastReport .NET para o formato PostScript, abordando a configuração dos parâmetros e a implementação programática. Neste artigo, veremos, por meio de um exemplo prático, como exportar um relatório do FastReport .NET para o formato PostScript, abordando a configuração dos parâmetros e a implementação programática. Mais alguma dúvida? Entre em contato com o gerente ### Ultimate VCL URL: https://www.fast-report.com/pt/products/ultimate-vcl Summary: Eine Reihe von Tools zum Erstellen einer Berichtsinfrastruktur für Delphi-Geschäftsanwendungen und plattformübergreifende Entwicklung Eine Reihe von Tools zum Erstellen einer Berichtsinfrastruktur für Delphi-Geschäftsanwendungen und plattformübergreifende Entwicklung Um conjunto de ferramentas para criação de relatórios em Delphi e para desenvolvimento multiplataforma Um pacote abrangente para criar um ecossistema de relatórios com ferramentas adicionais para análise de dados em tempo real. Ultimate VCL Um conjunto de ferramentas para criar infraestrutura de relatórios para aplicativos de negócios Delphi e desenvolvimento multiplataforma Comprar Experimente de graça Documentação Transportes Salve relatórios preparados nos armazenamentos em nuvem: Google Drive, Next Cloud, Box, Dropbox em alguns cliques do mouse para entrega conveniente aos seus clientes Acesso rápido ao relatório e estrutura de dados Na árvore de relatórios e na árvore de propriedades, Você pode editar a estrutura, os parâmetros e os filtros do relatório, bem como as fontes de dados com estilos globais. Componentes cliente-servidor Crie relatórios diretamente na WEB usando componentes VCL FastReport padrão sem a necessidade de conectar o cliente diretamente ao servidor de banco de dados. Arquitetura flexível e aberta Se a funcionalidade do FastReport não for suficiente para você, você pode melhorá-la criando e conectando seus objetos (filtros de exportação, bancos de dados) aos seus relatórios. Código fonte Este conjunto de componentes inclui códigos-fonte FastReport. Máxima comodidade para empresas que desejam adaptar o código às suas necessidades. Adições úteis O Ultimate inclui sistemas para análise multidimensional: FastCube VCL e FMX, além do FastConverter .Plugin FP3 para exportação de relatórios em todos os formatos possíveis. Componentes Cliente-Servidor Cross-platform developing Visão geral detalhada das capacidades da biblioteca FastGrid Os usuários do FastReport VCL Ultimate provavelmente já notaram que apareceram 2 novos itens no instalador: FastEditors VCL e FastGrid VCL. Além disso, uma nova demonstração foi adicionada ao Demo Center — FastGrid VCL Demo. Uma visão geral da biblioteca FastGrid para VCL e Lazarus: visualização, edição e estruturação de dados. Classificação, filtragem, agrupamento, editores de dados práticos — tudo em um único artigo! Novo sistema de validação de relatórios no FastReport VCL No suporte técnico, fomos frequentemente solicitados a adicionar funcionalidade para verificação automática de relatórios, e fizemos isso no release 2026.2. No menu “Arquivo” do Designer de relatórios, apareceram os itens “Validar” (Validate) e “Configurações de regras de validação” (Validation Rule Settings). Agora é possível não apenas verificar relatórios, mas também gerenciar o conjunto de regras, incluindo as personalizadas. Neste artigo, explicaremos como funciona a verificação de relatórios, como configurá-la, como escrever regras personalizadas com exemplos e compartilharemos novidades interessantes. Neste artigo, explicaremos como funciona a verificação de relatórios, como configurá-la, como escrever regras personalizadas com exemplos e compartilharemos novidades interessantes. Uso de marcas d'água no FastReport VCL Nas versões recentes do FastReport VCL, foi adicionada a funcionalidade para adicionar marcas d'água. Uma marca d'água é uma marca incorporada em um documento eletrônico, imagem, vídeo, áudio ou outro conteúdo digital. Seu objetivo é confirmar a autoria, proteger contra cópia e rastrear a distribuição do arquivo. Neste artigo, abordaremos detalhadamente a criação e o uso de marcas d'água em relatórios do FastReport VCL. Um exemplo de uso de marcas d'água está disponível no Demo fornecido com o FastReport VCL. O artigo abordou detalhadamente a funcionalidade de adição de marcas d'água no FastReport VCL — tanto por meio da interface visual quanto programaticamente, com código Delphi e em scripts de relatórios. Mais alguma dúvida? Entre em contato com o gerente ### Um olhar mais focado sobre FastReport Cloud - relatórios na nuvem URL: https://www.fast-report.com/pt/blogs/closer-look-cloud-reporting Summary: Uma pequena visão geral do novo produto FastReport Cloud, que é uma solução multi-plataforma e não necessita de instalação no seu dispositivo. Uma pequena visão geral do novo produto FastReport Cloud, que é uma solução multi-plataforma e não necessita de instalação no seu dispositivo. Uma pequena visão geral do novo produto FastReport Cloud, que é uma solução multi-plataforma e não necessita de instalação no seu dispositivo. FastReport Cloud é um conjunto de ferramentas para a construção de documentos. O serviço permite fazer relatórios e documentos à partir de templates pré-concebidos mantidos na nuvem. A história por trás do FastReport Cloud FastReport Cloud é baseado na biblioteca FastReport .NET, lançada em março de 2009 e em desenvolvimento até hoje. A mudança para a nuvem é a forma mais lógica de desenvolvimento dos produtos da empresa. Em primeiro lugar, ele fornece aos usuários um software de plataforma cruzada completo e simplifica o processo de introdução. Agora você não precisa instalar nada, basta inserir um login e uma senha. Relatórios é a nossa vida Qualquer empresa acumula e armazena dados de alguma forma. Pode ser um banco de dados ou um arquivo simples em um disco rígido. Como regra, esse tipo é conveniente para armazenar, mas não para apresentar, obter informações importantes ou tomar decisões pelos usuários. Nossas ferramentas, soluções e bibliotecas permitem tornar os dados informativos. Podem ser documentos ou tabelas - estruturados da maneira que seja necessária e conveniente para os usuários resolverem suas tarefas específicas. Trabalhe diretamente no browser O FastReport Cloud permite criar e definir modelos, conectando-lhes dados de fontes remotas e exportando para vários formatos diretamente em um navegador. Todos esses arquivos são armazenados em uma nuvem; portanto, você só precisa acessar a Internet para o seu trabalho. A construção de documentos, que pode parecer bastante exigente para grandes volumes de dados, também é transferida para a nuvem. Isso permite redirecionar recursos (computacionais e humanos) para tarefas de prioridade mais alta. O resultado dessa construção pode ser acessado de qualquer lugar. Online Designer Um designer online é construído em FastReport Cloud. Ele permite aos usuários: Altere as propriedades de todos os objetos de relatório, adicione notícias e remova as antigas. Configure bandas. Conecte-se às fontes de dados de relatório a partir de uma assinatura ou crie novas (as atualmente compatíveis são JSON, CSV, XML, MS SQL, PostgreSQL, MySQL e Oracle DB). Editar scripts de modelo. Use o view. O designer online oferece suporte a vários objetos, dentre os quais: Texto. Tabela. Imagem. Código de barras (string e bidimensional). Matriz. Assinatura digital. Escala. RichText (texto com oportunidades de formatação mais amplas). Caixas de seleção. Formas geométricas. Relatório aninhado (aninhamento não é limitado: um relatório aninhado pode ter seu próprio relatório aninhado e assim por diante). Simples introdução aos aplicativos do usuário Criamos ferramentas (SDK) para trabalhar com nossa API para muitas linguagens de programação, incluindo C #, Java, JavaScript, Python, Golang, Haskell e C ++. Isso simplificará a operação do FastReport Cloud a partir de aplicativos do usuário. Todo o conjunto de recursos de nossa API é usado diretamente do código, independentemente de uma plataforma ou sistema operacional. Você pode ver os exemplos de uso do SDK  aqui . Equipe de trabalho O armazenamento em nuvem e a configuração flexível de direitos permitem compartilhar os documentos criados com todos os membros de sua organização. Além disso, você pode definir os direitos para que apenas um determinado grupo de indivíduos tenha acesso aos dados confidenciais. Os direitos são atribuídos a grupos de usuários e são agrupados por tipo. Cada direito separado dá acesso a uma determinada ação. Ao mesmo tempo, um criador ou proprietário de um arquivo também é um grupo, embora composto por apenas uma pessoa. Para todos os novos arquivos, os direitos padrão são aplicados. Você também pode configurá-los, como desejar. Se você precisar fazer uma exceção, um usuário autorizado pode definir sua própria distribuição de direitos, que reescreverá os direitos padrão. Planejamento e armazenamento de documentos Todos os documentos no FastReport Cloud são armazenados em pastas. Por padrão, cada assinatura tem três pastas raiz para cada tipo de documento. Ao navegar por catálogos com documentos, pode-se classificar e pesquisar. Tendo selecionado um arquivo ou uma pasta, o usuário pode realocar ou copiar seus dados, mesmo em uma pasta de outra assinatura, se o usuário tiver os direitos relevantes. A interface do usuário permite trabalhar com vários arquivos ao mesmo tempo, sem repetir as mesmas ações para todos os documentos. Segurança O serviço de automação oferece suporte a autenticação de dois fatores via Microsoft Authenticator ou Google Authenticator. É altamente recomendável ativar uma autenticação em dois fatores , para que os invasores não tenham acesso aos seus recursos, mesmo que conheçam os dados para entrar na sua conta.  Usando uma nuvem para soluções de negócios Oferecendo exemplos: Um cliente tem um aplicativo da web que retorna dados no formato JSON mediante solicitação. Essas informações serão posteriormente utilizadas em vários documentos PDF. Para resolver esta tarefa, basta criar uma fonte de dados, indicar o endereço http no qual esse JSON pode ser encontrado e conectar a fonte de dados ao template. A partir desse momento, um documento PDF com dados reais pode ser feito com um clique. Outro caso descreve a criação de uma lista de preços com upload diário programado. Primeiro crie um modelo no designer e uma fonte de dados é indicada. Em seguida, configuramos o upload para FTP em um determinado horário do dia com nosso planejador. Além disso, configuramos o envio dos dados prontos por e-mail. Conclusão A transição para a nuvem fornece aos produtos da empresa software de plataforma cruzada completo e dá a oportunidade de trabalhar em qualquer lugar da Terra. O mais importante é que você não precisa instalar nada. O limite de entrada para novos usuários tornou-se muito mais baixo, enquanto a flexibilidade dos cenários de uso aumentou. Tags: FastReport, Cloud ### Update of .NET-based products to ver. 2023.2 URL: https://www.fast-report.com/pt/news/fastreport-net-2023.2 Summary: Support for Blazor Web Assembly, new icons for the Ribbon interface, changes to the report validator and WebReport in update 2023.2. Support for Blazor Web Assembly, new icons for the Ribbon interface, changes to the report validator and WebReport in update 2023.2. Meet new opportunities for your projects! Added support for Blazor Web Assembly, new icons for the Ribbon interface, the ability to open a page of another report inside the current one, changes to the report validator and WebReport, and much more. Changes are available for the following products: - FastReport .NET, - FastReport Mono, - FastReport Desktop, - FastReport for DBA, - FastCube .NET. New opportunities Blazor WebAssembly support Added FastReport.Blazor.Wasm package with Blazor WebAssembly support for owners of FastReport .NET Enterprise and higher editions. Now you can use Razor components to display a report in your WebAssembly application. Attention! Blazor WebAssembly support is currently in beta. ``` ``` Read more in this article. Ability to open another report page The designer now allows you to open and add pages and dialog forms of another report to the developing report. To do this, go to the "File" menu and select "Open Page...". Next, the standard file selection dialog box will open where you can select a report. After that a window will appear with a list of pages and a preview of the selected page. Here you can select one or more pages to be added to the current report. The names of pages and all objects contained in them, will be changed to unique, if the report already has them. This is necessary to avoid errors, as identical names are not allowed. Read more in this article. New icons for the Ribbon interface New Visual Studio-style icons have been added to the Ribbon interface in the designer. You can select them in the user interface options. Will need to restart the designer for the changes to take effect.  Filter in the properties window A new button has been added to the properties window that allows you to enable the display of object-specific properties. For example, for a text object, this mode displays the Text, Font properties. Common object properties such as Top, Left, Height and Width are not displayed. Report validator changes The report validator now doesn't run in the background, but runs with a separate "Validate Report" button in the "Report" menu. In addition, the validator window has been removed, and its messages are displayed in the window "Messages". Ability to hide connection string Added a new property Config.ConnectionStringVisible, which gives the ability to hide the connection string in the designer. Can be used to differentiate permissions between the application developer and the report user. When set to false, the user will not be able to see and edit connection strings in the designer. WebReport changes Added support for MemoryCache. By default, at the moment, the current WebReportCache is used. You can enable MemoryCache when registering FastReport services: ``` services.AddFastReport(options => { options.CacheOptions.UseLegacyWebReportCache = false; }); ``` Unlike the built-in cache in WebReport, MemoryCache unloads WebReport instances more aggressively after a certain time CacheOptions.CacheDuration of WebReport instance inactivity, which can help in cases where the old cache for some reason does not clear memory. Added the ability to fix the toolbar on the screen. Now you can configure the toolbar to always stay in place, even when scrolling through the page. This is convenient when working with large reports - the toolbar will always be visible. To pin the toolbar on the screen, you need to set the following property: ``` webReport.Toolbar.Sticky = true; ``` Now the toolbar will always be in view. Also, the ability to customize the export settings window has been added. Now it can be made fixed on the screen and displayed in the foreground. To do this, you need to set the following property: ``` webReport.Toolbar.Exports.PinnedSettingsPosition = true; ``` Validation for entering a range of pages has been added to the export settings window. Now, in case of incorrect input, the field will look like this. FastReport.Core.Skia improvements Improved the performance of the FastReport.Core.Skia package. Export errors have been fixed, examples are listed below. Fixed the rendering of objects with CanShrink = true: Fixed the background rendering of objects with transparent backgrounds: Added a standard font that depends on the operating system. Now, if the font from the report is not detected in the system, the export will not produce an error, but will render the report with the standard font. For other fixes, please refer to the full list of changes. Updated design of FastReport Cloud file manager Updated the design of the file manager window for more convenient and intuitive use of the service. Changes have been made to the layout of interface elements and color scheme, which will improve the overall visual perception of users. Full list of changes [Engine] + added property Config.ConnectionStringVisible, which indicates whether the connection strings of data sources will be displayed in the designer; - fixed a bug with extraction of procedures in connection that cannot contain procedures; - fixed a bug where the first column of the page was always displayed in the leftmost position; - fixed a bug when GaugeObject.Value property was set equal GaugeObject.Minimum, if new value was more than GaugeObject.Maximum. Now it will be set equal GaugeObject.Maximum; [Designer] + added the ability to open report from FastReport Cloud using recent files list; + added a context menu to the page panel elements; + a context menu for creating new pages and dialog forms has been added for the panel with report pages; + added new Visual Studio style icons for the Ribbon interface; + added "Sync" button in the "Report Tree" window; + added Filter button in the Properties window; + added HiDPI icons for Ribbon-interface; + added support of DBNull and Guid types for parameters; * now the name of the attached file when exporting to mail, can be set from the code when creating the export form; * report validator now runs from "Report|Validate report" menu. "Messages" window is used to display validation messages; * changed interface of QR code editor; - fixed a bug on right clicking Data Sources menu item; - fixed a bug when checkbox "Select all" was not visible in Data wizard; - fixed a bug causing System.NullReferenceException when deleting dialog form; - fixed the absence of the Api key when re-opening the Account->Server window if it was entered in the standard server item; - fixed incorrect web address when trying to preview webview for custom server; - fixed the problem of collapsing panels and incorrect change of the language of tabs and bars when changing the localization in the Ribbon interface; - fixed issue with adding tables that were not selected in the connection wizard; - fixed a bug causing System.NullReferenceException when creating connection to stored procedure; - fixed exception when manually entering an invalid parameter type; - fixed a bug where it was impossible to set an object to a transparent color; - fixed reopening of the query wizard; [Preview] + added a message about sending a report to the mail in the status bar; [Exports] + added word wrapping in cells when exporting to Excel 2007; - fixed a bug that made MSChart text blurred after HTML export; - fixed incorrect margins when exporting the report to HTML; - fixed an error that made the transparent background become white with Skia; - fixed a bug with an extra empty page when exporting if there are bands with the Exportable property equal false; - fixed a bug when padding top was not taken into account when exporting to layered HTML; - fixed an error that made the text go beyond the table when the page was zoomed out in HTML export; [WebReport] + added Blazor WebAssembly support; + added support for DI in WebReport.Core/Blazor. To use, call services.AddFastReport(); + added support for Microsoft.Extensions.Caching.Memory.MemoryCache instead of the standard WebReportLegacyCache. To use, when registering a DI container, use services.AddFastReport(options => options.CacheOptions.UseLegacyWebReportCache = false); + implemented the ItemCheck event in CheckedListBox; + added an option to enable the toolbar to display regardless of the screen position in WebReport using WebReport.Toolbar.Sticky property; + added asynchronous version of method WebReport.Designer.SaveMethod - WebReport.Designer.SaveMethodAsync; + added validation of page range in WebReport export settings window; + added WebReport.Toolbar.Exports.PinnedSettingsPosition property. If enabled, the container of export settings will be fixed on the screen and displayed in the foreground; - fixed a bug when selection mode in ListBox was multiple, but it was able to select only one item; - fixed a bug of non-refreshing dialog when CheckedBox was the initiator of the event. In this case, add at least one dependent object of the CheckedBox to the DetailControl property; - fixed a bug when in .NET Framework MVC application the report with dialog form on clicking "OK" would not hide dialog form and not show loading of the report; - fixed an error that caused extra pages to appear when printing; - fixed incorrect work of report 'Interactive Report' on WebReport.Core; - fixed rare NullReferenceException in WebReportLegacyCache; [Online Designer] - fixed a bug where First Page Source, Other Page Source, Last Page Source and Duplex properties was not saved when changing ReportPage; - fixed an error that made the report preview not refresh before pressing "Refresh" button; [.NET Core] + the script compiler will now display errors depending on the selected locale set with FastReport.Utils.Res.LoadLocale() or FastReport.Utils.Config.CompilerSettings.CultureInfo; - fixed an issue where text with CanShrink = True was incorrectly rendered after export with Skia; - fixed a bug with incorrect indent width between characters with TextRenderType = HtmlTags in Skia; - fixed a bug that caused the watermark with transparency to have a gray background when exporting with Skia; - fixed an error that caused incorrect calculation of table row height; [CoreWin] - fixed error when trying to add new data connection; [Mono] + added zoom control in preview and designer windows; - fixed problem of scaling PreviewControl; [Demos] + added demo-app ASP.NET Core (Razor pages) under .NET 6.0; * updated demo applications for FastReport Core; [Extras] - fixed a situation in which the host during logout could not match the one during authorization; - fixed a bug when updating an expired session in the Account window, a browser opens and requests re-authorization. ### Update of Cloud Services to 2025.2 Version URL: https://www.fast-report.com/pt/news/release-service-2025.2 Summary: In version 2025.2 the ability to use custom fonts has been added, functionality for Tasks, data sources, and preview service has been improved, the installation wizard has been redesigned. In version 2025.2 the ability to use custom fonts has been added, functionality for Tasks, data sources, and preview service has been improved, the installation wizard has been redesigned. In version 2025.2 of FastReport Cloud and Corporate Server , the ability to use custom fonts has been added, functionality for Tasks, data sources, and preview service has been improved, the installation wizard has been redesigned, and a new edition of Corporate Server — FastReport Publisher — has been introduced. Font Service Users can now upload their own fonts in *.ttf and *.otf formats and use them for template design in the Online Designer , in the preview window, and in exports to various formats. Fonts are stored in the user's workspace. New fonts can be added or existing ones can be configured on the "Workspace Information" page or via the API (method descriptions are available at the link https://fastreport.cloud/api/swagger/ in the Fonts section). Once a font is added, it can be used within the Online Designer. In the preview window, it will appear as follows. When exporting to various formats, it will also work correctly. However, please keep in mind some details. For the font to be displayed in the generated document, you need to have that font installed on the device from which the document is being viewed or embed the font in the document itself. This functionality is supported, for example, in PDF export. Task Filtering by Task Type Added Two new parameters have been added to the method for retrieving the list of Tasks /api/tasks/v1/Tasks : taskType useProjection The taskType parameter allows the user to specify the type of Tasks to be returned. The useProjection (true/false) parameter indicates whether all information about the task will be returned or only the minimum necessary information. These parameters will help when you need to find all tasks of the specified types, for example, email tasks and FTP tasks. Ability to Search for Files Saved as a Result of Task Execution Added The models of export and prepared reports have been updated to include the fields taskId and taskMessageId . After the execution of transformers, the generated report is saved in the Reports or Exports folder, depending on the type of Task being performed.  Additionally, the taskId field of this document includes the identifier of the transformer Task (for example, the task of exporting from a template) that created the file. To find an export or report by taskId use the following methods: /api/rp/v1/Exports/File/Task/{taskId} /api/rp/v1/Reports/File/Task/{taskId} The taskMessageId field contains a unique identifier that is generated with each execution of a Task. Below are the methods used to search for documents created after the specified task execution. /api/rp/v1/Exports/File/TaskMessage/{taskMessageId} /api/rp/v1/Reports/File/TaskMessage/{taskMessageId} Additionally, running a "Task without saving" (/api/tasks/v1/Tasks/run) returns taskMessageId , which can be used to find the generated documents in Exports or Prepared Reports. Custom Query Names in Data Sources Now Unique With the release of 2025.2, when creating custom SQL queries, table names will be unique. Duplicate names entered will be automatically supplemented with characters to ensure uniqueness. This will help avoid issues when working with the Online Designer. Parameter Input in the Preview Window If you open the preview window for a template with parameters, you will see a sidebar where you can set the input for these parameters. After changing a parameter, the report will be restructured. The parameters are also saved in the URL. This means that parameters can be saved in a link and shared with a colleague. Alternatively, you can generate these parameters programmatically and display the current report. New Demo Application in Java A new demonstration application in Java has been added, which uses the REST API to work with FastReport Cloud or Corporate Server. Try out our application right now on GitHub . Saving Sort Orders in the User Panel The feature to save table sort selections on the user panel pages has been implemented. Now, when the page is reopened, the previously selected sort order will be applied, for example, by date or document size. Additional Changes for FastReport Corporate Server   Page with License Limitation Description in the Admin Panel An admin panel page has been added where you can view the current limitations of the Corporate Server. Improved Corporate Server Installation Wizard The Corporate Server installer has been significantly reworked. The design and application stability have been enhanced. FastReport Publisher A new lightweight edition of the Corporate Server — Publisher — has been introduced. It is designed for companies with a small number of users that do not require the reporting server to be run in a cluster. The Publisher is the most accessible solution for deploying a full-fledged reporting system. Additionally, the Publisher provides seamless functionality expansion whenever needed. You can find more details about the Publisher on the product page or in articles on the website. Full List of Changes [Backend] + Added task ID and task message ID to export and report;   + Added Google Fonts caching;   + Added report parameters to temporary files;   + Added a new system for fonts;   + Added task type filter for retrieval method;   + Added company name to configuration;   * Custom query names for data sources are now unique;   * More options for searching tasks added;   * Error messages in the report script are now localized;   * Demo and missing white-label headers are now different;   - Fixed subscription owner's permissions retrieval;   - Fixed file (or folder) moving to the same folder where it was located;   - Fixed issue with MongoDB connection;   - Incorrect Authorization header will now result in a 401 response instead of using an anonymous user;   [Common] + Added parameter input in static preview;   + Added change log to the product page;   + Added a link to Online Designer documentation in Corporate Server documentation;   * Documentation removed from Corporate Server loading script;   * Updated documentation for VM types in tasks;   - Fixed bug with disappearing transports on the tasks page;   [Demos] + Added new Java REST demo;   [Frontend] + Added sorting saving to local storage;   + Added links to the report store;   + Added error handling for data sources that do not support parameters;   + Added license limitation page to the admin panel;   * Tasks page changed, task controller fixed;   * You can no longer click "create task" if it is not in your subscription plan;   * SQL query step hidden when editing a data source that is incompatible with SQL;   - Added padding in the sidebar, added title to task launch buttons, changed access rights display to a column;   - Fixed context menu on document pages;   - Fixed double request when creating a folder;   - Fixed error regarding empty name parameter in notifications;   - Fixed loading indicator in static preview;   - Fixed issue with a popup window inside another popup when accepting an invitation in the Corporate Server;   [Installer] + Added Installer localization;   * New Corporate Server installer design;   [SDK] + Added TasksClient in CSharp SDK. ### Update of Cloud Services to Version 2025.1 URL: https://www.fast-report.com/pt/news/fastreport-cloud-2025.1 Summary: In version 2025.1 has significantly improved work with data sources, tasks, and report templates. We also added API methods for retrieving user rights and new demo applications In version 2025.1 has significantly improved work with data sources, tasks, and report templates. We also added API methods for retrieving user rights and new demo applications For FastReport Cloud and FastReport Corporate Server , version 2025.1 has significantly improved work with data sources, tasks, and report templates. We also added API methods for retrieving user rights and new demo applications, and, of course, fixed numerous bugs. Changes for FastReport Cloud and Corporate Server Custom SQL Tables Added to Data Sources The ability to add custom tables as SQL queries to data sources has been added. To do this, create or edit a data source on the corresponding page, click “Next,” and enter the SQL query. If the query contains parameters starting with the “@” symbol, a data source parameter will be created, allowing you to configure its data type and default value. After adding your own table and saving the data source, it will become available for use in Online Designer. Stored Procedures Creation Included in the Data Source Structure Starting from the current version, stored procedures are available for use when creating data sources for layout templates. Data Source and Task Names Have Become Unique As with files, when creating data sources and tasks, they will be automatically renamed to avoid name duplication. Template Engine for File Names Added  In the name of the template or report file, you can use the variables ${Date} and ${Time} . Then, in the final exports, the file name will contain the date or time of export (UTC) instead of these variables. For example, when exporting sales_report_${Date}.frx to PDF, the final file will be named sales_report_2024-07-08.pdf. The order of the day, month, and year depends on the localization chosen during export or the default localization.   These variables can also be specified in the output file name when creating tasks.   Report Parameters Are Now Available for Retrieval and Editing Via API The following API methods have been added: ``` - GET /api/rp/v1/Templates/File/{id} - now this method returns a list of report parameters if they are set. ``` ``` - POST /api/rp/v1/Templates/File/{id}/parameters - with this method, you can set or edit report parameters. ``` Report parameters also remain available for editing in Online Designer and when downloading report templates.   Added API Methods For Retrieving the Current User’s Permissions on Files, Groups, Tasks, and Data Sources Previously, there was only one method for retrieving user permissions, which makes the following request:   ``` /api/manage/v1/Subscriptions/{subId}/mypermissions ``` With this update, we have added 10 more requests:   ``` /api/data/v1/DataSources/{id}/mypermissions/api/rp/v1/Exports/Folder/{folderId}/mypermissions/api/rp/v1/Exports/File/{id}/mypermissions/api/manage/v1/Groups/{id}/mypermissions/api/rp/v1/Reports/Folder/{folderId}/mypermissions/api/rp/v1/Reports/File/{id}/mypermissions/api/tasks/v1/Tasks/{id}/mypermissions/api/rp/v1/Templates/Folder/{folderId}/mypermissions/api/rp/v1/Templates/File/{id}/mypermissions ``` With them, you can find out what permissions the user has and only perform corresponding actions if these permissions are available. Added Current Product Version Display  Now, at the bottom of each page in the user panel, you can see the current product version.   Case Insensitivity in Sorting   Previously, when sorting documents by name, those whose names started with an uppercase letter were shown first. Now, the sorting works independently of letter case in file names. New Demo Applications Added New console and Android applications in Kotlin and Angular have been added to GitHub. In addition, you can deploy demo applications in Java, PHP, Cpp, Haskell, JavaScript, Go, and Python in your projects. Try the demo Additional Changes for FastReport Corporate Server   Added the Ability to Download Files and Folders from The Admin Panel  To download a template, report, export, or folder in the admin panel, simply click the corresponding button on the row displaying the item.   A Graph of Active Users and Workspaces Added to The Admin Panel With this, you can evaluate user activity for each month. To view the graph, go to the ‘Audit’ page and click the ‘Show Statistics‘ button at the bottom of the page.   Added Parameters for Scheduling Tasks in The Admin Panel  On the ‘Tasks’ page of the admin panel, a ‘Details’ button has appeared, which opens a page with a detailed description of the task. Full list of changes --- [Backend] + added a log for invalid license keys;   + added tests for upload size limits;   + added custom tables to data sources;   + added a template engine for file names;   + enabled the creation of stored procedures in the data source structure;   + added a new parameter to the license key;   + added a method for retrieving the current user’s rights on files;   + added retrieval of mypermissions for groups, tasks, and data sources;   * changed sorting for backend;   * changed data source names to be unique;   * changed the maximum number of users in the Corporate Server without a license key (5);   * added parsing of template parameters from metadata;   * changed case sensitivity in sorting;   * changed task names to be unique;   - fixed file uploads with identical names;   - fixed the path for the destination folder;   - fixed report parameters;   - fixed duplication of the jti claim in the JWT token;   - fixed task execution with files in the request body;   - fixed rights checking for moving to the trash;   - fixed an error returning an incorrect ID when creating nested tasks;   - fixed a bug where the UsersPerWorkspace parameter in the configuration was not considered if there were no user limits in the license key;   - fixed a bug where an anonymous user received errors in the controllers;   - fixed a bug where the administrator received a 403 error when retrieving the data structure;   - fixed delayed task execution in the scheduler;   - fixed the incorrect creation time for data sources;   - fixed an error when opening compressed templates in Online Designer. [Common] + added an article on Webhook;   + added the ability to download folders and files to the admin panel;   + added a graph of active users and subscriptions in the admin panel;   + added documentation for custom queries in data sources;   + added current product version display;   + added documentation for export parameters;   + added a Name in the docker-compose installer;   * improved the task scheduler;   * changed the name in the docker-compose installer; it is now always the same by default;   - fixed the documentation;   [Demos] + added console and Android demos in Kotlin;   + added Angular demo. [Frontend] + added task scheduling parameters to the admin panel;   + added notifications for failed folder exports;   + added an interface for creating custom SQL queries;   + added a check for the user’s subscription limit;   + added localization for export parameters in the admin panel;   + added error texts in notifications within the admin panel;   + added a ‘Refresh’ button in the context menu on document pages;   + added localization for audit notifications;   * shortened links in the admin panel to delete the scrollbar;   * changed input for users and subscriptions on the audit page;   * changed sorting for the admin panel;   * changed notifications for deleting API keys;   * removed mutations from injection in Online Designer;   * the ‘Plus’ button on the document page will no longer appear if the current user does not have permission to create files in the folder;   * improved localization in the admin panel;   * all online libraries became local;   * displayed date and time have been converted to local time zones;   * new .fpx icon;   * connection testing on the ‘Data Sources’ page has become optional;   - fixed export and download buttons;   - fixed history on export and report information pages;   - fixed an error when creating a data source from the online designer;   - fixed the display of the user deletion button in the admin panel in corporate server mode;   - fixed a white stripe appearing after clicking on the checkbox and the disappearing title on hover;   - fixed localization of workspaces in the admin panel;   - fixed validation of the owner ID in the admin panel;   - added a default avatar for all user icons;   - fixed localization for starting a task;   - fixed an error regarding payment necessity on the expired subscription detail page;   - fixed notifications for downloading files without permissions;   - fixed the search field and the output file name field;   - fixed the ‘Select All’ button on the API keys page;   - fixed a bug with an incorrect default subscription when updating a user in the admin panel;   - fixed a bug where pages did not refresh after deletion in the admin panel. ### Update of Delphi and Lazarus Products to Version 2025.1 URL: https://www.fast-report.com/pt/news/fastreport-vcl-2025.1 Summary: Version 2025.1 introduces a new application to demonstrate the capabilities of FastReport VCL, expands the component library, and improves the report designer and export filters. Version 2025.1 introduces a new application to demonstrate the capabilities of FastReport VCL, expands the component library, and improves the report designer and export filters. Our products are constantly evolving, with new features continuously added and the quality of the code improving. This update includes enhancements and fixes for the entire line of Delphi and Lazarus products. Version 2025.1 introduces a new application to demonstrate the capabilities of FastReport VCL, expands the component library, and improves the report designer and export filters. New App for Demonstrating FastReport VCL Capabilities We have updated our main demo application for FastReport VCL to ensure that the product not only delights you with its rich functionality but also with its appearance. Expansion of the Component Library for Delphi and Lazarus We introduce the new visual component TfrShellTreeView for developing applications in Delphi or Lazarus. This is a fully functional file system navigation component that works on Windows and Linux (Lazarus). Key Features: •    Native rendering (icons and themes from the operating system) •    Subscription to file system changes and automatic updates •    Fast rendering (utilizes a virtual tree) •    Customization and overriding options allow you to extend the component to suit your needs. Improvements in the FastReport VCL Designer The FastReport VCL designer offers extensive functionality for designing your reports. In version 2025.1, we have added the ability to customize the highlighting of expressions, which you can find in the designer settings. A search feature has been introduced in built-in editors such as Memo and SQL. Improved working with hiDPI modes in Embarcadero RAD Studio 12 and fixed issues affecting the user experience of creating templates. A new interactive editor for the "Table" object has been added. Edit the table in a familiar way, just like in Microsoft Word. FastReport VCL Reporting Engine A new feature in the reporting engine allows you to create chains of Subreports with printing on the parent (Subreport.PrintOnParent). This approach enables printing structures similar to tree-like structures and stretching elements located on the parent band. This method is based on the height of the structure printed in the Subreport. Export Filters The ability to edit the CellularText object in interactive PDF forms has been added. You can now use CellularText as an element of an interactive form. In table export filters, a new feature has been added to select the quality of objects exported as images. This setting allows you to set the scale for all images in table export filters. Fixes and quality improvements have been made to export filters: PDF, DOCX, PPTX, XLSX, SVG. Preview The ability to copy the contents of the RichView object in the preview has been added, including group selection of objects via Shift + Right Mouse Button. FastReport FMX A new export to PPTX has been added for Windows, macOS, and Linux platforms. Delphi and Lazarus Version 2025.1 also supports Embarcadero RAD Studio 12.2 (including the new Windows 64 Modern platform for C++ Builder) and Lazarus 3.6. Version 2025.1  ---------------   [Designer] + Added expression highlighting settings in the report designer; + Added basic search in editors with Memo; * Improved mouse functionality in SimpleMemo; - Improved scrolling in the Memo editor; - Fixed the issue when opening the report designer; - Fixed a potential AV error after deleting a StyleSheet element in the report designer; - Fixed name duplication when dragging from DataTree; - Fixed stretching of the object toolbar when the height is insufficient in the designer; - Fixed calling the text editor through the object inspector; - Fixed an issue with the Auto Update Fields option enabled; - Fixed navigation issues in the Report Tree of the designer; - Fixed SmartMemo (code editor) for HiDPI;   [Engine] + Added TfrShellTreeView control for shell management in VCL and Lazarus with Linux support; + Added nested handling for Subreport.PrintOnParent in the reporting engine; + Added support for the Win64x compiler during development; + Implemented native rendering of controls for VCL and Lazarus in Linux; + Added WideString type in FastScript; - Fixed compatibility with C++ Builder and JVCL; - Fixed updating DBX parameters when extracting field definitions; - Fixed an issue when using a multi-column page along with PrintOnPreviousPage and KeepTogether options; - Fixed a problem in automatically generated headers for C++ Builder; - Fixed the HTML editor; - Fixed RTL output with tags in TfrxHTMLView; - Changed data field updates to clear automatically defined fields when DataSet is modified; - Fixed incorrect rendering of SliceGrid when loading a scheme at high DPI; - Fixed icon caching during scaling for HiDPI; - Fixed an issue when changing the DBDataSet.DataSet property did not clear field definitions; - Fixed TfrxComboBoxView and TfrxListBoxView; - Fixed the field type definition for ftFixedChar; - Fixed memory leak when displaying SVG; - Fixed an issue where DataLink did not clear previous data; - Fixed the error 'Resource FCXBUTTONS not found' in FMX RS12 Builder when calling the formula editor; - Fixed the state of the old XML format flag after clearing; - Fixed initialization of the interactive parameters structure; - Fixed warning in frxGetCertificate.   [Exports] + Added the ability to edit the CellularText object in interactive PDF forms; + Added the FromName field in TfrxMailExport when using Indy SMTP; - Fixed EMF export to SVG; - Fixed font substitution in PDF export; - Fixed line break issue when exporting to .rtf format from Lazarus on Linux; - Fixed export of katakana, hiragana, and geometric symbols in PDF export; - Fixed line selection and bottom field line during DOCX export; - Fixed EMF export to PDF; - Fixed hyperlinks in RTF export; - Eliminated GDI object leaks; - Fixed customizable PDF signature; - Fixed alignment issues in TfrxMemoView and reduced sizes of images with alpha channels in PDF export; - Fixed date formatting in XLSX export; - Fixed compiler warnings; - Fixed XLS export for empty pages; - Fixed date format in XLSX export; - Fixed "Unexpected variant error" in XLS export;   [Lazarus] - Fixed ODF export when AllowHTMLTags is enabled; - Fixed RTF export when AllowHTMLTags is enabled; - Fixed TfrxDateEditControl in Linux under Lazarus; - Removed unnecessary ScrollBar rendering in the designer; - Fixed selection reset in the Linux Lazarus Rich editor; - Fixed infinite loading when using Linux Lazarus Rich;   [Other] + Added VarIsNull function; - Fixed issue with displaying the Data Highlighting dialog in FastCube; - Fixed converters for QuickReport, ReportBuilder, and Rave Reports;   [Preview] + Added the ability to copy RichView content in preview; - Fixed issues with active preview tabs when exporting all open preview tabs; - Fixed toolbar issues in HiDPI mode in version 10.4, when some toolbar buttons were disabled; - Fixed AV when calling preview in XE2; - Fixed display of double tooltips in the preview window;   [Report object] + Added property TfrxFIBDatabase.LibraryName; * Added Tab key handling in TfrxRichView editor; - Fixed serialization of TfrxPictureView.Stretched property; - Fixed barcode positioning after changing BarType when Align is set to [baCenter, baRight]; - Fixed Swiss preset in QR barcode;   [Resources] * Updated Polish resources; * Updated German resources for FastCube; - Fixed FCXBUTTONS resources for applications with run-time packages;   [FastReport FMX] - Added export to PPTX for Windows, macOS, and Linux platforms; - Fixed export dialog display in macOS; - Export dialogs have been separated from export filter modules (ability to override export dialogs with custom ones). ### Update of FastCube 2 beta URL: https://www.fast-report.com/pt/news/update-fastcube2-beta Summary: Update of FastCube 2 beta Update of FastCube 2 beta 1. Improved integration with FastReport: reports now use grid highlights and style. Fixed cell autosize options: adjust width, adjust width with restrictions and adjust height. 2. Added FireDac support. 3. Extended scripting abilities :  a. «Calc all cells» option –to build calculated measure for empty cells (which does not have records in source dataset),  b. calculate totals with script,  c. “FormulaDetail” aggregate - calculate measure values on source data (not on other measures). 4. Copy to clipboard now copies headers . ### Updated export engine in FastReport VCL URL: https://www.fast-report.com/pt/blogs/updated-export-engine-vcl Summary: Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. This means the scaling of objects does not affect the quality. Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. This means the scaling of objects does not affect the quality. It is better to consider this with examples. Since there was no Map object in the 5th version of FR VCL, let's look at the example of a Chart object. I will present screenshots of the export of the one and the same report in the 5th and 6th versions. Diagrams’ representation in the 5th and 6th versions differs in color filling. In the previous version, the diagram was painted with a lurid vivid colors. I agree, it contrasts, but looks "childish". In the 6th version, quiet colors are used for filling, and it looks "more mature". Let's look at exporting to a PDF report format with a chart in version 5. To show the disadvantages of using a picture to display compound objects, I zoomed in: Even with a slight zooming, the picture quality deteriorates noticeably. In addition, there is no way to select and copy the inscription. Now look at the PDF export of the same report in FR VCL 6: And even at high magnification ... The chart looks perfect. Note that on the previous screenshot, I showed the highlighted chart title. Any text in a diagram, map or RichText can now be selected and copied to the clipboard. The PDF file size for FR VCL 5 is 447KB, and for FR VCL 6 is 307KB. That is, updates have benefited not only the quality of exports, but also the size of the resulting file. Since we are considering PDF export, take a look at its settings for the 5th ...  and the 6th version: The Outline option is available. At the bottom of the form appeared drop-down list with options for saving the report: As you can see, in addition to saving to the local disk (File option), you can save the report to a remote FTP server or to one of the cloud stores. Updated export is applied for three formats: PDF, HTML5 and SVG. Tags: VCL, Export, FastReport ### Updated Export menu FastReport.Net report URL: https://www.fast-report.com/pt/blogs/updated-export-menu-net In the version of FastReport.Net 2018.3.14 appeared useful refinement that does not relate to the functionality of generator. However, it significantly improves usability report designer, or rather the report preview mode. Finishing touched menu exports. Because developers regularly delight us with new export formats, their recruit until 31. Let's take a look how it looked until recently: In such a huge list is not just quickly find export, not to mention the size of the menu that on smaller screen resolutions are simply not fit entirely. There is only one way out-group exports by destination. Here is what we have now: Very compact. Just some relief. Briefly go through the menu. Prepared report formats and Adobe Acrobat stand apart. For them there is no pair to create the drop-down list. All formats of Microsoft Office and Open Office in the same group. XML group contains export formats such as: Web group contains other markup languages used in the Web: In the Image group - export formats in image. Export Image file formats support: JPG, BMP, PNG, GIF , TIFF, Windows metafile. Export to SVG stands out because it has a lot of their own settings.  Group Database contains formats commonly used to store data: Print Group gathered all export formats that are relevant to printing. And the Other group includes other export formats for which a separate section is inappropriate: Group Cloud contains exports to external storage. Usually it is cloud services. Here you need to understand that it is not enough simply to have an account in one of cloud services, you want to create an application in the cloud-based service through which you will save the report to the store. More details can be found in the documentation of FastReport.Net. The last group contains Messengers only one export to XMPP for now, also known as the Jabber. The fact that exports in Messenger placed in a separate section, gives us hope for the addition of new export formats to the most popular instant messengers. What is the export of this? FastReport.Net loads report to the cloud FastReport Cloud. And then sends a link to the report in the messenger. In conclusion, I would like to commend the work of FatReport.Net team that she does not forget about usability. I look forward to further work in this direction. Tags: .NET, .NET, FastReport, FastReport ### Updated FAQ URL: https://www.fast-report.com/pt/news/update-faq-fastreport-vcl4 Summary: Updated FAQ Updated FAQ Added FAQ sections for  Fast Report 4 VCL  and for  Fast Report Studio . ### Updating .NET products to 2024.1 version URL: https://www.fast-report.com/pt/news/fastreport-net-2024.1 Summary: In this release, we focused on implementing the long-awaited features that greatly simplify the process of developing reports. In this release, we focused on implementing the long-awaited features that greatly simplify the process of developing reports. In this release, we focused on long-awaited features that greatly simplify developing report templates. The following are now available to you: custom line styles, changing the shape of the "Picture" object, setting up hotkeys, support for the ODBC connector, and much more. New opportunities Improved work with the Table object Working with the report designer has become easier and more convenient. There are new capabilities for working with the "Table" object. 1. Quickly add columns and rows. If you point to a row boundary to the left of the table or a column boundary at the top, a conditional display will appear showing where a new row or column will be added. There is also a button that, when clicked, will add a new row or column to the table. The table must be active (selected). Otherwise, new controls will not appear. 2. Change the height of rows and width of columns. Now, you can change the column width or row height accordingly by dragging the column or row border using the mouse. 3. Drop-down menu "Insert". When you right-click a cell in the context menu, you will see a drop-down list that allows you to insert a new column or row next to the cell. 4. Hotkeys. Copy cell text and paste text into a cell using the hotkeys Ctrl+C and Ctrl+V. Read more about the new table capabilities in the article. Merging text objects Now, there is a mechanism for merging text objects with the same text. For this purpose, a new MergeMode property has been added to the "Text" object, which allows you to configure the merge mode. The new property works very similar to the Duplicates property in Merge mode, but there are important differences: Duplicates works only with one object located in the “Data” band. For example, the Data1 band has a text object named Text1, and the Duplicates property is set to Merge. When building a report, at the first iteration of Data1, when the first record is displayed in Text1, the text "10" will be displayed. On the second iteration of Data1 and the output of the second record, the same text will be output in Text1. As a result, two instances of Text1 will be connected, and the text "10" will be displayed only once. MergeMode, unlike Duplicates, can merge instances of different text objects, and do this both vertically and horizontally. For example, when building a report, the text "10" will be displayed in Text1 and Text2, located next to and to the right. In this case, Text1's MergeMode property is equal to Horizontal. In this case, the text objects will be connected and the text "10" will be displayed once. Read more about the new property in the article at this link. Custom line styles For the LineObject, ShapeObject, PolyLineObject, and PolygonObject objects, a new property has been added—DashPattern, which allows you to create your line styles. Previously, the line style of these objects was set using the Border.LineStyle property. Only six styles were available: Solid, Dash, Dot, DashDot, DashDotDot and Double. With the new property, you can specify a collection of values that will sequentially specify the length of strokes and spaces. For example, with values 5, 4, 3, and 2, we set a pattern in which a stroke of length 5, a space of length 4, a stroke of length 3, and a space of length 2 will be displayed. Then, the values will be repeated in a circle, starting from 5. The unit of measurement here is the Border.Width. If there is at least one value in the DashPattern collection, then this new mechanism will work. And the Border.LineStyle property will be ignored. If the DashPattern collection is empty, the Border.LineStyle property mechanism will still work. Below, you can see some examples: Instructions for setting up lines are available at the following link. Change the shape of the Picture object It is now possible to change the shape of the "Picture" object. PictureObject now has a new Shape property that allows you to specify the following shapes: rectangle (default), round rectangle, ellipse, triangle, and diamond. You can find out more in the article. Setting up hotkey combinations It is now possible to customize hotkey combinations at your discretion. You can configure commands for actions such as "Open file," "Save file," "Prepare report," and much more. To do this, a new button has been added to the "Interface" tab in the designer settings. Pressing it opens a window for setting up hotkey combinations. Here is a table with actions and their assigned keyboard shortcuts. You can change the combination by double-clicking on the desired line. You can also navigate the table using the Up and Down keys, and make changes by pressing the Enter key. You can also return all combinations to their default values. You can find more information about setting up keys in this article. .NET 8 support Added  .NET 8 support  for FastReport .NET, FastReport.Core, FastReport.Core.Skia, and FastReport.WPF. This platform improves application performance and adds many new features to your projects. Refusal of support for .NET Standard 2.0 in FastReport.Web To cover more and more technologies that are constantly being added to the .NET world, we have decided to abandon the legacy .NET Standard 2.0 compatibility layer in our Web integration library FastReport.Web (WebReport Core/Skia). The minimum supported version of TargetFramework for this product will now be .NET Core 3.1 and higher (including .NET 5, 6, 7, and 8). FastReport.Core and FastReport.Core.Skia will still support .NET Standard 2.0 without changes. Added ODBC connector support for FastReport.Core Our users have been asking us for a long time to add the ability to connect to databases via the ODBC protocol for our cross-platform products. This feature was present only in FastReport .NET and FastReport WPF previously. With this update, it is also available in FastReport.Core and FastReport.Core.Skia. To use it, add the FastReport.Data.Odbc plugin to your project and register it with this code: ``` FastReport.Utils.RegisteredObjects.AddConnection(typeof(OdbcDataConnection)); ``` Changes in WebReport Email Export to WebReport Now, WebReport has a function for sending reports by email. To enable this feature, you need to configure the SMTP server parameters when registering FastReport services. Just add the code: ``` services.AddFastReport(options => options.EmailExportOptions = new FastReport.Web.EmailExportOptions { Address = "SomeAddress@example.com", EnableSSL = true, Host = "Host", MessageTemplate = "Message template here", Name = "John", Password = "password", Port = 25, Username = "Username" }); ``` After this, activate the option WebReport.Toolbar.Exports.ShowEmailExport and users will be able to send reports by email: When you click the "Send by mail" button, the user will be asked to configure the message through a convenient modal window: Printing in Blazor WebAssembly WebReport now allows you to print reports in Blazor WebAssembly. This feature is enabled by default, but if you need to disable it, just use the following code: ``` webReport.Toolbar.ShowPrint = false; ``` Your reports can now be printed directly from Blazor WebAssembly: Full list of changes --- [Engine] + added merging of text objects; + added the ability to change the shape of PictureObject; + added the ability to create custom line styles; * now working with fonts is done without blocking; - fixed text going beyond the boundaries of the TextObject when TextRenderer = HTMLParagraph; - fixed creation of fonts from PrivateFontCollection; - fixed incorrect text color in RichObject; - fixed a break between RichObject and image; - fixed a bug when the focus was lost from the DateTimePicker object if it had the DetailedControl property specified; - fixed a bug in barcodes (display on HiDPI, export to PDF); - fixed indentation in HTMLTextRenderer; - fixed incorrect RichObject breaks; [Designer] + added the “Show progress window” property to the designer settings; + added the ability to configure hotkey combinations; * updated checks for links; links with spaces are now processed correctly; - fixed the appearance of extra lines when scaling a RoundRectangle of small size; - fixed slash encoding in Barcode 93 Extended; - fixed deleting a link when merging dictionaries; - fixed a bug with the choice of date or time formatting in the Hungarian localization; [Preview] - fixed incorrect size of the page border when the page height or width is infinite; [Exports] + implemented saving of each image in a separate thread; + added missing links to event handlers in exports to Excel 2007, Word 2007, and RTF; + added a new property for scaling barcodes when exporting to ZPL; + added selection of group by which the report will be divided into sheets in Excel 2007; + added the ability to disable grouping of sheets when exporting to Excel 2007; + added the use of wrap mode for texture fill when exporting to SVG; * when exporting to cloud storage, the window automatically closes after receiving the authorization code; - corrected private font collections; - fixed error in parsing the GSUB table; - fixed incorrect export of DashDot, DashDotDot, and Double object border styles to PDF; - fixed a bug when the numbers in the Gauge were displayed blurry during HTML export; - fixed calculation of the ContentMD5 header in S3 export; - fixed incorrect positioning of text when exporting to ZPL; - fixed incorrect export of GaugeObject to PowerPoint 2007; - fixed incorrect export of RadialGauge with filling in layered export in Word 2007; - fixed incorrect export of RadialGauge with filling in non-layered HTML; - fixed display in "Clamp" transfer mode for texture fill when exporting to SVG; - fixed the change in text size when using HTML tags in Excel 2007 export; - fixed the incorrect behavior of HTML tags with tabs when exporting to Excel 2007; - fixed the problem of reducing the quality of the watermark when exporting to PDF; - fixed a bug with incorrect indents when exporting to tables in Word 2007; - fixed image positioning in CheckBox when exporting to Word 2007; [WebReport] - support for .NET Standard 2.0 has been removed in FastReport.Web; - fixed an error when exporting in the Blazor application; - fixed ignoring Margin when printing with PrintHtml in WebReport; [.NET Core] - fixed a bug when the text width was incorrectly calculated when exporting to PDF; [Demos] - fixed a bug in displaying the navigation menu after minimizing Demo New; [Extras] + added Variant conversion to CLR types in MySqlDataConnection; + added FastReport.Data.Odbc plugin; + added support for FastReport.WPF for FastReport.Data connector plugins; * changed the behavior of the message about duplicate names in a request; - fixed the automatic creation of parameters in a request. ### Updating .NET products to 2024.2 version URL: https://www.fast-report.com/pt/news/fastreport-net-2024.2 Summary: From version 2024.2 you have access to a new report generator with Avalonia UI, improvements in exports, support for HTML Plugin for Core.Skia. From version 2024.2 you have access to a new report generator with Avalonia UI, improvements in exports, support for HTML Plugin for Core.Skia. We are pleased to present you the long-awaited update for the entire FastReport .NET component line. In this release, you can expect a new report generator with Avalonia UI support, improvements in data exports, HTML Plugin support for FastReport.Core.Skia, and, of course, the discontinuation of support for .NET Standard 2.0 - 3.1 and .NET 5. New FastReport Avalonia component The FastReport .NET component lineup has introduced a new addition — FastReport Avalonia . This is a versatile library that enables report creation when developing cross-platform applications using Avalonia UI. This component allows for the development of applications with a unified user interface for macOS, Linux, and Windows. FastReport Avalonia is compatible with x64, x86, and arm64 processor architectures. It supports Avalonia UI, .NET 6 and above. FastReport Avalonia is part of the unified FastReport ecosystem in C#. Reports created in other products will work in FastReport Avalonia and vice versa. The product includes the report development core, designer, and viewer with a familiar interface. The report designer looks like this: And this is how the viewer looks like: For more information about the new component, please read the articles. New opportunities ReportPage object's PageCreate event The ReportPage has a StartPage event, which is triggered before the page is rendered. This event is called once for each template page in the report. Now, there is a new event called PageCreate, which is triggered when a page is created in the prepared report. Unlike StartPage, it is called more frequently, for each prepared page that corresponds to a template page. Both events can have their handlers assigned, allowing you to perform actions in addition to the standard ones. Read more about PageCreate in the article. Export improvements in Word 2007 Word export has undergone significant changes. Its performance has been improved, resulting in faster operation. New options have been added, such as "Keep Line Height" and "Use Headers and Footers of Word Pages". Additionally, we have fixed various bugs that had a significant impact on the functionality of the export. Export of hyperlinks and bookmarks to SVG With this update, hyperlinks and bookmarks of report objects are also exported to SVG format images. PostgreSQL functions and views When connecting to Postgres databases, you have the ability to use function and view data in your reports. To do this, use the FastReport.Data.Postgres plugin. HTML Plugin support for FastReport.Core.Skia FastReport.Core.Skia has now support for HTML Plugin. Now you can easily embed HTML content in your reports, enhancing their creation and presentation. To use this functionality, install the FastReport.Plugins.HtmlObject package using NuGet. Changes in Blazor WebAssembly Webcil support for .NET 8 Starting with .NET 8, by default, all libraries necessary for operation are packaged in the Webcil format (.wasm) instead of the usual.dll . This is a more secure and web-friendly format ( see more ). However, to compile the report script we must use these libraries. Previously, we advised our users to disable packaging in .wasm. Starting from the current version, FastReport.Blazor.Wasm can work with Webcil resources and use them to compile a report script without preliminary settings, everything happens automatically. Automatic addition of required SkiaSharp resources Previously, one of the requirements for using FastReport.Blazor.Wasm was that users had to manually add the necessary SkiaSharp and HarfBuzzSharp resources to their Blazor WebAssembly projects. The main issue was that these resources varied depending on the .NET version and the use of multithreading in WASM. Users had to manually select which libraries they needed, which caused a lot of complexity. Starting from the current version, FastReport.Blazor.Wasm can determine the resources needed depending on the environment, and apply them to your application automatically. However, if you still need to select the required resource manually, then you can disable automatic behavior by adding to your .csproj project the following code: ``` False ``` Removal of support for .NET Core 2.0, 2.1, 2.2, 3.0, 3.1, .NET 5 To cover an increasing number of technologies continually being added to the .NET world, we have decided to drop support for the outdated .NET Standard 2.0 - 3.1 and .NET 5 compatibility layers in our libraries. The minimum supported version is now .NET 6, and the minimum supported framework is .NET Framework 4.6.2. Read more about the changes in the news. Full list of changes [Engine] + added OnCreatePage event for the ReportPage object; * now, when converting RTF, insignificant spaces after tabs are discarded; - added exception handling if the contents of the RichObject are incorrect; - removed top and bottom padding when splitting TextObject between pages; - fixed vertical indents in RichObject; - fixed the display of a row following a row with a column union; - fixed an exception when preparing a report with a TableObject containing MSChartObject; - fixed loss of spaces in the RTF parser; - fixed display of the bottom border line when using GrowToBottom; - fixed support for the Portuguese language in the RTF parser; - fixed a bug when the Report.IsPrepared parameter returned an incorrect value when preparing a report asynchronously; - fixed translation of RichObject to TableObject; - fixed error when printing with different pages selected; - fixed IndexOutOfRangeException when executing Graphics.Path.AddBeziers; - fixed vulnerability with the ability to call JS code from a hyperlink; - fixed default tab setting when converting RTF; [Designer] + added interaction with FastReport Cloud in the Community edition; + added the Contains (string , string) function, which determines whether a string contains a substring; * changed the text of the warning message about duplicate parameter names in the query wizard; *replaced the error with a warning form about parameters with the same names in the SQL query; *changes in SwissQR: the processing of the "Amount" field has been changed; the "Currency" field is now a text field; added processing of data from the database in the fields of information about the Recipient, Payer and in the "Link" field; - fixed Datamatrix brush color; - fixed errors in the PictureObject editor; - fixed a bug in the format editor; - fixed a bug when resizing the dialog form; - fixed the drawing of a rotated ITF14 barcode; - fixed a bug with the operation of the "select all" keyboard shortcut; -fixed a bug in resetting the format when changing an expression; - fixed errors with the separation of source data into lines, both separator options (\r\n and \n) are now supported; - now during the QR code generation process, extra \r\n characters at the end of the line are removed; - fixed NullRreferenceException when editing the SelectCommand of the data source table; - fixed text scrolling in AdvMatrix; - fixed context menu of the RFIDLabel object; - fixed the band title in the classic band display mode; - fixed a problem when using the hh:mm time format; - fixed a bug leading to System.NullReferenceException when connecting to JSON; - fixed a bug when resizing objects while holding down the Shift key; - fixed an exception that occurred when using DontEditCode; - fixed incorrect behavior of lines when changing the Height property for a horizontal line or the Width property for a vertical line if the Diagonal property is set to False; [Preview] - fixed a bug with the search dialog in the preview; - fixed rendering of report objects outside the page; - fixed incorrect display of superscript or subscript text for RichObject if such text is at the beginning of the line; - fixed display of vertical paddings in preview when using the LineHeight property; [Exports] + added the option "Use Headers and Footers of Word Pages" when exporting Word; + increased speed of export to docx; + added the "Keep Line Height" option to export to Word 2007; + added export of hyperlinks and bookmarks to SVG; - fixed error in exporting a rotated svg image to pdf; - fixed a bug when images with a transparent background were incorrectly exported to PDF of the PdfA_1a standard in FastReport.Skia; - fixed font reset in an empty cell after exporting a report to Word; - fixed a bug with incorrect export to a JSON file; - fixed a problem with exporting to Word 2007 when using a watermark and the "Page Title" band with a system variable; - fixed a bug in svg export (hangs if text contains incorrect cr/lf sequences); - fixed incorrect calculation of row height in a table when exporting to Excel; - fixed error in exporting vector graphics to PDF; - fixed error in SVG export (table with merged cells); - fixed opening of exported reports in Word 2007; - fixed incorrect black background when exporting RichObject with image to layered HTML-export; - fixed the value of the paddingNonSeparatePages variable in ImageExport (OpenSource) to eliminate unnecessary padding; [WebReport] + added support for the Webcil format in FastReport.Blazor.Wasm; + added dialog form title to WebReport; + added a detailed description of the report compilation error in the WebReport preview; * the logic of standard images in WebReport has been reworked. Now images are loaded directly into the report, rather than being loaded by a large number of requests from the server; - fixed a problem with editing tables in a document when exporting a report to Word 2007 via WebReport; [Extras] + added support of FastReport.Plugins.HtmlObject for FastReport.Core.Skia + added support for views and functions in the PostgreSQL connector (Extras/Core/FastReport.Data/FastReport.Data.Postgres); + added a new filter for selecting file extensions when connecting to SQLite, combining .db and .db3, with the first filter selected by default; - fixed import of plugins for FastReport .NET with TargetFramework net6.0 and higher; - fixed the issue of object alignment in a report that contains an HTMLObject plugin; [Mono] * changed the tooltip text in RichObject in Mono; - fixed maximum text length on code pages in the designer. ### Updating .NET products to version 2025.1 URL: https://www.fast-report.com/pt/news/fastreport-net-2025.1 Summary: In this release, we have focused on implementing long-awaited features that greatly simplify the process of developing templates for reports. In this release, we have focused on implementing long-awaited features that greatly simplify the process of developing templates for reports. In this release, we have focused on implementing long-awaited features that greatly simplify the process of developing templates for reports. Now you can add a report page with a link, asynchronous report preparation with undo support, text rotation with TextRenderType.HtmlParagraph, text search in code editors, export to images for WebReport and much more. New Opportunities Adding a report page with a link In previous releases it was possible to add a page of another report to a report. This option can be found in the  "File->Open Page..".  By default, a copy of the page is added to the report. You can now enable the "Add as link" option, which will add a link to the page to the report rather than a copy of the page. This means that when you change a page in the original report, the changes will be reflected in all reports to which the page is added as a link. And vice versa, if a page is changed in one of the reports that has a link to it, it will be changed in the original report as well. Asynchronous report preparation Added the report.PrepareAsync() method, enabling asynchronous report preparation in addition to the existing synchronous report.Prepare() method. This method also supports CancellationToken , allowing users to cancel the report preparation process if needed, improving control and performance for large reports in non-blocking environments. This functionality may be further enhanced in the future, with new methods providing additional asynchronous access. IfNull function ``` object IfNull(object expression, object defaultValue) ``` There is a new function allows to avoid  System.NullReferenceException when evaluating expressions. The function has two parameters: the first is the expression to be evaluated, the second is the default value. If the expression can be evaluated, the function returns its result. If not, it returns the default value. Rotate text with TextRenderType.HtmlParagraph Added support for rotating text with TextRenderType.HtmlParagraph. Previously, text rotation was only available with other text renderer types. You can see examples of text rotation below. In addition, such texts are now correctly exported to PDF. Text search in FastReport WPF and FastReport Mono code editors Now you can search for text not only in FastReport .NET code editor, but also in FastReport WPF and FastReport Mono editors. An example of searching for text in FastReport WPF code: And in the FastReport Mono code editor: Changes in WebReport Localization support for Blazor WASM WebReport Introduced localization support for the WebReport interface in FastReport Blazor WebAssembly. Previously, localization was managed through file-based methods, which were incompatible with the WASM environment. A new method, webReport.SetLocalization(Stream) allows loading localization from a Stream, making it compatible with Blazor WASM applications. Image Export to WebReport Added export of the report to images. To display it in the list of exports, add the following code: ``` WebReport.Toolbar.Exports.ShowImageExport = true; ``` If necessary, you must enable the WebReport option to configure the export to images  WebReport.Toolbar.Exports.EnableSettings . After enabling it, you can click on the "gear" and change the settings in the modal window that appears. Full list of changes [Engine] + added PicturesInParagraph property to RichObject; + added method for asynchronous report preparation PrepareAsync(); + added converting of strings to dbtype compatible; + added print scale; + added decimal conversion to words in ToWords functions; + added locale identifier for Spanish is 22538 (Spanish - Latin America) and 3082 (Spanish - Spain (Modern Sort)); + a new IfNull function has been added for working with expressions. It returns the result of the calculated expression if it is not null, otherwise the specified default value; + implemented calculation of horizontal position of pictures in RichObject; + added the ability to send a request in the virtual-host-style; + added support for text rotation with TextRenderType = HtmlParagraph; + added the ability to use header bands for the "PrintOn" property of the Totals; * upgraded Oracle.ManagedDataAccess.Core in FastReport.Data.OracleODPCore; * methods GetConnection, OpenConnection and Dispose marked as virtual; * added null check for incoming value for Hyperlink.Value property; * static verification methods TryParse has been introduced into classes of QRCodes; - fixed text break issues; - fixed page visibility change after PageStart event; - fixed conversion to parameter type; - fixed checking of the report script for stop-words if it contained in the variable name; - fixed visibility of the bottom border of a text object with enabled GrowToBottom; - fixed border doubling when the grouped DataBand has the GrowToBottom option; - removed rendering of child clipPath tags in SVGPictureObject; - fixed a bug in FinishReport event; - removed invalid ability to add SubreportObject to ContainerObject; - fixed changing the CommandType of the request if it was set in GetAdapter; [Designer] + added ability to open page as link from another report; + added italic, bold, underline and strikethrough font styles to the span tag; + added a search in the TreeView by the character entered from the keyboard; + add a search function in the code editors in WPF and Mono; * added a check for duplicates of downloaded fonts; * replaced default property values in the constructors of CurrencyFormat, NumberFormat, and PercentFormat classes from fixed values to values from CultureInfo.CurrentCulture; - fixed incorrect position of Amiri, Cambria Math, DejaVu Math TeX Gyre fonts in the font selection drop-down list; - fixed a bug leading to System.NullReferenceException when saving borders via Border Editor; - fixed incorrect display of SVG-images in the designer; - fixed the display of variables declared in one line on the Code tab in the tooltips; - fixed page margins length in "ExtraDesignWidth" mode; - fixed the length of the Guides in the designer for long reports; - fixed a bug where the selected font was not displayed in the drop-down list; - fixed incorrect application of data formats; - fixed an error leading to System.NullReferenceException when deleting a band with a Subreport object; [Preview] + added properties Outline.Expand and Outline.Width in PreviewControl; - fixed index out of range when previewing empty SvgObject; - fixed closing of PreviewSearchForm after clicking the "Next" button; [Exports] + added the ability to combine all report pages into one when exporting to Excel; + added an option to use a custom format instead of general in Excel-export; + added strikethrough text formatting to Word-export; + added the MemoryOptimized option for Word-export, which enables the use of FileStream instead of MemoryStream; + added support for rotating text with TextRenderType = HtmlParagraph when exporting to PDF; * format display adjustments - format 'D' and 'MMMM yyyy' are displayed as dates (format 'MM yyyy' if possible), numeric format with negative pattern '-n' is displayed in standard Excel numeric format; * changed the export of the PictureObject border as an image in Word; * optimized memory consumption when exporting to PDF; * changed layout of table export to fixed; - fixed the issue with HTML tags rendering in HTML export; - fixed the export of negative PDF property values; - fixed the color of cell borders in the browser after exporting to Excel; - fixed border style of cell in Word and PowerPoint; - fixed export of pictures in header and footer to Word; - fixed bug with deleting temporary file; - fixed calculation of line-height when exporting to HTML; - fixed incorrect export of borders with double line style to PDF; - fixed a bug with transparency in HTML-Export; - fixed an issue where the <p> tag was incorrectly displayed during HTML-export; - fixed default value of "UseHeaderAndFooter" option in Word export; - fixed incorrect location of images in tabular export to Word; - fixed the row height of objects sets after TableObject when exporting to Excel; - fixed NullReferenceException when exporting font to PDF with alternative lookup of substitution; [WebReport] + added the ability to display the report name instead of parameters in the tab; + added  SetLocalization method for loading WebReport localization from a Stream; + added ability to export report to image format in WebReport; - fixed inheritance of "box-sizing" from custom application styles in WebReport; - fixed IndexOutOfRange exception when previewing a WebReport; - fixed a bug that caused the WebReport.Debug property to not display error information in the report when enabled; - fixed a bug where a NullReferenceException exception could occur when clicking a tab in WebReport; - fixed reset AdditionalFilter in WebReport; - fixed WebReport printing with pages in landscape orientation; [Online Designer] + added a method for updating the table; - fixed previewing of empty SVG object in Online Designer; [.NET Core] + added methods for MS SQL stored procedures in FastReport Core; [Common] + added a new method for setting an parameter expression via code; + added a timestamp when signing installs; [Extras] + added ability of connection to stored procedures in Oracle; * updated the Firebird.Client version to 10.0.0; * updated vulnerable packages Npgsql(Postgres) and System.Data.SqlClient; * changed the text of the error message when pressing the "Advanced" button in the connection to Linter; - fixed a bug with missing menu in the designer of forms for the Report object; - fixed a bug with "character varying" type of Postgres; [Demos] - fixed demo-report Barcode.frx. ### Updating .NET products to version 2025.2 URL: https://www.fast-report.com/pt/news/release-fastreport-net-2025.2 Summary: In version 2025.2 appeared: .NET 9, the FastScript library.NET, an import plugin from Word, a connector to Apache Ignite, improvements to the designer and exports, new features in WebReport. In version 2025.2 appeared: .NET 9, the FastScript library.NET, an import plugin from Word, a connector to Apache Ignite, improvements to the designer and exports, new features in WebReport. Meet the new release 2025.2  for supply options FastReport .NET : WinForms , WPF , Avalonia , Mono , WEB , Ultimate . Support is waiting for you in this update .NET 9, a library for executing scripts in C#, a plugin for importing documents from Word, a connector to Apache Ignite, improvements to the designer and exports, as well as new features in WebReport. Don't miss the opportunity to update FastReport .NET and expand your capabilities! Import of Word documents The  FastReport .NET Ultimate component set now includes a plug-in that allows you to import Microsoft Word (.docx) documents. When you open such a file, it is converted into a FastReport .NET report template (.frx). Due to the large differences in formats, it is not always possible to completely match two documents. However, this plugin allows you to significantly reduce the time required to create a template based on an existing docx file. At the moment our plugin does not support: background highlighting of part of a line, Shapes, as well as nested vector graphics Vector Markup Language (VML) and OLE objects. You can read about the peculiarities of import and how to connect the plugin in the article. Read the article .NET 9 Support This platform improves application performance and adds many new features for your projects. There is more support in this update  .NET 9 for: FastReport .NET, FastReport.Core, FastReport.Core.Skia, FastReport.WPF, FastReport.Avalonia, FastReport.Web, FastReport.Web.Skia, FastReport.Blazor.Wasm. We have done away with binary serialization. BinaryFormatter caused a number of security issues and Microsoft in .NET 9 dropped its use. Our team has also removed the BinaryFormatter class from the source code. You can read more about it at this link. Learn more Report Designer Improvements Also in this version, several useful features have been introduced to simplify work with reports. In the Object Inspector, you can now quickly copy data from the list of object properties using the  Ctrl + C  hotkeys. This will help you easily transfer object properties between different parts of the document or even between different reports. In addition, it is now possible to copy totals and parameters while preserving the nesting hierarchy. This means that when copying complex data structures, their original organization will be preserved, avoiding  Connection to Apache Ignite With this update, a new plugin has been added that greatly simplifies the process of working with Apache Ignite databases when creating reports. This plugin allows you to directly connect reports to the specified databases, providing convenient access to the necessary data for analysis and visualization.  The Apache Ignite connector is implemented based on the .NET Thin Client Ignite.NET. It provides the ability to connect to Apache Ignite clusters, work with caches (including SQL tables) and process various types of data. In addition, the connector supports connecting to one or more Apache Ignite nodes. Node addresses are specified in  host:port format and separated by commas. Connection is possible with or without authentication (if authenticationEnabled is used in the configuration). The connector supports working with caches created as key-value and SQL tables. For caches with QueryEntity metadata, operations of getting the list of fields and their data types are supported. Read more in the article. Read the article Improvements of the preview window In OutlineControl we have added handy buttons with icons for minimizing and maximizing. These buttons were there before, but without icons. In addition, properties have been added that allow you to change the width and height of the scrollbars in the preview window. Export Improvements Added export of number, currency, date, time and percent formats to OpenOffice Calc (.ods).  This update also introduces a new paragraph export mode for OpenOffice Writer (.odt) format files. This makes it easier to edit generated documents and makes them more visually understandable to humans. The new export mode does not replace but complements the existing mode and extends its capabilities.   In addition, an “Autosize width” option for MS Excel export has been added. Will only work with certain values of text object properties: AutoWidth and AutoShrink properties are enabled; HorzAling property value is any except Justify. Changes in WebReport Search across the entire report Added text search for the entire report, similar to the desktop version of the Viewer, if a word is found on another page, the viewer will automatically switch to it. Search is available in WebReport with FastReport.Core, in WebReport for Blazor Server and WebReport for Blazor Wasm. You can control the display of the search button by using the property:  ``` WebReport.Toolbar.ShowSearchButton = false; ``` The highlighting color of the words found can be changed using the property: WebReport.Toolbar.SearchHighlight = Color.Red; Improvements in caching configuration for WebReport With the release of the new version, WebReport now has additional options for caching configuration. First, you can now set individual caching parameters for each specific instance of WebReport. Previously, only general settings applied to all reports were available, which could be inconvenient, especially if you needed to keep certain reports in memory longer. With the webReport.CacheOptions property, you can customize the cache retention time for a specific report. Secondly, there is more flexibility in setting the report cache retention time thanks to the  AbsoluteExpirationDuration and AbsoluteExpiration  options. Previously, only the CacheDuration  option was used, which was based on a sliding principle: if the report was used for a given amount of time, the timer would reset and the report would remain in memory. This could result in a report never being removed from the cache. The new parameters allow you to specify the exact time when a report should be permanently deleted from the cache, regardless of its usage. In this case, CacheDuration and the new parameters AbsoluteExpiration and AbsoluteExpirationDuration can be used together. ``` // Global settings for all WebReports services.AddFastReport(options => { options.CacheOptions.CacheDuration = TimeSpan.FromMinutes(10); options.CacheOptions.AbsoluteExpirationDuration = TimeSpan.FromMinutes(20); });   // Individual WebReport settings, which take precedence webReport.CacheOptions = new WebReportCacheOptions() { CacheDuration = // ..., AbsoluteExpiration = DateTime.Now.AddMinutes(30), // or AbsoluteExpirationDuration = // ... }; ``` Updated demo web application on ASP .NET Core We have updated our demo application to ASP.NET Core, so that the product pleases you not only with its functionality, but also with its appearance. The updated application is available at the link. Online demo Updated Online Designer Demo In addition, we have updated the  Online Designer  demo application, where you can view more examples of our reports, export them, and try the updated online designer on them. The updated application is available at the link. Try the demo Support of FastScript .NET Added ability to use FastScript .NET to run report scripts. FastScript .NET is a library for running C# scripts. It does not depend on CodeDOM/Roslyn and can be used in environments where code generation is restrictedя (Native AOT, iOS, WASM).  FastScript .NET is included in the following supply options FastReport .NET : WinForms , WPF , Avalonia , Mono , WEB , Ultimate . To use FastScript .NET in the FastReport .NET: in your application, add the  FastReport.Plugins.FastScript  nuget package; run the following code before the first use of the  Report  class: ``` FastReport.Code.CodeProvider.DefaultProvider = typeof(FastReport.Code.FastScript.FastScriptCodeProvider); ``` Now, all the reports will utilise FastScript .NET to calculate expressions and run the report script. FastScript .NET does not support VB.NET script language. The dynamic type is not supported too, some of "Advanced Matrix" functions will not work. Detailed documentation on how to work with FastScript .NET is available at this link. Online documentation Full list of changes [Engine] + added new scripting engine - FastScript .NET; + added support for vertical tabulation; + added import of DOCX files to FRX report template; + added support of encoding for Chinese (simplified) language when converting RTF; + added the ability to disable integration with FastReport Cloud ; + added GS1 Datamatrix barcode; + added the conversion of SkBitmap to a Bitmap and Image in FastReport.SkiaDrawing; - fixed error with RichObject (zh-tw codepage); - fixed a bug with simultaneous compilation of a report script when preparing reports in multiple threads; - fixed a bug when printing an empty matrix; - fixed bug when passing null value to a MS SQL query parameter; - fixed errors when compiling libraries under .NET 9; - fixed a bug leading to infinite loop when child band of "Page Header" or "Column Header" has "StartNewPage" property turned on; - fixed a bug leading to System.ArgumentException when connecting to MySQL; - fixed calculation of PrintableExpression of page; - fixed a bug leading to System.NullReferenceException in the Report.GetParameterValue method; [Designer] + added a possibility to copy data from the list of properties of an object using the keyboard shortcut Ctrl + C; + added the ability to copy totals and parameters, preserving their hierarchy; * in the window for opening the report page, it is still possible to select only a *.frx file; * in the Mono designer settings, the tab "Code page" with inaccessible settings was hidden; * changed the logic of style processing for .rtf files when opened in the designer; - fixed a bug where the image of PictureObject disappeared after canceling changes in the designer when editing a prepared page; - fixed a bug with the search filter in the data tree that reset the current search state; - removed the "New Dialog" context menu item in the Community version, which when selected resulted in an unhandled exception; - fixed a bug when running preview from a designer; - fixed System.InvalidOperationException when deleting a data source column when that column no longer exists in the database; - fixed reading the GS1 DataMatrix barcode as a DataMatrix; - fixed a bug with selecting layout of band columns in "Data Band Column Editor" window; - fixed deleting objects and categories from the sidebar in the designer; - fixed a bug with displaying icons that appeared in version AvaloniaUI 11.1; - fixed deleting objects and categories from the sidebar in the designer; - fixed a bug when adding IsNull function via "Text editor" added an extra comma; [Preview] + added a button to send a report by email when using MAPI in a preview in WPF; + added collapse and expand buttons with icons in OutlineControl; + added the ability to change the width and height of the scroll bar through the code; - fixed disabling the button to save the prepared report in the preview; - fixed disabling the "Storage" tab in the report saving menu in the preview; - fixed bug with "Advanced Matrix" when filters are missing; - fixed a bug where the print form did not appear in the preview when pressing Ctrl + P; - fixed a bug with incorrect paper size for printers without "Auto paper size" option, when clicking "Settings" and then "Advanced" buttons in "Print" window; [Exports] + added export of "Author" property in export to PDF/A; + added support for HTML non-breaking space tag when exporting to Excel; + added export of number, currency, date, time, and percentage formats to OpenOffice Calc (.ods); + added "Shrink to fit" option for export to MS Excel; + added paragraph export mode in OpenOffice Writer export (.odt files) * now, when exporting Pages with ExportAlias property to Excel, suffix "-n" will not be added to sheet name if it's possible; - fixed a bug where the font name was exported without quotes to HTML; - fixed a bug in FR.Core with some user fonts; - fixed a bug in HTML-export when the barcode border was not displayed; - fixed the error of opening files when exporting a report with special characters to ODT and ODS formats; - fixed incorrect display and export of some unicode symbols in Skia/Avalonia; - fixed export of TableObject fills to PDF; - fixed export of TableObject and page fills to HTML; - added export of height for the merged cells in Excel export; [WebReport] + added WebReport search; + added WebReport WASM search; + added .NET 9 support for FastReport.Blazor.Wasm; + added the ability to create a connection to a stored procedures in WebReport; + added the ability to configure caching for a single WebReport using the WebReport.CacheOptions property; - fixed an issue that made it impossible to change the DataConnection after it was created in OnlineDesigner; - fixed converting of TextObject to SVG when preview in Blazor; - fixed support for the Size of the CommandParameter; - fixed rendering of page toggle buttons in Blazor when they are disabled; - fixed a bug when the value of the RouteBasePath parameter was not taken into account when setting up WebReport; [.NET Core] + added a filter for connection tables; + added a JsonConnectionType class for use in the JsonDataConnection.GetConnectionType method and GetConnectionType() and GetParameterType() methods; - fixed a bug with encoding when connecting of CSV data file for report in .NET Core; [Common] * changed width of "About..." window; [Extras] + added connection to Apache Ignite; [Demos] + added UsedPackages.version file for WPF packs; - fixed Avalonia and WPF name in demo. ### Updating .NET-based products to 2023.3 version URL: https://www.fast-report.com/pt/news/fastreport-net-2023.3 Summary: 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 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 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 . New features New RFIDLabel object 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. Read more in the article . Support for WebP images 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. Preview in the designer window and asynchronous report viewing 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 toolbar in the context menu 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: Export to S3 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. Read more in the article. Ability to customize barcode font settings 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. "Convert general format to text" option when exporting to Excel 2007 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. Support for partial report compilation 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. New WebReport features Improvements in WASM 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. Toolbar personalization 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 { 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: Full changelog [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 , and 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. ### Updating Delphi and Lazarus products to 2023.3 version URL: https://www.fast-report.com/pt/news/fastreport-vcl-2023.3 Summary: With version 2023.3, NextCloud transport was added, the report engine was changed, and support for new types of electronic signatures appeared. With version 2023.3, NextCloud transport was added, the report engine was changed, and support for new types of electronic signatures appeared. We are pleased to announce the release of a new version of Delphi and Lazarus products. In this update, we paid special attention to ergonomic design and component performance. With 2023.3 version, we have added a new NextCloud transport, changed the operation of the report engine, added support for new electronic signatures, and much more. Changes (different for each product) are available for the following products: FastReport VCL , FastScript , FastConverter .FP3 , FastQueryBuilder , FastReport FMX , FastReport Viewer , FastCube VCL , FastCube FMX . New demo reporting center For convenience, we have combined all demos into a single demo center. It is available with the new FastReport product installer. Changed the operating mode of the report engine The new mode allows you to automatically select the font size to match the size of the “Text” object and its content (ContentScaleOptions property). Selecting the size to match the static dimensions of the object allows you to reduce the text if there are physical limitations when printing. You can find an example of use in the article at the following link . Dynamic font sizing allows you to control the font scale that is applied to dynamically resizing or stretching objects. The report engine reduces the contents of such objects to fit the band on the current page. New resource localization editor With this update, you can edit language resources to suit your needs directly from the IDE. Thanks to the new editor, this has become as fast, simple, and convenient as possible. Full language switching at run-time. Now all language resources are updated immediately without the need to restart the report designer. Added new NextCloud transport  You can save and load reports from your corporate storage directly from the designer, as well as from code. Read in the article how to set up a connection. New types of electronic signatures When exporting to PDF format or working with random files, you can sign documents using the following electronic signatures: CADES_T and CADES_X_LONG_TYPE_1. We have also added partial font embedding in PDF export. It allows you to reduce the size of the PDF export. FastCube for Lazarus has added support for integration with the Chart component for the FastReport integration package. Full list of 2023.3 changes --------------- [Designer] - Fixed drop-down InPlace editor in the DPIAware application. [Engine] + Added the ability to automatically select the font size to match the size of the “Text” object and its content (ContentScaleOptions property); + Added language resource editor; + Added frThreadSynchronizeProc variable to override the default synchronization procedure in FastReport; + Added implementation for UP/DOWN/MOVE mouse events for report script objects; + Added support for signatures CADES_T and CADES_X_LONG_TYPE_1; + Added TfrxHtmlView.LoadFromString method to RTTI. + Added compatibility of old behavior in TfrWideStrins; + Added correction of the height of the last line of text to the tmDescent value (required for some fonts); * Improved language switching in the report designer; * Changed the TfsScript.OnSetVarValue event; * Changed the order of finalizing datasets; - Fixed work of TfrLocalizationController in FastReport FMX; - Fixed printer font scaling in FastReport FMX for RAD 11.3; - Fixed a bug where the frxIBO package did not compile in some IDEs; - Fixed a bug when the dclfqbFIB package was not compiled; - Fixed the name of the groups in the component palette; - Fixed a problem with data when editing a chart in a report for integration with FastCube; - Fixed behavior of HideIfSingleDataRecord with delayed expressions; - Fixed chart rendering in Lazarus; - Fixed TfsCustomHelper in debug mode; - Fixed out-of-range issue in FastCube; - Fixed a bug with case-insensitive keys in resources; - Fixed post-processing of expressions for paReportFinished/paGroupFinished when the ReportSummary/GroupFooter band is visible or invisible; - Fixed Job method TfrLocalizationController.ShowLocalizationEditor; - Fixed a problem with a blank page when duplex printing is forced in the printer settings, and single-sided printing is set for the report page; - Fixed inability to compile the project for FMX versions below Tokyo; - Fixed FastCube compilation for C++ Builder FMX; - Fixed behavior of the TfrxHTMLView.DefBackground method when the value is clNone; - Fixed a bug in FastScript when adding nested components via AddComponent; - Fixed an error in determining the SVG format with a BOM header; - Fixed several GDI descriptor leaks; - Fixed TeeChart package names in FastCube package templates; - Fixed inheritance of styles in the report template. [Exports] + Added the ability to partially embed fonts; + Added LineSpacing support for PPTX export; - Fixed PDF export with CJK fonts; - Fixed a bug with multi-page HTML export when the image cache was cleared for each page; - Fixed work of PDF form fields with owner password; - Fixed substitution of font names; - Fixed application closing with PDF export; - Fixed export of time format in XLSX export; - Fixed SMTP in TfrxMailExport. [Lazarus] + Added a new integration package with LazChart; - Fixed PDF export dialog for Lazarus; - Fixed visual errors in the report designer for Lazarus; - Fixed the designer reopening with TfrxLazSqliteQuery; - Fixed Unicode output from the database for Lazarus; - Fixed barcodes in Linux. [Other] + Added support for FibPlus, IB Objects, and BDE in the installer; - Fixed description of the FastCube FPC package; - Fixed a bug with using an OLE object in FastScript code; - Fixed FastCube FMX packages; - Fixed chart templates for FastReport Demo for compatibility with TeeChart 2023.38. [Preview] + Added TfrxPreviewTabs.CurrentTab property; - Fixed the HighlightRuleEditor form in FastCube; - Added the “Search” item to the preview context menu. [Report object] + Added TTeeFont and TteeShadow classes to RTTI for diagrams; * Changed the DefaultDatabase class from TFDConnection to TFDCustomconnection; - Fixed rotation of 2D barcodes; - Fixed list of modules in FireDAC; [Resources] * Updated Serbian resources; * Updated Arabic resources; * Updated Bulgarian resources; - Fixed string resource numbers. [Transport] + Added NextCloud transport. ### Updating Delphi and Lazarus products to 2024.2 version URL: https://www.fast-report.com/pt/news/fastreport-vcl-2024.2 Summary: This update to 2024.2 version includes improvements and fixes for our entire line of Delphi and Lazarus products. This update to 2024.2 version includes improvements and fixes for our entire line of Delphi and Lazarus products. This update includes improvements and fixes for our entire line of Delphi and Lazarus products. One of the main features of this update is the new package with visual components TfrTreeView. The new TfrTreeView allows you to quickly create your custom equivalents of TreeView, expanding the functionality of your application. Compared to the standard TreeView, our component has fast and convenient navigation, collapsing and expanding the tree of thousands of elements. This enhances the responsiveness of your application's interface for end users. And, of course, TfrTreeView is supported in both VCL and Lazarus! FastReport VCL You can experience the responsiveness of the interface in the FastReport VCL report designer when working with a large amount of data or objects, thanks to the use of the new TfrTreeView component. Support for GeoJSON and TopoJSON formats has been added to the map object. Use maps in whichever format is most convenient for you. Improved handling of digital signatures in PDF and other files. Our product allows for maximum flexibility in configuring digital signatures. You have access to the following settings: Signing method: FastReport, CryptoAPI, CryptoPRO Signature type: CAdES-BES, СAdES-T, CAdES-X Type 1. Time Stamping Authority servers. Certificate stores. Signature hash: md5, sha1, sha256. A mode of infinite width has been added for the dynamic table object. The size of the table grows depending on the data being output. In the preview window, you can see a page that fits all the table columns. Meanwhile, in normal mode, columns that do not fit on the sheet will be moved to the next page. Reports with detailed pages retain the states of the transmitted variables for each tab, allowing for individual reconstruction of each tab when updating parameters. A new property for linear barcodes, DigitsAutoFillMode, has been added. dafmLeftOnly fills missing barcode digits with zeros from the left side. dafmRightChecksum always adds a zero checksum when there is a shortage of digits required by the barcode standard. In this update, we have enhanced and addressed numerous issues with the HTML5, SVG, PDF, XLSX, and DOCX export filters. HTML5, SVG, and PDF exports are now closer to full WYSIWYG. The quality of DOCX and XLSX exports has been improved for table exports. An alternative path on Linux has seen overall improvements in operation under WINE on Linux. FastQueryBuilder Lazarus support has been added to FastQueryBuilder—now you can connect and use it in your Lazarus projects. FastCube The errors found were fixed and integration with the common code base was improved. FastReport FMX Added two new export DOCX and XLSX filters—export reports to the format you need. Starting with release, we will no longer support development environments released before Embarcadero RAD Studio 10.4 for the FireMonkey platform.  2024.2.0 version --------------- [Designer] + fixed SQL editor; - fixed autocompletion in memo syntax; - fixed a bug when Unicode characters could disappear when saving script code in .pas file from the report designer; - fixed TfrxRichView editor for 64 bits; - fixed scrollbars for TfrxSimpleSyntaxMemo; - fixed display of tooltips on the frxEditFieldDefs form; [Engine] + added support for infinite width for dynamic tables; + added support for GeoJSON / TopoJSON to the map object; + added new control TfrTreeView; + fixed a bug of compatibility with old aliases; + detailed reports save the states of the passed variables for each tab when using the DetailPage hyperlink; * added the ability to change the signature hash algorithm; * improved signatures for pdf and other files, improved consistency of signatures; - fixed an error in the position of the data set in the TfrxCustomLayer of the map object; - fixed update of field definitions after SQL changes; - fixed bugs when working with WINE; - fixed TfrxCustomQuery.SQLChangeHandler when destroying a complex report; - fixed a bug that could lead to a crash when exporting to BIFF8 (RS12, 64-bit); - fixed AV in FastCube when dragging a field from the filter zone to the Y axis and back; - improved synchronization with the old list of aliases and the new collection of field definitions; - fixed inherited parameters in the request; - removed duplicate Left / Top properties in serialization for components that are not internal DB components; - fixed type conversion for a field collection property in an inherited report; - fixed a bug in FastCube FMX when right-clicking on the drop-down list of measurements; - fixed a bug when using a dynamic table with manual construction on a page with several columns; - fixed behavior of alClient for diagonal TfrxLineView; [Exports] - fixed a bug when exporting in RTF format when the left position is reset to the coordinate of the left page margin; - fixed interactive Combobox in preview and pdf export; - fixed incorrect position of images when exporting xlsx; - fixed system colors in the xlsx export filter; - fixed scaling factor for images and text when exporting to docx; - fixed a bug that could lead to a crash in XLSX export; - fixed errors in HTMLDiv and SVG exports; - fixed array unlocking in XLS OLE export; - fixed pdf export errors; - fixed memo export with APAC fonts to SVG and HTML5 - fixed PDF/A export and vector export with PS_USERSTYLE; - fixed memo export with HAlign = haRight; [Lazarus] + added support for Lazarus in FastQueryBuilder; + fixed a list of paper without printers in Linux Lazarus; - fixed errors in exporting some objects in PNG mode in Lazarus; [Other] + the SmartMemo object with basic syntax highlighting has been moved into a separate package; + added RTL support to SmartMemo; - fixed certificate dialog; - fixed caret for SmartMemo in Lazarus GTK2; [Report object] + added a new linear barcode property DigitsAutoFillMode (dafmLeftOnly—fills missing barcode digits with zeros on the left side, dafmRightChecksum—always adds a zero checksum if there are not enough digits required by the barcode according to the standard); - fixed RTTI for TfrxHTMLView; - fixed incorrect clipping boundaries for the TfrxPDFView object in the preview; - fixed FireDAC DriverID; [Resources] * updated Portuguese resources. ### Updating Delphi and Lazarus products to version 2024.1 URL: https://www.fast-report.com/pt/news/fastreport-vcl-2024.1 Summary: This update includes improvements and fixes for all Delphi and Lazarus products with Embarcadero RAD Studio 12 support. This update includes improvements and fixes for all Delphi and Lazarus products with Embarcadero RAD Studio 12 support. This update includes improvements and fixes across our entire line of Delphi and Lazarus products. All products have received updates and support from Embarcadero RAD Studio 12. Report designer improvements The new "Text" object editor features highlighting of expression elements and tags, allowing for quick identification of expressions within regular text. With interactive bracket highlighting, you will no longer forget to close the bracket of an expression. Furthermore, the editor allows for word wrap during text editing. Note! This functionality is available in the Enterprise version and higher. Expression highlighting is available not only in the editor but for "Text" objects when editing a report template. New data field editor Data presentation is important. The redesigned Data Field Editor allows you to fine-tune the field definitions in the report designer. In the editor, you can update, reset, add, delete, and customize field properties. Properties allow you to assign objects that the designer creates automatically when dragging fields from the data tree, simultaneously linking them to the fields. Configure the report designer for efficient data handling. The new mode for updating the list of fields in the designer allows you to disable the auto-updating of fields and active data connections. Customize field definitions and use them in the report designer without being tied to a heavy database. Please note the change in the serialization scheme of built-in data sources! The internal properties of such objects are now fully serialized to XML in the report template. Such properties may not be readable on older versions of FastReport after they are converted to a new version. FastQueryBuilder FastQueryBuilder integration has become optional and is enabled when the appropriate components and packages are added. Enabling or disabling FastQueryBuilder no longer requires package recompilation. Transports We have added a new transport to S3 (AWS)—save and download reports from your enterprise storage. Read this article to learn how to set up a connection. Starting with release 2024.1, we will no longer support development environments released before Embarcadero RAD Studio 10.4 for the FireMonkey platform. Supported environments for the VCL platform remain unchanged. See the full list of changes Version 2024.1 --------------- [Engine] + Added support for Embarcadero RAD Studio 12; + Added the ability to optionally use FastQueryBuilder in FastReport; - Fixed the behavior of the virtual data set; - Fixed a bug in FastCube with RAD Studio 12 under x64; - Fixed HIDPI problems in RAD Studio 10.4; - Fixed incorrect font scaling in barcodes at HiDPI; - Fixed incorrect sizes of export filter dialog forms when changing DPI; - Fixed an error after editing a measure in FastCube FMX; - Fixed changing the selected line when switching the filter in the Localization Editor; - Fixed a bug in FastCube when calling the editor script function when double-clicking on a calculation field; [Designer] + Added a new Memo object editor with syntax highlighting (starting from the Enterprise version); + Added highlighting of expressions and syntax in the Memo object in the report designer workspace; + Added a new field definition editor (replacing the old alias editor); + Added the ability to specify the type of drag object when dragging data from the data tree; + Added the ability to disable auto-updating of the list of fields in the report designer; - Fixed a bug with the “Gradient” object style property in the Object Inspector; [Export] *Сhanged the use of Indy TLS in the email export filter; - Fixed positions of ligatures in languages written from right to left in the PDF export filter; [Lazarus] - Fixed a bug in the frxSQLEditorForm form; - Fixed syntax note error in Lazarus; - Fixed FastCube cross-editor in FastReport integration components; [Other] - Fixed the error “module FMX.ConverterFR3toFRFMX.pas does not exist in LibRSXX\FMX”; - Fixed the error “frx package does not contain the frxFileSignature module”; [Report object] - Fixed IBO package for RAD Studio 12; [Transports] + Added S3 transport; + Added support for AWS in S3-Transport; - Fixed default file extension when saving to clouds from preview; - Fixed opening reports from cloud storage. ### Updating HTMLObject as a plugin for FastReport .NET URL: https://www.fast-report.com/pt/blogs/plugin-html-object-net Summary: Detailed instructions for using the new HTMLObject plugin, which uses splitting DOM HTML into FastReport report objects. Detailed instructions for using the new HTMLObject plugin, which uses splitting DOM HTML into FastReport report objects. Detailed instructions for using the new HTMLObject plugin, which uses splitting DOM HTML into FastReport report objects. Our company regularly receives requests for changes in products. This time, we have improved the display of content in a report, which is stored in HTML markup format due to certain circumstances. FastReport has a built-in object for visualizing content in HTML markup format—HTMLObject. It is still being improved, but it already solves many user problems. The previous implementation of HTMLObject could not be divided into FastReport report objects and was displayed only in HTML export. Therefore, we released a separate plugin for FastReport .NET Ultimate that uses the division of the HTML DOM into FastReport report objects. Each HTML markup object is translated into FastReport objects with a specified style, with the calculation of the required sizes, and with the possible page break. To use the plugin, you need to add the FastReport.Plugins.HtmlObject package to your project. Then register it using the following line of code: FastReport.Plugins.Html.HtmlObjectAssemblyInitializer.Init() After that, the necessary libraries will be automatically added to the project, based on the product used (FastReport .NET, FastReport.Core, FastReport.WPF, FastReport.Core.Skia). It's important to note that only a subset of HTML 4 tags and styles are supported. Scripts are not supported. Supported tags:
Category
Species Name
Length (cm)
Length In
  ``` Now to link our HTML code with data fields just use the object editor with expression editor and insert data expressions. The image data field will be automatically encoded to base64 with the correct mime-type of images stored in the database. FastReport VCL will do that automatically. The "HTMView" object supports grow to the bottom(stretch) relative to the content inside it just like the "RichText" object. And of course, "HTMLView" object supports data split when the report page doesn't have enough free space. A data stretch and data split can be activated like in other report objects of FastReport VCL. First, we need to set Stretched and AllowSplit properties of the band.  Then set  StretchMode property of the "HTMLView" object to smActualHeight in our case. That's all! Just run the report and check the result. As can be seen use HTML4.0 and CSS with links to the data is very easy in the new version of  FastReport VCL 2021.2 .  Tags: VCL, FastReport, Data Source, HTML ### Overview of Update 2026.2 for FastReport VCL URL: https://www.fast-report.com/tr/news/release-fastreport-vcl-2026.2 Summary: Version 2026.2 of the FastReport VCL introduces 10 new UI components for Delphi and Lazarus, an updated FastGrid with nested groupings, a report validation system. Version 2026.2 of the FastReport VCL introduces 10 new UI components for Delphi and Lazarus, an updated FastGrid with nested groupings, a report validation system. Version 2026.2 of the FastReport VCL introduces 10 new UI components for Delphi and Lazarus, an updated FastGrid with nested groupings, a report validation system, and a property for managing band column layout (TfrxDataBand.BandColumns.Layout). New features include a center-align mode for containers, the UseSizeConstraints property for tables, image post-processing effects, and the ability to preserve original image links during export. Improvements have also been made to FastReport FMX, FastCube, and FastQueryBuilder. New UI Components (Editors) for Delphi and Lazarus  The component base has been expanded with 10 new UI editors: TfrBarcode, TfrButtonEdit, TfrCalendar, TfrCheckBox, TfrComboBox, TfrCurrencyEdit, TfrEdit, TfrImage, TfrMaskEdit, TfrSpinEdit. The main difference between our UI components and the standard ones is their additional display and control settings. TfrBarcode — embed all available linear and 2D barcodes from the FastReport suite into your non-reporting application. TfrCalendar — use a calendar with an extended set of settings. TfrMaskEdit — add edit fields with complex masks to your application. TfrCurrencyEdit is a currency display editor that is essential for any modern business application. Try our editors in your application. FastGrid Has Received a Major Update The update introduces the ability to create nested groupings within the grid. You can now easily collapse and expand groups. Creating groups is now easier—just drag a field into the grouping area. Each field type has its own editor. FastGrid uses all available UI editors for editing fields. You can also quickly export data as reports in any format using FastReport. Check out the new UI component functionality in our demo app. New Features of FastReport VCL Report Validation System Before saving, check your reports for errors, following development guidelines. Implement a report validation system in your CI/CD. The new system allows you to validate reports both from the designer and from code. Its flexibility allows you to add your own validation rules—whether it's checking for correct object naming or ensuring compliance with corporate style guidelines in report templates. The validation system contains a set of validation rules: object intersections, conflicting properties, data sets, expressions, empty objects, and report scripts. You can prevent users from saving reports that fail validation. Read more about the report validation system in our article. New Property for Managing the Arrangement of Band Columns The report engine now allows you to control the layout of band columns using the TfrxDataBand.BandColumns.Layout property. This property allows you to select the column display order: first to the right, then down (AcrossThenDown) or first down, then to the right (DownThenAcross). In DownThenAcross mode, you can set the maximum number of rows in a column using the MaxRows property. The average value of the total number of records is used by default. New Alignment Mode In this 2026.2 update, we've added a container center alignment mode that uses not only the width but also the height of the baHVCenter. UseSizeConstraints: New Property for Tables UseSizeConstraints property has been added to table columns and rows. This property allows you to set maximum and minimum width and height dimensions not only when creating a report, but also when designing and resizing a table. This property is useful for creating fixed rows and columns when stretching a table to the full-page width (using FitPartsToPageWidth or Align). New Image Effects  The redesigned image output now includes a post-processing pipeline. This enabled adding new post-processing properties for the TfrxPictureView object: Transparency for setting a translucency mask; image rotation; and mirroring. Export Improvement: Retaining Original Image Links The latest version of our export tool adds a new feature to preserve the original image links specified in the DataLink.Link property. This functionality allows users to more flexibly manage the export process and ensures that all necessary data is preserved. This process is controlled by the dltOnExport flag for the LoadType property and the ExportDataLinksMode property for all export filters. Exports can now operate in three modes: edmNone (default)—exports only what is loaded into the image object. edmLoadToObject —when exporting to an object, data is loaded from a link and then exported. edmInternalExport —HTML exports use the original link specified in the DataLink.Link field. This feature greatly simplifies data export and allows you to preserve all important image links, which is especially useful when working with large amounts of data and complex projects. FastReport FMX, FastCube, and FastQueryBuilder Improvements FastReport FMX now allows you to print reports with the Skia Canvas function on Windows platform in RAD Studio 13. The TfcxSliceGridToolbar.AutoExpandPopups property has been added to FastCube for automatic group expansion. The CrossView and ChartView editors have been updated and improved for integration with FastReport. FastQueryBuilder now supports escaping of fields and tables for different SQL dialects. In addition to these changes, the products include many improvements and fixes. See the full list of changes. Version 2026.2.0 VCL.Core --------------- [Engine] - fixed CSS error handling in HTMLView [Graphic] - fixed EPNGOutMemory error when scrolling images - fixed output of transparent SVG in TfrxPictureView - fixed SVG transparency  - fixed AV occurring when a TfrxSVGGraphic object is destroyed - fixed TfrxPictureView error with SVG [Localization] * updated Portuguese resources * TfrLocalizationController.Language property was made case-independent Lazarus.Core --------------- [Engine] - fixed CSS error handling in HTMLView [Graphic] - fixed EPNGOutMemory error when scrolling images - fixed output of transparent SVG in TfrxPictureView - fixed SVG transparency  - fixed AV occurring when TfrxSVGGraphic object is destroyed. [Localization] * updated Portuguese resources * TfrLocalizationController.Language property was made case-independent VCL.Controls --------------- [Engine] + added CTRL+(Up/Down/PageUp/PageDown) handling to the Memo family [UI] * improved Gutter and Footer handling for the Memo family  - fixed AV when collapsing nodes after the tree is fully expanded - fixed incorrect rendering of HotTrek and Select when using themes in TfrTreeView - fixed a TfrTreeView bug where multiple selections were not cancelled by clicking on an unselected node. - fixed incorrect colors of tooltip text and node highlighting when using themes in TfrTreeView Lazarus.Controls --------------- [Engine] + added CTRL+(Up/Down/PageUp/PageDown) handling to the Memo family - fixed AV in the Linux console application [UI] * improved Gutter and Footer handling for the Memo family  - fixed AV when collapsing a node after the tree is fully expanded - fixed a TfrTreeView bug where multiple selections were not cancelled by clicking on an unselected node. VCL.FastScript --------------- [Engine] - fixed FastScript ClearLocalVars for an array of variants - fixed fvtInt 64 support [RTTI] + added WeekOf function to the script - fixed InRange function FMX.FastScript --------------- [Engine] - fixed FastScript ClearLocalVars for an array of variants [RTTI] + added WeekOf function to the script - fixed InRange function - fixed fvtInt 64 support Lazarus.FastScript --------------- [Engine] - fixed FastScript ClearLocalVars for an array of variants [RTTI] + added WeekOf function to the script -fixed InRange function  -fixed fvtInt 64 support VCL.FastCube --------------- [Engine] - fixed a bug when working with ftBCD fields [UI] + added icon for TfcxpMemoView + added AutoExpandPopups property to TfcxSliceGridToolbar, like in TfcxSliceGrid - fixed the non-working context menu item "Create a custom filter..." for measurements FMX.FastCube --------------- [Engine] - fixed icon rendering [UI] + added icon for TfcxpMemoView + added AutoExpandPopups property to TfcxSliceGridToolbar, like in TfcxSliceGrid - fixed the non-working context menu item "Create a custom filter..." for measurements - fixed CrossView editor - fixed ChartView editor  Lazarus.FastCube --------------- [Exports] - fixed style font sizes when exporting for Lazarus and HiDPI [UI] + added icon for TfcxpMemoView + added AutoExpandPopups property to TfcxSliceGridToolbar, like in TfcxSliceGrid - fixed the non-working context menu item "Create a custom filter..." for measurements VCL.FastQueryBuilder --------------- [Engine] + added support for SQL escaping for table and field names + added the TfqbFDEngine.TablePattern property Lazarus.FastQueryBuilder --------------- [Engine] + added support for SQL escaping for table and field names + added the TfqbFDEngine.TablePattern property VCL.FastReport --------------- [Client-server] - fixed a format detection error in Server Online-Designer API [Engine] + added a validator rule for checking script compilation + added object validation rules + added validation of report datasets + added new property TfrxDataBand.BandColumns.Layout to control the order of printing columns (AcrossThenDown or DownThenAcross) + added a new alignment type for objects—baHVCenter, which aligns the object by the width and height of the parent container. + added report validator + added image post-processing pipeline (mirroring and rotating images) * network printer settings use cached results to quickly load the report designer * accelerated rotations and reflections in PictureView  - fixed rendering of translucent watermarks with Rotation less than 0 - fixed the behavior of the transparency property for vector images - fixed the use of watermarks from the script - fixed a bug that caused the dynamic table to use previous values when working with repeating data bands - fixed decoding of Base 64 strings - fixed Richview break bug - fixed KeepTogether behavior when using the StartNewPage flag - fixed the behavior of the PrintOn property when the band moves to the next page - fixed a bug in GridTableBuilder when using default property editors [Report object] + added Transparency field to the TfrxPictureView object - fixed a bug in HTMLView that occurred when the table did not contain any columns - fixed a bug where 2D barcode presets were missing when exporting to PDF - fixed rotation of vector images at angles close to 45, 135, 225, 315 degrees - fixed support for the Win 64 platform [Preview] - fixed a bug where the preview would trigger mouse click events while scrolling the page using the Pan tool [Exports] + added internal DataLink processing for HTML exports + added read confirmation for mail export (Indy) - fixed PDF export dialog - fixed missing HTML tag styles in the DOCX export filter - fixed a bug when exporting an HTMLDiv embedded in another HTML page - fixed export to RTF of reports with pages of different orientations - fixed PDF export errors - fixed PDF export for 64-bit systems - fixed PDF structure with ZUGFERD - fixed export of Arabic to PDF - fixed issue with PNG/SVG transparency when exporting to PDF - fixed Embedded Subset in PDF - fixed export of spaces to PDF for lines with tab characters ($09) - fixed export of empty TfrxMemoView with AllowHTMLTags = True to DOCX - fixed errors in PDF/A and PDF with CMYK color space [Designer] + added intersection checking for bends + added saving of DataTree settings in object and expression editors + added DebugLn function to the report designer * improved search and highlighting of intersections * the default value for the TfrxDesigner.DefaultFont.Color field has been changed to clBlack - fixed the "Access Denied" error with the clipboard in the designer. - fixed usage of frxEditSQL.inc - fixed updating of internal parameters of data sets in edit mode - fixed a bug where the report designer inserted an incorrect mouse event for dialog controls - fixed adding icons for custom components - fixed opening of the run-time designer with a custom TfrxReport.IniFile - fixed highlighting of intersecting objects FMX.FastReport --------------- [Engine] + added the ability to print reports with the enabled Skia Canvas function on Windows platform in RAD Studio 13 [Designer] - fixed tooltips in the designer - fixed a memory leak in the designer if there was an image in the clipboard - fixed sorting of the designer elements panel [Exports] - fixed RTF export of reports with pages of different orientations - fixed incorrect size of 2D barcode during code export  Lazarus.FastReport --------------- [Client-server] - fixed a format detection error in Server Online-Designer API [Engine] + added a validator rule for checking script compilation + added object validation rules + added validation of report datasets + implemented the first version of the report validator  + added new property TfrxDataBand.BandColumns.Layout to control the order of printing columns (AcrossThenDown or DownThenAcross) + added a new alignment type for objects—baHVCenter, which aligns the object by the width and height of the parent container. + added image post-processing pipeline * network printer settings use cached results to quickly load the report designer - fixed the use of watermarks from the script - fixed a bug that caused the dynamic table to use previous values when working with repeating data bands - fixed KeepTogether behavior when using the StartNewPage flag - fixed the behavior of the PrintOn property when the band moves to the next page - fixed a bug in GridTableBuilder when using default property editors [Report object] + added Transparency field to the TfrxPictureView object  - fixed a bug in HTMLView that occurred when the table did not contain any columns - fixed a bug where 2D barcode presets were missing when exporting to PDF - fixed decoding of Base 64 strings - fixed rotation of vector images at angles close to 45, 135, 225, 315 degrees [Preview] - fixed a bug where the preview would trigger mouse click events while scrolling the page using the Pan tool [Exports] + added internal DataLink processing for HTML exports - fixed PDF export dialog - fixed missing HTML tag styles in the DOCX export filter - fixed a bug when exporting an HTMLDiv embedded in another HTML page - fixed RTF export of reports with pages of different orientations - fixed PDF export dialog - fixed PDF export errors - fixed PDF export for 64-bit systems - fixed PDF structure with ZUGFERD - fixed export of Arabic to PDF - fixed an issue with PNG/SVG transparency when exporting to PDF - fixed Embedded Subset in PDF - fixed export of spaces to PDF for lines with tab characters ($09) - fixed export of empty TfrxMemoView with AllowHTMLTags = True to DOCX - fixed errors in PDF/A and PDF with CMYK color space [Designer] + added intersection checking for bends + added saving of DataTree settings in object and expression editors + added DebugLn function to the report designer * improved search and highlighting of intersections * the default value for the TfrxDesigner.DefaultFont.Color field has been changed to clBlack - fixed copying in the PictureView editor when there is no image - fixed usage of frxEditSQL.inc - fixed updating of internal parameters of data sets in edit mode - fixed a bug where the report designer inserted an incorrect mouse event for dialog controls - fixed adding icons for custom components - fixed opening of the run-time designer with a custom TfrxReport.IniFile - fixed highlighting of intersecting objects VCL.FastGrid --------------- [UI] + added a new column deletion cursor + added the ability to resize a column if its right border is out of view + added cancellation of dragging and resizing columns by pressing ESC in design time - fixed highlighting of grid elements when dragging and resizing a column - fixed the cell frame being displayed on the header when scrolling the grid while in focus - fixed an issue on Linux where editing would not work if the editor was activated by clicking the mouse - fixed support for the Win 64 platform [Engine] + added the ability to group data in a table view + added the TfrSpinEdit property. ValueType, MinValue, and MaxValue depend on the corresponding properties of the field bound to the SpinEdit column. - fixed a bug where the maximum length of text entered in a cell did not match the dimensions of the data field associated with the column of that cell. - fixed the OnKeyPress event to work with the WideChar type and fixed problems with navigation in Lazarus cells with UTF-8 characters - fixed an AV that would close the application if the built-in editor was active before setting Grid.Parent to nil. - fixed a bug where multiple exceptions were triggered when a column assigned with Image properties contained invalid data [Exports] + added the ability to create grouped tabular reports from FastGrid - improvements in the FastGrid table report builder Lazarus.FastGrid --------------- [UI] + added a new column deletion cursor + added the ability to resize a column if its right border is out of view + added cancellation of dragging and resizing columns by pressing ESC in design time - fixed highlighting of grid elements when dragging and resizing a column - fixed the cell frame being displayed on the header when scrolling the grid while in focus [Engine] + added the ability to group data in a table view + added the TfrSpinEdit property. ValueType, MinValue, and MaxValue depend on the corresponding properties of the field bound to the SpinEdit column. - fixed a bug where the maximum length of text entered in a cell did not match the dimensions of the data field associated with the column of that cell. - fixed the OnKeyPress event to work with the WideChar type and fixed problems with navigation in Lazarus cells with UTF-8 characters - fixed an issue on Linux where editing would not work if the editor was activated by clicking the mouse - fixed an AV that would close the application if the built-in editor was active before setting Grid.Parent to nil. - fixed a bug where multiple exceptions were triggered when a column assigned with Image properties contained invalid data [Exports] + added the ability to create grouped tabular reports from FastGrid - improvements in the FastGrid table report builder VCL.Transport --------------- [Engine] + added read confirmation for mail transport (Indy) VCL.FastEditors --------------- [UI] + added the OnButtonCustomDraw event to TfrButtonEditProperties + added the BorderSpacing property for all Lazarus editors  + added the ability to get the changed value of the editor using the Text property in Lazarus - fixed an error that occurred when trying to iterate through a drop-down list of values when the list is empty - fixed incorrect background display in TfrCalendar - fixed Access Violation error when TfrCalendar was destroyed or hidden during animation - fixed support for the Win 64 platform [Engine] + added new component TfrCalendar + added new component TfrCurrencyEdit + added new component TfrBarCode + added new component TfrMaskEdit Lazarus.FastEditors --------------- [UI] + added the OnButtonCustomDraw event to TfrButtonEditProperties + added the BorderSpacing property for all Lazarus editors  + added the ability to get the changed value of the editor using the Text property in Lazarus - fixed an error that occurred when trying to iterate through a drop-down list of values when the list is empty - fixed incorrect background display in TfrCalendar - fixed the Access Violation error when TfrCalendar was destroyed or hidden during animation - fixed support for the Win 64 platform [Engine] + added new component TfrCalendar + added new component TfrCurrencyEdit + added new component TfrBarCode + added new component TfrMaskEdit ### Page description language – ZPL URL: https://www.fast-report.com/tr/blogs/zpl-language Summary: Learn about ZPL language for printing. Find more useful tips and articles in our blog. Learn about ZPL language for printing. Find more useful tips and articles in our blog. Learn about ZPL language for printing. Find more useful tips and articles in our blog. ZPL - Zebra Programming Language - the language of description of printed pages, also known as PDL (Page Description Language). There are many PDLs. Almost every printer manufacturer has its own page description language. This language allows you to describe the page by high-level commands, which will be interpreted by the printer in low-level ones. The most famous PDL is PostScript from Adobe. The PDL allows to describe page objects. There is something, that makes the program be independent from a particular hardware platform of a printer. The printer receives commands for printing a square, a symbol or a line and we do not care how it will be realized. The printer itself knows how to do this. This is the main advantage of the PDL. American company "Zebra Technologies" has developed the ZPL mainly for creating and printing of labels. Labels can contain a text, barcodes and simple graphics. Such labels are printed with special Zebra printers, which are used in the trade for printing receipts and checks. There are two standards: ZPL and ZPL ll. Differences The main reason for development of ZPL II was a significant reduction of the time when a printer starts to receive data and when the first character goes to be printed. This was made primarily by changing the way of how ZPL programs are written. The ZPL II standard is not 100% compatible with the ZPL standard. But the differences between are minimal. All programs on the ZPL can easily be modified to the level of ZPL ll. There is a backward compatibility. That is, you can write programs on the ZPL ll for ZPL printers, of course, taking into account the old syntax. So, here are two main differences between ZPL ll and ZPL: 1. In ZPL II the data is formatted immediately as received. And in the ZPL standart, the formatting does not start until you get the command to complete the process formatting ^ XZ. 2. ZPL ll has a lot of new commands. Syntax Considering a programming language without examples makes no sense. Therefore, the program code for printing a simple label is given to allow to look at the syntax. ``` ^XA   ^FX Top section with company logo, name and address. ^CF0,60 ^FO55,55^GC100^FS ^FO75,55^GC100^FS ^FO75,75^GC100^FS ^FO55,75^GC100^FS ^FO88,88^GC50,50^FS ^FO220,50^FDLorem Ipsum, Inc.^FS ^CF0,40 ^FO220,100^FD1000 Shipping Lane^FS ^FO220,135^FDShelbyville TN 38102^FS ^FO220,170^FDEURO UNION (EU)^FS ^FO50,250^GB700,1,3^FS   ^FX Second section with recipient address and permit information. ^CFA,30 ^FO50,300^FDKarl Marks^FS ^FO50,340^FD100 Main Street^FS ^FO50,380^FDEURO UNION (EU)^FS ^CFA,15 ^FO50,450^GB700,1,3^FS   ^FX Third section with barcode. ^BY5,2,120 ^FO175,500^BC^FD1234567890^FS   ^FX Fourth section (the two boxes on the bottom). ^FO50,700^GB700,250,3^FS ^FO400,700^GB1,250,3^FS ^CF0,40 ^FO100,760^FDShipping Ctr. Y74H-1^FS ^FO100,800^FDREF1 F99L17^FS ^FO100,840^FDREF2 YUH88^FS ^CF0,190 ^FO485,765^FDAA^FS   ^XZ ```  Now, we get the ticket for the shipping control: As you can see, the code begins with the tag (command) ^ XA and ends with the tag ^ XZ. The code is divided by the comments into four sections for convenience of consideration. 1)  The first section displays the company logo and its legal data: ``` ^FX Top section with company logo, name and address. ^CF0,60 ^FO55,55^GC100^FS ^FO75,55^GC100^FS ^FO75,75^GC100^FS ^FO55,75^GC100^FS ^FO88,88^GC50,50^FS ^FO220,50^FDLorem Ipsum, Inc.^FS ^CF0,40 ^FO220,100^FD1000 Shipping Lane^FS ^FO220,135^FDShelbyville TN 38102^FS ^FO220,170^FDEURO UNION (EU)^FS ^FO50,250^GB700,1,3^FS ```  It is clear that tag ^ FX means a comment. ^CF x, y, z – Default font settings: font, height and width. ^FO x,y  - left and top indentation. ^FS  – end of line. Next, draw a logo from four circles: ^GC x,y – draw a circle. Diameter – x, line thickness – y. Legal data: ^FD – data field. 2)  In the second section we will not see new tags. 3)  In the third section we add a barcode: ``` ^FX Third section with barcode. ^BY5,2,120 ^FO175,500^BC^FD1234567890^FS ```  Here: ^BY x,y,z – width, width of bar, height. 4) In the fourth section another tag appeares: ^GB x,y,z – rectangle (box). Width, height, thickness of the frame. By using a small set of tags, we described the entire printed page. The process is rather simple. You only need to set the distance in points. All the measurements are in points. Summing up, in this article we have considered a part of the ZPL commands to meet a user with the main point of the language. As on the Internet there are many online interpreters of the ZPL code, you can always test it visually. Tags: ZPL ### Partners URL: https://www.fast-report.com/tr/partners Summary: Partners - Check out the companies we partner with. Bayiler Filtreler Kıtalar Com&Lan 6/F, Tower A, Fenglin Xi'ao, Datun Road, Chaoyang District, Beijing 100101 P.R. Tel. +86-10-64844488 ext. 221 | Fax +86-10-64844477 ext. 221 comlan.com info@comlan.com The the Beijing Kunlun Unicom Technology Development Co., Ltd. is a comprehensive enterprise operating direction to provide operation and maintenance services of IT products and professional. The company was founded in 1998 on the development of technology-based service to the community, "the general direction from its inception. The entire company set hardware products, software products, sales and service in one, continue to adhere to the introduction of foreign advanced products and technologies, providing IT solutions and technical support services for corporate clients. CompuCom Systems 3414 25th Street NE, Calgary, Alberta  T1Y 6C1 Tel. +1 403-205-5619 compucom.com contacts CompuCom Canada is a national IT services and solutions company providing infrastructure management services, application services, systems integration and consulting services, as well as the procurement and management of hardware and software. With more than 20 years of IT experience, CompuCom employs thousands of highly skilled associates who have earned a nearly 100 thousand industry certifications company-wide. As experts in workplace services, CompuCom’s unique Integrated Infrastructure Management (IIM™) solution reduces costs, increases productivity and helps clients gain maximum value from information. HTK Pro s.r.o. Kutnohorská 55, Praha 10, 109 00 Tel. +420-810-100-810 | Fax +420-286-891-391 devshop.cz kadlecek@htkpro.cz Petr Zahradnik, Computer Laboratory Obvodova 740/14, CZ-40007 Usti nad Labem, Czech Republic Tel. +420-47-5500610 | Fax +420-47-5511338 clexpert.cz petr@zahradnik.cz Inteli Scape Ltd 22 Larnakos Avenue, 4th Floor, Aglantzia, Nicosia 2101, Cyprus Tel. +357-22448500 | Fax +357-22448511 inteliscape.com sales@inteliscape.com In addition to turn-key solutions, inteliscape provides custom project services - we have "the glove that fits your hand"! At inteliscape, customer satisfaction is driven by our people; people who understand e-business, people who think, people who do, people who get it. We have both undergone appropriate training and gained significance in delivering e-business solutions. All our services professionals are recognised for their excellence by IBM, Lotus, and Microsoft in all competencies we perform: Consultancy, Sales, Solution Architecture/Design, Implementation, Administration, Learning, and Support. HongDi Science & Technology Development co. Room 1113 Building B JinMao Square No.251 QiLiTing Road HuZhou, Zhejiang 313000  Tel. +86 572 2607144 | Mobile +86 (0) 13511221372 cookcode.net sales@cookcode.com HuZhou HongDi science & technology development co.,ltd., located in HuZhou, Zhejiang, China, specializes in selling and supporting expert programming components. we have selled our graphical components in global countries, and take a good effect to developers. Established in 2001 , provide components and software tools to the developer community, CookCode has expanded to become a leading of components supplier in China, USA, Europe, and provide thousands of components to developers, designers, IT Managers, Network Administrators, DBAs and Corporate Buyers. Katálogo Software Tel. +55 (11) 3581-4400 katalogo.com.br vendas@katalogo.com.br Fundada em 1997, a Katálogo Software tem como objetivo de atender as necessidades em software para desenvolvedores, profissionais de TI e empresas de todos os portes. A empresa tem sua matriz em São Paulo e filiais no Rio de Janeiro, Curitiba e Estados Unidos. A Katálogo Software hoje é referência no merdado de software, com vasta experiência na área de importação e exportação de softwares profissionais. Pan Yan Chongqing Science and Technology Yanghe Road, Jiangbei District, Chongqing, the 2nd international Tongchuang the 3rd Room 1904 Tel. 023 -67870900 componentcn.com sales@componentcn.com Software reusability is one of the key factors in the development of the software industry. To achieve the software " industrialized "and " software component " is the foundation for achieving this goal. Therefore, our long-term commitment to excellent control products at home and abroad to introduce the software development process, China's major software development companyto help improve the development efficiency and shorten the development cycle of the software product, to reduce the risk of the development of software projects, thereby enhancing software products in the market competitiveness. Barnsten B.V. Zijlstraat 47, 2011 TK Haarlem Tel. +31-23-542-2227 | Fax +31-84-755-5260 barnsten.com info@barnsten.com Leading the way with Innovative, Multi-Platform, Developer and Database Solutions Barnsten is dedicated to providing its customers with the industry’s broadest and deepest set of tools for enhancing the productivity of software developers and database professionals. Cogito Software Room 5003,Guang Yuan Da Sha, No.5 Guang Yuan Zha, Hai Dian District, Beijing China 100081 Tel. +86-010-68421378, 68421379 | Fax +86-010-68703469 cogitosoft.com sales@cogitosoft.com We corporate closely with over 2000 Reseller and we had established relationships with local retail outlets and online shops. We have over 40,000 users within mainland China, a large proportion of them are from government agencies, educational institutes and commercial departments. We have established business relationships with many of the world's top 500 enterprises, for instance: Motorala, Simens, Lucent-Alcate ,etc. Qast Software Group RM 3705, BM Business Center, No.100 Yutong Road, Shanghai, 200070, China Tel:+86-21-5240-0198  | Fax: +86-21-6211-9020 www.qast.com info@qast.com Qast Software Group is one of the largest software distribution companies in China. Our goals are to continuously bring global software and technologies to the growing Chinese market. QBS Software GmbH Grünwalder Weg 13a, 82008 Unterhaching, Germany Tel. +49 (0) 89 231 4142 0 https://www.qbssoftware.com/ info@qbssoftware.de WESTcom Logiciels et Services Tel. +33-2-97-88-07-44 westcom.fr infos@westcom.fr Westcom is an IT company established in 2000 specializes in publishing management software (accounting, production management and inventory, fixed assets, ...) and LIMS (Computerized Management Laboratory). DATAVENIR sarl 119, rue Vi De Chenaz, 74380 BONNE Tel. +33-0489-61-21-40 | Fax +33-0450-92-30-77 datavenir.com info@datavenir.com DATAVENIR undertakes to study and offer at any time solution that best suits your needs for your information system. (Business, Accounting, Management, Networking, Internet Technologies, Multimedia, Online Services, Training). IT Haimerl Datentechnik Kreuzacker 10, 94356 Kirchroth, Germany Tel. +49-9428-305324 | Fax +49-9428-305325 https://www.fast-report.de/ info@fast-report.biz Mitrasoft Infonet Kompleks Roxy Mas Blok E-2 No. 3 Jl. K.H. Hasyim Ashari No. 125-B Jakarta 10150 Tel. +62-21-632-6533 | Fax +62-21-632-6364 mitrasoft.co.id info@mitrasoft.co.id We provide a wide range of IT solutions and services; Hardware & System software Infrastructure, System Integration, Structured Cabling, LAN/WAN Design and Implementation, Financial Management System, Business Intelligence, Software Licensing, Outsourcing, Maintenance, Training, Consultingand Custom Application Development. In June 1996, PT. Mitrasoft Infonet was formed to focus on software's business. Mitrasoft's main business includes providing Software Licensing, System Integration Services, Outsourcing, Maintenance, Training, Business Solutions and custom application development. It is noteworthy that one thing about our companies that have not changed over the years is our vision of providing the best products and the best solutions for our customers and today our companies continue to serve our customers even better. Intcom Systems Pvt Ltd Office No 20, Rajasthan technical Centre, Grd Floor, Patanwala Estate, Near Shre, Ghatkopar West, Mumbai, MH 400086, India Tel. +91-022-41117777 intcomsystems.com sales@intcomsystems.com Intcom Systems Pvt. Ltd., incorporated in 1994, caters to all aspects of Software Products / licenses procurement. With domain knowledge in software licensing models and years of experience reselling software products from worlds foremost software publishers, we provide purchase option that assist you get a properly licensed and most economic software deal. Our services division caters to Infrastructure solutions like, Network & E-mail Security, Print management, Online meeting solutions & Infrastructure solution. Intcom Systems Pvt. Ltd. is managed by Mahendra Patil and a team of professionals. With a focus on serving the Software Development, Corporate Houses & SME Small & Medium Enterprise in INDIA, We have tied up at various levels with software publishers worldwide to provide Indian developers with cutting edge tools to assist them through various stages of software development process. Amazing (HK) Trading Ltd Tel. +852-6255 3802 | Fax +852-3011 6235 amazinghk.com.hk sales@amazinghk.com.hk Kvazar-Miro CEE Kft Gubacsi ut 6., Budapest 1097 - Hungary Tel. +361-880-4415 | Fax +361-880-4465 kvazar-micro.hu info@kvazar-micro.hu SoDiCe Kereskedelmi Kft. 1143, Budapest, körút 83, Hungária Tel. +36 1 881 6486 sodice.hu info@sodice.hu A SoDiCe Kereskedelmi Kft. azzal a céllal jött létre, hogy közvetlenül a gyártóktól vásárolt szoftvereket kínáljon a magyar piac részére. Fő célunk, hogy a szoftver kiadókkal együttműködve részt vegyünk egy nemzetközi IT megoldásokat kínáló hálózat kiépítésében, kapcsolataik megerősítésében és a meglévő értékesítési csatornáikat kiegészítve hozzájáruljunk eredményeik növeléséhez. Kínálatunk az informatika különböző területein használatos szoftverek széles választékát tartalmazza: - Biztonsági/Security termékek - Network Management - Webdesign - Üzleti Megoldások - E-Learning - Tudományos szoftverek - Kommunikációs és Multimédiás termékek R2 Data Technology SAC. Tel. 511 402 0622  / 529 8069 r2datatechnology.com ventas@r2datatechnology.com R2 Data Technology es un proveedor de herramientas de desarrollo de software para empresas, ingenieria, investigacion e instituciones educativas. Software Sources Ltd. 64B Hasharon St. P.O.Box 639 Ra'anana 43106 Tel. +972-9-7714578 | Fax +972-9-7712194 software-sources.co.il chen@software-sources.co.il Wintech Italia Srl Tel. +39-0523.1998395 | Fax +39-0523.014654 shop.wintech-italia.com info@wintech-italia.com Wintech Italia is a training and consulting company specialized on Delphi, with the unique contribution of Delphi's "guru" Marco Cantù. We offer onsite and public training classes, consulting and development support, mentoring and code review. The company also resells in Italy the licences of Delphi and some third party components. AG-TECH Corporation 6F, Daiwa Kandabashi Bldg. 1-17-5 Kanda Nishikicho Chiyoda-ku, Tokyo 101-0054 Japan Tel. +81-3-3293-5300 | Fax +81-3-3293-5270 agtech.co.jp ``` sales@agtech.co.jp ``` AG-TECH is a company with over 35 years of experience in localizing, selling and importing packaged software into the Japanese market. We are the exclusive distributors in Japan for fully localized into Japanese versions of the FastReports.NET and FastReports VCL product range. As well as fully localized products, with full Japanese language manuals, we have an experienced team of local support and sales engineers, able to offer Japanese report developers and standalone report users a fully featured complete reporting solution. For full details, please refer to our Japanese language Fast Reports home page Danysoft Internatioal S.L. Avda. de la industria 4, edif. 1, 3ª planta, Natea Business Park, 28108 Alcobendas, Madrid +34-916-638683 danysoft.com Contact Danysoft es el representante exclusivo de Embarcadero en la península ibérica, estando especializados en ayudar a la comunidad de Delphi y C++Builder en licencias, formación, libros y utilidades tan imprescindibles como Fast Reports Isah Business Software Droogdokkeneiland 11, 5026 SP Tilburg Tel. +31-88-4724-000 | Fax +31-88-4724-001 isah.com A stable, hi-tech software solution: that is what Isah offers you. That is not just a promise. It is a guarantee. The manufacturing industry is our core market. With extensive industry experience dating back to 1987, we know precisely what is needed to optimise business management processes and attain better results. Rambla Informаtica S.L. Paseo Roma Fabra, 12, 08320 El Masnou – Barcelona Tel. +34-93-306-34-47 ramblainf.com DevTools Inc. Tel. +82-2521-7900 | Fax +82-22297-7900 devtools.co.kr midmee@devtools.co.kr AccessSoft Inc. 3F.-5, No.86, Sec. 1, Zhongxiao E. Rd., Zhongzheng Dist., Taipei City 100, Tel. +886-2-23560269 | Fax +886-2-23956826 accesssoft.com.tw rachelwu@accesssoft.com.tw  |  elsalin@accesssoft.com.tw Qun Yu Co., Ltd. (AccessSoft) positioning of the "Your Brilliant Solutions Provider", software integration services to provide customers with professional information, and for many of the world's leading software partners in Taiwan, the Taiwan user has a faster, more professional, more The regional software services. Linksoft Inc. 6th Floor, New Taipei City and District No. 351, Sec 10 Tel. +886-2-2221-2155 | Fax +886-2-2221-9008 linksoft.com.tw anna@linksoft.com.tw Founded in 2007, Linksoft is a professional distributor and reseller in Taiwan and China. As a professional software provider, Linksoft cooperates with global outstanding IT industries, reselling thousands of software includes Statistical Analysis, Development Program, Database Management, Network Security, Design and Edit software. Linksoft cultivates its mature service along Commercial, Government, Academic and Home users, with more than 500,000 customers in Asia. Working for customer-oriented, Linksoft provides in time product information and decent first-line support to overcome the difficulties caused by long distance and different time zones. Sinter Information Corp Tel. +886-2-2577-7755 | Fax +886-4-2471-7448 sinter.com.tw service@sinter.com.tw eBIZINET Co., Ltd. 24/128 Soi 21 Yak 3, Chom Phon, Chatuchak, Bangkok 10900 Tel. +66-02-5125933 ebizinet.com info@ebizinet.com Invite Course to Web Learning & Training on Internet. BTG (Bilgi ve Teknoloji Grubu Ltd.) Ankara: Bilkent 5.Cadde No:4 Ofis:9, 06533 Bilkent. İstanbul: Büyükdere Cad. No:185 Kanyon Ofis Binası K:6, 34394 Levent Tel. +90+212-319-7722 btgrubu.com cozum@btgrubu.com BTG (Bilgi ve Teknoloji Grubu Ltd.), yazılım geliştirme süreçleri ve test aşamalarında Türkiye çapında çeşitli büyük kurumsal projelerde danışmanlık, eğitim ve destek hizmetleri veren uzman bir kadroya sahiptir. Instant Buy Tel. +34-959-10-11-80 | Fax +34-959-87-06-49 instantbuy.es info@instantbuy.es Netsync Network Solutions 2500 West Loop South, Ste 410, Houston, 77027 +1-713-218-5041 | +1-832-606-2131 Lola Charles lcharles@netsyncnetwork.com Netsync Network Solutions (Netsync),is a HUB certified, minority owned, Houston-based, Value-Added Reseller,who holds a variety of manufacturer and industry certifications while specializing in the areas of Networking, Servers, Storage, Wireless Devices, Security, Enterprise Computing, Datacenter and other IT-related disciplines. Xailer +34 902 955 144 www.xailer.com sales@xailer.com Xailer Inc. is one of the most important companies in the xBase world created almost 10 years ago. They have been active in the development of Harbour since its inception. Our flagship product, Xailer is a complete visual development environment for xBase using Harbour as its main compiler. bit Time Software Via di Prataporci ,185 - 00132 Roma | Via C. Menotti 2/A, 20129 Milano 06 20763518 | 02 87399401 bittime.it dir_comm@bittime.it Bit Time Software è una dinamica IT company che opera nel panorama italiano ed europeo dell’information technology dal 2002. Nata come software house focalizzata sulla fornitura di soluzioni informatiche per la gestione delle attività aziendali, la società ha progressivamente esteso e ampliato le sue competenze, abbracciando l’area della consulenza e della formazione IT. Shanghai Quweishi Software Co., Ltd. Room 1222, No.580, West Nanjing Rd., Shanghai, 200041 021 - 3211 0920 commuch.com sales@commuch.com Quweishi Software is a professional software service vendor. We focus on providing development solution ,tools, on-site service for help , training and outsourcing. We work with many components and tools software company all over the world and provide technical support for their local customers. SOS Software Unterer Talweg 40 86179 Augsburg 0821 25782 - 0 sos-software.com info@sos-software.com Die SOS Software Service GmbH wurde im Juli 1987 gegründet und ist spezialisiert auf die Distribution und den Vertrieb von Software, Softwarebeschaffung und Lizenzberatung. Wir vertreiben Software von über 1.000 Herstellern mit 70.000 Artikeln. Täglich erweitern wir unser Software-Portfolio, um Ihnen Software aller Hersteller aus einer Hand zu bieten. FireBase www.firebase.com.br fdd@firebase.com.br A FireBase é o maior portal brasileiro de informações sobre Firebird, oferecendo serviços de consultoria, suporte, cursos, desenvolvimento, além de gerenciar uma das mais movimentadas listas de discussão sobre Firebird de todo o mundo. Cadastre-se gratuitamente para ficar atualizado com as últimas notícias do mundo Firebird! 51Component China 24D, No 15 Jincheng Mansion, Xiangcheng Road, Pudong,Shanghai,China +86-(0)21-50318395 51component.com sales@51component.com Beijing TL-Chinasoft Technology Haidian District, Beijing Zhongguancun South Street, Building 718 52 010-62115400 pcsofttech.com yiyong.ji@pcsofttech.com Codiprof Rua 31 de Janeiro, 76 4470-553 MAIA 229424216 www.codiprof.pt info@codiprof.pt Devart 192a Klochkovskaya str., Kharkov, Ukraine, 61145 sales@devart.com devart.com Founded in 1997, Devart now has 18 years of experience in developing database tools and native data access solutions for different database servers with headquarters situated in Czech Republic and research and development center - in Ukraine. Comsoft 400 Avenue de Roumanille Green Side 1 Bât. 2, 06410 Biot 0 825 07 06 07 comsoft.fr infos@comsoft.fr Corporate Tech +55 (51) 4063 8011 corporatetech.com.br comercial@corporatetech.com.br A CORPORATE TECH Tecnologia – tem por tradição à atuação no mercado de tecnologia da informação desde 2010, ano que iniciou suas atividades na cidade de Porto Alegre com o objetivo de atender pequenas, médias empresas, profissionais da área de desenvolvimento e infraestrutura com produtos de software e licenciamento. Atualmente atuamos em todo território nacional, com base em Porto Alegre e escritório na cidade do Rio de Janeiro, atendendo clientes das mais diversas áreas e seguimentos, fornecendo softwares e consultoria gratuita na área de licenciamento. Nosso trabalho é focado sempre na atuação consultiva, buscando entender a necessidade do cliente para lhe oferecer o melhor licenciamento e o software adequado a sua real necessidade e orçamento. WSB Solutions B.V. Kade 30, 3371 EP Hardinxveld-Giessendam (0184) 61 88 37 www.wsb-solutions.nl info@wsb-solutions.nl Elmer İSTANBUL Rasimpaşa Mahallesi Tayyareci Sami Sokak Demirli İşhanı No:18 Kat:2  34716 Kadıköy İstanbul +90 216 577 64 71 www.elmer.com.tr ANKARA Kabil Cad. 1335. Sokak No:10/2 06450 Öveçler, Ankara +90 312 478 42 78 www.elmer.com.tr CiKa Software Schwalmtalstr. 18 34628 Willingshausen-Steina Deutschland 06691-929621 www.cika-software.de info@cika-software.de Login Infotech #63, 1st Main Road, Seshadripuram, Bangalore - 560 020 Karnataka +91-80-23349809 | 23563500-02 login2it.com sanjay@login2it.com LOGIN INFOTECH PVT LTD was incorporated in the year 1996 by a group of professionals with more than a decade of experience in the IT industry. Login started its business as a reseller company for Software and Hardware products and in a short span of time Login was recognized as one of the leading Value Added Partners for Microsoft. Login was also appointed as Partners for leading MNC brands like HP, COMPAQ, IBM, ACER and Wipro among Indian brands. Today with a turnover of over $8 million, Login is one of the preferred vendors for leading Corporate, Government and Banks & PSU's across the country. Login will be accredited with ISO 9002 Certification shortly. Targetware (55) (11) 3665 8550 targetware.com.br comercial@targetware.com.br DHorde Gengqian Information Technology Office Building 1-2198, Building A, Baguazhou Pioneering Park, No. 270 Lidao Road, Baguazhou Street, Qixia District, Nanjing +86 17558866126 dhorde.com sales@dhorde.com Nanjing Gengqian Information Technology Co., Ltd. ("Gengqian" for short), established in 2017, is a national high-tech enterprise specializing in providing global software and information technology services. The headquarter is located in Baguazhou Pioneering Park with a pleasant environment, and has branches in various regions of the country Evget +86 (23) 68661681 www.evget.com qiuyt@evget.com EXE +421-2-67 296 111 exe.sk Uznávame princípy, ktoré sme si stanovili pri samotnom vzniku firmy. Nadobudnuté skúsenosti nám dávajú zdravé sebavedomie a rešpekt pred potrebami zákazníkov. Svojich klientov nikdy nezavádzame a vždy vytvárame len také riešenia, ktorým sami dôverujeme. Symbionis Software Nussdorfer Strasse 64, Top 3b, 1090 Wien Tel. +43-1-7866496 | Fax +43-1-7866496-30 symbionis.at office@symbionis.at Wir vereinen die drei Hauptbereiche, Software, Skills und Technologies, in einem zentralen Knotenpunkt, um Ihnen optimale Lösungen für Ihre Projekte zur Verfügung zu stellen. Durch die Verknüpfung dieser drei Schwerpunkte können wir Ihnen maßgeschneiderte Angebote von der Entwicklung Ihrer Softwarekomponenten über geeignete Fachkräfte bis zu speziellen Datenbankservices machen. Ker-Soft Computing Szombathelyi tér 14. 1119 Budapest, Hungary +36(1) 206-2147 kersoft.hu info@kersoft.hu The company, gradually faced with a greater number of complex tasks was urged to take on with more professionals thus providing further technical expertise. In respose to growing customers needs, Ker-Soft developed its IT expert team. Similarly, we have built partnerships with the world’s leading IT suppliers -enriching our competency in solutions and products of Microsoft, CA. PT Interaktif Cipta Lestari Jl. Pualam I No. 49 Sumur Batu, Kemayoran, Jakarta Pusat +62 21 21477722 www.interaktif.solutions iwancs@interaktif.solutions PT Interaktif Cipta Lestari is an IT Company that provide the best, effective, and efficient solutions for companies needs. We provide many service in several area such as Custom Software Development, Original Software License, Technical Support, Data Entry Services, Network Infrastructure Consultation, and much more DEVGEAR 359, Sapyeong-daero (Banpo-dong, 3rd floor)Seocho-gu, Seoul, 06542 02 595 4288 www.devgear.co.kr DevGear is a company established in Korea through agreements with Embarcadero (acquired by IDERA) such as Delphi and C++ Builder. In line with the ever-increasing demand for Delphi and C++ Builder developers, DevGear provides products as well as related services (books, education, technical support, etc.) to the domestic market. AHA Computer Company Ltd. Tel. 02-2749-1909 https://www.ahasoft.com.tw sales@ahasoft.com.tw AHA Computer Company Ltd. was founded in 1990, specializing in the marketing and licensing of computer software all over the world. Serving the market with active minds over decades, we are proud to say that satisfaction and support from our business partners have clearly marked our excellent reputation. Pure Green Bulevar Arsenija Čarnojevića 140/2, Beograd +381 63 640 218 puregreen.rs info@puregreen.rs PureGreen is an IT-based company founded in 2015. Great vision inspires us to connect the real and digital world in a way to be the MVP partner for both our customers and suppliers. The base structure of our portfolio has a focus on software development, design and offering the best IT products and solutions. JSC Softex Baltic Sviliškių str. 10-46, Vilnius, Lithuania +370 683 77221 www.softex.lt info@softex.lt OSB Software Rua Vergueiro, 1421, Conj. 1309, Torre Sul. Paraíso – São Paulo/SP – 04101-000  Tel. +55 11 4280 6660 www.osbsoftware.com.br contato@osbs.com.br Não importa se o software que você procura está na América, Europa, Oceania, Ásia ou África. Na OSB Software você poderá encontrar os softwares de qualquer fabricante independentemente do país onde ele esteja. A OSB Software firmou contrato de parceria com mais de 2.000 fabricantes que expressam a AUTORIZAÇÃO de comercialização do software em todo território nacional, além de uma equipe experiente que é responsável pela busca constante de novas soluções para disponibilizar o que há de mais recente no mercado de TI. MicroWay Pty Ltd PO Box 84, Braeside, Victoria, 3195, Australia Tel. +61-1300-553-313 | Fax. +61-1300-132-709 microway.com.au sales@microway.com.au MicroWay is Australia's largest distributor of development products and software for IT Professionals. With over 3,000 products and over 20,000 customers throughout Australia and New Zealand, we've been helping IT Professionals for over 27 years. We assist developers, system administrators and other IT Professionals by encouraging the use of tried and tested, quality products. Software development products fit into many categories including the category of "don't reinvent the wheel"—if someone has already written code to do what you're trying to do, why not just buy that code? Products of this sort are usually fairly robust after having been sold on the world market. InchalBase Yongsan-gu, Seoul, Yongsan-dong 5-Yongsan Park Tower 103 No. 1503 Tel. +82-02-589-2900 | Fax +82-02-548-1123 ibmart.co.kr tkim@inchalbase.com 1995 inchael goal is to computer and Internet users to offer the best experience and satisfaction . Customers a variety of products based on the technology accumulated over 10 years in software solutions, ranging from the client to the server until you are offered to Recognized in the development of a Web system used worldwide by End to End testing and performance monitoring solutions and management solutions to our customers can offer. In the development of VoIP and IMS products, network services, such as installation to provide a solution that can verify the quality and performance during the whole life cycle of up to. Web, VoIP, NGN, and IMS based on numerous tests and has the expertise and knowledge gained from experience in inchael base the quality of service in real-time visualization by showing a variety of monitoring solutions. Accumulated technology and experience a wide variety of state-of-the-art techniques provides consulting and tuning services. inchael base and OneSight 's easier and safer position in the web system management plan have been provided for users and administrators Korea empirically Riggs and merger integration decisions by truly comprehensive solutions company that provides VoIP, Enterprise & Contact Center solutions, as well as the process of expansion and diversification of business and one more step to leap to. Orangean International Corp Address: 8F., No. 527, Huajiang 1st Rd., Banqiao Dist., New Taipei City 220, Taiwan (R.O.C.) orangean.com.tw info@orangean.com.tw Orangean International Corp. ,established in 2020, primarily serves as an authorized distributor for international software. We specialize in the sale of professional commercial software and offer services in enterprise IT system planning and implementation, information security management, and computer hardware sales. ComponentSource 650 Claremore Professional Way, Suite 100, Woodstock, GA 30188-5188, USA Tel. +1-770-250-6100 | Fax. +1-770-250-6199 componentsource.com sales@componentsource.com ComponentSource was established in 1995, to ensure Software Developers were supplied with the best software development products the world had to offer. Hitherto, inefficiencies imposed by the established, country-based, software distribution channels meant that only a small number of products made it to market. Consequently, ComponentSource pioneered the open market for reusable software components and tools, through innovative use of electronic software delivery (ESD). Today, ComponentSource offer the world's best collection of labor saving software through eCommerce Web Sites; carrying over 10,000 SKU's from 230+ Publishers. ComponentSource have offices in the USA, UK and Japan supporting over 100,000+ Customers, from 160 Countries. Aquion Suite 25, L3 357 Military Rd Mosman NSW 2088 1300-AQUION (278-466) www.aquion.com.au send mail Aquion - Taking Award Winning Vendors to Customers in Australia, New Zealand, Asia Pacific and IndiaAquion supplies quality software and solutions backed by extensive technical expertise from our vendors as well as inhouse to enterprise, business and government customers in the Region. Vendors benefit from our customer relationships, established channels, and local knowledge. Our partners benefit from our close relationship with vendors, product and licensing expertise and technical support. End user customers benefit from best of breed software, locally supplied and supported. QBS Software Ltd Tel. +44-020-8733-7101 qbssoftware.com sales@qbssoftware.com Established in 1987 to provide tools to the developer community, QBS Software has expanded to become a leading software supplier in Europe providing thousands of products to developers, designers, IT Managers, Network Administrators, DBAs and Corporate Buyers. Products range from IDEs to code tools, components to Installation tools as well as security, reporting, installation, web, database, help creation, system tools and application software. QBS has developed a keen expertise in product marketing and management alongside sophisticated in-house publishing and fulfilment. We have an extensive network of industry connections and commercial relationships with software publishers and vendors throughout the world, many of whom rely on QBS Software to build strong markets for them in the UK and Europe. QBS Software is an active participant in leading industry exhibitions, conferences and roadshows and works closely with various user groups. Prianto Barthstraße 18, 80339 München +49 89 416148 210 prianto.com kontakt@prianto.com Die Prianto GmbH wurde 2009 von William Geens und Oliver Roth gegründet und gehört inzwischen zu den führenden, auf Software spezialisierten Distributoren Deutschlands. Seit 2011 ist Prianto auch in Großbritannien,Österreich und in der Schweiz vertreten, 2012 folgten die BeneLux-Staaten. Wir setzen auf absolute Fachhandelstreue und beliefern ausschließlich Wiederverkäufer im Channel (VARs, Systemhäuser, Integratoren, Fachhändler, Service-Provider, etc.). Unser Ziel ist es, langfristige, vertrauensvolle und erfolgreiche Geschäftsbeziehungen mit Fachhändlern und Systemhäusern einzugehen. Dafür bieten wir margenstarke und innovative Software-Lösungen an und garantieren schnelle und fundierte Leistungen bei der Beschaffung von Softwarelizenzen. Akdatasoft Yazilim ve Bilgisayar Kazımiye Mahallesi Aşık Veysel Sokak Çamlık Sitesi B-Blok No.:10 Daire:14 P.K.59860 ÇORLU, TEKİRDAĞ +90-282-653-13-89 akdata.com info@akdata.com Since the year of 1995, our company has been serving with integrated/modular software programs as a reliable provider for production sector with the help of operational business experienced personnel. It is only possible to provide right and on-time service to customers during changing competition conditions is to monitor / control production and stock, and to establish cost-benefit balance by using computer aided technology and services. Also used technology should be ready for development depending on changing necessities, and be modular based, has integrated parts. The major factors that are keys to be successful company; continuous cooperation with customers, support after selling, and improving our products as all we mentioned above. Thus we would like you as precious companies dealing with production to know that we are ready to create every production management systems, data collection projects, product pursuing and cost analyzing systems, and also ready to serve continuously and free of problems. Chongqing Huidu Technology Tel. 023-66090381 fastreportcn.com sales@evget.com Huidu Technology was established in 2003, focusing on controls (components and middleware) industry and software industry development consulting, which is the largest control reseller and reusable technology consulting service provider. We have a wide range of partners all over the world, adding up to more than 200 partners including top control producers in the world. We are devoted to provide world-leading reusable technology and tools for software developer, medium-sized and big enterprises, universities and etc. aiming at promote the common development of state software industry in China. Codetalk 359, Sapyeong-daero (Banpo-dong, 3rd floor), Seocho-gu, Seoul, 06542 (+82) 02 595 4288 https://www.codetalk.co.kr/ Сodetalk selects high-quality software for software professionals and then supplies and spreads genuine software based on partner agreements with the manufacturer. AVIR s.r.o. Záhumenice 15, 902 01 Pezinok Tel. +421-905-859812 | Fax +421-33-6401895 avir.sk Firma AVIR sa už dlhší čas zaoberá šírením a registráciou shareware (voľne šíriteľných) programov. Výhodou registrácie shareware u nás je možnosť platby v Euro na účet v slovenskej banke, promptné zaslanie papierovej faktúry od firmy AVIR ako slovenského platcu DPH, rýchle jednanie, komunikácia v slovenskom jazyku a mnoho ďalších výhod. Ku každému nami ponúkanému programu nájdete krátky popis alebo recenziu, ako aj link na jeho stiahnutie. Na základe overenia funkčnosti skúšobnej verzie na Vašom počítači sa potom môžete po uplynutí autorom určenej skúšobnej doby rozhodnúť pre registráciu programu (objednanie registrácie je už ale záväzné a po dodávke tovaru nie je možné jeho navrátenie, keďže licenciu firma AVIR platí autorským firmám vopred a súčasne licencie sú menovite vystavené na meno zákazníka, nie je možné ich predať inému zákazníkovi). Registrácia shareware programov sa dá realizovať aj v prípade produktov, ktoré sa nenachádzajú na týchto stránkach - kontaktujte nás s Vašimi požiadavkami. Infomedia Systems Services 18 Boon Lay Way #03-104 TradeHub21 Singapore 609966 +65-6270-0121 infomedia.com.sg sales@infomedia.com.sg Established in 1996, Infomedia Systems Services Pte Ltd is today’s leading system integration company providing One Stop Solutions for a wide range of customers ranging from the Small-Medium Enterprises (SME) to the Multi-National Corporations (MNC), Government Linked Corporations (GLC) and Government Bodies. With the extensive technical knowledge we possessed, we are able to assist customers transform their legacy and time consuming work operations into effective cost-cutting IT solutions. At Infomedia, we strongly believe in customer satisfaction and are always striving to work towards this goal. We are committed to our projects and promised to satisfy our clients by delivering quality works and solutions. It is also with this believed that we are able to offer cutting edge technology to our customers in this internet era. We understand the problems encountered by our customers when they deal with multiple vendors and thus we aim to establish ourselves as the one-stop IT solutions provider for them. We are able to provide consultancy, design, implementation and even the maintenance of the entire IT infrastructure for our customers. By engaging us you can rest assured that your network is in the safe hands and concentrate on your core business. Knowing the problems and frustrations that are faced by our customers when the system is not working in the daily operations, we are always ready to provide fast and efficient services to them when called upon. Your call is important to us and it is one of our company policies to provide prompt services without compromising on the quality of work to be done. We do not have RED TAPES like big corporations on servicing and supporting, our flexibility allow us to attend to our customers’ calls promptly. Getting your system up and running is always our number one priority. With the fast-paced and ever-changing of IT, we strive to maximize the best strategies and techniques to our staff so that they are always fully and readily equipped with the most reliable and cost effective solutions to reach customers across multiple channels. Software Asli Harco Mas Mangga Dua, Lantai Dasar No 89 (Dekat Lift) Jakarta Pusat 10739 Tel. +91-021- 6230 1345 | Fax +91-021-6230 4562 softwareasli.com info@softwareasli.com PT Digital Asia Utama/Software-Asli.com is an Indonesian leading Distributor and Master Dealer of Original Software. List of Top Brands carried includes Microsoft, Adobe, Corel, Autodesk, Symantec, Kaspersky, McAfee, AVG, Bit Defender, Norman, Zone Alarm, Eset, ACDSee, NetOp, Farstone, Oracle, SPSS, Redhat, MYOB, ESRI, Business Objects, Borland, MapInfo, IBM, Magix, UltraEdit, Techsmith, and many more. PT Digital Asia Utama is Private Owned Limited Liability company, located at Mangga Dua Jakarta, Indonesia, where the central of Computer Business located. The company was founded at 2003. After years of efforts, we have developed reputation, trust and confidence among our customers and partners. During the years, we continue to expand and grow. PT Digital Asia Utama have been working with more than 300 Reseller, Retail shops, and Online shops across Indonesia, Which is considered as one of the Biggest, most complete and most active Software Distribution channel in Indonesia. Cheer Chain Enterprise +886 4 2386 3559 cheerchain.com.tw info@cheerchain.com.tw Cheer Chain Enterprise (CCE) is a leading technology company based in Taiwan.We use our vast experience to provide a wide range of software, consulting and training services to organizations looking for solutions to qualitative research ,mixed methods research,eLearning, scientific publishing and statistical analysis challenges. BSC Polska Sp. z o.o. ul. Schroegera 32, 01-822, Warszawa bsc.com.pl BSC Polska, founded in 1996, is a representative of carefully selected software vendors offering solutions for the whole process of software development - application lifecycle management, coding, software testing, quality assurance and application performance monitoring. Our company additionally offers tools for database tuning and maintenance. We also provide training and consulting services supporting all products from our portfolio. LOGON Software Asia LOGON International Limited Unit 19, 1/F, Cheung Wah Centre, 10-12 Shipyard Lane, Quarry Bay, Hong Kong Tel. +852 2512 8491 logon-int.com logonhk@logon-int.com LOGON International Limited has created this privacy statement in order to demonstrate our firm commitment to privacy. The following discloses our information gathering and dissemination practices for this website: LOGON Software Services. LOGON's WEB Site is an extension of its customer service and technical support organizations. Through this WEB site, we strive to provide information on our products and services to valuable customers like yourself. Through this WEB site you are able to request evaluation software, software catalogs, subscription to TechNews, a weekly technical newsletter and enjoy prompt technical support assistance. In order for us to offer you these services, we require that you offer us contact information like your name, telephone, email address. In order that we understand your technical environment and your requirements, we also require that you mention information like development tools used, operating systems being managed, nature of applications being built or managed and your functional role in IT. With this information, we deliver customised information on products, technical tips, suggestions, etc.. GEN Technologies 55 Khojaly Ave., AGA Center, 1025 Baku, Azerbaijan gentech.az sales@gentech.az +994 (12) 311 3066; +994 (50) 250 9196 GEN Technologies is a software distributor and value-added reseller providing software licensing and technology solutions to corporate, government, education, and enterprise customers. The company works with leading international software vendors and supports customers throughout the full licensing lifecycle, from product selection and procurement to renewals and ongoing support. GEN Technologies operates across Azerbaijan, the South Caucasus, Central Asia, and CIS markets. info@fast-report.com Satış sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Ofis Alexandria, VA 22314 66 Canal Plaza, Ste 505 Ürünler Satın Al Demo Dokümantasyon Nasıl kaldırılır Lisanslar Ürünler Satın Al Demo Dokümantasyon Nasıl kaldırılır Lisanslar Destek Destek SLA Çevrimiçi destek SSS Eğitim Videoları Forum Makaleler Haberler Destek Destek SLA Çevrimiçi destek SSS Eğitim Videoları Forum Makaleler Haberler Şirket Hakkında Kurumsal Kimlik Bayiler Bizimle İletişime Geçin Şirket Hakkında Kurumsal Kimlik Bayiler Bizimle İletişime Geçin Gizlilik politikası Çerez politikası © 1998-2026 Fast Reports Inc. Trustpilot Bağlantı başarıyla kopyalandı ### Payment completed successfully URL: https://www.fast-report.com/tr/successful-payment Summary: Thank you for your order. After payment checking by our payment processing service you will get a license in your personal panel. Thank you for your order. After payment checking by our payment processing service you will get a license in your personal panel. Thank you for your order. After payment checking by our payment processing service you will get a license in your personal panel . Also we will send you a notification by e-mail. In case of any problems with obtaining a license, feel free to contact us by e-mail , phone or through the support service ! We will be glad to see you as our new happy customer! ### PDF document in a report – using of new TfrxPDFView object URL: https://www.fast-report.com/tr/blogs/pdf-document-in-report-vcl Summary: With the release of FastReport VCL 2021.3, a new TfrxPDFView object has been added, which allows you to display PDF documents inside a report. With the release of FastReport VCL 2021.3, a new TfrxPDFView object has been added, which allows you to display PDF documents inside a report. With the release of FastReport VCL 2021.3, a new TfrxPDFView object has been added, which allows you to display PDF documents inside a report. First of all, FastReport VCL is a report generator. Based on this conclusion, we can assume that previewing or embedding documents of other formats into a report is excessive. But according to requests from our customers, we can see the opposite point of view. Many of our customers are solving tasks with the integration of new and old systems. Such an old system may contain already prepared documents that need to connect to the news reports. In other words – embed and view documents of third-party formats into a report adding new pages or fields to it. For such tasks in FastReport VCL 2021.3, we have added the new report object - TfrxPDFView. This object uses the Open-source library Pdfium  and is designed to view PDF documents in a report. You can build this library from the source code or use one ready-to-use from FastReport VCL installation package (frx_pdfium.dll and frx_pdfium_64.dll in Bin folder). After the manual build, you need to rename the library to frx_pdfium.dll for 32-bit system and to frx_pdfium_64.dll for 64-bit system. For the manual build, you need Visual Studio and Google depot_tools. More information can be found here  and  here . As was written above you don’t need to build Pdfium, you can use prepared libraries from the FastReport VCL installation package, but if your company has a security limitation and requires building all code on your side use links from above. The TfrxPDFView can draw documents both on one and several report pages. Using the ability of the report engine to split objects. Let’s check more closely how to use this object and what ability it provides. After clear installation latest FastReport VCL 2021.3 version this component should appear on Delphi’s components palate in FastReport VCL section. Just place the TfrxPDFObject on the application form, to use the TfrxPDFView at Run-time. If you started with a new project also add the TfrxReport component to a Form and with a double click on it call the report designer. Then click on the PDF Object in the report designer objects panel and create a new object on the band in the report. Just like any other FastReport VCL object. The object was created. After that, the object editor should appear which allows loading a PDF document. TfrxPDFView allows printing multi-page documents. Special for this TfrxPDFView has new properties. DetailStretchMode property is responsible for displaying the content inside the container of the object and can be one of the following values: pdOneToOneStrongStretch – a page is always stretched using report object size. It does not keep the aspect ratio. pdOneToOneNormalize – a page is always stretched and keeps the aspect ratio of the original page in a PDF document. pdManyToOneNormalize – allows to fit several pages into the report object area and keeps the aspect ratio of the original page in a PDF document. Printing of multi-page PDF document FastReport VCL allows printing PDF documents as one page of a PDF document onto one page of the report for each page of a PDF document. We already created and load a PDF document on the Report Title band in the report. Let’s stretch it to the whole page of the report template page. It should look like the picture below. If we click on the report preview now, we will see only one page of the load PDF document even when a document has more than one page. To print all the pages, we need to perform a series of steps. Step 1. Turn on AllowSplit and Stretched properties and set them to True in the band object which has TfrxPDFView as a child. We need this band for stretches and splits. Step 2. Set StretchMode property to smActualHeight or smMaxHeight on the TfrxPDFView object. This object can stretch now. Let’s run the report preview and check the report output. FastReport VCL prints all pages of PDF document each on the report page. The TfrxPDFView object has and other properties. The “Password” property sets a PDF document password. “DrawOptions” flags allow controlling document output. In addition, you can use a file name as a source for the TfrxPDFView object by using the FileLink property. And that’s not all! With the new DataLink property, it’s possible to load documents even through HTTP and HTTPS protocols. Now FastReport VCL can print PDF documents inside a report and not only generate them! Tags: VCL, VCL, Lazarus, Lazarus, FastReport, FastReport, PDF, PDF, Report, Report, Delphi, Delphi ### PDF viewing settings when exporting from FastReport .NET URL: https://www.fast-report.com/tr/blogs/configure-viewer-pdf-exporting-net Summary: Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. Title of the article partly reveals subject. I would like to consider configuration a viewer PDF files when exporting FastReport .NET report. This can be Acrobat Reader or browser's built-in viewer (Edge, Chrome) or any other viewer. You'll find that some of the options are very useful. Here is the tab "View" window in PDF export settings: Consider all the options in order: Show print dialog - when you start pdf file will immediately show the print dialog; Hide toolbar - disables the toolbar menu at the viewer; With the menu: Without the toolbar menu: Hide menubar - includes a main menu in the viewer; With the main menu: Without the main menu: Hide window user interface - this option enables / disables the sidebar that displays document pages in miniature. Interface hidden: Fit window - it allows you to adjust the size of the document window so that the page of the document was placed in width. If the window is smaller than the width of the document page, it will be increased; Center window - this option allows you to center the Viewer window on the screen; Print scaling - allows you to compress the large pages. For example, the image on the entire page had fields (some printers may not print entirely on the entire sheet, they require field). If you select this option, in the print window of the PDF document you will see the selected item Shrink oversized pages.  Scale - the opportunity to ask the original display scale of the document. You can change it later, when viewing the document. For example, choose the size of the "Fit Page". The scale will be chosen so that the entire page is fully displayed on the screen: Outline - allows you to display report the plan as a PDF file. Here is a sample report with a built-up: And here is the document PDF, if for such a report to include the option Outline: On the left is displayed bookmarks toolbar, which contains the report plan. We have considered all the options for configuring the display of the document in the viewer. Which of them will be useful to you to judge. But it is obvious that you shouldn't ignore these settings if you want to create a document that is easy to read the end-user. Tags: .NET, Export, FastReport, Viewer, PDF ### PDF/X, PDF/A, PDF/E: What is the difference, and why are there so many formats? URL: https://www.fast-report.com/tr/blogs/comparison-pdf-formats Summary: Let's try to understand the variety of PDF formats, compare the pros and cons of standards for various industries and their needs. Let's try to understand the variety of PDF formats, compare the pros and cons of standards for various industries and their needs. Let's try to understand the variety of PDF formats, compare the pros and cons of standards for various industries and their needs. PDF is an all-purpose file format that allows users to present and share documents regardless of software, hardware, or operating system. Over the years, several PDF subtypes have been created to meet the different needs of various industries. Let's look at some of the most popular formats: PDF/X, PDF/A, and PDF/E. 1. PDF/X PDF/X is a professional standard for graphics interchange optimized for consistent and predictable printing. Unlike regular PDFs, which can include any content, like interactive elements and media files, PDF/X is limited to certain data types, making it especially suitable for sharing print-ready files. Main characteristics of PDF/X: Color model. All colors in a document must be defined in pre-known color spaces, typically CMYK or spot colors. It eliminates the uncertainties associated with color interpretation in printing. Built-in resources. All necessary resources, such as fonts and images, must be embedded in the file. It ensures that the document will look the same on any hardware. No interactive elements. There are no interactive elements such as comments, form fields, videos, and JavaScript. The specified output format. The document must contain information about how it will appear when printed, which implies certain requirements for the placement and layout of pages. PDF/X subtypes: PDF/X-1a: Based on the PDF 1.3 standard. Colors are defined as CMYK or spot colors only. Does not support ICC profiles. PDF/X-3: Supports CMYK, spot colors, and ICC profiles. Allows you to use different color spaces in one document. PDF/X-4: Supports layers, transparency, and other new features available in PDF 1.6 and higher. Supports multiple color spaces. 2. PDF/A PDF/A is a subset of the PDF format designed to meet the needs for long-term storage of electronic documents. Unlike PDF standard, PDF/A prohibits components that can cause problems with a document's appearance over long periods of time, making it ideal for archiving. Main characteristics of PDF/A : Built-in resources . All resources for the correct display of the document (for example, fonts, and images) must be embedded in the file. Lack of interactivity . Interactive elements such as JavaScript, audio, video, and executable files are prohibited. Color stability . The document must use a stable color model to ensure long-term display consistency. Prohibition of external dependencies . You may not refer to external resources that may change or disappear over time. PDF/A subtypes : PDF/A-1: Based on the PDF 1.4 standard. It is divided into two parts: PDF/A-1a for full compliance, including structure tags for accessibility, and PDF/A-1b for basic visual compliance. PDF/A-2: Based on the PDF 1.7 standard. Includes improved support for embedded annotations, layers, transparency, and compression. It is also divided into compliance levels: PDF/A-2a, PDF/A-2b, PDF/A-2u. PDF/A-3: Extends PDF/A-2 allowing to build in embedded files of any format (including, for example, XML, CSV, or CAD files). It is also divided into compliance levels: PDF/A-3a, PDF/A-3b, PDF/A-3u. 3. PDF/E PDF/E is a subset of the PDF format designed specifically for engineering, architecture, and construction professionals. This standard addresses the need for sharing, viewing, and printing dynamic technical documents, including diagrams, drawings, and 3D graphics. Main characteristics of PDF/E : Support for complex graphics . Including layers, transparency, 3D models, and interactive elements. Metadata . Enhanced metadata for improved search and management of document content. Precise geometry . For accurate reproduction of geometric objects such as lines, curves, and surfaces. Embedded files . Ability to include related or source files such as specifications or CAD data. Why so many formats? Various industries have different needs. The creation of specialized PDF subsets allows us to meet these needs without creating an entirely new standard. These profiles ensure standardization, predictability, and reliability for specific applications. Are these formats available in FastReport .NET? FastReport .NET has most export formats, only PDF/E is missing. These formats can be used both in the designer and the application code. To select the desired format in the designer, click "Save" and "PDF format." Then go to the "Settings" tab and select the needed format. At the end, we will receive the required file in the desired format. To export to a specific format, we need to create an application, connect the FastReport package, and write the required code. Below is an example of how to save a PDF as PDF/A. ``` Report report = new Report(); report.Load("PathToYourReport.frx"); // Setting up PDF export PDFExport pdfExport = new PDFExport(); // For export to PDF/A format pdfExport.PdfCompliance=PDFExport.PdfStandard.PdfA_2a; // You can select the desired compliance level report.Prepare(); report.Export(pdfExport, "OutputPath.pdf"); ``` Conclusion Although there are many PDF subtypes, each was developed with a specific purpose and to meet the needs of a specific industry. The choice is entirely yours, which format and for what purposes you need it. Tags: .NET, Export, FastReport, PDF ### Peculiarities of built-in Chrome PDF viewer URL: https://www.fast-report.com/tr/blogs/chrome-pdf-viewer Summary: Let's take a closer look at how the Features of the built-in Chrome PDF viewer in FastReport works. Find more usefull tips and articles in our blog. Let's take a closer look at how the Features of the built-in Chrome PDF viewer in FastReport works. Find more usefull tips and articles in our blog. Let's take a closer look at how the Features of the built-in Chrome PDF viewer in FastReport works. Find more usefull tips and articles in our blog. The PDF format is so prevalent in the document flow, that is quite rightly called it the most popular in this area. Such a document is self-sufficient, it can include graphical information, special fonts, and more. There are many free software for viewing PDF files. Modern browsers also allow you to do this. For example, Google Chrome has its own built-in viewer for PDF documents. However, the Chrome PDF Viewer functionality is rather limited, compared with the Acrobat Reader. There is one more feature, which few people know. Chrome does not fully supports the PDF standard. This manifests itself when you print a document that contains the dotted line. These lines are displayed correctly when viewed in Chrome PDF Viewer, but when you print the document, they will not. Programmers from FastReport preoccupied by this problem. And in FastReport .NET (starting with version 2016.2.13) exported to PDF report can correctly display dotted lines when printing from Chrome PDF Viewer. To this end it was decided to depart from the PDF standard and draw dotted and dash-dotted lines by using segments of conventional lines. If you are using other means of generating PDF documents, remember the problem with the dashed lines when printing from Chrome PDF Viewer! Let's consider the situation when the error of printing the dotted line in Chrome PDF Viewer can cause serious consequences. For example, was formed a document for cutting sheet material in which the dashed lines are used. The file has been sent by mail. The manager received the letter and opened it in Chrome. The browser was use default built-in PDF viewer. Unsuspecting manager sends the document to print after previewing (where everything is displayed correctly). The document is printed incorrectly, but sure it is correct, the manager transmits it to the cutting. As a result, the master performs the job incorrectly. So, relying on the browser's built-in PDF viewer, you can get the major problems in the workplace. It is therefore important to use the professional tools. Tags: .NET, FastReport, PDF ### Performance evaluation of the new version of FastReport .Net 2017.1.0 URL: https://www.fast-report.com/tr/blogs/performance-evaluation-net With the release of the new version FastReport.Net 2017.1.0 we got a significant acceleration of report building, exporting, and reduced memory consumption. These changes have prompted me to make a comparison test of the "old" and the "new" versions. Testing technique For testing we will build a report and make its export to multiple formats: PDF, XLSX, HTML export with layer method (because it is used in web reports).   At the same time, exports time will be measured  as well as the size of the file. First let’s test the version 2016.4.0, then - the new 2017.1.0. Let’s take the most popular template Master-Detail Report. XML data base. I've done simple enough application: Here a  Multi page is a usual multipage report, and Unlimited page  is a report with enabled property UnlimitedHeight. This wat we use two almost identical report, but one of them will have a unlimited page. Here I must point out that the size of this report is limited to 100 MB. Exceeding this limit will still create new pages. To make the unlimited report, open it in the designer. In the Property inspector, select the page of the report and set UnlimitedHeight property = true, or UnlimitedWidth = true if your report grows in width. For the measurements we use the built-in FastReport profiler: Profiler.Start(); - to start; Profiler.Stop(); - to stop and show result. I'm starting each export in turns and recording the results of profiling. By the way, profiler displays the results in a MessageBox: Measurement results For a typical multipage report time of building mostly got reduced. However, not for all reports: when exporting to PDF format time of building increased slightly. Apparently not all optimization has been completed. For the same multipage report memory consumption is reduced considerably. And what about the "unlimited" report? Here’s the same thing. Time of construction reduced for each dimension. As well as memory consumption – it has strongly reduced. For each dimension, except PDF. But the difference is minimal. For those who prefer in tabular form: Measurements version 2016.4.0 Multi page Unlimited page Размер, Kb Время, ms Размер, Kb Время, ms Prepare 1336 875 4040 875 PDF 87396 7031 81986 7220 XLSX 23092 1547 18784 1734 HTML 7354 2897 50576 1954 Measurements version 2017.1.0 Multi page Unlimited page Размер, Kb Время, ms Размер, Kb Время, ms Prepare 1020 735 1088 703 PDF 85482 7167 82654 7149 XLSX 16512 1359 16228 1640 HTML 2445 2725 9180 1890 As you can see, the overall picture is significantly improved in the new version. See how memory consumption decreased for the HTML report with dimensionless page. Unlike 2016.4.0 memory consumption has decreased from 50576 to 9180Kb. Value has improved by more than 5 times! But this is the most used reports, for the web. Excellent job! What has changed inside? In versions below 2016.4.4 used ExportPage method. It received the entire page to move then through all the objects and save them in the desired format. Then the page was removed from memory and next one was taken. If the totals were tabular formats, all of it accumulated in the intermediate matrix. If your report was not very big, you do not notice the problems. However, with the advent of "unlimited page" (UnlimitedHeight and UnlimitedWidth), there were problems - memory consumption. It was decided to move to Band's data transfer to export. This has greatly reduced memory consumption. FastReport team thoroughly worked and reworked the core of generator. However, the issue with the matrices is still not resolved because they occupy only one band, but grow in size. But it's just a matter of time. In tests, we found that memory consumption for the unlimited pages noticeably reduced. But the time of construction in some cases slightly increased. However, not much. So, as we have seen, much work has been done and performance improved significantly. This is especially noticeable for HTML export, which is extremely valuable for Web-based reporting. Tags: .NET, .NET, FastReport, FastReport ### Persian Calendar in the Report URL: https://www.fast-report.com/tr/blogs/persian-calendar-document Summary: Coverting the date format for the persian users. Coverting the date format for the persian users. Coverting the date format for the persian users. Did you know that different countries have different date formats? When you make a multilingual report, or a report for a country where they speak Persian (Farsi), it is important to bring up dates in the correct format. By default, FastReport uses the European date format, but the .NET tools allow converting it into different formats. Thus, our task is to convert the date into the Persian format. For example, our report has an expression [Date], bringing up today’s date: The expression [Date] gets the current system date in the DateTime format, but the value of the text report after all processing is the String. Let us create a new function in the report script: ``` private void ConvertToPersianDate(object sender, EventArgs e) ``` We will evoke this function from text objects. We create a temporary variable, which will convert the text of the object into DateTime: ``` DateTime d = DateTime.Parse((sender as TextObject).Text); ``` “sender as TextObject” is the address to the object which evoked the function. We may use the functions and properties of an object if we address it in such a way. After that, we will need the PersianCalendar object, which will convert the date into the Persian format: ``` PersianCalendar pc = new PersianCalendar(); ``` Note that this object is stored in the System.Globalization library, and it must be indicated in the “using” section. Then we must change the text of the object. Consider this line in more detail: ``` (sender as TextObject).Text = string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d)); ``` Here we set the text of our object. The value will be in the format year/month/day, because we use the functions of the PersianCalendar which get the respective values. The code section where the text is set can be edited as you wish. For example, the code for the date in the day.month.year format looks like this: ``` "{0}.{1}.{2}", pc.GetDayOfMonth(d), pc.GetMonth(d), pc.GetYear(d) ``` As a result, we get the following function: ``` using System.Globalization; namespace FastReport { public class ReportScript { private void ConvertToPersianDate(object sender, EventArgs e) { // Converting to DateTime format DateTime d = DateTime.Parse((sender as TextObject).Text);   // Creating an object for conversion PersianCalendar pc = new PersianCalendar();   // Creating a string using PersianCalendar // It is possible to change the string template (sender as TextObject).Text = string.Format("{0}/{1}/{2}", pc.GetYear(d), pc.GetMonth(d), pc.GetDayOfMonth(d)); } } } ``` Add the function to the AfterData event of the relevant object. Now the date looks like this: To use other functions related to time, you can consult the following table:  GetDayOfWeek(),  Day of week  GetMonth(),  Month  GetDayOfMonth(),  Day of month  GetYear(),  Year  GetHour()  Hour  GetMinute()  Minute  GetSecond()  Second Now you know how to change the format of date in your report. This article may help in changing the format to (year, month, day). This format is used in Japan, China, North Korea, South Korea, Taiwan, Hungary, Lithuania, and Iran; also, it is used as a collateral one in some European and Asian countries. Tags: .NET, .NET, FastReport, FastReport ### Pharmacode in FastReport .NET URL: https://www.fast-report.com/tr/blogs/barcode-pharmacode-net Summary: Let's take a closer look at what Pharmacode QR-code in FastReport .NET is. Find more usefull tips and articles in our blog. Let's take a closer look at what Pharmacode QR-code in FastReport .NET is. Find more usefull tips and articles in our blog. Let's take a closer look at what Pharmacode QR-code in FastReport .NET is. Find more usefull tips and articles in our blog. In this article we are going to introduce and explore a new type of barcode in FastReport .NET - Pharmacode. One can guess from the name of the barcode, that it is related to pharmaceutical industry. Pharmacode is a binary code, which was developed by a German company LAETUS GMBH specially for pharmaceutical packaging. This code is widely used as a pharmaceutical product packaging control system. As a part of an automated packaging system, Pharmacode allows you to scan and detect pharmaceutical shipments easily by using universal identifiers. It is also easy to determine, whether the batch is mixed with other drugs by using scanners. Pharmacode is used in pharmaceutical industry as a part of their package management system and it is specifically designed to guaranty reading, despite possible misprints and typos. Also, to ensure that the rest of the package, apart from its code, is correctly printed, Pharmacode can be printed in multiple colors, as opposed to barcodes intended for reading by a laser or a laser emulation. This is possible because Pharmacode is scanned by special white color scanners LAETUS. This makes Pharmacode a very practical format for printing on packagings or documents that do not contain black ink. As it was mentioned earlier, Pharmacode can be printed in different colors. Both the code itself and the background color may be different from the white and black colors. There is a special specification code color combination and background used depending on the type of a scanner for reading. For example, standard black-and-white scanners perceive only a code and a contrasting background, whereas special scanners that recognize the color do not have strict limitations. Unlike other 1D barcodes, Pharmacode stores data in binary rather than decimal. In addition, Pharmacode can only represent single integers from 3 to 131070. The smallest number of lines is equal to 2 for the number 3 and the maximum value is 16 for 131070. Pharmacode should be read from right to left, which makes Pharmacode unique among other linear barcodes. They usually have a start and a stop character. If you read the code from left to right, you'll get an entirely different sequence of numbers. The Pharmacode creator LAETUS describes barcode standard in the document PharmaCode Guide. Here is an example of Pharmacode: FastReport.Net allows you to create such codes in your reports. You can design a package immediately with a barcode. To add a code to your report use a side toolbar, namely the component Barcode: Place the barcode object on the report page. For editing you need to double - click on the added component: In the function of the code values you can enter a numerical sequence, specify a function, select a report variable or a value from the database. In barcode propertiesy ou can change: the interval between lines (WideBarRatio), the code height (Height), displaying of numbers (ShowText). What is more important - you can set the code color and background color. To set the background color, use the feature "Fill -> Color". To change the code color - "Barcode -> Color": In such a way it is possible to set any combination of colors and background color code. However, one should still adhere the standard of colors combination for Pharmacode: Thus, the number of available FastReport .NET barcode formats has increased to 25. That covers all modern types of barcodes and extends the use of the reporting tool in pharmaceutical industry. Tags: .NET, FastReport, Barcode ### Please participate in our survey URL: https://www.fast-report.com/tr/news/survey-training-fastreport-vcl Summary: Please participate in our survey Please participate in our survey Загрузка... ### Plugin for importing data from .XLSX to FastReport .NET URL: https://www.fast-report.com/tr/blogs/plugin-import-excel-dotnet Summary: Expanding the number of data sources for FastReport .NET 2022.2 using a plugin to connect files in the format .XLSX. Expanding the number of data sources for FastReport .NET 2022.2 using a plugin to connect files in the format .XLSX. Expanding the number of data sources for FastReport .NET 2022.2 using a plugin to connect files in the format .XLSX. With the release of FastReport .NET 2022.2, we added a plug-in to connect .XLSX files as a data source. To use it, you must first build the project: С:\Program Files (x86)\FastReports\FastReport.Net\Extras\Core\FastReport.Data\FastReport.Data.Excel After building the project, you will need to add the plugin to the application in one of two ways. 1. Connecting the plugin through the designer: 2. Add the plugin as a dependency when starting the project and register it in the code with the following command: FastReport.Utils.RegisteredObjects.AddConnection(typeof(ExcelDataConnection)); To create a connection to Excel, you need to click on the "Data" tab in the designer, and select the "Add Data Source" item. In the window that appears, click on the "New Connection" button. To connect, you need the path to the .XLSX file. If there are no problems with accessing the file, then a list of tables will appear after clicking the "Next" button. When connecting a table, you must check the box to the left of the table name. After that, you can complete the connection. Upon completion of the data source connection, you need to connect a band to it. The final report will use the data from the created connection to Excel. An example of connecting to Excel from code: ``` // Create ExcelDataConnection instance var connection = new ExcelDataConnection(); // Set connection string connection.ConnectionString = @"C:\Matrix With Rows Only.xlsx"; // Initialize all table connection.CreateAllTables(); // Set name connection connection.Name = "NewConnection"; // Create Report instance var report = new Report(); // Add connection to report report.Dictionary.Connections.Add(connection); // Set connection show connection.Enabled = true; // Choose all tables and connect it to the report foreach (TableDataSource table in connection.Tables) { table.Enabled = true; } ``` Because of executing this code, we can see a new connection with tables in the designer. This will be shown in the list of available connections. It is worth noting that the names of the "sheets" are used as the table name, and the names of the columns are used as the field names. As you can see, it is now possible to create a connection to Excel and use the data stored there. Tags: .NET, .NET, FastReport, FastReport, Excel, Excel, Designer, Designer, Plugin, Plugin, XLSX, XLSX ### Pre-registration of data sources before create a new report URL: https://www.fast-report.com/tr/blogs/pre-registration-data-sources In order to send a data source to a report it must previously be pre-registered in the report. Then, within the report select an available source from the list and only after that - start to work. It would be great if the data source could be available to a paste when you open the report designer. Better yet, if it was already selected in the report designer. In this case, you could immediately begin to develop a report, not worrying about the data. Such an approach would avoid the routine work during the extensive report development. Make registration of a data source and its automatic choice in a report at the launch of the designer - not a difficult task. The main problem is to keep the registered data source when creating a new report using the File menu. The essence of the method that I want to introduce - to intercept the process of creating a new report by using the File menu. Let's consider the following example. Create an application with a form and a single button. The required for work libraries are: ``` using FastReport; using FastReport.Utils; using FastReport.Data; using FastReport.Design; using FastReport.Wizards; ``` Declare the data source and then  create it: ``` private DataSet FDataSet; private void CreateDataSource() { FDataSet = new DataSet(); FDataSet.ReadXml(Environment.CurrentDirectory + "//nwind.xml"); } ``` In this case, I use XML database from the FastReport .Net package. Create a method of data source registration : ``` private void RegisterData(Report FReport) { FReport.RegisterData(FDataSet, "NorthWind");   // activate all data sources by default foreach (DataSourceBase source in FReport.Dictionary.DataSources) { source.Enabled = true; } } ``` Here, the loop iterates through all the data sources that are registered in the report and activates them. Thus they will be immediately available in the data window. Call an event handler of starting Report Designer: ``` private void DesignerSettings_DesignerLoaded(object sender, EventArgs e) { (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction); } ``` Add a custom handler for the event of creation the new report from the File menu. Now we need to write the custom handler. It will create a new, blank report with already added data source: ``` void cmdNew_CustomAction(object sender, EventArgs e) { Designer designer = sender as Designer;   //StandardReportWizard wizard = new StandardReportWizard(); // you can use any wizard form package BlankReportWizard wizard = new BlankReportWizard(); wizard.Run(designer);   RegisterData(designer.Report); // refresh data tree view designer.SetModified(this, "EditData"); } ``` Here we create an instance of a blank report or run the "standard report wizard." It's your choice. Then open a new report in the designer. Re-register a data source and update the list in the data tree. It remains to write the handler pressing:  ``` private void button1_Click(object sender, EventArgs e) { Report FReport = new Report(); Config.DesignerSettings.DesignerLoaded += DesignerSettings_DesignerLoaded; CreateDataSource();   // FReport.Load("myreport.frx"); // load report RegisterData(FReport); // register data before design FReport.Design(); } ``` Create a copy of the report object. Assign a handler of loading report designer, which we have written, instead of the standard one. Create a data source. Now you can download the report, or not do it. Then it will be created empty report. Before calling the designer is required to register the data. Now, with the launch of the designer, the database tables will be displayed immediately in the "Data" window. Also when creating a new report from the File menu, the data source will be added. In this article I showed you how to intercept the process of creating a new report, if to create it via the File menu. The same principle can override other actions of the designer, such as Save. Tags: .NET, .NET, FastReport, FastReport ### Press about us URL: https://www.fast-report.com/tr/press_about_us Summary: Press about us Fast Reports. Press about us Fast Reports. Press about us Fast Reports Press about us Fast Reports. Press about us Fast Reports. Press about us Fast Reports Report server for small business — Reporting For Info The manager of reports — Reporting For Info Convert file .FP3 to .PDF - Indonesia ### Price of FastReport 4 URL: https://www.fast-report.com/tr/news/price-fastreport-4 Summary: Price of FastReport 4 Price of FastReport 4 FastReport 4 editions  Basic   $79 Standard   $179 Professional  $249 Enterprise   $349 Upgrade from FR3 (purchase date after May 1st, 2006 is a FREE upgrade  to the same FR4 edition) Upgrade Basic   $39 Upgrade Standard   $99 Upgrade Professional   $139 Upgrade Enterprise   $199 Basic to Standard   $99 Basic to Professional   $169 Basic to Enterprise   $269 Standard to Professional   $69 Standard to Enterprise   $169 Professional to Enterprise   $99 ### Privacy Policy Statement URL: https://www.fast-report.com/tr/cloud-privacy PLEASE READ THIS DOCUMENT CAREFULLY. IT CONTAINS IMPORTANT INFORMATION THAT YOU SHOULD KNOW BEFORE USING THE WEBSITE OR SERVICES. BY USING THE WEBSITE OR SERVICES, YOU WILL BE DEEMED TO HAVE ACCEPTED FAST REPORTS’ PRIVACY POLICY. Your use of the Website and Services (as each of these terms are defined in this Privacy Policy), including any dispute concerning privacy, is subject to this Privacy Policy. By using the Website or Services, you accept the practices set forth in this Privacy Policy and the Terms of Service. Fast Reports Inc. reserves the right to modify this Privacy Policy at any time by posting such changes on this page. Please check the revision date below to determine if this Privacy Policy has been modified since you last reviewed it. Your continued use of any portion of the Website or Services following posting of the updated Privacy Policy will constitute your acceptance of the changes. This privacy statement was last updated on March 12, 2021. Fast Reports Inc. and its affiliates (collectively, “Fast Reports”) have created this privacy statement in order to disclose its information gathering and dissemination practices for its website located at  https://fastreport.cloud/  (“Website”) and the services offered and provided through the Website (“Services”). Table of Contents Background Information Word from Fast Reports A. Information We Collect Information We Collect Through the Website User Content Providing Information to Fast Reports User Account Third Party Websites Third Party Applications Information Relating to Children California Online Privacy Protection Act Notice Cookies and Web Beacons B. Use and Disclosure of Information How your Information is Used Disclosure of Information to Third Parties Change in Control Disclosure of Information to Other Users Securing the Transmission and Storage and Storage of Information C. Choices Available to You D. Rights of European Users under the GDPR Data Controller Data Processor Consent Legal Basis for Processing GDPR Rights: Right of Confirmation Right of Access Right to Rectification Right to Erasure Right of Restriction of Processing Right of Data Portability Right to Objection to Automated Decision Making Right to Objection Processing Retention Policy Cross Border Data Transfers Data Protection Officer E. Privacy-Related Inquiries and Complaints Background Information Upon reading this Privacy Policy, you will be informed of the following: description of the types of personally identifiable information (yours and that of third parties) collected through the Website and Services; how the collected personally identifiable information is used; with whom the collected personally identifiable information may be shared; the choices available to you regarding the collection, use, and distribution of such information; security procedures that are in place to protect against the loss, misuse, or alteration of personally identifiable information under Fast Reports’ control; and instructions how you can access and correct inaccuracies in the information collected about you. A note about the Website and Services: some of our Services, data centers, service providers, affiliates or operating partners and servers may be located in other countries. As such, the Website and Services may be subject to the laws of numerous countries and jurisdictions, some of which may require us to disclose certain information about our users. We are committed to keeping your information private, while still complying with all applicable laws in jurisdiction in which we operate. Should you have any concerns or believe that there are problems or issues relating to compliance with the policies outlined in this Privacy Policy, please notify us by e-mail at:  info@fast-report.com A Word from Fast Reports Fast Reports has a strong commitment to providing superior service to all of our customers and visitors and particularly respecting their concerns about privacy. We understand that you may have questions about how the Website and Services collect and use your information. Accordingly, we prepared this statement to inform you of the privacy principles that govern the Website and Services (the “Privacy Policy”). We will not sell or rent your personally identifiable information or a list of our customers to third parties. However, as described in more detail below, there are limited circumstances in which some of your information may be shared with third parties, under strict restrictions, so it is important for you to review this Privacy Policy. This Privacy Policy contains numerous general and technical details about the steps we take to respect your privacy. We have organized this Privacy Policy by major processes and areas so that you can quickly link to the information of most interest to you. The bottom line is that meeting your needs and expectations forms the foundation of everything we do, including protecting your privacy. Changes in Privacy Policy We want you to always be aware of what personal and other information we collect, how we use that information, and under what circumstances we may disclose it. All personal information that we collect will be handled according to the Privacy Policy in effect at the time the information is collected. If the Privacy Policy changes in any significant respect in the meantime, we will not (without your permission) use your personal data in a manner that is inconsistent with the Privacy Policy in effect at the time your information was collected. From time to time, we may find the need to make changes to this Privacy Policy. This Privacy Policy may be amended by Fast Reports upon notice given through the Website or via e-mail. Please check the Privacy Policy published on this Website regularly to ensure that you are aware of all terms governing your use of this Website. A. INFORMATION WE COLLECT Information We Collect Through the Website This Website does not collect personally identifiable information from your computer when you browse the Website and request pages from our servers. This means that, unless you voluntarily and knowingly provide us with personally identifiable information, we will not know your name, your e-mail address, or any other personally identifiable information. When you request a page from our Website, our servers log the information provided in the HTTP request header, JavaScript or similar technical tools, including the IP number, the time of the request, the URL of your request and other information. We collect this information in order to make our Website function correctly and provide you the functionality that you see on the Website, as our servers use this information to deliver to you the pages on this Website. We also use this information to better understand how visitors use our Website and how we can better tune our Website, its contents, and functionality to meet your needs. However, this information is not associated with any personally identifiable information of persons browsing the Website. When you use the Website, Fast Reports or trusted third parties authorized by Fast Reports may also collect certain technical and routing information about your computer (also known as environmental variables) to facilitate your use of the Website and the Services enabled thereby. When you browse the Internet, your Internet browser (such as Mozilla Firefox, Google Chrome, Safari, Edge, or Microsoft Internet Explorer) automatically transmits some information to Fast Reports every time you access content on one of our internet domains. Examples of such information include the URL of the particular Web page you visited, the IP (Internet Protocol) address of the computer you are using, or the browser version that you are using to access the Website. All of this information may be collected by Fast Reports and used to help improve our offerings to you. User Content User Account holders may be permitted to upload certain content onto the Website and Services (“User Content”). This information shall be private and, except in accordance with this Privacy Policy, will not be disclosed to third parties without your prior permission. Providing Your Information to Fast Reports You never have to provide personally identifiable information to Fast Reports. However, should you choose to withhold certain required information, Fast Reports may not be able to provide you with some or all of the Services. Some of the information we ask you to provide may be identified as mandatory or optional. If you do not provide the mandatory information with respect to a particular activity, you may not be able to engage in that activity or make such a purchase. Fast Reports will inform you of the mandatory or optional nature of the requested or required information. Fast Reports is the sole owner of the information it gathers on the Website and Services. Fast Reports will only share your information with outside parties in ways that are described in this privacy statement or if we are required to do so by law or in the good-faith belief that such action is necessary in order to conform to the edicts of the law, cooperate with law enforcement agencies, or comply with a legal process served on us and otherwise to comply with any current or future laws and regulations applicable to Fast Reports. You may be provided an opportunity on the Website to allow Fast Reports to contact you from time to time regarding company news and product or Services updates. In order to do so, you may be required to provide certain personally identifiable information to Fast Reports. Fast Reports will treat this information in accordance with the policies set forth in this Privacy Policy. When you submit personal information to Fast Reports through the Website, you understand and agree that this information may be transferred across national boundaries and may be stored and processed in any of the countries in which Fast Reports and its affiliates and subsidiaries maintain offices. You also acknowledge that in certain countries or with respect to certain activities, the collection, transferring, storage, and processing of your information may be undertaken by trusted vendors of Fast Reports. Such vendors are bound by contract not to use your personal information for their own purposes or provide it to any third parties. Fast Reports may establish relationships with various service providers whose services may become available to you from the Website or from other websites that are linked to the Website. Typically, these providers would offer services that Fast Reports customers might find useful, such as those that can be used in conjunction with the Website and Services. In order to use these services, you may be required to provide personal information to the services providers. Unless expressly provided to the contrary, personal information that you provide while you are visiting a provider's website will be subject to the privacy policy posted on such site, and personal information that you provide while on the Website in conjunction with a provider’s service will be subject to this Privacy Policy. For instance, credit card information entered as part of the filling out the purchase form or registration process is collected by the third-parties registration services and subject to their respective privacy policies. You should be aware that our agreements with these service providers often provide that they will share with Fast Reports personal information collected from you. In such instances, Fast Reports may use this information in a manner consistent with this Privacy Policy. User Account When registering for a User Account or otherwise contacting Fast Reports in connection with your interest in purchasing Fast Reports products or services, Fast Reports may ask you to provide certain information. Such information may include your name, e-mail, and other personally identifiable information. It is completely optional for you to register for a User Account or engage in activities requiring a User Account or provide any personal identifiable information. However, certain information and proper identification may be required in order for you to engage in a business relationship with Fast Reports. Once you create a User Account, you will be deemed a Registered User. You may also request to change information associated with you User Account by contacting us at  info@fast-report.com . If you wish to deactivate your User Account, you may contact us at  info@fast-report.com . When you deactivate your personal account, all information stored and maintained as part of your account may be retained for archival, backup and record purposes. Third Party Websites The Website may contain links to websites owned and operated by third parties. These links are presented for your convenience and information. Fast Reports does not control these third-party websites and is not responsible for their privacy practices or content. Fast Reports does not control the information collection and distribution policies on such websites other than those that are under the control of Fast Reports itself. Content on third party websites may not reflect products, services, and/or information provided by Fast Reports. Third parties may also set their own cookies and/or use web beacons, which may be used to identify some of your preferences or to recognize you if you have previously had contact these third parties. Fast Reports does not control the use of such technology by third parties, the information they collect, or how they use such information. You should direct all concerns regarding any third-party website to the site administrator or webmaster of such website. Third Party Applications Fast Reports may make third party applications available to you through the Website or Services. The information collected by Fast Reports when you enable a third-party application is processed under this Privacy Policy. Information collected by the third-party application provider is governed by the provider’s privacy policies. Information Relating to Children The Children's Online Privacy Protection Act (COPPA) was passed by the U.S. Congress in November 1998. COPPA provides parents with specific rights regarding their children's privacy. For additional information and resources on COPPA, please visit the Federal Trade Commission Web site at  http://www.ftc.gov/ . The Fast Reports Website and any Software or Services available on that site are not directed at children under 13 years of age and, therefore, COPPA does not apply. However, we recognize that children under the age of 13 may potentially access this Website and subscribe to the newsletter, purchase Software and Services, or download software programs. The collection of information is covered above. Parents and Legal Guardians may request from us to review, delete or stop the collection of the personally identifiable information of their child. You may do so by contacting us by email at:  info@fast-report.com . California Online Privacy Protection Act Notice Fast Reports does not track users over time and across third party websites to provide targeted advertising and therefore does use do not track (DNT) signals. However, some third-party sites may keep track of your browsing activities when they serve you content, which enables them to tailor what they present to you. If you are visiting such sites, your web browser may allow you to set the DNT signal on your browser so that third parties (particularly advertisers) know you do not want to be tracked. Fast Reports does not authorize the collection of personally identifiable information by third parties and third parties cannot collect this information unless you provide it to them directly. Cookies and Web Beacons The Website uses “cookie” and “web beacon” technology. “Cookies” are short pieces of data generated by a web server that a website stores on a user’s computer. Certain pages on our Website may require the use of a cookie for purposes of keeping information you enter on multiple pages together. Cookies also enable us to customize our Website and offerings to your needs and provide you with a better online experience with us. In addition, cookies are used to: measure usage of various pages on our Website to help us make our information; more pertinent to your needs and easy for you to access; identify and categorized the internet webpages from which the visitor came to the Website and observe the browsing patterns; and provide functionality such as online orders, Fast Reports services and other functionality that we believe would be of interest and value to you. The types of cookies that we use are referred to as “session” cookies and “persistent” cookies. Session cookies are temporary and are automatically deleted once you leave the Website. Persistent cookies remain on your computer hard drive until you delete them. We do not use cookies to gather information concerning your visits to other websites, nor ascertain any personally identifiable information about you apart from what you voluntarily provide us in your dealings with Fast Reports. Cookies do not, under ordinary circumstances, corrupt or damage your computer, programs, or computer files. In addition, the service providers we use to serve and host our advertisements, and/or deliver our e-mails use session and persistent cookies, to track the number of times the Website is accessed and whether the site was accessed from an advertisement. There are no cookies in the advertisements or e-mails. A cookie is placed on your computer only if and when you click on an advertisement or open the e-mail. The cookie generated from the advertisement or e-mail does not contain any personally identifiable information and will remain on your hard drive until you delete it. You may set your browser to block cookies (consult the instructions for your particular browser on how to do this), although doing so may adversely affect your ability to perform certain transactions, use certain functionality and access certain content on our Website. Web beacons are used in combination with cookies to help website operators understand how visitors interact with their websites. A web beacon is typically a transparent graphic image (usually 1 pixel x 1 pixel) that is placed on a site. As opposed to cookies, which are stored on a user’s computer hard drive, web beacons are embedded invisibly on Web pages and are about the size of the period at the end of this sentence. These web beacons are not tied to personally identifiable information. The use of a web beacons allows the site to measure the actions of the visitor opening the page that contains the web beacon. It makes it easier to follow and record the activities of a recognized browser, such as the path of pages visited at a website. Fast Reports uses the information provided by web beacons to develop a better understanding of how the Website’s visitors use the Website, and to facilitate those visitors' interactions with the Website. Fast Reports may make the aggregate data obtained from web analytics (including from our third-party analytics providers, if applicable) publicly available. If this data is made available, none of the information will be personally identifying information or potentially-personally identifying information. B. USE AND DISCLOSURE OF INFORMATION How Your Personal Information is Used Fast Reports collects information from you in order to record and support your participation in the activities provided by Fast Reports We may use your e-mail address to send a confirmation e-mail when you sign up for a User Account and, if necessary, may use other information you provide to contact you for help to process the purchase or service you have selected. Your personal information also may be used to keep you informed about new services, service upgrades, special offers, and other Services. As described above, Fast Reports may collect information about your use of the Website and Services. This information is collected in aggregate form, without identifying any user individually. Fast Reports may use this aggregate, non-identifying statistical data for statistical analysis, marketing, or similar promotional purposes. Fast Reports recognizes and appreciates the importance of responsible use of information collected on this Website. Without your consent, Fast Reports will not communicate any information to you regarding the Website, Services, or special offers available from Fast Reports or its affiliates, although we may find it necessary to communicate with you regarding your use of the Website, or Services in certain limited circumstances. Except in the particular circumstances described in this Privacy Policy, Fast Reports will not provide your name to other companies or organizations without your consent. Disclosure of Information to Third Parties Although we will always strive to guard your identity, we may disclose your personally identifiable information without your permission in limited circumstances. We will only do so if we have a good-faith belief that disclosure is reasonably necessary to (1) comply with laws, regulations, or government requests or (2) to investigate or protect against harmful activities to our guests, visitors, associates, or property (including the Website or Services), or to others. If we are required by law enforcement or judicial authorities to provide your personally identifiable information, we will only do so upon receipt of appropriate documentation. We may also disclose your information to investigate violation of and enforce our Terms of Service. Please know that we do not take this responsibility lightly. Your privacy is of paramount importance to us. Fast Reports does use the services of third parties, such as e-mail service providers, purchase, shipping and order processing merchants and marketing companies that act as independent contractors on behalf of Fast Reports. These parties are contractually prohibited from using personally identifiable information for any purpose other than for the purpose Fast Reports specifies. We do provide non-personally identifiable information to certain service providers for their use on an aggregated basis for the purpose of performing their contractual obligations to us. We prohibit the sale or transfer of personal information to entities outside of the Fast Reports’ affiliates for their use without your approval. Change of Control In the event that all or substantially all of Fast Reports’ stock and/or all or substantially all assets are transferred or sold to another entity, Fast Reports may transfer personally identifiable information to the acquiring entity. If, as a result of such a business transition, your personally identifiable information will be used in a materially different manner, you will be given choice consistent with our policy regarding notification of changes. Securing the Transmission and Storage of Information Fast Reports operates secure data networks protected by industry standard firewall and password protection systems. Our security and privacy policies are periodically reviewed and enhanced as necessary, and only authorized individuals have access to the information provided by our users. Fast Reports takes steps to ensure that your information is treated securely and in accordance with this Privacy Policy. Unfortunately, no data transmission over the Internet can be guaranteed secure. As a result, while we strive to protect your personal information, we cannot guarantee the security of any information you transmit to us or from the Website or Services. Your use of the Website and Services is at your own risk. We treat the information you provide to us as confidential information; it is, accordingly, subject to our company’s security procedures and corporate policies regarding protection and use of confidential information. After personally identifiable information reaches Fast Reports, it is stored on a server with physical and electronic security features as customary in the industry, including utilization of login/password procedures and electronic firewalls designed to block unauthorized access from outside of Fast Reports. Because laws applicable to personal information vary by country, our offices or other business operations may put in place additional measures that vary depending on the applicable legal requirements. Information collected on the sites covered by this Privacy Policy is processed and stored in the United States and possibly other jurisdictions and also in other countries where Fast Reports and its service providers conduct business. All Fast Reports employees are aware of our privacy and security policies. Your information is only accessible to those employees who need it in order to perform their jobs. C. CHOICES AVAILABLE TO YOU You can always choose whether or not to disclose personally identifiable information and that choice will not prevent you from using the Website. Please note, however, if you should choose to withhold requested information, we may not be able to provide you with some of the Services dependent upon the collection of this information and you will be given an opportunity to “opt-in” and make your preference choices for any items that are optional and which are not prerequisite for our rendering such Services. You can choose at any time to opt-out of receiving emails from Fast Reports by clicking the unsubscribe link at the bottom of any email you receive from Fast Reports or by contacting Fast Reports directly at  info@fast-report.com . If you elect to opt-out, we will not, as applicable, share your personal information with third parties or send you emails. However, we may continue to use your personal information for internal purposes, to enhance your user experience or as necessary to administer the site or comply with applicable law. We reserve the right to send a one-time registration confirmation email, and infrequent service alert messages to users to inform you of specific changes that may impact your ability to use a service that you have previously signed up for, regardless of email contact opt-in status. We also reserve the right to contact you if compelled to do so as part of a legal proceeding or if there has been a violation of any applicable licensing, warranty and purchase agreements. Fast Reports is retaining these rights because in limited cases we feel that we may need the right to contact you as a matter of law or regarding matters that will be important to you. These rights do not allow us to contact you to market a new or existing Service if you have asked us not to do so, and issuance of these types of communications is rare. If you wish to opt out of receiving emails, the sharing or retention of any personal identification information, or otherwise change your personal preferences, you must contact Fast Reports at  info@fast-report.com To ensure that your request is honored, you must provide Fast Reports with information sufficient for us to accurately identify and access your records. The information we require is your full name, address and the email address you provided to Fast Reports when you requested Services or Software. Fast Reports reserves the right to contact you to verify that we have accurately identified your record. D. RIGHTS OF EUROPEAN USERS UNDER THE GDPR Fast Reports complies with the principles of Regulation (EU) 2016/679 of the European Parliament and of the Council “ On the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation)  (“GDPR”). If you are a natural person (“Qualified Individual”) of the European Union within the meaning of the GDPR, you are afforded certain additional rights by the GDPR as further described within this section. Data Controller When and if Fast Reports receives your personal information directly from you through its Website, it performs the functions of a Data Controller, as defined by the GDPR, and has the ability to determine how personal data is collected, for what purposes, and how this data is to be processed. As the controller, Fast Reports has implemented many technical and operational measures to ensure the most complete protection of personal data processed through its Website, and Services. Contact information for the Data Protection Officer can be found below. Data Processor Fast Reports processes your data in accordance with this Privacy Policy. Fast Reports uses industry standard safe guards to secure your information. Consent If you are a Qualified Individual, consents concerning your personal information are handled in compliance with the GDPR. Where and if consent requirements under this Privacy Policy conflict with the GDPR, the GDPR prevails if the regulation applies to you. Legal Basis for Processing Art. 6(1) a. of the GDPR serves as the legal basis for processing operations for which we obtain consent for a processing purpose. If the processing of personal data is necessary for the performance of a contract to which you are a party, as is the case, for example, when processing operations are necessary to provide a service, the processing is based on Article 6(1) b. The same applies to such processing operations which are necessary for carrying out pre-contractual measures, for example in the case of inquiries concerning our products or services. If our company is subject to a legal obligation by which processing of personal data is required, such as for the fulfillment of tax obligations, the processing is based on Art. 6(1) c. If the processing of personal data may be necessary to protect your vital interests or of another natural person, then the processing is based on Art. 6(1) d. Finally, processing operations could be based on Article 6(1) f., if processing is necessary for the purposes of the legitimate interests pursued by our company or by a third party, except where such interests are overridden by your fundamental rights and freedoms under the GDPR. GDPR Rights: 1. Right of Confirmation You may obtain confirmation of whether or not your personal data is being processed. If you wish to exercise your right of confirmation, you may contact Fast Reports and/or its Data Protection Officer. 2. Right of Access You may obtain from information about your stored personal data at any time and a copy of this information. If you wish to exercise your right of access, you may contact Fast Reports, and/or its respective Data Protection Officer. 3. Right to Rectification You may request the rectification of inaccurate personal data. Taking into account the purposes of the processing, you have the right to have incomplete personal data completed, by means of providing a supplementary statement. If you wish to exercise your right of rectification, you may contact Fast Reports and/or its respective Data Protection Officer. 4. Right to Erasure (Right to be Forgotten) You may request the erasure of your personal information by contacting Fast Reports and/or its respective Data Protection Officer. Furthermore, you may delete your User Account information by accessing your User Account settings page on the Applications. Please note that while any changes you make will be reflected in active user databases within a reasonable time, we may retain all information you submit for the prevention of fraud and abuse, analytics, satisfaction of legal obligations, or where we otherwise reasonably believe that we have a legitimate reason to do so, such as for archiving purposes within the public interest. 5. Right of Restriction of Processing You have the right to restrict processing where one of the following applies: The accuracy of the personal data is contested by the data subject, for a period enabling the Controller to verify the accuracy of the personal data. The processing is unlawful and the data subject opposes the erasure of the personal data and requests instead the restriction of their use instead. The controller no longer needs the personal data for the purposes of the processing, but they are required by the data subject for the establishment, exercise or defense of legal claims. The data subject has objected to processing pending the verification whether the legitimate grounds of the controller override those of the data subject. 6. Right to Data Portability You may request to receive your personal data in a structured, commonly used and machine-readable format. You have the right to transmit this data to another controller without interference. Furthermore, you may have the personal data transmitted directly from one controller to another, where technically feasible and does not adversely affect the rights and freedoms of others. 7. Right to Object to Automated Decision Making You may object to decisions based solely on automated processing, including profiling, which produces legal effects or similarly significantly affects you, as long as the decision is not is necessary for entering into, or performance of, a contract between you and Fast Reports; or is not authorized by European Union or Member State law to which you are subject; or is not based on the data subject’s explicit consent. 8. Right to Objection to Processing You may object to the processing of your personal data, unless there are legitimate grounds for the processing within the public interest, or for the establishment, exercise or defense of legal claims. If Fast Reports processes personal data for direct marketing purposes, you shall have the right to object at any time to the processing of your personal data for such marketing. This applies to profiling to the extent that it is related to such direct marketing. If you object to Fast Reports to the processing for direct marketing purposes, then we will no longer process the personal data for these purposes. Retention Policy We only retain the personally identifiable information about you for as long as your User Account remains active or for a limited period of time as long as we need it to provide you with services or otherwise fulfill the purposes for which we have initially collected it, unless otherwise required by law. We will retain and use information as necessary to comply with our legal obligations, archival purposes, resolve disputes, and enforce our agreements. Cross Border Data Transfers If and when sharing of information involves cross-border data transfers, for instance to the United States of America and other jurisdictions. Where the Applications allow for users to be located in the European Union, their personal information is transferred to countries outside of the EU. We use EU Standard Contract Clauses or other suitable safeguards to permit data transfers from the EU to other countries. The Standard Contractual Clauses commit companies transferring and receiving your personal information to protecting the privacy and security of your data. E. PRIVACY RELATED INQUIRIES AND COMPLAINTS Fast Reports takes and addresses its users’ privacy concerns with utmost respect and attention. If you believe that there was an instance of non-compliance with this Privacy Policy with regard to your personal information or you have other related inquiries or concerns, you may write or contact Fast Reports at email:  info@fast-report.com In your message, please describe in as much detail as possible the nature of your inquiry or the ways in which you believe that the Fast Reports Online Privacy Policy has not been complied with. We will investigate your inquiry or complaint promptly. If you are a Qualified Individual, you may lodge a complaint with the data protection supervisory authority in the country where you live if you are unsatisfied with how your complaint is handled by Fast Reports. Please note that if you provide Fast Reports with inconsistent privacy preferences (for example, by indicating on one occasion that third parties may contact you with marketing offers and indicating on another occasion that they may not), Fast Reports cannot guarantee that your most recent privacy preference will be honored. Copyright © 2021 Fast Reports Inc. All rights reserved. The Website, Services, and all documentation are the copyrighted property of Fast Reports Inc. and/or its licensors and protected by copyright laws and international intellectual property treaties. FastReport® and related logo, and all related Product and service names, design marks and slogans are the trademarks and/or registered trademarks of Fast Reports Inc. and/or its affiliates. All other product and service marks contained herein are the trademarks of their respective owners. Any use of the Fast Reports Inc. or third-party trademarks or logos without the prior written consent of Fast Reports Inc. or the applicable trademark owner is strictly prohibited. ### Proud to hire with Jooble! URL: https://www.fast-report.com/tr/news/hiring-with-jooble Summary: Proud to hire with Jooble! Proud to hire with Jooble! Knowing FastReport and being able to work with reporting and DB is an essential skill on the job market for business software developers. We are determined to ensure that using FastReport solutions will always guarantee finding a job easily. The quintessential purpose of Jooble is to connect those who seek jobs with those who offer it. Being "Google" in a job search industry Jooble manages to aggregate all the vacancies from open sources into one compact user-friendly interface that gives access to jobs that are not yet listed on popular platforms or hidden behind the corporate websites. Another important thing is that Jooble does not claim jobs for its own. It is necessary to go to employers' website in order to apply which is crucial for driving additional traffic and reducing hiring process time. Jooble's initiative to help people find jobs all over the world fits well with our own aim to bring reporting to another level. Thus we are glad to announce our partnership with Jooble to help increase awareness about this area of programming and boost the quality level of specialists looking for data visualisation jobs . ### Publisher — the Ideal Solution for Small and Medium-Sized Businesses URL: https://www.fast-report.com/tr/blogs/publisher-solution-for-business Summary: In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. The FastReport product line for creating, storing, and transmitting documents has been expanded with a new development. Since May 2025, it includes products such as Cloud, Corporate Server, and Publisher. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. The FastReport product line for creating, storing, and transmitting documents has been expanded with a new development. Since May 2025, it includes products such as Cloud, Corporate Server, and Publisher. In this article, we will take a detailed look at how these services help address different user needs so that you can choose the solution that best fits your requirements. FastReport Cloud It provides a set of services for creating various documents and reports from text templates and data sources (Postgres, MS SQL, Firebird, XML, CSV, and others) for further processing. It is offered as SaaS, meaning users do not need to worry about allocating computing resources, deploying the solution, or ongoing maintenance. Simply obtain a workspace and focus on more important tasks—creating reports for your business. You can integrate FastReport Cloud into your applications or services regardless of the programming language used in development. It can be connected from projects written in languages such as C#, Java, Kotlin, PHP, JavaScript, Angular, Python, Go, C++, and more. You can get the free version and start using Cloud at this link. However, many large companies prefer to have full control over all processes and require installing a reporting server on their own infrastructure. This is due to security requirements, data storage, and a large number of end users (or integration into their own solutions). In such cases, the right choice is to use the Corporate Server. FastReport Corporate Server This is a scalable dedicated server for generating and storing documents. It supports collaborative work: you can add multiple users, and each will have access to the workspace, templates, reports, data sources, and other resources. The permissions system of the Corporate Server allows setting different access levels for team members or groups. While one group of users creates new document templates, another group builds reports from these templates in PDF format. All the tools for secure operation are integrated into FastReport Corporate Server: private file creation and storage, protected login, access management, and authentication via OpenID. At the same time, the entire infrastructure is hosted within the client’s environment. You get flexible control over document and report generation in accordance with your company's security policies. With extended support, our specialists will help you quickly and effectively configure and fully deploy FastReport Corporate Server within your system. You will be able to start generating reports in no time! We also offer assistance in restoring functionality after any failures. Leave your details through this link , and our manager will contact you to discuss a personalized solution tailored to your business needs. If the requirement to deploy all software solutions within your own environment remains, but the number of users is low, and creating a cluster for processing a large volume of documents is not needed, then you might consider the third option — Publisher. FastReport Publisher It consists of a web interface for working with reports, an online designer, and the core functionality of FastReport. Publisher can be integrated with other enterprise systems (CRM or ERP) for automatic report generation and distribution. You will also have access rights management features. This makes Publisher a useful tool for organizations that need a centralized report management system through a single interface. You can get a trial version on this page , and our manager will provide you with all necessary access. What is the difference between Publisher and Corporate Server? FastReport Publisher is a lighter and more budget-friendly version of the Corporate Server, retaining the most essential features and offering the ability to seamlessly upgrade to the higher-tier product if needed. The differences between Publisher and Corporate Server are outlined in the table available at this link. Additionally, Publisher is easier to install and does not require knowledge of orchestrators (such as Kubernetes). The installation package includes a Setup Wizard, which guides you step-by-step through the configuration process, and with the click of a button, you can launch the solution in a Docker Compose environment. Publisher Corporate Server Cost from $1,990 from $9,650 Deployment with Docker Yes Yes Web Interface Yes Yes REST Interface (Web API) Yes Yes Ability to create and view reports Yes Yes Online Designer (ability to use the designer within the web interface) Yes Yes Connectivity via Desktop Designer Yes Yes Scheduler for scheduled task execution No Yes Share reports via link No Yes Deployment in Kubernetes No Yes Scalability (the system’s ability to handle increased workload when resources are added) No Yes OpenID Authentication No Yes User Groups (access and permission management) Yes* Yes Number of Workspaces 1 2 (additional purchases possible) Number of Data Sources 3 Potentially unlimited quantity   Number of Users 15 Unlimited quantity Number of Administrators 1 3 (additional purchases possible) *Only pre-installed groups are available: Owner, All Users, and Anonymous Users. Creating new groups is not allowed. You can find detailed instructions for using these products in our documentation. Conclusion FastReport offers ready-to-use services, client-server systems, and applications for quick data visualization and automated data processing tasks. You can choose the solution that best fits your business needs — whether it's report generation on third-party servers or within your secure environments. For those who prefer to avoid dealing with orchestrators and want to quickly get a ready-made solution, we recommend using FastReport Publisher .  Please contact our sales department at sales@fast-report.com to select the most suitable solution. Our team is always happy to assist you! Tags: FastReport, Cloud, Publisher, Corporate Server ### Quick look on minimal FastReport.NET report URL: https://www.fast-report.com/tr/blogs/quick-look-minimal-net Have you ever noticed how a report template transformed to the prepared report? Let's look onto code of a very simple report: The single page. The single band on the single page. The single text field on the single band. Let's story it to the report template file: ```   ```  So we have minimal report with single text string on the gray background. Let's do preview of this report And source code of prepared report: ```   ``` Report template stored in prepared report within section . All constant attributes are taken from the section by transforming references via section . For example, refers to the same element in section . An attribute  "name" of element of section is set to value "Page0". By some reason we need increment a number within page name. Now we have name of element within section - it is "Page1". Therefore we link the element in section with the element in section by matching the property "name". Tags: .NET, .NET, FastReport, FastReport ### RAD Studio Reporting with Fast Reports URL: https://www.fast-report.com/tr/news/webinar-studio-reporting-2014 Summary: RAD Studio Reporting with Fast Reports RAD Studio Reporting with Fast Reports RAD Studio Reporting with Fast Reports See what’s new with FastReport and FastCube VCL and FMX You’re invited to join Embarcadero with Fast Reports’ Michael Philippenko and Den Zubov for two new webinars on reporting for RAD Studio, Delphi and C++Builder developers. Webinar 1: New Report Generator for Delphi FastReport VCL 5 Thursday, May 22, 2014 6AM San Francisco / 9AM New York / 2PM London / 3PM Milan 11AM San Francisco / 2PM New York / 7PM London / 8PM Milan 5PM San Francisco / 23-May 9AM Tokyo / 23-May 10AM Sydney FastReport VCL is a modern solution for integrating Business Intelligence in your software. Topics covered in this webinar include: What is new and how to use it in FastReport VCL 5 New kinds of report interactivity News in objects and properties Changes in web-reporting and more! Webinar 2: FastCube VCL 2 and New FastCube FMX - OLAP Components for your Software! Tuesday, June 3, 2014 6AM San Francisco / 9AM New York / 2PM London / 3PM Milan 11AM San Francisco / 2PM New York / 7PM London / 8PM Milan 5PM San Francisco / 4-June 9AM Tokyo / 4-June 10AM Sydney FastCube enables you to analyze data and to build summary tables (data cut-offs) as well as create a variety of reports and graphs both easily and instantly. In this webinar you will learn: What is new in FastCube VCL 2 What the difference in VCL and FMX versions How to estimate performance of FastCube on your own data and application ### RAD Studio Reporting with Fast Reports - Questions and Answers - Part I URL: https://www.fast-report.com/tr/blogs/rad-studio-fastreport-fmx-vcl Thanks a lot all attendees of our webinar with Embarcadero Technologies. We hope than you are got new useful information and as usually publishing questions and answers from this event. Q: Can an Excel report include formulas? A: Not yet, but we're planning to implement such feature. Q: A program may have many responsibilities, many steps, report-generation being only one of them. After generating the report, the program should be able to continue on immediately with its remaining responsibilities, with no left-over impact on the program's available memory and CPU time. So, is it possible to detach a report from the program that generated it? A: You can create reports in threads. Q: Can you force FastReport 5 to respect XLS/XLSX worksheet cell boundaries (e.g., EVERY cell in column B has exactly the same width), so that each (non-empty) worksheet cell contains exactly one value of the appropriate type (number, text, date, etc.), and each worksheet column is sized to fit? A: Sorry, not clearly understand what do you mean. Q: Can you design a report to fit cleanly into Excel cells, one value per cell, without page boundaries? A: Yes, we have matrix export to excel so each object will be in separate cell. Q: is there an upgrade path for EDN version to pro? A: Delete Embarcadero Edition. And setup Pro one Q: Question for David. When do we expect XE7 ???? A: When it's done. ;-) Q: will all these exports be available with the XE6 version of Fast Reports? A: Do you mean Embarcadero edition ? Q: Question for David. When do we expect XE7 ???? A: https://edn.embarcadero.com/article/43677 Check out the roadmap. Q: Yes the embarcadero Edition not Pro A: No, XE6 uses FR4 version. We're planning to deploy FR5 starts from XE7. Q: I assume the code and events are not available with the Embarcadero version? A: Yes, the script is not available in EDN version. You can always look at differences between editions here Q: I have an issue with Barcodes ... when I try to print a Barcode type Code 39 trough FR4 and when I assign a short number like a 1 .. I can't read with a barcode scanner ... do you know why happen this ? A: This can be because of printer resolution. You can try to set Zoom property or BarWideRatio property. Q: Oops... part 2. The web-report needs to export to pdf A:  Live Demo is available on our web-site - with export to pdf:  Q: Can you please show us how to incorporate a FR report into a Windows Service application. The application is multi-threaded so the report must be thread-safe. A: Not just now :) Anyway you need Enterprise Edition for web-reporting Q: Are there example reports included with FR4? Learn by example, easier to modify a report that almost does what I want, would make it easier to get into. A: Yes, the main demo has a lot of report. You don't need even to install components to try them. You can find compiled demo with reports here  Q: Where in XE5 or 6 is FR demo reports (actual srce reports, not compiled). A: If you need an examples about how to use Fast Report from code you can find them in Demo folder after install components. But if you need only to see report , the main demo will work. It has a designer and report templates, so you can always open any template and see how it works. Q: Where in XE5 or 6 is FR demo reports (actual srce reports, not compiled). A: FR4 install can be found in the registered user download area via EDN downloads menu Q: I'm still a bit confused. What exactly comes withe XE6? Is the VCL version FR4? Is the FMX version the same as the FMX 2 they show on their web site, or is it an older version? What exactly comes free with XE6? A: FR4 VCL & FMX comes with XE6 Q: I realize you are showing the VCL version. Does the FMX version work pretty much the same way? Important differences? A: Just another good question :) Here you can see comparison table of different Fast Reports - FMX and VCL More over: compare possibilities of FastReport FMX for different OS So difference is present. Q: Upgrade or new license when you update from the free be in XE6 to FR5? A: You can compare prices on the FastReport site - to move to FR5. Q: I see the prices for the products as you've shown them, but the real question is "Is there an upgrade price to move from Embarcadero to the FR5, or do you essentially get a new license with Fast Reports?" A: It is really new license Q: Can we use C++ script in FR5? A: Yes, there are 4 types of script languages C++/pascal/Basic/JavaScript. Q: Are there any restrictions on the use FastReport 5 in C++ Builder compared with Delphi? We Thanks. A: Absolutely the same. Q: Will you be offering a "Distinct Count" function in a group section ? A: No such function - you can do this at the SQL statement level. Q: How about my Distinct Count question from above ? A: Added to ours TODO list. Q: Crystal Report has distinct count A: Thanks Q: Along with SUM AVG COUNT A: Thanks Q: Are you planning to include Logfont? A: No plans for now. Q: Currently when I tried to declare Logfont: TLogFont; it raised an error "Unknown type TLogFont". Are there plans to support TLogFont? A: Do you mean in Fast Script ? Fast Script unfortunately doesnt support structures. Q: yes in FastReport events coding A: Unfortunately you can't. Structures arent supported in Fast Script yet. Q: Is there a difference between the FastReport included with Rad Studio and the paid versions from FastReport? A: Yes, compare Q: why is fast report designer so different from fast report.net A: Because there are two absolutely different products :) Q: I thought fast Reprot will now have something like Fast Report .NET but so i dont think so , i would rather enjoy working on fastreport.net A: There are two different products. With vary possibilities, platform, etc. Many customers waited these features. Q: i meant highlighting by condition Q: is the highlight feature restricted to cell only or can they be extended to row as well A: Are you mean interactive of highlighting by conditions? Q: but you said its intended for those who have used fast report and do you really think they are so naive A: There are many changes which you can see in examples only :) Interactivity, web, etc. We think that our customers - professional developers who really can estimate new features :) Q: I licensed the XE4 FR but am moving to FMX for new stuff - why not include both like EMB does? A: FR4 comes with XE6 Q: did I miss the comparison with MS-SQL Reports - I heard it asked but not answered A: We have not direct comparison with VCL, but there are something like Q: I there a limitation to use with Interbase Togo Embedded ? Use one or two connexion ? A: IBLite is only for mobile and limited to one connection. IBToGo is not limited on # of connections. Q: If use Fast Report into a Database Rad Studio application, Fast Report share the connection or need is separate connection ? A: It can share. Q: Which version are coming with XE7? A: Fast Report 5 Q: Can the VCL and FMX version coexist? A: Yes Q: Is there a way to convert existing FastReport 4 reports to version 5? A: You do not need convertor. There are converting on a fly - when you opening in FR VCL 5 Q: FastReport has a upgrade for embarcadero edition to full edition? A: No, Embarcadero edition is free version for RAD Studio users. We don't have any upgrades from this version. Q: FastReport has a upgrade for embarcadero edition to full edition? A: There are no any discount for Embarcadero Edition customers. Q: web-reporting is datasnap reporting??? A: No, its an internal components. Q: Can you show an example using a dialog page with object tfrxDBLookupComboBox ? A: Not ready just now. Remind us - we will prepare it and may be place to our demo and on our youtube also Q: Can Report Builder reports be converted? A: Yes, we have a module ConverterRB2FR.pas you need to include it in uses section of your application. And after that you can use LoadFromFile method in TfrxReport component to load Rave report. Q: what about a .NET version? A: All is good with .Net version :) You are welcome Q: Can FR4 & FR5 coexist? A: No Q: I have a bunch of Rave Reports embedded into applications (not used the form designer). How easy is it going to be to convert these? A: We have a module ConverterRR2FR.pas you need to include it in uses section of your application. And after that you can use LoadFromFile method in TfrxReport component to load Rave report. Q: Thanks on the RAve Reports question A: :D Q: can we see crystal converter in action A: You can download on web-site :) By the way wait for 5.1 version soon - it will improved Q: Is FR5 in RAD Pro XE6 and or Delphi XE6 Pro? A: FR5 Embarcadero Edition will come with XE7. Q: Is FR5 in RAD Pro XE6 and or Delphi XE6 Pro? A: Yes, It supports starts From Delphi 7 and up to XE6. Q: It seems the webinar is for people already using fastreport, but around 50% of the audience never used fastreport. How about some getting started information... A: Yes, we didnt expect such many new people. The video is for people who already using FR4 and shows the differences between versions. There are will be enough to place FRXReport component on your application form and doubleclick - very easy to start and create first report. It takes about ten minutes. I can offer just now our Youtube channel with short lessons  Anyway we will prepare soon something like "FastReport - getting started" Q: Can you supply some links to getting started information, examples and the likes? Or will there be another webinar for beginners? A: Of corse you can take a look at our youtube chanel  Q: Does the conversion happen based on file extension or an internal version number? Is there a new default extension for FR5 reports? A: FR5 uses old file extensions and determinate version by internal version number. Q: I just tried to run the Crystal Converter and it hangs on open - never even shows anything... A: Not all the versions of CR supports now Q: When you announced a updated designer for FR5, I expected a litte bit more face lift of the gui. But it seems that it still has XP style. A: It still supports D7 - that is why Q: Will XE7 be supported by FR4? A: No. Q: Can the end user of our software create it's own reports? (run time report builder) A: Yes, there are report designer for end-users - you can provide it to your customer Q: does it also work in C++. If yes, is the scripting also in C++ ? A: Yes, it is compatible with C++Builder. You can setup it to C++Builder. It is supported as well with full functionality Q: Can the end user of our software create it's own reports? (run time report builder) A: Yes - you can use a runtime report designer and call if from your application. This lets users to create reports. Also as developer you can set restrictions for what the customer/user can do in the reports you deliver with your app. Developers have custom control for their users. Q: what about Active Report Converter ? A: We don't have such convertor , yet. But this version works with not all the CR versions yet, will be updated with FastReport 5.1 Q: What should be the minimum XE version in order to use FastReport? A: Did you mean FastReport Embarcadero Edition? - it comes with every XE*. And also all other editions of FastReport support all Delphi XE* (from XE to XE6) Q: I'm using Delphi XE with QuickReport. Can I migrate to Fast Reports on Delphi XE or I need to upgrade to a newer version? A: QuickReport and FastReport are not compatible.  You can convert visual part of the report by using ConverterQR2FR.pas module. Just add it in uses section and use LoadFromFile method of TfrxReport component. But we do not know - what kind of reports did you use, not all possible to convert. Anyway you will need convert reports and remake some parts of the reports manually(Like script and expressions). We recommend use new component (FastReport) in new projects. Q: Is it possible to automatically convert Fastreport.VCL => Fastreport.NET reports? A: Conversion is possible. Same layout. Code/logic is not converted. Q: From my experience, converters aren't really an option for automatic conversion. It should be done manually. A: Yes, some parts like expressions or scripts should be converted manually. Converters can convert only visual parts. Q: What is the user experience developing reports in Fast Reports .NET compared to Fast Reports VCL. Is it similar or there are significant differences? A: If you mean "architecture" - there are absolutely different, but we are trying to make them as close as possible. Q: Fast Reports is really good reporting tool. Too bad it wasn't the part of Delphi in earlier versions. It would save us much time :-). A: :D Q: how much does it cost to upgrade from fr4? A: This depends on your edition. Go to the customer page and you'll see the upgrade price./info Q: It's ok for me that you think about building a FMX version. But can I be sure that the main focus still stay on VCL? This is very important form me! A: We are working on VCL as well as on FMX. Updates coming soon Q: Are there some changes in FR5 that belongs to UniCode. I have some applications that also use unicode (Chinese etc.). Sometimes I had problems, that not all windows fonts are supported well... A: Starts from Delphi 2010(first unicode Delphi version) Fast Report completely supports unicode. Q: Are there any issues when creating reports in threads... A: Yes, you can find more information in Fast Report Programmers manual. Part «1.22 Multithreading». Q: Charts are not working here too. Recompile will not bring the success... I use the newest fast reports enterprise and the newest teechart vcl components (including source)... A: Can you write to support@fast-report.com with discription of the error ? Q: Using the recompile wizard only provide TeeChart 4 to TeeChart 9 the actual version is TeeChart 2014. What should I select? Is TeeChart 2014 supported? A: Tee Chart 9 Q: Why are Denis not join DDD in Germany? A: We should code, make updates, fixes, answer support questions. Denis coming to Be-Delphi in Antwerp, Belgium, DDD Piacenza, Italy and DDD  Amsterdam, Netherlands at 10th-12th of June. (Done) Q: Tred to install, trial but too little disk space for it :-( A: Ok - thanks Alf. Time for a 4TB hard drive :) We're planning to change our installation tool soon, so 3+TB problem will be fixed Q: Do new Fastreport run on Delphi 2006 or only last versions of Delphi? A: Yes, FastReport VCL supports Delphi 2006 also Q: THis is perfect timing as I am converting reports from Qucik Report to Fast Report now. A: Great! Q: A reliable way to convert even simple Rave reports is a major requirement - if we had that now we would move to fast Reports today! A: Yes, you can use ConverterRR2FR.pas module. just include it in app uses section. And use LoadFromFile method of TfrxReport component. Q: ConverterRR2FR didn't even convert simple Rave reports I'm afraid A: We will reconstruct it soon. There are some problems with it. Q: Migration courses would be great. A: We will prepare. Q: The webinar seems to be concentrating on the new features in the product rather than how a new user can set up a basic report. Is this how the webinar will continue? A: Yes, this webinar is showing features of the new version. We didnt expect so many people not familiar with Fast Report. Q: Is there a reliable way to convert Rave reports to Fast Reports? A: Yes, you can use ConverterRR2FR.pas module. just include it in app uses section. And use LoadFromFile method of TfrxReport component. Q: As I said before ConverterRR2FR does not work on even simple Rave reports. Please let me know when a reliable conversion program will be available. A: We will fix it in FastReport VCL 5.1 very soon. Q: OK - youtube channel looks interesting and yes a basic reporting webinar would be good. A: Ok. Q: Are there any training courses available in Europe? A: Yes. We will run training day in Belgium 10th of June on Be-Delphi basis and with Be-Delphi help. See on Be-Delphi.com web-site. Q: Will the training in Belgium be in English? A: Yes, English Q: As I said before ConverterRR2FR does not work on even simple Rave reports. Please let me know when a reliable conversion program will be available. A: Can you send some of the Rave reports you have to us on support@fast-report.com ? Maybe you have different version of Rave report. We will chuck what we can do. Q: I can send some of our Rave reports but I have sent questions to the email you supplied before and I never got an answer to any of them. Can you provide a specific name and email address please? A: You can write directly to me at den@fast-report.com Q: There is an opportunity to gain many customers, like us, who are using other reporting tools. We need reliable converters and basic training - can you please provide both? A: Well. We will make some "migration courses" Q: Fast report is a great product, i use it a lot. Can you add a new little feature in the designer, i want to be able to focus the tool box when i press the enter key on a component. This will speed up when i need to change component name. Thanks A: Thank you for idea Q: Sorry, question to david i, can i have a grouping and ungrouped object feature like the one in Fast Report Designer :D A: (Y) :) Q: Are there published rules for manual conversion A: Not yet Q: I just noticed that FR5 report files also have the .fr3 extension; so, how can we tell what's using the new format and what is not (for downward compatibility with FR4.X)? A: We have a version number stored in the report file. Q: Do reports written in FR4.x need to be converted? A: No, all old FR4 reports will be converted on the fly when load old report file. Q: Is there limitations for converting Report Builder ? A: You can convert visual part only. Q: I have 3 computers I use for programming: my office pc, home pc and a laptop. It is needless to say that I don't use all computers at the same time; only one at any given point in time. Having said that, can I buy a single license and install it on all three of my computers. I'm sure you know that RAD Studio allows you to do that (I think on up to 5 computers). A: The same situation with FastReport Q: It is FR5 VCL stable enough to use it in real applications? :) A: Yes, more over. Soon we will run v.5.1 with some fixes. Q: is there an updated version of Fast Reports for the version that came with XE5. I have problems with charts not working. the last comment I got on forum was a new version has fix. So how do I update the XE5 embarcadero fastreport version? Thanks! A: FrxChart object has source codes you can always recompile it manually. But yes, we'are panning to update EDN versions this week , because it has some new fixes. Q: I have not used fast reports. How can you add this to a delphi App? A: Just add TfrxReport component from Fast Report components palette on the form and after you can call report designer by double clicking on the component. Q: I have not used fast reports. How can you add this to a delphi App? A: Just place "FRxreport" component to your application form and doubleclick it :) Q: is there a converter from Report Builder to Fasr Report? A: Yes, you can use ConverterRB2FR.pas module. just include it in app uses section. And use LoadFromFile method of TfrxReport component. Q: where is this converter? A: You can find it in Fast report LibDXX folder. Q: We need fastreport on IOS and ANDROID when will get? its so important... A: We are still considering support of IOS, but we faced some issues when started migration. But it's still possible that we make Ios version of Fast Report FMX. Thanks a lot for good questions! Anyway you can write us anytime. Tags: VCL, FireMonkey, FMX, FastReport ### RAD Studio Reporting with FastReport URL: https://www.fast-report.com/tr/news/webinar-rad-studio-2012 Summary: RAD Studio Reporting with FastReport RAD Studio Reporting with FastReport Join  our webinar! Topics covered will include:  • FastReport RAD Edition - what i t i s and how to use it  • Migration of reports from QuickReport and Rave Reports to FastReport  • Introduction to data analysis and presentation with FastCube.  All registered Delphi, C++Builder and RAD Studio XE2 users who attend the webinar will get a free copy of FastCube Embarcadero Edition! (if you have n’t already receive d it from an earlier promotion) . Webinar's language - English . ### Rave convertor URL: https://www.fast-report.com/tr/blogs/rave-to-fastreport-convertor As you know, Embarcadero RAD Studio XE2 is coming with the special edition of FR4. Many people have been asking us: is it possible to convert Rave reports (.rav files) to Fast reports (.fr3 files)? It is possible, because we have developed a convertor from Rave reports for this purpose. How to convert a .rav file From a user's point of view, to convert a .rav file no special actions needed: just click File > Open in the main menu of the designer and then choose a .rav file. If you are a developer and want to know how to enable the ability to import .rav files, then consider this code: Code ``` program RaveImport;   uses frxClass, frxDesgn, ConverterRR2FR;   begin TfrxReport.Create(nil).DesignReport; end. ``` Once this program is launched, the report designer appears and its File > Open dialog will offer to open .rav files as well as .fr3 files. Note, that in order to compile this program, you need to have Rave installed, or just have its .pas or .dcu files available to the compiler. What Rave reports can be imported The convertor supports the most of components that can appear in a Rave report, including database connections. Those Rave components that have no direct representation in Fast Reports, are converted to components with the closest behaviour. Here is an example of a complex Rave report converted to an .fr3 file: The process of importing When you click the File > Open menu item and choose a .rav file, the convertor at first checks how many reports are inside the file. If there are several reports inside the file - Rave allows to have multiple reports in a single file - then each report will be converted to a fr3 file and the convertor will ask to choose a folder where all these .fr3 files can be saved: After that the convertor will start processing each report and during this stage, which can be quite long for big .rav files with numerous reports inside, the following progress bar will be shown: When all reports converted, the last created .fr3 file is shown in the designer: Notes Some old versions of Rave have certain issues with loading numerous big SQL queries, which may result in memory corruption and undefined behaviour of the convertor. To avoid such problems, the convertor provides the property LoadQueries which can be disabled in order to skip loading SQL queries. However, if the convertor is compiled with newer Rave sources, no problems should occur. Links This topic is discussed on our forum in this topic. There you can also find a test app that can convert .rav files. As you know, Embarcadero RAD Studio XE2 is coming with the special edition of FR4. Many people have been asking us: is it possible to convert Rave reports (.rav files) to Fast reports (.fr3 files)? It is possible, because we have developed a convertor from Rave reports for this purpose. How to convert a .rav file From a user's point of view, to convert a .rav file no special actions needed: just click File > Open in the main menu of the designer and then choose a .rav file. If you are a developer and want to know how to enable the ability to import .rav files, then consider this code: Code Tags: VCL, FastReport, Converter ### RDL import in FastReport .NET URL: https://www.fast-report.com/tr/blogs/rdl-import-fastreport-net What is the RDL import RDL  report it's a report template in format of  Report Definition Language . The format used in  Microsoft Reporting Services . Reports can be generated in  Microsoft Visual Studio  and  Microsoft Report Builder , and in some third-party editors. Reports are stored in files with extension  rdl  or  rdlc .  RDL  import it's a tool that allows you to open  RDL  report in  FastReport. NET  designer. Users who have previously used the  RDL  reports and went to  FastReport. NET  can use old templates. Reports can be quickly and easily imported to FastReport .NET.  Importing RDL report It's simple operation. You should to go to the  File  menu in  FastReport .NET  desinger and select  Open... . In the window that appears, select the filter  RDL files (*. rdl; *. rdlc) . The selected file will be automatically converted to a FastReport. NET  template and opened in the designer.  On the two following pictures you can see  RDL  report (left) and the same report converted to  FastReport. NET  format. Tags: .NET, .NET, FastReport, FastReport ### Recap of 2024 and plans for 2025 URL: https://www.fast-report.com/tr/news/recap2024-plans2025 Summary: Key achievements and changes in 2024: new product launches, support for modern technologies, and more. Key achievements and changes in 2024: new product launches, support for modern technologies, and more. Friends, this year has been eventful and productive for us! 📌 Key achievements Release of new products: we launched FastReport Avalonia – a tool for cross-platform work on reports for Windows, MacOS, and Linux. Changes in approach to product formation: we split the product content in a way where you do not have to buy unnecessary functionality. What changed for our products? For Delphi and Lazarus: Improved work with hierarchical data in FastReport for Delphi and Lazarus by adding the TfrTreeView component. Additional capabilities for working with maps were added by supporting the GeoJSON and TopoJSON formats. Improved digital signatures, added infinite table width, expanded barcode capabilities, and improved display accuracy and compatibility of PDF, HTML5, SVG, DOCX, and XLSX export filters. In the latest version, we have enhanced the capabilities of working with reports in complex scenarios and provided a higher level of integration with modern development environments, including RAD Studio 12.2. Next year, we plan to add new components, support for RFID tag EPC in ZPL, new transports, improved export filters, and much more. For .NET: We have abandoned the legacy .NET Standard 2.0 - 3.1 and .NET 5 compatibility layer in our libraries. Now the minimum supported .NET version is .NET 6, and the minimum supported framework is .NET Framework 4.6.2. With the latest version of the FastReport .NET library, FastReport Business Graphics .NET and FastCube .NET now support .NET 9. To do this, we abandoned binary serialization (BinaryFormatter). This year, we relaunched FastCube .NET , a library for working with OLAP cubes and operational analysis of big data. Now FastCube.Core.Web supports  Linux and MacOS. It opens up the possibility of developing web applications with OLAP functionality on any server. One of the key changes in the FastCube .NET 2025.1 release was the complete removal of the dependency on the System.Drawing.Common library in the FastCube.Core module. This was done to increase the library compatibility with various platforms and improve performance. The FastReport Online Designer visual template designer has also changed. In 2024, a new "SparkGraphic" object was added, it became possible to create guidelines on the page and a new component menu was implemented. When editing the report code, the Intellisense functionality was added, which provides automatic code completion and syntax hints, which allows users to write code faster and more accurately directly in the web interface. In 2025, we plan to add a new plugin allowing you to convert user reports from MS Word to .frx. In addition, a connection to Google Sheets will be implemented in the future. FastScript .NET for executing scripts will be released in the first half of the year. The new library will contain a compilation technology that allows you to convert intermediate code into machine code for a specific platform (Native AOT). We are striving to create a complete ecosystem of products for different platforms, so next year we will also work on their integration with each other. For service solutions: In FastReport Cloud , we improved the automatic task execution system, added printing from the browser, and developed a font storage, finalized the SDK. Improved the usability and speed of the API Added new API methods for working with the cloud, allowing you to perform familiar operations faster and more conveniently: bulk copying, deleting, and moving files; a new upload method that allows you to upload large files and use fewer resources; methods for obtaining the current user's rights to files, groups, tasks, and data sources; added the ability to receive and edit report parameters without opening the report itself for editing. Made the user panel more convenient Improved work with the Online Designer: added a Richtext preview, and style templates for ChartObject. Gave the ability to edit the user's avatar, made a new trash bin for deleting files, improved the Tasks page; finalized data sources, giving the ability to use stored procedures and add custom tables from SQL. In 2025, we plan to release a new product and add parameter transfer to StaticPreview UI. We thank you for trusting us in 2024. Let's move on and create the future together! Happy Holidays! ### Recursion in MS SQL URL: https://www.fast-report.com/tr/blogs/recursion-mssql Sometimes, a stored procedure or function is required to use the results of a sample several times. In such cases, we often use temporary tables. However, it is worth considering some advantages and disadvantages of temporary tables. Advantages: Temporary tables are full tables. Therefore, you can create indexes and statistics for them. This can significantly speed up work with them. Disadvantages: Filling in a temporary table associated with the movement of data. Although it is a simple Insert operation, there is still a load on the disks with large amounts of data; There is a risk of increased query execution time. Temporary tables are created in the tempdb database. And the load on this base is substantial. Considering the risks of using temporary tables, the use of a generic table expression looks much more attractive. Generic table expression Common Table Expression (CTE) is an expression with a common table that can be used many times in a query. The CTE does not save data, but creates something like a temporary view. Some may say that a CTE is a subquery that precedes the main query. But this is not entirely true, because the subquery cannot be used several times, however, CTE can. In which cases is it better to use a generic table expression? 1. To create recursive queries, with which you can get data in a hierarchical form; 2. With multiple references to the data set within the same query; 3. In order to replace views, temporary tables, table variables. The advantages of CTE include: recursion, high speed query, concise query. And the disadvantages can be only in the limited use. A CTE can only be used for the query to which it belongs. You cannot use it in other queries. In this case, you will have to use temporary tables or table variables. Generic table expressions are simple and recursive. Simple ones do not include references to theirselves, and recursive respectively include. Recursive CTEs are used to return hierarchical data. Consider an example of a simple CTE statement: ``` WITH CTEQuery (Field1, Field2) AS ( SELECT (Field1, Field2) FROM TABLE ) SELECT * FROM CTEQuery ```  Here CTEQuery is the name of the CTE;                 Field1, Field2 – field names of the request;                 Table – some table from which data is selected for use in the main query. In this example, it is possible and not to explicitly specify the selection fields, since we select all the fields from the TestTable table: ``` WITH CTEQuery AS ( SELECT * FROM Table ) SELECT * FROM CTEQuery ```  With the help of CTE, you can optimize the main query if you take out part of the logic in the CTE. The fact is that CTE allows you to create several expressions (queries) at once. So you can split a complex query into several preliminary “views” using the CTE, and then link them in a common query:  ``` WITH CTEQuery1 (Field1, Field2) AS ( SELECT Field1 AS ID, Field2 FROM Table1 WHERE Field2 >= 1000 ), CTEQuery2 (Field3, Field4) AS ( SELECT Field3 AS ID, Field4 FROM Table2 WHERE Field4 = 'Москва' )   SELECT * FROM CTEQuery1 INNER JOIN CTEQuery2 ON CTEQuery2.ID = CTEQuery1.ID ```  As mentioned above, the main purpose of the CTE is recursion. A typical task for recursion is a tree traversal. So we can build a tree with the help of “with”. The recursive query structure first appeared in SQL Server 2005. Take a look at the WITH statement:  ``` WITH RecursiveQuery AS ( {Anchor} UNION ALL {Joined TO RecursiveQuery} ) SELECT * FROM RecursiveQuery ```  {Anchor} - anchor, a query that defines the initial element of the tree (hierarchical list). Usually in anchor there is a WHERE clause that defines specific rows of the table. After UNION ALL, the target table is followed from JOIN to the CTE expression. {Joined to RecursiveQuery}- SELECT from target table. This is usually the same table used in the anchor. But in this query, it is connected to the CTE expression, forming recursion. The condition of this connection determines the parent-child relationship. It depends on whether you go to the upper levels of the tree or to the lower ones. Let's look at a recursive query that returns a list of organizational units. Prepare data for this request: ``` CREATE TABLE Department ( ID INT, ParentID INT, Name VARCHAR(50) )   INSERT INTO Department ( ID, ParentID, Name ) VALUES (1, 0, 'Finance Director') INSERT INTO Department ( ID, ParentID, Name ) VALUES (2, 1, 'Deputy Finance Director') INSERT INTO Department ( ID, ParentID, Name ) VALUES (3, 1, 'Assistance Finance Director') INSERT INTO Department ( ID, ParentID, Name ) VALUES (4, 3, 'Executive Bodget Office') INSERT INTO Department ( ID, ParentID, Name ) VALUES (5, 3, 'Comptroller') INSERT INTO Department ( ID, ParentID, Name ) VALUES (6, 3, 'Purchasing') INSERT INTO Department ( ID, ParentID, Name ) VALUES (7, 3, 'Debt Management') INSERT INTO Department ( ID, ParentID, Name ) VALUES (8, 3, 'Risk Management') INSERT INTO Department ( ID, ParentID, Name ) VALUES (9, 2, 'Public Relations') INSERT INTO Department ( ID, ParentID, Name ) VALUES (10, 2, 'Finance Personnel') INSERT INTO Department ( ID, ParentID, Name ) VALUES (11, 2, 'Finance Accounting') INSERT INTO Department ( ID, ParentID, Name ) VALUES (12, 2, 'Liasion to Boards and Commissions') ```  It is already clear that the structure of the divisions in the organization is hierarchical. Our task is to get a list of departments subordinate to the assistant of the financial director. If we talk in the context of a hierarchical tree, then we must find a branch and its leaves. But first, let's see the whole list of divisions: ID ParentID Name 1 0 Finance Director 2 1 Deputy Finance Director 3 1 Assistance Finance Director 4 3 Executive Bodget Office 5 3 Comptroller 6 3 Purchasing 7 3 Debt Management 8 3 Risk Management 9 2 Public Relations 10 2 Finance Personnel 11 2 Finance Accounting 12 2 Liasion to Boards and Commissions  At the head there is the financial director, the deputy and the assistant report to him. Each of them has a group of units in its jurisdiction. The ParentID field indicates the "host" identifier. Thus, we have a ready-made master-slave connection. Let's write a recursive query using WITH. ``` WITH RecursiveQuery (ID, ParentID, Name) AS ( SELECT ID, ParentID, Name FROM Department dep WHERE dep.ID = 3 UNION ALL SELECT dep.ID, dep.ParentID, dep.Name FROM Department dep JOIN RecursiveQuery rec ON dep.ParentID = rec.ID ) SELECT ID, ParentID, Name FROM RecursiveQuery ```  In this example, the names of the fields that are to be selected in the CTE are clearly indicated. However, internal queries have the same fields. So you can simply remove this listing along with the brackets. Inside the CTE, we have two similar queries. The first one selects the root element of the tree that we are building. The second is all subsequent subordinate elements, due to the connection with the CTE itself. "Recursion" in SQL is not really a recursion, but an iteration. You need to submit a query with a JOIN as a loop, and then everything will be immediately clear. In each iteration, we know the value of the previous sample and get the subordinate elements. In the next step, we get the subordinate elements for the previous sample. That is, each iteration is a transition down a tree, or up, depending on the communication condition. The result of the above query is: ID ParentID Name 3 1 Assistance Finance Director 4 3 Executive Bodget Office 5 3 Comptroller 6 3 Purchasing 7 3 Debt Management 8 3 Risk Management  But what would this query look like without using CTE: ``` DECLARE @Department TABLE (ID INT, ParentID INT, Name VARCHAR(50), Status INT DEFAULT 0) -- First, we select the anchor in the table variable - the initial element from which we build the tree. INSERT @Department SELECT ID, ParentID, Name, 0 FROM Department dep WHERE dep.ID = 3   DECLARE @rowsAdded INT = @@ROWCOUNT -- We are going through a cycle until new departments are added in the previous step. WHILE @rowsAdded > 0 BEGIN -- Mark entries in a table variable as ready for processing UPDATE @Department SET Status = 1 WHERE Status = 0 -- Select child records for the previous record INSERT @Department SELECT dep.ID, dep.ParentID, dep.Name, 0 FROM Department dep JOIN @Department rec ON dep.ParentID = rec.ID AND rec.Status = 1 SET @rowsAdded = @@ROWCOUNT -- Mark entries found in the current step as processed UPDATE @Department SET Status = 2 WHERE Status = 1 END SELECT * FROM @Department ```  Such a cycle runs much slower than the CTE expression. And besides, it requires the creation of a table variable. And the amount of code doubled. Thus, CTE expressions are the best solution for a recursive tree traversal in MS SQL. Tags: SQL, SQL ### Register Json data in FastReport.NET URL: https://www.fast-report.com/tr/blogs/register-json-net If you need to register Json as data source in FastReport.NET, this can be done through the registration of business objects. For parsing json you need to describe the data scheme in the C# classes, for example: ``` public class Product { public string Name { get; set; } public double UnitPrice { get; set; } }   public class Category { public string Name { get; set; } public string Description { get; set; } public List Products { get; set; } }   string json = "..."; // your json   List categories = JsonConvert.DeserializeObject>(json); // using the Newtonsoft.Json library for deserialization   Report report = new Report(); report.Load(@"C:\report.frx"); report.RegisterData(categories, "Categories"); ``` If you do not know the scheme or if it is changing during the work of the program, it can be generated dynamically. For this we use the library JSON C# Class Generator, you can download it from https://jsonclassgenerator.codeplex.com . Code to generate C# classes: ``` string json = "..."; // your json   if (json.StartsWith("[")) // if json is an array, then it would be better if we name it ``` ``` { json = "{\"Data\":" + json + "}"; // Under this name the data will be displayed in designer, so you can add multiple data sources ``` ``` }   JsonClassGenerator gen = new JsonClassGenerator() { Example = json, UseProperties = true, Namespace = "__JSON__", MainClass = "__JSON__", };   string source = ""; using (StringWriter sw = new StringWriter()) { gen.OutputStream = sw; gen.GenerateClasses(); sw.Flush(); source = sw.ToString(); } ``` ``` As a result we obtain the generated classes in a string. Now we need to access them from the code; in order to do this compile them using CSharpCodeProvider and get Type: ``` ``` Type type = null; using (CSharpCodeProvider compiler = new CSharpCodeProvider()) { CompilerParameters parameters = new CompilerParameters() { GenerateInMemory = true, }; CompilerResults results = compiler.CompileAssemblyFromSource(parameters, source); type = results.CompiledAssembly.GetType("__JSON__.__JSON__"); } ``` Note: This example shows a compilation in the current AppDomain. This means that it can not be unloaded from memory, and each compilation will eat off memory. To avoid this, you can use CSharpCodeProvider in another AppDomain. Deserialize json using the generated classes. The easiest way to do this is to use the library Newtonsoft.Json; You can get it through NuGet with the command "Install-Package Newtonsoft.Json". ``` object obj = JsonConvert.DeserializeObject(json, type); ``` ``` Now we have objects, so let's register them in FastReport.NET: ``` ``` PropertyInfo[] properties = type.GetProperties();   Report report = new Report(); report.Load(@"C:\report.frx");   foreach (var prop in properties) { report.RegisterData((IList)prop.GetValue(obj, null), prop.Name); } ``` So now you can run designer and see the results. Tags: .NET, .NET, FastReport, FastReport ### Release of a library for executing scripts in C# URL: https://www.fast-report.com/tr/news/release-fast-script-net Summary: We are pleased to announce the release of a cross-platform library for executing complex scripts in C# called FastScript .NET. We are pleased to announce the release of a cross-platform library for executing complex scripts in C# called FastScript .NET. We are pleased to announce the release of a cross-platform library for executing complex scripts in C# called FastScript .NET . Libraries for executing complex scripts provide the ability to dynamically generate and execute code, which can be useful in various scenarios such as developing plugins, creating user scripts, and so on. Working in Constrained Environments. FastScript .NET is built on the classic "lexer-parser-interpreter" model. It does not use compilation to machine code, allowing it to operate in environments where code generation is restricted (NativeAOT, iOS, WASM). Its performance is comparable to other solutions that use interpretation (such as Lua and JavaScript), although it is slower than compiled C# code. C# as a Scripting Language. FastScript .NET has full integration with the .NET platform and allows the use of all libraries, frameworks, and APIs. A unified code base in C# for scripts eliminates the need to maintain code in multiple languages. Compactness. The small size of the library (just 300 KB) makes it convenient to use even in resource-constrained projects without overloading the system. Since version 2025.1.21 FastScript .NET is part of the WinForms , WPF , WEB , Mono and Avalonia packages. Our library is also part of Ultimate.NET solutions with all source codes. Learn more ### Release of FastReport Business Graphics .NET 2025.2 URL: https://www.fast-report.com/tr/news/release-business-graphics-2025.2 Summary: If you are planning to port to .NET 9 or are already using it in your projects, you can be sure that our components are ready to work without any additional modifications! If you are planning to port to .NET 9 or are already using it in your projects, you can be sure that our components are ready to work without any additional modifications! We are pleased to announce the release of FastReport Business Graphics .NET ! In this update, we focused on increasing compatibility, improving support for modern platforms, and preparing for future versions of .NET. Compatibility with .NET 9 One of the key changes was the addition of the necessary attributes to the components to ensure full compatibility with .NET 9. This means that FastReport Business Graphics .NET now works correctly in the most latest environments, maintaining stability, performance and support for new features of the framework. If you are planning to port to .NET 9 or are already using it in your projects, you can be sure that our components are ready to work without any additional modifications! Updating supported .NET versions We have updated the list of target platforms, focusing on modern developer requirements: The main version is now considered to be .NET 8 – it is a stable and productive framework that is recommended for most projects. Support for .NET 6 is also retained for those who haven't upgraded yet but are using long-term support (LTS). Added support for .NET 9 – for developers who want to use the latest technologies and features. Thanks to these changes, FastReport Business Graphics .NET remains a relevant tool for working with business graphics in your projects. List of changes [Common] + added attributes to components required for compatibility with .NET 9; + .NET versions have been updated, the main version is now .NET 8, and supported target platforms include .NET 6, .NET 8, and .NET 9. ### Release of FastReport Online Designer 2022.1 URL: https://www.fast-report.com/tr/news/fastreport-online-designer-2022.1 Summary: With the 2022.1 update, FastReport Online Designer has new objects and functions that will speed up the creation and optimization of your reports. With the 2022.1 update, FastReport Online Designer has new objects and functions that will speed up the creation and optimization of your reports. 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. ### Release of the New FastReport WPF Report Generator URL: https://www.fast-report.com/tr/news/release-fastreport-wpf Summary: The release of the first version of the new FastReport WPF report generator for document creation and development of custom business applications. The release of the first version of the new FastReport WPF report generator for document creation and development of custom business applications. We are excited to announce the release of the first version of the report generator for Windows Presentation Foundation - FastReport WPF . This high-performance library for creating reports and documents will assist you in developing business applications to meet various needs on the .NET Desktop and Web platforms. Create, view, and export detailed, visually appealing, interactive reports using a lightweight, versatile reporting tool. The report generator includes a powerful core for building reports, a user-friendly designer with a familiar interface, and a fast viewer of reports. FastReport WPF uses the SkiaSharp graphics engine for comfortable work with Windows. The WPF report generator also has an advanced code editor with Roslyn-based intelligence support. FastReport WPF is part of the unified FastReport ecosystem. Reports created in other products will seamlessly work in FastReport WPF and vice versa. NuGet packages via NuGet Server will be available for download in September. Now you can get WPF packages for your project using the installer from cpanel.fast-report.com . ### Release of the new version of FastReport Desktop 2022.1 URL: https://www.fast-report.com/tr/news/fastreport-desktop-2022.1 Summary: New Year's Eve update of FastReport Desktop to version 2022.1. New Year's Eve update of FastReport Desktop to version 2022.1. Updated version in FastReport Desktop 2022.1. Even more possibilities with FastReport. New features Added new "Advanced Matrix" object: Here is a list of its key features: row and column headers can contain groups and simple elements in any order. This allows you to build asymmetric reports; collapse buttons allow you to interactively manage the visibility of individual elements; sorting buttons allow you to interactively sort the matrix by the selected values, including the total values; Top N grouping allows you to display N values in the header, and group the remaining values into a separate element with the ability to expand; output of matrix headers in a stepped form; sorting headers by total values; a wide range of aggregate functions; support of custom aggregate functions; a wide range of special functions that allow you to get the values of totals, adjacent cells, as well as functions for calculating percentages; support for "Sparkline" and "Gauge" objects in data cells. Learn more about this object in the  documentation . Added  GS1 DataBar barcodes : Limited, Omnidirectional, Stacked and Stacked Omnidirectional. New properties: Config.CompilerSetting.ExceptionBehaviour and Config.CompilerSetting.Placeholder These properties allow you to customize the behavior when exceptions with invalid database field and table names occur. Config.CompilerSetting.Placeholder  is a string variable that is used to replace expressions with nonexistent names. By default, the value of this variable is an empty string. Config.CompilerSetting.ExceptionBehaviour  can have the following values: ExceptionBehaviour.Default  - default behavior, as it was before. If there are errors with invalid names, an error message is displayed. Report preparation is interrupted.  ExceptionBehaviour.ReplaceExpressionWithExceptionMessage  - invalid expressions are replaced by the text of the exception message. Errors are not shown at that. Report preparation is not interrupted.  ExceptionBehaviour.ShowExceptionMessage  - A message appears with the exception text, after pressing OK, report preparation continues. Incorrect expressions are replaced with the value of Placeholder variable.  ExceptionBehaviour.ReplaceExpressionWithPlaceholder  - invalid expressions are simply replaced with Placeholder. No error messages. Report preparation is not interrupted. Example with variable values:  ExceptionBehaviour = ExceptionBehaviour.ReplaceExpressionWithPlaceholder Placeholder = "NO DATA! Here you can see that the table has a field named FistName, but it's not specified correctly in the expression. And this is the result of preparing such a report. Previously it would have been impossible to prepare it due to errors. Improved translation quality of RTF into report objects. Conversion of RTF into report objects is optimized. RTF translation in table cells is added. Lots of bugs fixed. Exports improvements Implemented export of watermark to Word and RTF. Added SVG image scaling in export matrix. This improves the quality of exported images when exporting to Word and Excel. However, this increases the size of the output file. To use this feature, you must enable the "Print optimized" option when exporting. Export groups to single sheets in Excel 2007 has been implemented. Excel 2007 has added the ability to export a property that determines the size and location of the image when exporting. Now you can define how the image will behave in a cell when its position and size are changed. In doing so, the image can: move and resize together with the cell; move together with the cell, but not change its size; don't move or resize; Implemented the ability to hide or show grid lines when exporting to Excel 97. Added "Don't rotate landscape pages when printing" option in HTML export. Previously, we were forcibly rotating landscape-oriented pages when printing. The reason was that browsers cannot correctly print reports with pages both in portrait and landscape orientation. When you print such documents, pages with landscape orientation are cut off by the width of pages with portrait orientation. Now, you can adjust whether to rotate pages in landscape orientation or not. In addition, a bug where landscape-oriented pages were always rotated, even when there are no portrait-oriented pages, has been fixed. Complete list of changes [Engine] + added a new AdvMatrixObject; + added GS1 DataBar barcodes: Limited, Omnidirectional, Stacked and Stacked Omnidirectional; + added new properties: Config.CompilerSetting.ExceptionBehaviour and Config.CompilerSetting.Placeholder. These properties give the ability to customize the behavior when exceptions are thrown with incorrect names of database tables and fields; + added translation of RichObject inside TableCell; * reworked translation of RichObject into report objects; - fixed ShiftMode of translated RTF object; - fixed a bug with two parameters with the same name in report leading to System.ArgumentException; - fixed a bug with subreport containing multicolumn Databand; - fixed a bug with wrong band height calculation; - fixed a bug with displaying of hyperlinks when converting RTF to report objects; - fixed translation of RichObject if it set from a report script; - fixed a bug with private fonts added to Config.PrivateFontCollection; [.NET Core] + added support for .NET 6; - fixed incorrect search for Bold-Italic fonts; [Designer] + added verification of entered data in editing window of the QR code of SberBank; - fixed a bug with line break in text object editor; - fixed a bug when converting rdl reports containing matrices inside table cells; - fixed a bug with guide lines in the designer; - fixed a bug with Report tree window; - fixed a bug leading to System.NullReferenceException and crash of the designer during its launch when the Auto Guides option is enabled; [Preview] - fixed a bug with shifting the position of objects when switching the view of bands while editing a prepared page; [Exports] + implemented export of watermark to Word; + implemented export of watermark to RTF; + added "Don't rotate landscape pages when printing" option in export to HTML; + added the ability to change the name of the attached file when sending by Email; + add zooming of SVG images in export matrix; + added the ability to export a property that determines the size and position of the image when exporting to Excel 2007; + implemented ability to hide or show gridlines when exporting to Excel 97; + implemented export of groups on separate sheets to Excel; + implemented export of transparency level watermark images to Word; + implemented export image size of watermark to RTF; - fixed a bug leading to System.NullReferenceException when exporting to text, tables with rows count less then one; - fixed incorrect left padding of tables in export to Word; - fixed a bug with Wingdings font in HTML tags when exporting to HTML; - fixed a bug with export Wingdings and Webdings fonts to HTML; - fixed a bug with width of frame in export to PowerPoint; - fixed a bug with exporting objects with transparent fill to RTF; - fixed a bug with exporting objects with transparent fill to Word; - fixed a bug leading to System.OutOfMemoryException when exporting to PDF; - fixed incorrect line break display when exporting to HTML; - fix out of memory when export to PDF; - fixed bugs in export to PDF in non-Windows systems; - fixed a bug with exporting tables with more than 63 columns to Word 2007; - fixed a bug leading to a memory leak and System.OutOfMemoryException in PDF-export when the "Text in curves" option is enabled; - fixed a bug with line break in HTML-export; ### Release of the new version of FastReport for DBA 2022.1 URL: https://www.fast-report.com/tr/news/fastreport-dba-2022.1 Summary: New Year's Eve update of FastReport for DBA to version 2022.1. New Year's Eve update of FastReport for DBA to version 2022.1. Updated version in FastReport for DBA 2022.1. Even more possibilities with FastReport. New features Added new "Advanced Matrix" object: Here is a list of its key features: row and column headers can contain groups and simple elements in any order. This allows you to build asymmetric reports; collapse buttons allow you to interactively manage the visibility of individual elements; sorting buttons allow you to interactively sort the matrix by the selected values, including the total values; Top N grouping allows you to display N values in the header, and group the remaining values into a separate element with the ability to expand; output of matrix headers in a stepped form; sorting headers by total values; a wide range of aggregate functions; support of custom aggregate functions; a wide range of special functions that allow you to get the values of totals, adjacent cells, as well as functions for calculating percentages; support for "Sparkline" and "Gauge" objects in data cells. Learn more about this object in the  documentation . Added  GS1 DataBar barcodes : Limited, Omnidirectional, Stacked and Stacked Omnidirectional. New properties: Config.CompilerSetting.ExceptionBehaviour and Config.CompilerSetting.Placeholder These properties allow you to customize the behavior when exceptions with invalid database field and table names occur. Config.CompilerSetting.Placeholder  is a string variable that is used to replace expressions with nonexistent names. By default, the value of this variable is an empty string. Config.CompilerSetting.ExceptionBehaviour  can have the following values: ExceptionBehaviour.Default  - default behavior, as it was before. If there are errors with invalid names, an error message is displayed. Report preparation is interrupted.  ExceptionBehaviour.ReplaceExpressionWithExceptionMessage  - invalid expressions are replaced by the text of the exception message. Errors are not shown at that. Report preparation is not interrupted.  ExceptionBehaviour.ShowExceptionMessage  - A message appears with the exception text, after pressing OK, report preparation continues. Incorrect expressions are replaced with the value of Placeholder variable.  ExceptionBehaviour.ReplaceExpressionWithPlaceholder  - invalid expressions are simply replaced with Placeholder. No error messages. Report preparation is not interrupted. Example with variable values:  ExceptionBehaviour = ExceptionBehaviour.ReplaceExpressionWithPlaceholder Placeholder = "NO DATA! Here you can see that the table has a field named FistName, but it's not specified correctly in the expression. And this is the result of preparing such a report. Previously it would have been impossible to prepare it due to errors. Improved translation quality of RTF into report objects. Conversion of RTF into report objects is optimized. RTF translation in table cells is added. Lots of bugs fixed. Exports improvements Implemented export of watermark to Word and RTF. Added SVG image scaling in export matrix. This improves the quality of exported images when exporting to Word and Excel. However, this increases the size of the output file. To use this feature, you must enable the "Print optimized" option when exporting. Export groups to single sheets in Excel 2007 has been implemented. Excel 2007 has added the ability to export a property that determines the size and location of the image when exporting. Now you can define how the image will behave in a cell when its position and size are changed. In doing so, the image can: move and resize together with the cell; move together with the cell, but not change its size; don't move or resize; Implemented the ability to hide or show grid lines when exporting to Excel 97. Added "Don't rotate landscape pages when printing" option in HTML export. Previously, we were forcibly rotating landscape-oriented pages when printing. The reason was that browsers cannot correctly print reports with pages both in portrait and landscape orientation. When you print such documents, pages with landscape orientation are cut off by the width of pages with portrait orientation. Now, you can adjust whether to rotate pages in landscape orientation or not. In addition, a bug where landscape-oriented pages were always rotated, even when there are no portrait-oriented pages, has been fixed. Complete list of changes [Engine] + added a new AdvMatrixObject; + added GS1 DataBar barcodes: Limited, Omnidirectional, Stacked and Stacked Omnidirectional; + added new properties: Config.CompilerSetting.ExceptionBehaviour and Config.CompilerSetting.Placeholder. These properties give the ability to customize the behavior when exceptions are thrown with incorrect names of database tables and fields; + added translation of RichObject inside TableCell; * reworked translation of RichObject into report objects; - fixed ShiftMode of translated RTF object; - fixed a bug with two parameters with the same name in report leading to System.ArgumentException; - fixed a bug with subreport containing multicolumn Databand; - fixed a bug with wrong band height calculation; - fixed a bug with displaying of hyperlinks when converting RTF to report objects; - fixed translation of RichObject if it set from a report script; - fixed a bug with private fonts added to Config.PrivateFontCollection [Designer] + added verification of entered data in editing window of the QR code of SberBank; - fixed a bug with line break in text object editor; - fixed a bug when converting rdl reports containing matrices inside table cells; - fixed a bug with guide lines in the designer; - fixed a bug with Report tree window; - fixed a bug leading to System.NullReferenceException and crash of the designer during its launch when the Auto Guides option is enabled; [Preview] - fixed a bug with shifting the position of objects when switching the view of bands while editing a prepared page; [Exports] + implemented export of watermark to Word; + implemented export of watermark to RTF; + added "Don't rotate landscape pages when printing" option in export to HTML; + added the ability to change the name of the attached file when sending by Email; + add zooming of SVG images in export matrix; + added the ability to export a property that determines the size and position of the image when exporting to Excel 2007; + implemented ability to hide or show gridlines when exporting to Excel 97; + implemented export of groups on separate sheets to Excel; + implemented export of transparency level watermark images to Word; + implemented export image size of watermark to RTF; - fixed a bug leading to System.NullReferenceException when exporting to text, tables with rows count less then one; - fixed incorrect left padding of tables in export to Word; - fixed a bug with Wingdings font in HTML tags when exporting to HTML; - fixed a bug with export Wingdings and Webdings fonts to HTML; - fixed a bug with width of frame in export to PowerPoint; - fixed a bug with exporting objects with transparent fill to RTF; - fixed a bug with exporting objects with transparent fill to Word; - fixed a bug leading to System.OutOfMemoryException when exporting to PDF; - fixed incorrect line break display when exporting to HTML; - fix out of memory when export to PDF; - fixed bugs in export to PDF in non-Windows systems; - fixed a bug with exporting tables with more than 63 columns to Word 2007; - fixed a bug leading to a memory leak and System.OutOfMemoryException in PDF-export when the "Text in curves" option is enabled; - fixed a bug with line break in HTML-export ### Release of Version 2026.1 for FastReport Online Designer URL: https://www.fast-report.com/tr/news/release-fastreport-online-designer-2026.1 Summary: In version 2026.1 of FastReport Online Designer, there is a report validator, new components and controls for .NET and VCL solutions, redesigned the main toolbar, improved the IntelliSense system. In version 2026.1 of FastReport Online Designer, there is a report validator, new components and controls for .NET and VCL solutions, redesigned the main toolbar, improved the IntelliSense system. In the new  FastReport Online Designer version, significant improvements and new features have been introduced. Among the key changes is the addition of a report validator tool, which allows for automatic checking of reports for errors and potential display issues. Furthermore, this version includes new components and controls for .NET and VCL solutions, such as the RFID tag component, various controls for dialog pages (PictureBox Control, GroupBox Control, Panel Control, and others), as well as components for working with zip codes, text data, and visualizations (ZipCode, Cellular Text, Gauge, Interval Gauge, etc.). Version 2026.1 also features a redesigned main toolbar, an improved code autocompletion system (IntelliSense), implemented capabilities for adjusting Label size, and the ability to prohibit editing data sources for .NET solutions. In addition, a number of critical bugs related to saving settings, data display, and component functionality have been fixed. New Features Report Validator In version 2026.1, an automatic report validation tool has been added to check for errors and potential display issues within a dedicated console panel. It performs a comprehensive validation of the report’s structure: checking for overlapping components, components without names or with duplicate names, elements outside parent containers, and components with zero dimensions.  This helps identify and eliminate errors during the report development phase. Components for .NET Solutions Support RFID Tag Component In FastReport Online Designer for .NET solutions, an RFID Label component has been added. RFID (Radio Frequency Identification) is a radio-frequency identification technology widely used for automated accounting, tracking goods, and managing supply chains. It’s important to note that while the RFID label will not function in WebReport export, the ability to add it to a report and save it is crucial—such a report can be opened and used in the desktop version of FastReport .NET with full RFID support. Controls for Dialog Pages from .NET Solutions In version 2026.1, the following controls have been added for working with dialog pages: PictureBox Control The PictureBox control is designed to display images on dialog forms. It allows you to add company logos, icons, illustrations, and other graphical elements, making dialog forms more informative and visually appealing. The control supports various image formats (PNG, JPEG, BMP, GIF) and offers scaling modes (stretch, fit, center). Components for VCL Solutions Checkbox Component In version 2026.1, a Checkbox component has been added for reports in the .fr3 format (FastReport VCL). This component represents a boolean field that allows for displaying "on/off" states in reports. The Checkbox can be used on report pages to visualize boolean values from data sources or for interactive user interaction. The component supports all core properties from FastReport VCL, including appearance customization, data binding, and event handling. Combobox Component A Combobox component has been added—a dropdown list with pre-set values. This component allows the user to select one option from a predefined list of choices. These features will assist you in creating interactive reports and dialog forms where user selection needs to be limited to a specific set of values. The Combobox supports customization of the item list and can be bound to data sources for dynamic population of values. ListBox Component The ListBox component has been implemented—a list with values that the user can select. Unlike a Combobox, a ListBox displays all available items simultaneously as a list, making it convenient for working with a few options where the visibility of all choices is important. The component supports multiple item selection, list scrolling for many items, as well as appearance customization and data binding. ZipCode Component The ZipCode component has been added, a specialized component for displaying postal codes. The component visualizes the zip code using segmented digits, stylized to resemble the format used on postal envelopes. This ensures a standardized display of postal codes in documents, making them easily recognizable. ZipCode automatically formats entered numerical values according to accepted postal code display standards and supports customization of segment size and style. Cellular Text Component The Cellular Text component has been implemented for displaying text within cells. This component places each character of the text into a separate cell, making it ideal for displaying data where one character per cell is required (e.g., serial numbers, codes, document numbers). The Cellular Text component supports customization of cell size, borders, text alignment within cells, and can automatically split entered text into individual characters. Gauge Component The Gauge component has been added—a dial or progress indicator for visualizing numerical values. Gauge allows for a clear display of metrics, KPIs, and other indicators in reports, making them more understandable and visually appealing. The component supports various display styles (circular, linear), customization of value ranges, color zones for indicating critical values, and can be linked to data sources for dynamic display of indicators. Interval Gauge Component The Interval Gauge component has been implemented for displaying intervals and ranges of values. Unlike a regular Gauge, this component specializes in visualizing the span between values, which is useful for displaying time intervals, price ranges, permissible deviations, and other similar data. The component allows customization of the interval’s start and end values, display styling, and color coding of different range zones. Gradient Component The Gradient component has been added for creating gradient fills in reports. This component allows for smooth color transitions, which can be used to create visually appealing backgrounds, section dividers, or decorative elements in reports. Gradient supports various gradient types (elliptical, angular, horizontal, vertical, horizontal centered, vertical centered), as well as color customization. HTML Object Component The HTML Object component has been implemented to display HTML content directly within reports. This opens up wide possibilities for formatting text using HTML markup, embedding tables, lists, and other formatted content. The component correctly processes HTML tags, applies styles, and allows for the creation of complexly structured content within the report using familiar HTML syntax. Cross-Tab Component The Cross-Tab component has been added—a powerful tool for creating cross-tabulations and pivot reports without direct connection to data sources. Cross-Tab works with data already loaded into the report via other components (e.g., DataBand), allowing it to group data by multiple dimensions simultaneously and create a matrix view of information with automatic totals calculation. The component supports customizing rows and columns, applying various aggregate functions (sum, average, count), cell formatting, and creating multi-level groupings. DB Cross-Tab Component The DB Cross-Tab component has been implemented—a version of Cross-Tab with the ability to connect directly to database data sources. Unlike the regular Cross-Tab, DB Cross-Tab can independently connect to a database, extract necessary data, perform grouping, and aggregation. This will significantly simplify the creation of pivot reports. Digital Signature Component The Digital Signature component has been added for working with digital signatures in reports. This component allows for adding digital signature fields that can be configured during the report design phase. RFID Label Component The RFID Label component has been implemented for FastReport VCL reports. This is an analog of the RFID Tag component, but adapted for working with the .fr3 format and VCL architecture. The component allows you to configure RFID tag parameters directly in the report designer for label printers that support RFID technology. It is important to note that the RFID label will not function in WebReport export. However, a report containing this label can be opened and used in the desktop version of FastReport VCL with full RFID support. Subreport Component The Subreport component has been added for creating hierarchical reports. Subreport allows one report to be embedded within another, creating a nested structure. This is especially useful for generating complex documents where the main report contains general information, and subreports display detailed data. The component supports passing parameters between the main report and the subreport, linking data sources, and can use separate report files or embedded definitions. System Text Component The System Text component is a specialized text component for displaying system variables (date, time, page numbers) and aggregate functions (sums, totals, record counts) in reports. It provides a convenient configuration dialog instead of manual expression input. It is used for creating headers, footers, and summary blocks in reports. Barcode Component The Barcode component has been added for creating and displaying barcodes in various formats in reports. The component automatically generates barcodes based on input data, making it an essential tool for creating labels, invoices, receipts, and other documents that require barcode encoding. The component supports a wide range of barcode formats (EAN-13, EAN-8, UPC-A, Code 39, Code 128, QR code, and others), configuration of size, orientation, and display of text representation below the barcode. Barcode can be linked to data sources for dynamic generation of unique barcodes for each record in the report. Improvements The Ability to Customize the Size of the Label on The Dialog Form (.NET) In FastReport Online Designer for .NET solutions, the ability to change the width and height of the Label component has been added when the AutoSize property is disabled. Previously, the Label’s size would automatically adjust to its content; now, fixed dimensions can be explicitly set for the component. This provides more control over the layout of elements on dialog forms and allows for the creation of a more predictable and aligned interface. Ability to Prohibit Editing Data Sources (.NET) In FastReport Online Designer for .NET solutions, the ability to prohibit opening the "Data Connection Wizard" form for already created connections has been implemented. This feature allows administrators and developers to protect database connection settings from accidental or unauthorized modification. Redesigned Main Toolbar The main toolbar has been redesigned and enhanced with new functions for more convenient report handling. The panel now provides quick access to key report settings and parameters. Added functions: Report Settings: Quick access to main report parameters. Page Settings: Management of page parameters (size, orientation, margins). Data Source Settings: Quick management of data connections. Format Settings: Access to component formatting parameters. And other frequently used functions. IntelliSense Redesigned and Improved The code autocompletion system (IntelliSense) has been completely redesigned and significantly improved. Suggestions are now displayed more accurately and consistently when writing code in the script editing page. Key improvements: Contextual suggestions for report objects: Objects created in the report now appear in suggestions and work correctly with code completion. Correct handling of object chains: When accessing properties and methods via a dot (e.g., TextObject1.Fill.Color), IntelliSense now correctly displays available members at each level of nesting. Improved suggestion display: Suggestions appear faster and more accurately match the context in which the cursor is located. Stable operation: Instances where suggestions did not appear despite receiving data from the server have been eliminated. These improvements significantly simplify script development in reports, making the coding process more comfortable and productive. Bug Fixes Fixed an Issue with Saving the Connection String A critical error was fixed where the connection string was not saved when editing an existing data source. When attempting to modify connection parameters via the editing form, changes were not applied after saving the report. This issue also affected custom SQL queries. Fixed Unknown Characters in Databand’s Data Source Resolved an issue where, after deleting a table from the data sources, the ‘Data Source’ field of the DataBand component incorrectly displayed the ID of the deleted data source. This occurred due to incorrect handling of references to deleted data sources. Now, when a data source is deleted, all references to it in components are correctly cleared, and the interface displays an appropriate message indicating the absence of a source. Fixed Text Display on Icons A problem with incorrect text display on some icons in the new Online Designer version has been resolved. Fixed Double Call of previewReport Method An issue where calling a report preview from the main toolbar resulted in two API requests instead of one has been fixed. This led to duplicate processing on the server and increased preview loading time. Fixed Errors When Working with Empty RichObject A critical error that occurred when opening a report containing a pre-saved empty RichObject component (a component for working with formatted text) has been resolved. Attempts to open a report preview with an empty RichObject resulted in errors preventing report generation. Now, empty RichObject components are correctly handled both when loading the report and when generating the preview. Fixed Issues with Numerical Data Formatting A set of problems related to saving numerical data format settings in the TextObject component has been resolved: Problem with decimal separator. An error has been fixed where, if a comma ( , ) was specified as the decimal separator and the "Use system settings" checkbox was unchecked, a period ( . ) was displayed in the field instead of a comma when the report was reopened. Problem with negative value format. An error has been resolved where a non-standard negative number format value was reset to the standard (n) after saving and reopening the report. Problem with the number of digits in the decimal part. A specific error has been fixed where the value "2" in the "Decimal places" property, when saving and loading the report, increased to "3" or was completely reset. The problem did not manifest with other values (1, 3, 4, etc.). All format settings are now correctly saved and restored when working with reports, regardless of the operating system used (the problem was reproduced when saving under WSL, Ubuntu, and loading under Windows). Full List of Changes New Functionality: + Report Validator New Components for .NET Solutions: + RFID Tag Component New Controls for Dialog Pages (.NET): + PictureBox Control New Components for VCL Solutions: + Checkbox Component + Combobox Component + ListBox Component + ZipCode Component + Cellular Text Component + Gauge Component + Interval Gauge Component + Cross-Tab Component + DB Cross-Tab Component + HTML Object Component + Gradient Component + Digital Signature Component + Subreport Component + RFID Label Component + System Text Component + Barcode Component Improvements for .NET Solutions: + Added the ability to customize the size of a Label on a dialog form + Added the ability to prohibit opening the "Data Connection Wizard" form + Redesigned the main toolbar: new functions added for configuring reports, pages, data sources, format, and more + IntelliSense reworked and improved: suggestions now display better, and object chains work correctly Improvements for VCL Solutions: + Implemented Align property logic for components Bug Fixes: - Fixed an issue with saving the connection string - Fixed unknown characters in DataBand’s "Data Source" - Fixed text display on icons - Fixed double call of previewReport - Fixed errors when opening a report with an empty RichObject - Fixed data format issues when saving a report ### Release of Version 2026.2 for FastReport Online Designer URL: https://www.fast-report.com/tr/news/release-fastreport-online-designer-2026.2 Summary: The new FastReport Online Designer version (2026.2) brings significantly improved UI and a reworked theming system, a new report workspace, and a substantial amount of new functionality. The new FastReport Online Designer version (2026.2) brings significantly improved UI and a reworked theming system, a new report workspace, and a substantial amount of new functionality. The new FastReport Online Designer version (2026.2) brings significantly improved UI and a reworked theming system, a new report workspace, and a substantial amount of new functionality. Among the key changes are a fully redesigned theme matching the FastReport .NET Avalonia look, a new docking manager for flexible panel layout, a designer settings pop-up, an improved undo/redo system, and much more. New Features FastReport .NET Avalonia theme In version 2026.2 the look of Online Designer has been completely reworked — a new theme matching the FastReport .NET Avalonia style has been added. Styles for all controls, panels, popups and toolbars have been updated. The theme is responsive and renders correctly on screens of various sizes. Redesigned properties panel The properties panel got a refreshed design in the form of a property grid. The properties panel is now merged with the events panel into a single interface, just like in the desktop version of FastReport. Switching between component properties and events is done via a toolbar inside the panel, without having to look for events in a separate window. Docking manager A new docking manager has been implemented, allowing users to flexibly arrange panels in the designer interface. Panels can be dragged, docked to different sides of the screen and resized. New workspace: rulers, guides, band headers The designer workspace has been fully reworked. Rulers and guides have been updated — they now reflect the position of components on the page more accurately and remain readable at any zoom level. Band headers have been moved to a separate layer. In addition, an alternative grid is supported when the Alt key is pressed — components can be moved and resized with a smaller step for the most precise positioning. Toolbars for the Data and ReportTree panels The "Data" and "Report tree" panels have received toolbars with features from FastReport .NET. You can collapse and expand nodes, use drop-down lists, and create new relations. The panels support recursive collapse/expand of nodes, as well as automatic switching to the neighboring item when a node is deleted. Designer settings window A unified designer settings window has been added, combining configuration of appearance, object parameters and ways of interacting with the application. The following sections are available: Interface  — hotkey and autosave settings Report page — grid and measurement-unit settings Object appearance — styles and display of components "Code" page — code page settings "FRX" page — settings for the FRX template editor The settings are saved when the designer is closed and restored on the next launch. Barcode editor window A dedicated window has been implemented for configuring the barcode component, replacing the previous generic expression editor. The window contains separate tabs for each barcode type with the corresponding configuration fields, including Swiss QR. Font editor window The font configuration window has been reworked — its look and structure are now aligned with the FastReport .NET design. The window replaces the previous simplified version and provides access to the full set of font parameters. FRX template editor A built-in editor for the report's XML template (FRX) has been added. The editor with syntax highlighting allows you to view and edit the report structure directly in XML form. Undo/redo is supported, as well as synchronization with the main designer view. Format painter You can now copy and paste styles between components. This is an analog of the "Format painter" tool from the desktop version, available from the toolbar. The feature lets you quickly apply font, color, border and other formatting settings to various components in the report. New shape drawing logic Drawing logic for the PolyLine, Polygon and line components has been reworked. In this version, drawing is interactive, without having to switch tools manually. Presets for quickly adding common shapes have been added to the components panel. New logic for adding components to a page The mechanism for adding components has been reworked to match the desktop FastReport .NET. A component is now added by clicking the components panel — the cursor then enters placement mode and shows a preview of the future component under it. A second click on the page creates the component at the preview position. "Open report" and "Save report" Open and save report functionality is now available. You can open a report from your local file system directly in WebReport without uploading it to the server. You can also save a finished report to your local file system. Note: before using these functions, the data sources must be configured in WebReport. Improvements Undo/Redo: named actions and group undo The undo/redo system has been extended to the code editor and the FRX template editor. Each action in the application now has a textual description, so the change history no longer contains anonymous entries. You can visually select and undo several actions at once with a single click. Code editor improvements Configurable indentation has been added to the report script editor. The indent size is now set in the code editor page settings. UI adaptability The designer interface has been adapted to screens of various sizes in both themes — Avalonia and the classic one. UI elements scale and rearrange when the browser window is resized. Pages panel improvements The pages panel has been improved with the ability to create both regular and dialog pages. A left click on the "+" button creates a regular page. A right click opens a context menu with options to create either a dialog page or a regular report page. New UI element for selecting a data source A new control has been added for selecting a data source, modeled after the desktop FastReport .NET. Instead of typing a table or field name into a text box, the user is now presented with a tree of connections, data sources and columns — the value is picked with a single click. The control is used in two modes: Selecting a data source for a band — in the band editor (the "Data source" tab) only tables are available for selection. Selecting a data field for a component — for example, in the "Data column" tab of the Picture editor: the tree shows tables and their columns, and the user can either pick a specific field or reset the value to None . Editing an existing connection It is now possible to edit a previously created data source connection — open its connection-string parameters, adjust them and save, without recreating the connection from scratch. For security reasons the connection string is not stored in the report itself and lives only in the browser memory of the current designer session. Therefore editing is available under the following conditions: the connection was created within the current session, and the designer page has not been reloaded since; the report has not been reopened after the connection was created. After a page reload or after the report is reopened the designer loses the connection string and editing becomes unavailable — in this case the connection has to be created again. Bug Fixes Fixed problems with saving Cyrillic characters in script code (VCL) Fixed an issue where Cyrillic characters in script code were not saved correctly in VCL reports. Fixed VisibleExpression property (.NET) Fixed an issue where the VisibleExpression property was missing from the properties panel of the text component. The property is now displayed correctly. Fixed an error when using fill on ShapeObj (.NET) Fixed an error that occurred when trying to apply a fill to the ShapeObj component. The fill setting now works correctly. Fixed: identical table names when connecting to JSON (.NET) Fixed an issue where multiple JSON connections produced tables with identical names. Each connection now gets a unique table name. Fixed an error when opening a report with an advanced matrix (.NET) Fixed an error that occurred when opening a report containing a heavily populated advanced matrix (AdvMatrix). With a large number of fields, the report now opens without errors. Fixed: text color was lost when reopening a report (.NET) Fixed an issue where a modified text color in a TextObject was correctly saved but did not appear after reloading the page in design mode. Text color is now saved and restored correctly. Fixed an error when using axis formatting in MsChart (.NET) Fixed two issues with the MsChart component: the format of the Y-axis labels was not preserved when the report was reloaded, and trying to prepare a report with the newly applied format produced an error for the user. Fixed: Undo/Redo buttons were unavailable until the first object was added (.NET, VCL) Fixed an issue where the Undo and Redo buttons remained disabled after a report was loaded, even if the user modified bands or moved existing objects. The buttons only became active after a new object was added to the page. The change history is now tracked correctly from the very first action. Fixed an error when copying a page containing AdvMatrix/Matrix/Table (.NET) Fixed an error that occurred when trying to copy a report page containing AdvMatrix, Matrix or Table components. Fixed: report layout was broken on save (.NET) Fixed a critical error reproduced when saving reports that used tables for layout. On save, the table width was incorrectly truncated, breaking the report layout. Fixed: currency format was missing from the locale (.NET) Fixed an issue where the currency format was missing from the numeric data formatting dialog. Fixed: built-in PadLeft function did not work (.NET) Fixed an issue where the PadLeft function worked correctly in the desktop version but did not work in Online Designer when preparing the report through WebReport. Fixed an error when preparing a report with DataType="System.Guid" (.NET) Fixed an error that occurred when trying to prepare a report containing a field with the System.Guid data type. Fixed problems when creating a Postgres data source (.NET) A series of issues with PostgreSQL connections has been fixed: correct conversion of quotes in XML for TableName and SelectCommand has been added, duplicated procedures when adding a parameter have been fixed, as well as the loss of a parameter type when switching to preview. Fixed: style name was not changed in the styles editor (.NET) Fixed an issue where changes to a style name in the styles editor were not saved. After closing and reopening the popup, the style was still displayed with the original name (for example, "Style1"). Fixed method replacement in scripts (VCL) Fixed an issue where creating several event handlers for the same component sequentially caused a new handler to overwrite the previous one. For example, creating OnAfterPrint after OnAfterData removed the code of the first handler. Fixed band sorting (VCL) Fixed an issue where band sorting in VCL solutions did not work correctly. Fixed "Data format" dialog and conditional highlighting (VCL) A set of issues with the text component in VCL has been fixed: the "Data format" dialog could not be edited if the text was not an expression; incorrect text positioning logic in a multi-line component has been fixed. Fixed Undo/Redo behavior when adding components to a band (VCL) Fixed an issue: when adding a component to a narrow band (which auto-expanded), pressing Undo removed the component but did not restore the band to its original size. A subsequent Redo had no effect. Fixed: "Fields" tab of a detail table did not open in the "Relations editor" (.NET) Fixed an issue where the "Fields" tab of a detail table did not open in the "Relations editor" when creating relations between tables of an MS SQL connection. Fixed empty drop-down for the BreakTo property (.NET) Fixed an issue where the drop-down list of the BreakTo property in the TextObject properties panel was empty and offered no value to choose. Full list of changes New functionality + FastReport .NET Avalonia theme + New properties panel + Docking manager for all panels + New workspace: reworked rulers, guides and band headers + Toolbars for the Data and ReportTree panels + Designer settings popup (appearance, objects, interaction) + Barcode editor popup + Font editor popup + FRX report template editor + Format painter + New shape drawing logic (PolyLine, Polygon, lines) and presets + New component placement logic with preview + "Open report" and "Save report" functions Improvements + Undo/Redo with named actions for the code editor and FRX + Configurable indentation in the code editor + UI adaptability for all screen sizes (both themes) + Pages panel improvements + New control for selecting a data source in the band and component editors (data tree, like in the desktop) + Editing of a previously created data source connection (within the current browser session) Bug fixes - Fixed problems with saving Cyrillic characters in script code (VCL) - Fixed VisibleExpression property (.NET) - Fixed an error when using fill on ShapeObj (.NET) - Fixed: identical table names when connecting to JSON (.NET) - Fixed an error when opening a report with an advanced matrix (.NET) - Fixed: text color was lost when reopening a report (.NET) - Fixed an error when using axis formatting in MsChart (.NET) - Fixed: Undo/Redo buttons were unavailable until the first object was added (.NET, VCL) - Fixed an error when copying a page containing AdvMatrix/Matrix/Table (.NET) - Fixed: report layout was broken on save (.NET) - Fixed: currency format was missing from the locale (.NET) - Fixed: built-in PadLeft function did not work (.NET) - Fixed an error when preparing a report with DataType="System.Guid" (.NET) - Fixed problems when creating a Postgres data source (.NET) - Fixed: style name was not changed in the styles editor (.NET) - Fixed method replacement in scripts (VCL) - Fixed band sorting (VCL) - Fixed "Data format" dialog and conditional highlighting (VCL) - Fixed Undo/Redo behavior when adding components to a band (VCL) - Fixed: "Fields" tab of a detail table did not open in the "Relations editor" (.NET) - Fixed empty drop-down for the BreakTo property (.NET) ### Release the new version of FastCube .NET 2025.1 URL: https://www.fast-report.com/tr/news/fastcube-net-2025.1 Summary: Meet the new FastCube .NET 2025.1 release — a product relaunch with many key changes. Meet the new FastCube .NET 2025.1 release — a product relaunch with many key changes. Meet the new FastCube .NET 2025.1 release — a product relaunch with many key changes. This major update includes important architectural improvements, support for new platforms, and expanded capabilities for OLAP component developers. Removed dependency on  System.Drawing.Common library in FastCube.Core One of the key changes in the FastCube .NET 2025.1 release was the complete removal of the dependency on the System.Drawing.Common library in the FastCube.Core module. This step was taken to improve the library's compatibility with various platforms and improve performance. The graphical capabilities that were previously implemented through System.Drawing.Common have been reworked. Now FastCube .NET uses more modern and cross-platform approaches to working with data visualization and other interface elements. In particular, working with charts and visual components has been moved to separate libraries. This provides more flexibility in managing dependencies and using graphics in reports. In the new version, to specify a font in FastCube .NET styles, you must use the FastFont class instead of Font . The new font implementation does not contain any logic, and is only a container for data. The OLAP engine has been moved to the FastCube.Core library One of the most significant changes in the FastCube .NET 2025.1 release was the complete separation of the OLAP engine into a separate library - FastCube.Core . If you don't need visual components, you can add only the FastCube.Core library to your projects without including other parts of FastCube. This simplifies the setup and reduces the number of libraries to include. FastCube now has a modular architecture, where each component performs its specific task. The OLAP engine, visual components, charting and other parts of the library are in separate modules. For existing projects where visual components have been connected, no additional actions will be required. Added Linux and MacOS support for FastCube.Core.Web FastCube .NET 2025.1 release adds full Linux and MacOS support for web solutions using FastCube.Core.Web for the first time. This is an important extension of platform compatibility that allows OLAP applications to run on servers running different operating systems. Cross-platform development is available. Now FastCube.Core.Web can be used not only on Windows, but also on Linux and MacOS. This opens up the possibility of developing web applications with OLAP functionality on any server. Support for Linux and MacOS allows you to easily integrate FastCube into containers (e.g. Docker), which is important for scalable web applications and cloud solutions. You will be able to create universal web applications that work equally stably on different operating systems. ARM (64 bit) support for web components The FastCube .NET 2025.1 release adds support for the ARM64 architecture for web components. This compatibility extension allows you to run web applications using FastCube on devices with ARM64 processors, such as Raspberry Pi, servers, and cloud solutions on the ARM64 architecture. ARM64 support also makes it possible to use FastCube in low-power scenarios. Separate libraries for working with diagrams and dependencies from  FastReport.DataVisualization In the FastCube .NET 2025.1 release, the libraries responsible for working with charts and dependencies on  FastReport.DataVisualization were moved to separate FastCube.Mono.Chart and  FastCube.WinForms.Chart libraries. This simplifies dependency management and increases flexibility in application development. Previously, the functionality for creating diagrams was built into the main FastCube package, which made it mandatory even for projects where diagrams were not used. Replacement for the deprecated  IHostingEnvironment The FastCube .NET 2025.1 release replaces the legacy  IHostingEnvironment interface with the more modern IHostEnvironment . This allows the platform to adapt to current development requirements and prepare for future .NET 9 updates. XML documentation for all source codes In the FastCube .NET 2025.1 release, all source codes are now accompanied by XML documentation, which significantly improves the process of developing and integrating library components. We aim to improve the developer experience and improve code understanding. Online documentation Changing the script engine The FastCube .NET 2025.1 release includes an updated script engine. This change significantly improves scripting and increases system stability. The script engine for .NET 6 is now based on Roslyn. With the new  ReferencedAssemblies property in the FastReport.Olap.Utils.Config  static class, you can control the list of assemblies included in the script. Other breaking changes In the new release, due to the reworking of the engine architecture, some methods and types have become obsolete, they do not relate to OLAP functionality and have been removed. Full list Complete changelog + added a new demo application showing the ability to save and load a cube on the web;  + added xml documentation for FastCube.WinForms package; + added xml documentation for FastCube.Mono package; + added xml documentation for FastCube.Core.Web package; + added xml documentation for FastCube.Core package; + added xml documentation for FastCube.WinForms.Chart package; + added xml documentation for FastCube.Mono.Chart package; + added xml documentation for FastCube.Mono.Report package; + added xml documentation for FastCube.WinForms.BusinessGraphics package; + added xml documentation for FastCube.WinForms.Report package; + added XML documentation for the FastCube.Core.Web package; + added a new article describing the minimum system requirements; + added a new article to the documentation about descriptions of the packages; + added compatibility library with FastReport.DataVisualization for displaying FastCube.Winforms slice charts; + added compatibility library with FastReport.DataVisualization for displaying FastCube.Mono slice charts; + added demo application for Linux docker container; + added Linux support for FastCube.Core.Web package; * updated build scripts; * changed the way plugins registration, now plugins cannot be loaded twice automatically; * now FastCube.WinForms and FastCube.Mono are not independent packages, the core of the OLAP component is completely moved to FastCube.Core; * changed scripts in three cubes for compatibility with .NET 8 and .NET 9; * the structure of the documentation has been changed, some sections have been moved to the root; * the Extras folder that stores the compatibility package sources is now only available in the source version of the product; * updated EULA; & updated script builder for working with .net 6 and higher, this is a breaking change for all new FastCube .NET packages, if you used Variant, then instead of strict typing in the script you need to use only the name of the Variant class itself, since in some scripts there is a conflict between FastReport .NET and FastCube .NET in the script by default only a minimal set of libraries are included; & security fixes in the all demo apps; & security fixes in the chart component code for FastCube.WinForms; & security fixes in the chart component code for FastCube.Mono; - fixed the list of dlls to the script; - fixed an access modifiers of class members in FastCube.Core.Web; - removed and replaced dependency on deprecated IHostingEnvironment in FastCube.Core.Web; - fixed documentation title; - the Config class and its methods of the FastCube.Core.Web library are marked as deprecated, they are no longer used and do not affect the functionality of the component; - export to BIFF8 has been removed in the FastCube.Core package because this export requires a graphic context, if there are user requests, we will add BIFF8 export in plugins; - removed dependency of System.Drawing in FastCube.Core package, now the package can be used under Linux and MacOS. ### Release the new version of FastCube .NET 2025.2 URL: https://www.fast-report.com/tr/news/release-fastcube-net-2025.2 Summary: In this update, we focused on speeding up calculations, improving compatibility with .NET 9, and making changes easier to understand. In this update, we focused on speeding up calculations, improving compatibility with .NET 9, and making changes easier to understand. In this update, we focused on speeding up calculations, improving compatibility with .NET 9, and making changes easier to understand. Transition to invariant mathematics – up to 2 times faster! One of the most significant improvements was the abandonment of the "variant" type in favor of invariant mathematics. This change led to a significant acceleration of the make and recalculation of the cube, in some cases - more than 2 times! In addition, the cube now works correctly in various localizations, including non-standard ones (other than Latin), which expands its application for international users. Splitting changes by product FastCube .NET updates are now split into different products (WinForms, Web, Mono, and general FastCube .NET). This makes the update process more transparent – you can immediately see what changes affect the version you need. Fixed error reading stream from compressed file Previously, in some cases, compressed files were not processed correctly, which could cause data to load incorrectly or not load at all. Now this bug is fixed and the mechanism for working with compressed files is completely fixed. This means: Correct reading of data from archive files. More stable performance when loading large files. No errors in multithreaded mode, which is especially important for Web applications. If your project makes heavy use of data compression, we recommend upgrading to version 2025.2 to avoid potential issues. The file signature for the cube is now immutable (const instead of static) Previously, the file signature was declared as static , which allowed it to be changed during program execution. In some cases, this could lead to errors related to data structure changes or even file corruption. New version: The signature is now declared as const , making it immutable at the code level. The integrity of the file structure is guaranteed, regardless of changes in the program code. Improved stability of working with cube files in different environments, including Web and Mono. This is especially important for developers who work in multi-user and distributed systems. Compatibility with .NET 9 One of the key improvements was the addition of .NET 9 support. FastCube .NET is now fully compatible with the latest version of the platform, allowing you to take advantage of new features and improvements offered by Microsoft. This is an important update for developers who are port to .NET 9 or planning to use it in their projects. We would like to point out that support for new versions ensures stable operation of the product and integration with the latest technologies. Updating supported versions of .NET The main version is now .NET 8, which is the current standard for most enterprise projects. However, support for .NET 6 is retained, which is a long-term version with extended support. Additionally, as mentioned, .NET 9 support has been added, giving you flexibility in choosing the platform to work with FastCube .NET, whether it's stability (via .NET 6) or the latest features and performance improvements (.NET 9). Fixes and improvements in the demo example In the demo for the boolean format, a bug was fixed that caused the data to be displayed incorrectly. Now this format works correctly and does not cause errors, which improves the experience of users working with demo examples. In the "Sales by months" demo cube, there were previously situations where the headers were displayed incorrectly. Now this error has been fixed, and the field names are displayed correctly, ensuring accuracy and ease of working with data. Improving data serialization One of the important improvements is the optimization of the data serialization process. New methods have been added and properties have been set, due to which default values are now serialized less frequently. Reducing the amount of serialized data reduces the load on the system when saving and loading information. In addition, these changes contribute to improved performance, which will be especially noticeable when working with large data sets. List of changes FastCube .NET WinForms [Common] - fixed a bug where the stream from a compressed file was read incorrectly; * the file signature for the cube now has a const modifier instead of static and cannot be changed; FastCube .NET Web [Common] - fixed a bug where the stream from a compressed file was read incorrectly; * the file signature for the cube now has a const modifier instead of static and cannot be changed; FastCube .NET Mono [Common] - fixed a bug where the stream from a compressed file was read incorrectly; * the file signature for the cube now has a const modifier instead of static and cannot be changed; FastCube .NET [Common] + added compatibility with .NET 9; + .NET versions have been updated, the main version is now .NET 8, and supported target platforms include .NET 6, .NET 8, and .NET 9; * some properties are hidden from the user in the WinForms editor; * the "variant" type was replaced by variant mathematics; * improved serialization, added methods and set properties, due to which default values are serialized less often; - corrected display of the field name in the "Sales by months" demo cube; - fixed bug in demo example for boolean format. Other critical changes General changes for FastCube Web, FastCube WinForms and FastCube Mono Deprecated delegates. They were replaced with compatible ones, because the Variant type was removed and now boxing via Object  is used instead: Click here to expand FastReport.Olap.Slice.Value2Delegate(System.Int32, System.Int32, FastReport.Olap.Utils.Variant, FastReport.Olap.Utils.Variant, System.Int32) FastReport.Olap.Slice.ValueDelegate(System.Int32, System.Int32, FastReport.Olap.Utils.Variant, System.Int32) FastReport.Olap.Slice.SliceChartDataHandler(FastReport.Olap.Slice.Slice, FastReport.Olap.Slice.ChartParams, System.String[], System.String[], FastReport.Olap.Utils.Variant[], System.Int32) Deprecated fields. The following fields have been replaced with the corresponding properties: Click here to expand FastReport.Olap.Types.BoolValue -> public System.Boolean Value FastReport.Olap.Types.ByteValue -> public System.Byte Value FastReport.Olap.Types.DateTimeValue -> public System.DateTime Value FastReport.Olap.Types.DecimalValue -> public System.Decimal Value FastReport.Olap.Types.DoubleValue -> public System.Double Value FastReport.Olap.Types.FloatValue -> public System.Single Value FastReport.Olap.Types.IntValue -> public System.Int32 Value FastReport.Olap.Types.LongValue -> public System.Int64 Value FastReport.Olap.Types.SByteValue -> public System.SByte Value FastReport.Olap.Types.ShortValue -> public System.Int16 Value FastReport.Olap.Types.StringValue -> public System.String Value FastReport.Olap.Types.TimeSpanValue -> public System.TimeSpan Value FastReport.Olap.Types.UIntValue -> public System.UInt32 Value FastReport.Olap.Types.ULongValue -> public System.UInt64 Value FastReport.Olap.Types.UShortValue -> public System.UInt16 Value FastReport.Olap.Slice.MeasureCell -> public FastReport.Olap.Utils.Variant Value Deprecated methods. Replaced with compatible methods, but instead of the Variant type, data boxing is now used via Object , which allows passing not values with memory copying, but a reference to an object. Click here to expand FastReport.Olap.Types.BoolDTP -> public FastReport.Olap.Types.BoolValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.ByteDTP -> public FastReport.Olap.Types.ByteValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.CommonDataTypeProcessor``2 -> public System.Int32 AddNewVariantValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.CommonDataTypeProcessor``2 -> public T VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.DateTimeDTP -> public FastReport.Olap.Types.DateTimeValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.DecimalDTP -> public FastReport.Olap.Types.DecimalValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.DoubleDTP -> public FastReport.Olap.Types.DoubleValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.FloatDTP -> public FastReport.Olap.Types.FloatValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.IntDTP -> public FastReport.Olap.Types.IntValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.LongDTP -> public FastReport.Olap.Types.LongValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.Range -> public System.Boolean Match(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.Ranges -> public System.Boolean Match(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.SByteDTP -> public FastReport.Olap.Types.SByteValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.ShortDTP -> public FastReport.Olap.Types.ShortValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.StringDTP -> public FastReport.Olap.Types.StringValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.TimeSpanDTP -> public FastReport.Olap.Types.TimeSpanValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.UIntDTP -> public FastReport.Olap.Types.UIntValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.ULongDTP -> public FastReport.Olap.Types.ULongValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Types.UShortDTP -> public FastReport.Olap.Types.UShortValue VariantToValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Slice.AxisContainer -> public FastReport.Olap.Utils.Variant GetValue(System.Int32, System.Int32) FastReport.Olap.Slice.MeasuresContainer -> public FastReport.Olap.Utils.Variant GetMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Slice.MeasuresContainer -> public FastReport.Olap.Utils.Variant GetSecondAdditionalTotalMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Slice.Slice -> public System.Object Calc(FastReport.Olap.Types.Expression, FastReport.Olap.Utils.Variant) FastReport.Olap.Slice.Slice -> public FastReport.Olap.Utils.Variant CalcFuncForSelectedArea(FastReport.Olap.Types.AggregateFunction, FastReport.Olap.Types.Selection) FastReport.Olap.Slice.Slice -> public FastReport.Olap.Utils.Variant GetMeasureValue(System.Int32, System.Int32) FastReport.Olap.Slice.SliceField -> public FastReport.Olap.Utils.Variant GetUniqueValue(System.Int32) FastReport.Olap.Slice.SliceField -> public FastReport.Olap.Utils.Variant GetUniqueValueFromRecord(System.Int32) FastReport.Olap.Slice.SliceField -> public System.Int32 GetUniqueValueIdAndVariantFromRecord(System.Int32, FastReport.Olap.Utils.Variant&) FastReport.Olap.Slice.UniqueValuesFieldFilter -> public System.Void SetAllowedUniqueValueByValue(FastReport.Olap.Utils.Variant, System.Boolean) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValueByAppend(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 GetValueIdAtValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CommonUniqueValues -> public FastReport.Olap.Utils.Variant GetVariantByOrder(System.Int32) FastReport.Olap.Cube.CommonUniqueValues -> public FastReport.Olap.Utils.Variant GetVariantByValueId(System.Int32) FastReport.Olap.Cube.Cube -> public FastReport.Olap.Utils.Variant GetSourceValue(System.Int32, System.Int32) FastReport.Olap.Cube.Cube -> public FastReport.Olap.Utils.Variant GetSourceValue(System.Int32, FastReport.Olap.Cube.CubeField) FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, System.Int32, FastReport.Olap.Utils.Variant&) FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, FastReport.Olap.Cube.CubeField, FastReport.Olap.Utils.Variant&) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(System.Int32, FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(FastReport.Olap.Cube.CubeField, FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(System.Int32, FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(FastReport.Olap.Cube.CubeField, FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.DatePartUniqueValues -> public System.DateTime GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.DayOfWeekPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.DayOfYearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.DayPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.HalfYearPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.HourPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.MillisecondPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.MinutePartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.MonthPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.QuarterPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.SecondPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.TimePartUniqueValues -> public System.TimeSpan GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValueFromParentValueByAppend(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public T2 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 GetValueIdAtValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.UniqueValues``2 -> public FastReport.Olap.Utils.Variant GetVariantByOrder(System.Int32) FastReport.Olap.Cube.UniqueValues``2 -> public FastReport.Olap.Utils.Variant GetVariantByValueId(System.Int32) FastReport.Olap.Cube.WeekNumberPartUniqueValues -> public System.Byte GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.YearMonthPartUniqueValues -> public System.Int32 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Cube.YearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColOffsetTotalValueForDims(System.Int32, System.String) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColOffsetValue(System.Int32) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColOffsetValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColRowOffsetValue(System.Int32, System.Int32) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetColRowOffsetWithLevelValue(System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetRowOffsetTotalValueForDims(System.Int32, System.String) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetRowOffsetValue(System.Int32) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetRowOffsetValue(FastReport.Olap.Utils.Variant) FastReport.Olap.Code.Measure -> public FastReport.Olap.Utils.Variant GetTotalValueForDims(System.String) FastReport.Olap.Code.Measures -> public FastReport.Olap.Utils.Variant GetDetailValue(System.Int32, System.String) Deprecated properties. The following properties have been replaced by using boxing instead of the Variant  type: Click here to expand FastReport.Olap.Types.BoolValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.ByteValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.DateTimeValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.DecimalValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.DoubleValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.FloatValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.IntValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.LongValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.Range -> FastReport.Olap.Utils.Variant HighRange { public get; public set; } FastReport.Olap.Types.Range -> FastReport.Olap.Utils.Variant LowRange { public get; public set; } FastReport.Olap.Types.SByteValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.ShortValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.StringValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.TimeSpanValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.UIntValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.ULongValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Types.UShortValue -> FastReport.Olap.Utils.Variant Variant { public get; public set; } FastReport.Olap.Slice.CalculateMeasureEventArgs -> FastReport.Olap.Utils.Variant Data { public get; public set; } FastReport.Olap.Slice.CalculateValueEventArgs -> FastReport.Olap.Utils.Variant Value { public get; public set; } FastReport.Olap.Slice.SliceField -> FastReport.Olap.Utils.Variant CurrentValue { public get; } FastReport.Olap.Code.ContainerFieldItem -> FastReport.Olap.Utils.Variant CurrentValue { public get; } FastReport.Olap.Code.Dimension -> FastReport.Olap.Utils.Variant CurrentValue { public get; } FastReport.Olap.Code.Dimensions -> FastReport.Olap.Utils.Variant DetailValue { public get; } FastReport.Olap.Code.Measure -> FastReport.Olap.Utils.Variant CurrentValue { public get; } Deprecated Types. The following types are deprecated and have been removed entirely because they are no longer used. FastReport.Olap.Utils.Variant FastReport.Olap.Types.IVariantable FastReport.Olap.Types.UnAssigned The new delegates replace the old ones, which used the Variant  type. FastReport.Olap.Slice.Value2Delegate(System.Int32, System.Int32, System.Object, System.Object, System.Int32) FastReport.Olap.Slice.ValueDelegate(System.Int32, System.Int32, System.Object, System.Int32) FastReport.Olap.Slice.SliceChartDataHandler(FastReport.Olap.Slice.Slice, FastReport.Olap.Slice.ChartParams, System.String[], System.String[], System.Object[], System.Int32) The new field replaces the existing ones, now boxing via  Object is used instead of the Variant  type. FastReport.Olap.Slice.MeasureCell -> public System.Object Value The new methods replaced the old ones, which used the Variant  type. Now, boxing is used instead, and data is transferred by reference, not by value, which has significantly increased the speed. Click here to expand FastReport.Olap.Types.Range -> public System.Boolean Match(System.Object) FastReport.Olap.Types.Ranges -> public System.Boolean Match(System.Object) FastReport.Olap.Slice.AxisContainer -> public System.Object GetValue(System.Int32, System.Int32) FastReport.Olap.Slice.MeasuresContainer -> public System.Object GetMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Slice.MeasuresContainer -> public System.Object GetSecondAdditionalTotalMeasureValue(System.Int32, System.Int32, System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Slice.Slice -> public System.Object Calc(FastReport.Olap.Types.Expression, System.Object) FastReport.Olap.Slice.Slice -> public System.Object CalcFuncForSelectedArea(FastReport.Olap.Types.AggregateFunction, FastReport.Olap.Types.Selection) FastReport.Olap.Slice.Slice -> public System.Object GetMeasureValue(System.Int32, System.Int32) FastReport.Olap.Slice.SliceField -> public System.Object GetUniqueValue(System.Int32) FastReport.Olap.Slice.SliceField -> public System.Object GetUniqueValueFromRecord(System.Int32) FastReport.Olap.Slice.SliceField -> public System.Int32 GetUniqueValueIdAndVariantFromRecord(System.Int32, System.Object&) FastReport.Olap.Slice.UniqueValuesFieldFilter -> public System.Void SetAllowedUniqueValueByValue(System.Object, System.Boolean) FastReport.Olap.Cube.BaseDataReaderDataSet -> public System.Object GetValue(System.Int32) FastReport.Olap.Cube.BaseDataSet -> public System.Object GetValue(System.Int32) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValue(System.Object) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValue(System.Object) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 AddNewVariantValueFromParentValueByAppend(System.Object) FastReport.Olap.Cube.CommonUniqueValues -> public System.Int32 GetValueIdAtValue(System.Object) FastReport.Olap.Cube.CommonUniqueValues -> public System.Object GetVariantByOrder(System.Int32) FastReport.Olap.Cube.CommonUniqueValues -> public System.Object GetVariantByValueId(System.Int32) FastReport.Olap.Cube.Cube -> public System.Object GetSourceValue(System.Int32, System.Int32) FastReport.Olap.Cube.Cube -> public System.Object GetSourceValue(System.Int32, FastReport.Olap.Cube.CubeField) FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, System.Int32, System.Object&) FastReport.Olap.Cube.Cube -> public System.Int32 GetSourceValueIdAndVariant(System.Int32, FastReport.Olap.Cube.CubeField, System.Object&) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(System.Int32, System.Object) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean AddUniqueValue(FastReport.Olap.Cube.CubeField, System.Object) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(System.Int32, System.Object) FastReport.Olap.Cube.CubeManualLoadEventArgs -> public System.Boolean SetFieldValue(FastReport.Olap.Cube.CubeField, System.Object) FastReport.Olap.Cube.DatePartUniqueValues -> public System.DateTime GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.DayOfWeekPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.DayOfYearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.DayPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.HalfYearPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.HourPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.IBaseDataSet -> public System.Object GetValue(System.Int32) FastReport.Olap.Cube.MillisecondPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.MinutePartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.MonthPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.QuarterPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.SecondPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.TimePartUniqueValues -> public System.TimeSpan GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 GetValueIdAtValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValueFromParentValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Int32 AddNewVariantValueFromParentValueByAppend(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public T2 GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.UniqueValues``2 -> public System.Object GetVariantByOrder(System.Int32) FastReport.Olap.Cube.UniqueValues``2 -> public System.Object GetVariantByValueId(System.Int32) FastReport.Olap.Cube.WeekNumberPartUniqueValues -> public System.Byte GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.YearMonthPartUniqueValues -> public System.Int32 GetChildValueFromParentValue(System.Object) FastReport.Olap.Cube.YearPartUniqueValues -> public System.Int16 GetChildValueFromParentValue(System.Object) FastReport.Olap.Code.Measure -> public System.Object GetColOffsetTotalValueForDims(System.Int32, System.String) FastReport.Olap.Code.Measure -> public System.Object GetColOffsetValue(System.Int32) FastReport.Olap.Code.Measure -> public System.Object GetColOffsetValue(System.Object) FastReport.Olap.Code.Measure -> public System.Object GetColRowOffsetValue(System.Int32, System.Int32) FastReport.Olap.Code.Measure -> public System.Object GetColRowOffsetWithLevelValue(System.Int32, System.Int32, System.Int32, System.Int32) FastReport.Olap.Code.Measure -> public System.Object GetRowOffsetTotalValueForDims(System.Int32, System.String) FastReport.Olap.Code.Measure -> public System.Object GetRowOffsetValue(System.Int32) FastReport.Olap.Code.Measure -> public System.Object GetRowOffsetValue(System.Object) FastReport.Olap.Code.Measure -> public System.Object GetTotalValueForDims(System.String) FastReport.Olap.Code.Measures -> public System.Object GetDetailValue(System.Int32, System.String) New properties have replaced or expand the deprecated ones: Click here to expand FastReport.Olap.Types.BoolValue -> System.Boolean Value { public get; public set; } FastReport.Olap.Types.ByteValue -> System.Byte Value { public get; public set; } FastReport.Olap.Types.DateTimeValue -> System.DateTime Value { public get; public set; } FastReport.Olap.Types.DecimalValue -> System.Decimal Value { public get; public set; } FastReport.Olap.Types.DoubleValue -> System.Double Value { public get; public set; } FastReport.Olap.Types.FloatValue -> System.Single Value { public get; public set; } FastReport.Olap.Types.IntValue -> System.Int32 Value { public get; public set; } FastReport.Olap.Types.LongValue -> System.Int64 Value { public get; public set; } FastReport.Olap.Types.Range -> System.Object HighRange { public get; public set; } FastReport.Olap.Types.Range -> System.Object LowRange { public get; public set; } FastReport.Olap.Types.SByteValue -> System.SByte Value { public get; public set; } FastReport.Olap.Types.ShortValue -> System.Int16 Value { public get; public set; } FastReport.Olap.Types.StringValue -> System.String Value { public get; public set; } FastReport.Olap.Types.TimeSpanValue -> System.TimeSpan Value { public get; public set; } FastReport.Olap.Types.UIntValue -> System.UInt32 Value { public get; public set; } FastReport.Olap.Types.ULongValue -> System.UInt64 Value { public get; public set; } FastReport.Olap.Types.UShortValue -> System.UInt16 Value { public get; public set; } FastReport.Olap.Slice.CalculateMeasureEventArgs -> System.Object Data { public get; public set; } FastReport.Olap.Slice.CalculateValueEventArgs -> System.Object Value { public get; public set; } FastReport.Olap.Slice.SliceField -> System.Object CurrentValue { public get; } FastReport.Olap.Format.CustomFormat -> System.String DefaultFormatValue { public get; public set; } FastReport.Olap.Code.ContainerFieldItem -> System.Object CurrentValue { public get; } FastReport.Olap.Code.Dimension -> System.Object CurrentValue { public get; } FastReport.Olap.Code.Dimensions -> System.Object DetailValue { public get; } FastReport.Olap.Code.Measure -> System.Object CurrentValue { public get; } New types: FastReport.Olap.Utils.VMath - replaced the Variant type, now mathematics occurs through invariant calculations using boxing and type conversion. FastReport.Olap.Types.IValueStruct``1 - interface for implementing own boxing type. FastReport.Olap.Types.SimpleCompareAction - enumeration for types of invariant mathematics actions. Changes for FastCube WinForms and FastCube Mono The deprecated field has been replaced with a technically compatible one. FastReport.Olap.Controls.SizingInfo -> public FastReport.Olap.Utils.Variant Data New field: FastReport.Olap.Controls.SizingInfo -> public System.Int32 Data ### Release the new version of FastReport Desktop 2022.2 URL: https://www.fast-report.com/tr/news/fastreport-desktop-2022.2 Summary: The release of version 2022.2 in FastReport Desktop took place. A large number of new features and changes have been made. The release of version 2022.2 in FastReport Desktop took place. A large number of new features and changes have been made. Now you can save a report with random data The file menu in the report designer has a new item "Save with random data...". When you save the report in this way, all data sources will be saved in the report and the data in them will be replaced by random data. Highlighting intersecting objects in the designer Now when placing objects on the report page, overlapping objects and objects beyond the bounds of the bands and the page are highlighted by color. There should not be such objects in the correct report. Failure to comply with this recommendation, can lead to a number of problems in the preparation and exporting of reports. By default, this option is disabled. You can enable it in the designer's settings File->Options. Ruler with guides in the RichObject editor The new tool allows you to conveniently adjust indentation and tab positions when editing RichObject. Read more in article. Added console utility to convert from RTF Using it, you can easily convert RTF files into report templates. Now you can use XLSX files as data sources You can now retrieve data from Excel 2007 files as from a database and use it in a report.  Read more in article . "Pinned cells" option when exporting to Excel 2007 This feature, allows you to define an area of the sheet that will always be visible when you scroll. You can lock: the first row, the first column, a certain number of rows and columns. Also added export of number and date format to Excel 97 format (BIFF8). In the HTML export now has the option "High quality SVG" - when you enable this setting, the quality of SVG images will be significantly higher. However, you should keep in mind that the memory consumption will be higher. In Word documents, export bookmarks and internal links has been added. In PDF, Word, HTML and RTF now have export tabs width. In SVG export we added a new property PrefixStyle - it allows you to set a prefix for all styles. We also improved the documentation and added the ability to switch the localization in the FastReport for DBA settings. Full list of changes in version 2022.2 [Engine] + added ability to save report with random data; * the ExportBand method now uses the BandBase argument instead of Base; - fixed bugs with double calling events AfterData, BeforePrint and AfterPrint of ContainerObject; - fixed a bug leading to System.NullReferenceException when running reports with dialog forms; - fixed a bug with not working VisibleExpression property of subreports and pages; - fixed a bug with vertical shift of non-intersecting objects when converting RTF; - fixed a bug with right anchor on pages with unlimited width and landscape orientation; - fixed translation of lists when converting RTF; - fixed a bug with not working RichObject.AllowExpressions property; - fixed a bug leading to System.OverflowException when drawing unlimited page without preparing; [Designer] + added Backlight of intersecting objects; + added ruler with guides in RichObject editor; + replaced password symbols on dots in object inspector; + added warning about possible stack overflow when putting Matrix or AdvMatrix on repeated bands; - removed error message when text of barcode consist expression; - fixed a bug with disable hot keys option; - fixed dropdown menu when click on LineStyle and LineWidth button; - fixed a bug with viewing data in designer; - fixed bugs leading to System.NullReferenceException when dragging objects into AdvMatrix; - fixed a bug with incorrect showing settings of shadow in border editor; [Preview] - fixed a bug leading to System.NullReferenceException when clicking on editable TextObject; - fixed a bug with not working hyperlinks in report with multi-column databands; - fixed a bug when exporting a report resulted to saving the prepared report; - fixed a bug with setting lists of available exports and exports to clouds in PreviewControl; [Exports] + added export to ZPL II; + added option "High Quality SVG" in export to HTML; + added option "Pinned cells" in export to Excel 2007; + added ability to scale print in export to Excel 2007; + added export of bookmarks and inner hyperlinks to Word; + added export of numbers and dates format to Excel 97; + added encryption of personal data in Email-export; + added indent of RichObject in export to RTF; + added line break of RichObject in export to RTF; + added indent of TextObject when exporting to Word; + added export of tab width in PDF, Word, HTML and RTF exports; + added property PrefixStyle to SVG-export, which allows to set a prefix for all styles; * improved export of RichObject to Excel 2007; * removed FastReport Cloud and XMPP exports; - fixed incorrect rotation of landscape orientation of pages when printing HTML if they used styles from previous pages; - fixed a bug with font scale when export to PDF; - fixed a memory lose when export SVG objects to HTML with option "High Quality SVG"; - fixed a bug with embedding fonts for which packing is prohibited in PDF-export; - fixed a bug with exporting tab symbols to Word; - fixed fill background picture and property of line-height in export to HTML; - fixed a bug with exporting custom dash line of SVGObject to PDF; - fixed a bug with exporting borders of spanned cells to SVG. ### Release the new version of FastReport Desktop 2022.3 URL: https://www.fast-report.com/tr/news/fastreport-desktop-2022.3 Summary: The release of version 2022.3 in FastReport Desktop took place. We have prepared many new functions for you: a report template validator, an editor of the FRX format. The release of version 2022.3 in FastReport Desktop took place. We have prepared many new functions for you: a report template validator, an editor of the FRX format. The release of version 2022.3 in FastReport Desktop took place. We prepared a lot of new features for you: validator to check the report template and get the list of errors, FRX format editor, report converter from StimulSoft, dialog page copying and much more. 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. 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] + implemented converter reports of 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; + added the feature to store JSON connection data using the StoreData property; + optimized speed in reports containing large amount of objects; * 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 Spooler; - 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 OS; - 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 RichText line spacing when RTF translated to report objects; - 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 assemblies 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; + add tooltip about right and bottom indents for guides and objects in designer; + added ability to select color of backlight intersecting objects in designer; * 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 subtable 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 export of locale in Word, PowerPoint, Rich Text, OpenOffice Write and OpenOffice Calc exports; + 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; * 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 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
, , tags. ### Release the new version of FastReport FMX 2022.1 URL: https://www.fast-report.com/tr/news/fastreport-fmx-2022.1 Summary: We have released the new version of FastReport FMX 2022.1! We have released the new version of FastReport FMX 2022.1! Starting from version 2022.1, all releases of FastReport are subscription-based. This will ensure that you have access to all the features of the latest versions while your subscription is active. We have added the support for Embarcadero RAD Studio 11 and the new macOS ARM 64-bit for Apple M1. In this release, we have also expanded the set of FastReport FMX export filters. Export filters to the OpenOffice ODT and ODS format are now available for use. Additionally, we have improved the work with FmxLinux in Linux and Metal API support in macOS. 2022.1 Version --------------- + Support for Embarcadero RAD Studio 11 was added; + Support of macOS ARM 64-bit compiler for Apple M1 was added; + ODT and ODS export filters were added; * New printing module for GTK-based FmxLinux; * The option of reading cmap table with macOS platform in TTF font was added; * Local function copyFrom for GZip packer that removes exceptions during debugging was added; - The bug with canvas.beginscene when AutoWidth = true was fixed; - Bugs in PDF export with full debugging mode were fixed; - Navigator in HTML export was fixed; - The behavior of TfrxPreview.Workspace.DoubleBuffered property on macOS using Metal was fixed; - We have fixed incorrect metrics table size, which could cause the regeneration of other font tables in PDF export; - The bug with the serialization of the edited page in previewpages was fixed; - Minor memory leaks were fixed; - The bug with the drop-down list of fields was fixed; - Print and export in Delphi 11 was fixed; - The bug with Metal canvas in the report designer was fixed; - The height of barcode lines was fixed; - Dot and dash styles in PDF export were fixed; - The list of fonts in Linux was fixed; - The structure of ODT/ODS exports and output of images in RTF under libreoffice was fixed; - We have fixed the error for "No mapping for the Unicode character exists in the target multi-byte code page" when loading text from a stream; - We have fixed HTML tags. ### Report export in FastReport.OpenSource URL: https://www.fast-report.com/tr/blogs/report-export-opensource FastReport.OpenSource has gained a lot of interest among many developers. This is a great report generator with a long history. The open source version is FastReport.Core, which appeared at the beginning of 2018, but with some restrictions. Namely - curtailed exports. Thus, only the following formats are available to us: HTML, BMP, PNG, JPEG, GIF, TIFF, EMF. Of course, this is very little. The WebReport object displays the report in html format, so it was left. It is noteworthy that in the WebReport object, we can only save the report to the fpx preview format. Therefore, you will have to export the report from the application code. Let's have a look at how it will look like by example. I will describe in details the whole process of creating a demo application so that you can repeat if you wish. Create an ASP .Net Core 2.0 project. Next, we add packages from the NuGet repository: FastReport.OpenSource and FastReport.OpenSource.Web. Now you need to add the use of the FastReport libraries to the Startup.cs file Let's use the Index view. Change it like this: ``` @using (Html.BeginForm("Save", "Home", FormMethod.Get)) { }  
```  We will display the report in a picture format, as well as a link to download the report in HTML format. Initially, we will have a download button that initiates the formation of the report file html. Then comes the image. But the file for it will be generated on the fly from the GetImage method in the controller. Let's go to the HomeController.cs controller. We will need these libraries: ``` using System.IO; using System.Diagnostics; using Microsoft.AspNetCore.Mvc; using OpenSourceReportExport.Models; using FastReport; using FastReport.Export.Image; using FastReport.Export.Html; using System.Data; using Microsoft.AspNetCore.Hosting; ```  To set the correct file paths on the server, we use the IHostingEnvironment interface. To do this, we pass the object of type IHostingEnvironment to the controller's constructor. ``` public HomeController(IHostingEnvironment hostingEnvironment) { _hostingEnvironment = hostingEnvironment; }   private IHostingEnvironment _hostingEnvironment; ```  Index method is left unchanged: ``` public IActionResult Index() { return View(); } ```  Add a new method to get the report as an image. So we will export to image, for example, jpeg format: ``` public IActionResult GetImage() { // Creatint the Report object using (Report report = new Report()) { string path = _hostingEnvironment.WebRootPath; // Loading a report report.Load(path + "\\App_Data\\Master-Detail.frx"); DataSet data = new DataSet(); data.ReadXml(path + "\\App_Data\\nwind.xml"); //Open xml database report.RegisterData(data, "NorthWind"); //Register data source in the report report.Prepare();// Preparing a report   // Creating the Image export using (ImageExport image = new ImageExport()) { image.ImageFormat = ImageExportFormat.Jpeg; image.JpegQuality = 100; // Set up the quality image.Resolution = 100; // Set up a resolution image.SeparateFiles = false; // We need all pages in one big single file   using (MemoryStream st = new MemoryStream())// Using stream to save export { report.Export(image, st); return base.File(st.ToArray(), "image/jpeg"); } } } } ```  The second method is to save the export report in html format. Roughly speaking,this methods is pretty much the same as the previous one. ``` [HttpGet] public ActionResult Save() { using (Report report = new Report()) { string path = _hostingEnvironment.WebRootPath; // Loading a report report.Load(path + "\\App_Data\\Master-Detail.frx"); DataSet data = new DataSet(); data.ReadXml(path + "\\App_Data\\nwind.xml"); //Open xml database report.RegisterData(data, "NorthWind"); //Register data source in the report report.Prepare();// Preparing a report   // Creating the HTML export using (HTMLExport html = new HTMLExport()) { using (FileStream st = new FileStream(path + "\\App_Data\\test.html", FileMode.Create)) { report.Export(html, st); return File("App_Data/test.html", "application/octet-stream", "Test.html"); } } } } ```  In this method we got one html file. And this means that there will be no pictures in it. To save the html file with images, you need to save the files in a loop. An example of such an export can be found in the FastReport Open Source documentation: https://fastreports.github.io/FastReport.Documentation/Exporting.html . Let's run our application: The image contains all report pages, because we set the SeparateFiles property = false. Otherwise, you would have to display several files. Press the button Save report in HTML: And the file is automatically loaded by the browser. That's all. As you can see, the implementation of export in code in FastReport Open Source has no difference from FastReport.Core. Tags: Export, Export, FastReport, FastReport, Open Source, Open Source ### Report generator based on Avalonia UI: FastReport Avalonia URL: https://www.fast-report.com/tr/news/announcement-fastreport-avalonia Summary: We are announcing a new Avalonia UI-based report generator for cross-platform development on Linux, macOS and Windows systems. We are announcing a new Avalonia UI-based report generator for cross-platform development on Linux, macOS and Windows systems. This spring we will release a powerful library with a single user interface that allows you to embed the report generator in Linux, macOS and Windows applications using  Avalonia UI . Avalonia UI is a .NET-based framework actively used for developing cross-platform user interfaces. With a universal API for building applications, Avalonia supports all major platforms and runtimes and has its own unique interface. Thus, 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. Also in the new product, all formats for exporting the generated report are available - PDF, Excel, MS Word and many others. The library is fully backward compatible with FastReport WPF , FastReport .NET , FastReport Mono . It supports Avalonia UI, .NET 7 and .NET 8. And even before the official release, we invite you to try its features in a free demo! Learn more about FastReport Avalonia and try the free demo now. Download demo for Windows Download demo for Linux Download demo for macOS ### Report generator in Visual Studio Express Edition URL: https://www.fast-report.com/tr/news/report-generator-visual-studio Summary: Report generator with visual designer in Visual Studio Express Edition Report generator with visual designer in Visual Studio Express Edition Visual Studio Express Edition by Microsoft is a popular software development enveronment. It is popular also because it is free. By the way this tool as all that is free has some lacks. In particular complexities with using some add-onces, third party components. For example many popular component-packs for .NET have reporting tools in set. Often they use developers environment of Visual Studio (fully or partially) as the visual report development environment. But such way is impossible in Express Edition. FastReport .NET uses another approach. There are own fully independent report designer which can be called from application (from Winforms Edition and higher). That is Visual Studioàs envirinment does not need for visual design of reports.  read more... ### Report generator with visual designer in Visual Studio Express Edition URL: https://www.fast-report.com/tr/blogs/report-generator-visual-designer  Visual Studio Express Edition by Microsoft is a popular software development enveronment. It is popular also because it is free. By the way this tool as all that is free has some lacks. In particular complexities with using some add-onces, third party components. For example many popular component-packs for .Net have reporting tools in set. Often they use developers environment of Visual Studio (fully or partially) as the visual report development environment. But such way is impossible in Express Edition. FastReport.Net uses another approach. There are own fully independent report designer which can be called from application (from Winforms Edition and higher). That is Visual Studioàs envirinment does not need for visual design of reports. So - let's setup FastReport.Net to Visual Studio Express Edition: 1. Create new project in Visual Studio. 2. Right mouse click somewhere on the blank place on Toolbox. 3. Select "Add tab" in context menu. 4. Give the name for new tab, for example FastReports Components. 5. Right mouse click on blank place of our new tab . 6. Select Choose Items in the context menu. 7. Press button "Browse..." Find and set FastReport.dll. It placed at the root folder of FastReport .NET. 8. Components will be shown on tab .NET Framework Components. Ypu can sort them by Namespace. All the components of FastReport .NET are placed on namespace FastReport. Check all needed components and press OK. Run report designer. Examle on C# Report report = new Report(); report.Design(); This is it. Tags: .NET, .NET, Visual Studio, Visual Studio, Express Edition, Express Edition, FastReport, FastReport ### Report generators family FastReport brief review URL: https://www.fast-report.com/tr/blogs/Report-generators-FastReport Summary: Describing FastReport .NET generator, its capabilities and advantages. Describing FastReport .NET generator, its capabilities and advantages. Describing FastReport .NET generator, its capabilities and advantages. Without reporting it is impossible to carry on business in any sphere of life. Bureaucracy is an irresistible part of human society. Whether it's steel plant or a school facultative - reports are needed everywhere: accounting, statistical, operational. Since the modern world strongly computerized - reports are also conducted electronically. Create reports in large quantities would be very difficult without special programs - report generator. FastReport report generator appeared in the early days of this kind of software, and became a real hit among Delphi programmers. And with the advent of version .NET Framework - it also became widespread among the adherents of the Microsoft platform. The name FastReport was created for a reason. This report generator is indeed one of the fastest in compiling complex reports. This can be said to be its main advantage over other competitors. As noted above, the FastReport report generator is designed for different platforms. In fact, these are different products with the same ideology and similar implementation. There are products to work with such frameworks as VCL, FMX, Lazarus, .NET , .Mono. FastReport features can be described for a long time, so we will consider the most important ones: The core is the engine of the report generator that allows you to create: Reporting from code  - thanks to FastReport's public library methods, you can easily create reporting objects and change their nature. In this way, you can create a complete report without a report designer. However, this needs to be understood on the basis of reporting principles; Multi-page report  - as the template is filled with data, the report is divided into pages. But you can create multiple templates - pages in a report. So you create essentially several reports within one; Web reports  - web reports are supported. Depending on the target platform, it can be a solution for ASP .NET (Core) or a Report Server for VCL. You will be able to view reports in a browser, go to the press and to perform exports in the available formats. In addition, it is possible to distinguish between access to reports on a report server (for VCL); Inheritance  - a mechanism that allows you to use a basic template in many reports. Thus, we can minimize the work of creating the same type of reports or reports with a corporate title; Cross-table  - the ability to use spreadsheets - a popular tool for data analysis Interactive reports  - reports that respond to user actions. For example, clicking on the item will result in appearance of detailing the table or hiding / opening list; Subreports  - the ability to embed one report to another. In fact, when placing an object Subreport on the page, it creates a pattern on a separate page. Number subreports are not limited to; Export - option to convert the report to one of the many popular formats: Adobe Acrobat (PDF); Rich Text; HTML; MHT; XML; Excel 2007; Excel 97; Microsoft Word 2007; Microsoft PowerPoint 2007; OpenOffice Calc; OpenOffice Writer; Microsoft XPS; CSV; DBF; Text; ZPL; Image (Jpeg, PNG, BMP, GIFF, TIFF, Windows metafile); XAML; SVG; PPML; PostScript; Json; LaTeX. Sending by Email  – the ability to send the report by email Report designer Interface  - a modern Ribbon interface is convenient for easy access to controls. This type of interface is used in Microsoft Office since 2007; Ability to embed in an application  - report designer made a separate program (library) that allows you to run it on its own, or to include in your custom application; Preview mode  - in the Report Designer, you can view reports in built form. This mode also allows you to export the report, print, send email; Master  – there are a lot of masters available in the designer, which accelerate the process of creating the report. For example, a new report wizard allows only a few steps to create the finished sample report with a data connection. A wizard for creating a data source - creates a connection to the database, and in a few clicks; Plug-ins  - the abilities of the report designer can be extended with plugins. Basically these are plugin - connectors for quick connection to the data source, but there are also plug-ins that add new objects to be placed in the report. Report. Template pages of bands  - the ideology of building a page report based on the Band - special containers for data, which are divided by purpose and have individual behavior. For example, band "Report Title" is displayed at the very beginning, at the top of the page only once. A Band "page title" appears at the top of each new page, but it is below the title on the first page of the report. Also band exists for the data output are repeated for each entry in the table, band groups, and other cellar band; Functions and variables  - in the report, you can use a variety of built-in and user-defined functions for data transformation, as well as variables. Variables can get values from the outside report that allows you to control the logic of the report from the user application; User form - before you build a report, you can deduce a user form, or several in a row. These forms are needed to determine the value of report variables, or to set the conditions for data filtering; the report has a built-in script that allows you to access any of the report's objects and properties. This means you can do everything with the report: filter the data, change the logic of data output, convert data, add and delete objects, and more; XML format  - the report template is an XML format, although it is extended. In this way, you can easily find the direction in the report template, when you browse through the familiar markup language in the text editor; In conclusion, we can say that due to the wide toolkit, multi-platform and the presence of a script built into the report, FastReport report generator can satisfy almost all user requests and are a universal solution for a wide range of tasks in the field of electronic document management. Tags: .NET, .NET, VCL, VCL, FMX, FMX, Lazarus, Lazarus, FastReport, FastReport, ASP.NET, ASP.NET, Core, Core, C#, C#, Report, Report, .NET5, .NET5 ### Report on entire web page URL: https://www.fast-report.com/tr/blogs/report-entire-web-page In previous articles, we discussed how to create a web report. And it looked like this: Agree that not very attractive looks. Scroll bars, a small display area of the report. But it is possible to stretch a report on the entire page. To do this, set the properties of an object WebReport1 SinglePage how true. This means that the report will be displayed without page breaks. Change the Width and Heigh to 100%. Thus we get a report on a single page, stretched to the entire available width and height of the page. Since the report has only one page, you can hide the toolbar above. To do this, ShowToolbar property is set to false. As you can see, the page of the report does take 100% of the available space. You can stretch the contents of the report on the entire page, if required. We use the property AutoWidth of WebReport object. If you enable it, the cells of the table will be automatically stretched to the desired width to fill the area of the report page. Moreover, when the browser window is resized, the width of the cell will be adjusted to display all the data. But for this property must disable another - Layers. This report will be exported to a HTML as tabular. Now let's see how the report changed: And so, if you resize the window: So, using the properties of the object WebReport you can easily improve the appearance of the Web report. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### Report script security URL: https://www.fast-report.com/tr/blogs/report-script-security Summary: Talking about the special tools for protecting your script on FastReport .NET, FastReport .NET Core, FastReport Mono and FastReport Open Source Talking about the special tools for protecting your script on FastReport .NET, FastReport .NET Core, FastReport Mono and FastReport Open Source Talking about the special tools for protecting your script on FastReport .NET, FastReport .NET Core, FastReport Mono and FastReport Open Source FastReport .NET  supports calculation of expressions for displaying values in the desired form, or any object visibility conditions. It is also possible to process events for each object of the report, e.g., before printing it. Event handlers are placed in a report script that supports C # and VB.NET languages. In addition to processing events, the script can contain almost any calculations or actions that can generate the necessary data or change the report behavior, as is required by the developer of the report template. Before building the program in the report script language, the report generator takes into account all expressions, functions, and calls to parameters in the report. Then the program is combined with the script that the report template developer had written. The resulting script is compiled and loaded as a library into the application that works with the report generator. When you run reports in web applications, you can edit them using the Online Designer . Editing is carried out using a browser, the edited report is sent to the server and then can be built there. While reports are edited by trusted developers and run in an isolated environment, the ability to use scripts in reports gives you freedom and almost unlimited possibilities for data processing and visualization. Editing and execution is under control. As soon as the possibility of general access to editing reports through the browser and Online Designer appears, the question of the building reports security on the server arises. It becomes possible to inject malicious code into script and report expressions. To prevent the execution of malicious code in the script and report expressions when working on the web, special security features have been added in FastReport .NET 2020.3.22 . The changes concern FastReport .NET, FastReport .NET Core, FastReport Mono and FastReport Open Source. Security features are active by default, but developers can change or disable them as needed in their applications. New properties and methods: bool FastReport.Utils.Config. EnableScriptSecurity – enables or disables checking of the report script. Works only when reports are running in web applications (FastReport.Utils.Config.WebMode == true). This property is set True by default (enabled). event FastReport.Utils.Config. OnEnableScriptSecurityChanged – the event is triggered when EnableScriptSecurity has been changed. Can be used for additional security controls. FastReport.Web.WebReport. SetScriptSecurity (IScriptChecker scriptChecker) - Installs a custom implementation of a verification method that overrides the built-in security controls. ScriptSecurityProperties FastReport.Utils.Config. ScriptSecurityProps - parameters for configuring the script security check. Is set NULL if a non-web application is running. (FastReport.Utils.Config.WebMode == false). bool FastReport.Utils.Config.ScriptSecurityProps. AddStubClasses – enables or disables adding stub classes for the script. This property is set True by default (enabled). Not overridden by setting your own SetScriptSecurity handler (see above). event FastReport.Utils.Config.ScriptSecurityProps. OnStopListChanged – the event is called when the StopList has been changed. Can be used for additional security controls. string[] FastReport.Utils.Config.ScriptSecurityProps. StopList - a list of keywords that should not be used in the report script. Contains a default list of words. FastReport.Utils.Config.ScriptSecurityProps. SetDefaultStopList() - sets the default value of the StopList (discards changes). The developed report script protection complex allows to minimize the threat of malicious code injection and its execution on the server side. It is necessary to remember that even the use of built-in report script security controls does not provide one hundred percent protection against the injection of malicious code into the saved templates. Therefore, we strongly recommend keeping access logs in web applications and allowing a limited number of privileged users to edit report templates.  Tags: .NET, .NET, Core, Core, Open Source, Open Source, Script, Script ### Report validation feature in FastReport .NET and Mono URL: https://www.fast-report.com/tr/blogs/validation-feature-net-mono Summary: Test our new report validator to check object configurations in the FastReport designer.NET and FastReport Mono. Test our new report validator to check object configurations in the FastReport designer.NET and FastReport Mono. Test our new report validator to check object configurations in the FastReport designer.NET and FastReport Mono. The "Validation" window has been added to the FastReport .NET designer and FastReport Mono, which will display errors and warnings.  Warning - Unwanted object configuration that may cause some graphical errors when exported or previewed. Errors - The object configuration will result in export errors or blocking when trying to build a report. Now the report is being checked for basic errors that occur during the creation of report templates: 1. Intersecting objects. 2. Objects that are partially or completely beyond the parent object. 3. Objects with zero height and width 4. Objects without name (property Name = ""). 5. Objects with the same name. To open the "Validation" window, go to the "View" tab, click on the "Panels" button and select "Validation" in the appearing list. When you click on a line with an error in the "Validation" window, the object related to this error will be highlighted in the designer. With the “Validation” window, users can easily find errors and omissions in their reports and avoid errors in exported documents or problems during the preview. Tags: .NET, Mono, FastReport ### Report with two data levels (master-detail) in Delphi/Lazarus by the example of FastReport VCL / FMX URL: https://www.fast-report.com/tr/blogs/master-detail-report-vcl-fmx Summary: FastReport's powerful "Multi-level Reports" feature allows you to collect reports from multiple tables. FastReport supports nesting up to 6 levels using the "Nested Report" object FastReport's powerful "Multi-level Reports" feature allows you to collect reports from multiple tables. FastReport supports nesting up to 6 levels using the "Nested Report" object FastReport's powerful "Multi-level Reports" feature allows you to collect reports from multiple tables. In this article I would like to tell you about such a powerful opportunity of FastReport as multilevel reports. Their structure can be compared to a tree – a trunk, large branches, thinner branches growing from them, and so on up to leaves – or with a company structure: divisions, subdivisions, employees. They are often called master-detail or master-subordinate and consist of several tables. One table contains a list of the main entities; another table bound with the first one contains a list of subordinate entities with a reference to the first table specifying which entity from the first table a certain entity from the second one is subordinate to, and so on. FastReport supports nesting of up to six levels (possibly more by using the Nested report object, but this will be described later). In real applications, one rarely has to print reports with large nesting of data; usually, 1–3 levels are enough. An example of building a master-detail report Let us consider creation of a two-level report. It will contain data from Customer and Orders tables. The first table is a list of customers; the second is a list of orders made by the customers. The tables contain the data of the following types: Customer: CustNo       Company 1221          Kauai Dive Shoppe 1231          Unisco 1351          Sight Diver Orders: OrderNo       CustNo       SaleDate 1003            1351          12.04.1988 1023            1221          01.07.1988 1052            1351          06.01.1989 1055            1351          04.02.1989 1060            1231          28.02.1989 1123            1221          24.08.1993 As one can see, the second table contains a list of all orders made by all companies. To get a list of orders made by a specific company, on should select the data from the table, for which the field CustNo is equal to the number of the selected company. The report built with these data will look like this: 1221 Kauai Dive Shoppe     1023 01.07.1988     1123 24.08.1993 1231 Unisco     1060 28.02.1989 1351 Sight Diver     1003 12.04.1988     1052 06.01.1989     1055 04.02.1989 Now we start making a report. We create a new project in Delphi and set for a form two TTable components, a TDataSource component, two TfrxDBDataSet components, and one TfrxReport component. Connecting data from the base to the report objects We set the components as follows: ``` Table1: DatabaseName = 'DBDEMOS' TableName = 'Customer.db' Table2: DatabaseName = 'DBDEMOS' TableName = 'Orders.db'   DataSource1: DataSet = Table1   frxDBDataSet1: DataSet = Table1 UserName = 'Customers'   frxDBDataSet2: DataSet = Table2 UserName = 'Orders'   ``` In the report designer, we connect our data sources in the Report|Data… window.  Add the 1st level data (master) and the 2nd level data (detail) bands to the page. From the data panel (on the right), we pull the table fields to the respective bands (master and detail). It will look like this: Attention – the 1st level data band must be located above! If it is located below the 2nd level data band, FastReport will inform of an error when a report is started. After starting we will see that the list of orders is the same for every customer and contains all records from the Orders table. This is because we did not switch on filtration of records in the Orders table. Let us return to our data sources. For the Table 2 component, we set the MasterSource = DataSource1 property. Thus, we set the master-subordinate connection. Now we have to set the condition of records filtration in the subordinate source. To do that, call the editor of the MasterFields property at the Table 2 component: We have to connect two CustNo fields in both sources. To do that, select the CustNo index in the list above, select the fields and click the Add button. The bunch of fields will be relocated into the lower window. After that, close the editor with ОК button. When a report is launched, FastReport will do the following. It will select the next recording from the main table (Customer) and set the filter to the subordinate table (Orders). Only the recordings which satisfy the condition Orders.CustNo = Customer.CustNo will be left in the table. That is, for each customer only the orders of that customer will be shown: Similarly, you may build reports with up to six data levels. Tags: VCL, VCL, FMX, FMX, Lazarus, Lazarus, FastReport, FastReport, Delphi, Delphi ### Reporting FMX URL: https://www.fast-report.com/tr/products/reporting-fmx Summary: A cross-platform set of FMX components for creating documents based on Embarcadero FireMonkey A cross-platform set of FMX components for creating documents based on Embarcadero FireMonkey A cross-platform set of FMX components for creating reports and documents based on the Embarcadero FireMonkey development environment. Lots of components A variety of elements are available for building reports in the designer: from text and images to mathematical formulas and 3D diagrams. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Safety Protect your templates and reports with strong data encryption. Adapt all source codes to suit your solutions. Source code This set of components includes FastReport source codes. Maximum convenience for companies wishing to adapt the code to their needs. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. Graphics core For creating graphical elements, rendering text, and managing graphic images, GDI+, D2D, and, of course, Quartz can be used. ### Reporting FMX - FAQ URL: https://www.fast-report.com/tr/faqs/reporting-fmx Summary: Explore reporting solutions in FMX with FastReport and get tips on how to enhance your reports. Explore reporting solutions in FMX with FastReport and get tips on how to enhance your reports. Is the product compatible with the UniGUI framework? Yes, our product is compatible with the UniGUI framework Is there support for macOS? Yes, there is support for Windows, macOS, and Linux Which IDE versions does FastReport FMX support? From the Delphi XE2 version to the current version. Is there support for Lazarus? The FMX framework does not support Lazarus. If you need to create reports in Lazarus, our FastReport VCL as a package **[Reporting Lazarus](https://www.fast-report.com/products/reporting-lazarus)** is perfect for you. Is there support for Linux? Support is available with the FMXLinux framework. For more information, see **[How to install and Use FastReport FMX 2.8 for FmxLinux](https://www.fast-report.com/blogs/install-fmx-linux)** Is the product compatible with the FMXLinux framework? FastReport FMX supports the FMXLinux framework. For more information, see **[How to install and Use FastReport FMX 2.8 for FmxLinux](https://www.fast-report.com/blogs/install-fmx-linux)** ### Reporting Lazarus URL: https://www.fast-report.com/tr/products/reporting-lazarus Summary: Um conjunto LCL universal de componentes com códigos fonte para geração de relatórios e documentos no Lazarus para Linux e Windows Um conjunto LCL universal de componentes com códigos fonte para geração de relatórios e documentos no Lazarus para Linux e Windows A universal LCL set of components with source codes for generating reports and documents on Lazarus for Linux and Windows. Lots of components A variety of elements are available for building reports in the designer: from text and images to tables and interactive maps. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Safety Protect your templates and reports with strong data encryption. Adapt all source codes to suit your solutions. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. Graphics core GDI and GTK are used to create graphic elements, render text, and manage graphics. Source code This set of components includes FastReport source codes. Maximum convenience for companies wishing to adapt the code to their needs. ### Reporting VCL URL: https://www.fast-report.com/tr/products/reporting-vcl Summary: Um conjunto de componentes VCL com códigos fonte completos para criação de relatórios e documentos Um conjunto de componentes VCL com códigos fonte completos para criação de relatórios e documentos A set of VCL components with full source codes for creating reports from a visual designer with export to various data formats. Lots of components A variety of elements are available for building reports in the designer: from text and images to mathematical formulas and 3D diagrams. Quick access to the report and data structure From the report tree and properties tree, you can edit the report structure, parameters, and filters, as well as data sources with global styles. Compatibility and integration Reporting VCL is part of the unified FastReport ecosystem on Delphi. Reports created in the Lazarus solution will work in the Reporting VCL and vice versa. Smooth transition from other solutions Our report generator instantly converts your reports from Quick Report, Report Builder, and Rave Reports in FastReport format. Flexible and open architecture If FastReport's functionality is not enough for you, you can improve it by creating and connecting your objects (export filters, databases) to your reports. System.Drawing (GDI) The familiar System.Drawing with GDI graphics functions is used to create graphical elements, render text, and manage graphic images. ### Reporting with PostgreSQL in a .NET 5 application for Debian 10 URL: https://www.fast-report.com/tr/blogs/report-postgresql-dotnet-debian Summary: Example of a report with code based on the FastReport library.Core using SQL databases on the Debian 10 operating system. Example of a report with code based on the FastReport library.Core using SQL databases on the Debian 10 operating system. Example of a report with code based on the FastReport library.Core using SQL databases on the Debian 10 operating system. Many need a solution that will generate reports for Linux systems, and support working with SQL-like databases and not only. We have such a solution FastReport.Core. This library allows you to create reports under different Linux distributions and it can connect to different databases. In this article, we will look at how to implement this on a Debian 10 distribution using PostgreSQL. First, install PostgreSQL on Debian 10. You can find a detailed installation at  the following link . Let's check the Postgres performance by going to the terminal. Switch to the postgres account with the following command: ``` $ sudo -i -u postgres ``` After that, write the following to access the postgres shell: ``` $ psql ``` Now we have access to the postgres command line, and additionally, we have checked that it works. Add a password for postgres user instead of 'password123': ``` ALTER USER postgres WITH PASSWORD ‘password123’ ``` Let's create a test table: ``` CREATE TABLE test (city varchar(80), temp_lo int, temp_hi int); ``` Fill it with data: ``` INSERT INTO test VALUES ('Chicago',30,40); ``` Done, now check the table for data with the following command. The result is shown in the figure below. ``` SELECT * FROM test; ``` To create an application on .NET 5.0, we need to install DotNet itself. Go to the page with detailed installation  and look closely at all the necessary points. For more convenient work, you can download VS code  at this link . Then download the deb package and install it on your computer. Download the C# and Nuget Gallery plugins in VS code. The latter is needed for easy search and correct installation of nuget packages. We create a project in VS code, for this, we press ctrl + J to open the console inside VS code. Then enter this command: ``` dotnet new console ``` After creating the project, we need to download and install the necessary libraries. Upon completion of the previous steps, open the Nuget Gallery in a test project. Find FastReport.Core and install it. Be sure to check the box next to Prerelease, as this package is a demo version, otherwise, the package will not be displayed. The connector is not a demo version, so you don’t have to check the Prerelease box. It is enough to find FastReport.Data.Postgres in the search bar and install it in the same way as the previous package. After installing all the necessary components, open Program.cs in our project and paste the following code into the main method: ``` using System; using FastReport; using FastReport.Data; using FastReport.Utils; using FastReport.Export.Pdf;   static void Main(string[] args) { //Creating a connection to PostgreSQL   RegisteredObjects.AddConnection(typeof(PostgresDataConnection)); PostgresDataConnection connection = new PostgresDataConnection(); connection.ConnectionString = "Host=localhost;Username=postgres;Password=1234;Database=postgres"; connection.CreateAllTables();   //Creating a report and connecting the database and table to the report   Report report = new Report(); report.Dictionary.Connections.Add(connection); connection.Enabled = true;   foreach(TableDataSource table in connection.Tables) { if(table.Name == "public_test") { table.Enabled = true; } }   ReportPage page = new ReportPage(); report.Pages.Add(page); page.CreateUniqueName();   DataBand dataBand = new DataBand(); page.Bands.Add(dataBand); dataBand.CreateUniqueName();   //Assigning DataBend to our table   dataBand.DataSource = report.GetDataSource("public_test"); dataBand.Height = Units.Centimeters * 0.5f;   TextObject City = new TextObject(); City.CreateUniqueName(); City.Bounds = new System.Drawing.RectangleF(0,0,100,100); City.Parent = dataBand;   //Assigning values to a text object from a DB field   City.Text = "[public_test.city]";   TextObject temp_lo = new TextObject(); temp_lo.CreateUniqueName(); temp_lo.Bounds = new System.Drawing.RectangleF(150,0,100,100); temp_lo.Parent = dataBand; temp_lo.Text = "[public_test.temp_lo]";   TextObject temp_hi = new TextObject(); temp_hi.CreateUniqueName(); temp_hi.Bounds = new System.Drawing.RectangleF(300,0,100,100); temp_hi.Parent = dataBand; temp_hi.Text = "[public_test.temp_hi]";   report.Prepare();   PDFExport pDF = new PDFExport(); pDF.Export(report,"test.pdf");   } ``` Then let’s compile and run our project. It will generate the following PDF report file: The conclusion will be very simple. Connecting a database to your application is not difficult, just today, we created a report using data from a PostgreSQL database in a Debian 10 distribution. Tags: .NET, .NET, Visual Studio, Visual Studio, FastReport, FastReport, Linux, Linux, Core, Core, SQL, SQL, .NET5, .NET5, NuGet, NuGet ### Reports and PDF documents in Blazor URL: https://www.fast-report.com/tr/blogs/reports-and-pdf-in-blazor Summary: Step-by-step creation of a simple web application based on Blazor Server technology. Step-by-step creation of a simple web application based on Blazor Server technology. Step-by-step creation of a simple web application based on Blazor Server technology. Microsoft has recently launched a web platform called Blazor. This framework allows creating an interactive web interface with the C# language, as well as HTML and CSS. Blazor is highly demanded and rapidly gains popularity among many .NET developers. We have updated the FastReport.Web package, adding Blazor components for working with reports in web applications based on Blazor Server technology. These components are used in .NET Core 3.1 (and higher) and are in beta status and will be improved over time. Below we describe the creation of a simple web application based on Blazor Server technology. You can download this demo project in my profile at GitHub . To begin with, we create our new project. We will use a ready template for Blazor Server.  You can create a project with Visual Studio (both for Windows and for macOS) or with.NET CLI. In both cases, we will need.NET Core SDK (.NET SDK) version 3.1 or newer, which can be downloaded from the Microsoft official website. Visual Studio 2019: For .NET CLI we type the following command in the console (terminal): ``` dotnet new blazorserver ``` We see the following project structure: To simplify the project, we delete some unnecessary files from the created template: - the whole Data folder - Pages\Counter.razor - Pages\FetchData.razor - Shared\SurveyPrompt.razor We add a new folder called “Reports” to our project folder and place all necessary reports into it. For demonstration, I have added simple reports which are applied during installation of the FastReport demoversion : Simple List, Complex (Master-detail + Group), Subreport, Barcode, and Chart. Also, for these reports we need a database in xml - nwind.xml format; we place it in the same folder. Also, it is necessary that the content of the Reports folder could be copied into the output folder; for that, we select the relevant files in Visual Studio and “Copy if newer” in Properties. If there is no Visual Studio, you may manually indicate this property in the project file (.csproj): ``` PreserveNewest ``` Then we have to add FastReport.Core and FastReport.Web packages to our project. This can be done also via Visual Studio or via .NET CLI. Let us consider both variants. To add a package to Visual Studio, click the right mouse button on our project file (csproj). A context menu opens; select “Manage NuGet packages”. Search for both necessary packages. Mind that the tick “Include prerelease” must be active. To add a package via .NET CLI, type the following commands: ``` dotnet add package FastReport.Core --prerelease dotnet add package FastReport.Web --prerelease ``` Then we should add the namespaces used by FastReport.Core and FastReport.Web into the list of files namespace used for Razor. For that, edit the _Imports.razor file by adding several lines: ``` @using FastReport@using FastReport.Web @using FastReport.Web.Blazor.Components ``` Register FastReport in the configuration of our application. To do that, open Startup.cs file and add the following line in the end of Configure method: ``` app.UseFastReport(); ``` In Pages\_Host.cshtml file, substitute the first line for the following: ``` @page "/{ReportName}" ``` This is necessary to make the URL able to contain the name of the report that we want to open. Then we edit the navigation menu Shared\NavMenu.razor to map all the available reports in the Reports folder and to switch between them. ``` @using System.IO  
 
  @code { // List of reports in folder private string[] reports = Directory.GetFiles( Path.Combine( Directory.GetCurrentDirectory(), "Reports")) .Where((filename) => Path.GetExtension(filename) == ".frx") .Select((filename) => Path.GetFileName(filename)) .ToArray(); } ``` Now we are coming to the main stage. Edit the Pages\Index.razor file to map reports with the main component of the FastReport.Web.Blazor library – WebReportContainer . Type the following: ``` @page "/" @page "/{ReportName}"     @code { [Parameter] public string ReportName { get; set; }   public WebReport MyWebReport { get; set; } }   ``` We have added the WebReportContainer component and attributed a single property to it – an object of WebReport class. Let us create another file with a similar name – Index.razor.cs next to the Pages\Index.razor file and write a simple logic in it: ``` using System.IO; using System.Data; using FastReport; using FastReport.Web;   namespace DemoBlazor.Pages { public partial class Index { const string DEFAULT_REPORT = "Simple List.frx"; readonly string directory;   DataSet DataSet { get; }   protected override void OnParametersSet() { base.OnParametersSet();   var report = Report.FromFile( Path.Combine( directory, string.IsNullOrEmpty(ReportName) ? DEFAULT_REPORT : ReportName));   // Registers the user dataset report.RegisterData(DataSet, "NorthWind");   // Create new WebReport object MyWebReport = new WebReport { Report = report, }; }   public Index() { directory = Path.Combine( Directory.GetCurrentDirectory(), Path.Combine("Reports"));   DataSet = new DataSet(); DataSet.ReadXml(Path.Combine(directory, "nwind.xml")); } } } ``` This logic is responsible for registering data, creating a WebReport object, attributing the necessary parameters to it, including the very Report which we download either from the report name in the enquire line or use by default, defined in the constant DEFAULT_REPORT. After the remaining minor manipulations with the style and formatting, we get a web application that can handle reports and provides an opportunity to create documents in various formats (PDF, Excel, Word, and Open Office). Useful links: - Documentation (en):  https://www.fast-report.com/public_download/docs/FRNet/online/en/ProgrammerManual/en-US/UsingBlazor.html - Online demo: https://fastreportwebblazor.azurewebsites.net/ - NuGet package: https://www.nuget.org/packages/FastReport.Web Tags: .NET, Visual Studio, FastReport, Core, C#, Blazor ### Representation for tabular data in Excel export URL: https://www.fast-report.com/tr/blogs/representation-tabular-excel One of the most demanded formats of report exporting is Excel file. It's the most popular format in accounting reporting. You can edit the report in Excel format using MS Excel tools further on. FastReport.Net provides the range of very interesting features of report export in Excel. Let's look at the window of report export settings to Excel 2007: So, we have the capability to export: all pages, current page, selected page. Now let’s consider the export options: • Wysiwyg - the precise location of the object after export, default true. If turned off, the border will be very "rounded". Empty rows and columns will be excluded. All this greatly changes the appearance of the report. You may disable this option if the appearance of the report does not really matter. Let us consider an example. Option Wysiwyg: And now with disabled option: Changed allocation of figures on the table columns. • Page breaks - page breaks when printing in accordance with the report pages, enabled by default. Let us consider an example. In the first case shows the excel page document when printing with the option Page breaks: In the second case shows the document with the disabled option Page breaks: Data only - just triggers the export of data band, is disabled by default Here’s how the document looks if the Data only property is disabled: The report looks the same as when you build it in the designer. Now we will do the export with enabled option Data only: As you can see just the bands with the data are displayed. There is no header, no footer. • Seamless table - allows you to remove from the export the footer bands and the following header band. This is designed to excel table looked like a uniform, with no breaks in the pages. The figure below shows a table broken by the band footer. Admit it, it’s not very convenient for an excel document. Now let's see what the table looks like, if you enable the option Seamless table: I want to say a few words about the development of reports. The report has a layered structure, and the Excel file - a tabular one. When exporting to Excel, FastReport converts layers into a table. If there is an intersection of cells in the report, the conversion algorithm may fail. Check the template to the intersection cells and the gaps between them, if you want to correct export to Excel. Tags: .NET, .NET, Export, Export, FastReport, FastReport, Excel, Excel ### Resolving Conflicts at FastReport.Net assemblies URL: https://www.fast-report.com/tr/blogs/resolving-conflicts-net-assemblies Conflicts often occur If you use different versions of the same program. There might be different reasons for this.  Often after you remove the previous version - the old libraries still remain. Or a new version of the product can be installed "on top" of the previous one without prior proper removal. For example,  a strong indication of a conflict is a watermark of the demo version in the licensed version. Sometimes all you have to do is to correct references to the new libraries. But the used libraries can be from the GAC. One of the ways to resolve this issue is to completely remove FastReport .Net and reinstall it. Let's consider the process of the complete removal FastReport.Net: Close Visual Studio; Use FastReport.Net uninstall program from the control panel; Make sure that the folder "C: \ Program Files (x86) \ FastReports \ FastReport.Net Trial" removed, or delete it manually; In Windows Explorer, open the folder “C: \ Windows \ assembly”, and find in the list and delete libraries: FastReport, FastReport.Bars, FastReport.Editor, FastReport.VSDesign, FastReport.Web; In Windows Explorer, open the folder “C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL”, find the folder names with FastReport, FastReport.Bars, FastReport.Editor, FastReport.VSDesign, FastReport.Web and remove them; Delete the folder with the configuration files “C: \ Users \ USER_NAME \ AppData \ Local \ FastReport”. Removing a configuration may also be useful to restore the original location of the control objects in FastReport Designer; Re-install FastReport.Net. Let's look at the other possible sources of the conflict. • Wrong uninstall. If you just delete the folder with the program, conflicts are inevitable. Remove FastReport .Net using the uninstall utility from the folder with the program. • Damage to the official msi installer files. Also, these files can be deleted by utilities of the garbage cleaning or by user. We have examined the typical conflicts that may arise when you use FastReport.Net. Now you know how to avoid them. Tags: .NET, .NET, FastReport, FastReport ### Results of Embarcadero's webinar URL: https://www.fast-report.com/tr/news/results-webinar-2012 Summary: Results of Embarcadero's webinar Results of Embarcadero's webinar As you know, on 7 F ebruary there was a webinar which was devoted to RAD Studio Reporting with FastReport.  Thank you everyone for participating! You can find a video from the webinar o n our Youtube channel . Go and subscribe to our  channel . Y ou can see a post ing about this webinar in Michael Philippenko ’s blog. ### Roslyn features in Visual Studio 2015 Preview URL: https://www.fast-report.com/tr/blogs/roslyn-features-visual-studio Introduction Release of Visual Studio 2015 Preview includes new version of C# and VB.NET compilers called "Roslyn". Roslyn is a complete rewrite of C# and VB.NET compilers; if previously they were written in C++, now C# compiler is written in C#, and VB.NET compiler - in VB.NET respectively. Also Roslyn is fully open sourced and available on GitHub. When using the previous compiler, developer couldn't affect the compilation process. New compiler follows the idea of Compiler-as-a-Service: now it's a platform with API that allows the developers taking part in the compilation process. Benefits Refactoring becomes much easier. Developers of Visual Studio extensions can use the infrastructure of Roslyn to not waste their time on writing parsers and analyzers. Roslyn can be used in .NET applications to compile and execute dynamically generated code. Roslyn can greatly help in translating C# code to another programming language. New features based on Roslyn in VS 2015 Unused «using» directives are highlighted by gray color. Ctrl+. now contains the preview window that allows developers evaluating the result of the command. The menu Ctrl +. collected new commands to solve problems with the code and refactoring commands. Added new commands for refactoring: Inline temporary variable and Introduce local . Preview is available in renaming interface and it shows messages about possible errors. Tags: Visual Studio, Visual Studio ### Save $100 on PASS tickets in November! URL: https://www.fast-report.com/tr/news/fastreport-economy-november-2019 Summary: Save $100 on PASS tickets in November! Save $100 on PASS tickets in November! We are excited to be a part of PASS Summit 2019 . Use promocode  PASSExhibitor  during registration to save $100 on your ticket. See you on November 5-8 in Seattle! ### Save the original image quality when exporting to PDF URL: https://www.fast-report.com/tr/blogs/save-original-image-quality-pdf In PDF export report there is a new option - "Original Resolution". It allows you to save images in full resolution. Sometimes it is important to transfer an image with the original quality. Using this new option, you will be able to get the image from a PDF document without any quality loss. Here there is one restriction - you cannot rotate the image in the report because it will require a change of the image. However, FastReport has a special protection on the odd chance that you have rotated the image. PDF export will get the original picture. What if you find an image of not a desired angle in your PDF report? In this case, you should check the export options to make sure that the "Original Resolution" option is enabled. If it is necessary, you can scale the image. Let us take a look at the following example.  First, create a simple report. Add an object "Picture" to the report page. Double click on the added object "Picture". After this, a picture editor will open: Use the "Load" button and select the image on the local disk. Click "OK". Here, scaling of the object "Picture" is optional: Run the report in preview mode. Select «Save» -> «Adobe Acrobat» In the PDF export settings select the "Options" tab: Click "OK" and save the export file: Now change the report template. Establish the "Angle property" of the object "Picture" to 90 degrees. Take into account, that you should make export to PDF with the enabled "Original resolution": As you can see, the image has not been rotated by 90 degrees. Let us make another export to PDF, but with a disabled option "Original resolution": In this case, we get an image, rotated by 90 degrees. But what happened to the "original" image? The quality is lost. It is seen from the size of the file: In the last export, we have disabled the option "Original Resolution" and got the file size of 93 KB instead of 14 703 KB. You can stretch the image if you open your PDF file in the editor. In first two exports the picture with high resolution will retain quality: In the third one you will see a terrible pixelation: Summing up, in the article we have illustrated a method, that helps you to send documents, retaining the original image quality. Tags: .NET, .NET, FastReport, FastReport, PDF, PDF ### Saving a report in PDF/X format URL: https://www.fast-report.com/tr/blogs/saving-report-pdf-x-format Summary: PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. It is important for polygraphy, where it is important to print documents on any print device uniformly, whether the printer or plotter. PDF/X document contains color profiles for printers, due to which will be printed out exactly the color, which was conceived by the author. Thus, the standard PDF/X gives us guarantee of unchanging the final document. That makes PDF format ideal for document management in the sphere of publishing and polygraphy. The disadvantage of this format is the impossibility of use of properties: encryption, compression JBIG2 and transparent. PDF/X format designed for the exchange of data, ready for printing. The idea is to create a document that can be printed on any printer identically. It is important for polygraphy, where it is important to print documents on any print device uniformly, whether the printer or plotter. PDF/X document contains color profiles for printers, due to which will be printed out exactly the color, which was conceived by the author. Thus, the standard PDF/X gives us guarantee of unchanging the final document. That makes PDF format ideal for document management in the sphere of publishing and polygraphy. The disadvantage of this format is the impossibility of use of properties: encryption, compression JBIG2 and transparent. PDF/X standard is constantly evolving and has already presented 5 th generations: • PDF/X-1a - the first standard, designed to work with documents: black / white, CMYK or spot color; • PDF/X-3. The PDF/X-3 has a color management support; • PDF/X-2. Add-on PDF/X-3. Designed to interact more closely the supplier and the recipient of the file. Support OPI (Open Pre-Press Interface) and does not support embedded fonts; • PDF/X-4. The updated version of the PDF/X-3, which supports transparency and spot colors; • PDF/X-5. Based on PDF/X-4, allows external images. You probably noticed that the standard X-2 is located after X-3. It's not a mistake. Developers have created X-2 after X-3. Apparently they did not want a gap in numbering. FastReport.Net supports export to PDF/X-3 format. Thus, later on we will consider its features. There are some restrictions applicable to the PDF/X-3 files: • All fonts must be embedded in the document; • All the color data can be grayscale, CMYK or spot colors. It is also permissible RGB, LAB or ICC based color spaces. If you are using a device-independent color, the embedded ICC profiles and the Rendering Intent, should be taken into account when processing the PDF/X-3. This means that you need to know the color management process to be able to process PDF/X-3 files; • OPI is not allowed; • PDF/X-3 files can not contain music, videos, or other non-printing data; • If there are annotations (notes) to PDF, they should be located outside of the bleed; • The file should not contain any forms or Javascript code; • Supported by a limited number of compression algorithms; • You cannot use encryption; • Do not use curves; • Do not use transparency. In addition to restrictions there is also a list of what should be in PDF/X-file 3. This is what distinguishes it from ordinary PDF files: • metadata that indicates that the file is a PDF/X and some details indicating the version of the standard; • PDF/X-3 contains additional statements that define the bleed (bleed area) and the area to crop (trim area): MediaBox defines the size of the entire document; ArtBox or TrimBox defines the boundary of the printing area; If the file is printed with the bleed, you should ask BleedBox. It must be more than TrimBox / ArtBox, but less than the MediaBox. • The file must contain the ICC color profile, which specifies the color space CMYK. This profile should be implemented as OutputIntent. Now consider the process of creating a report export in PDF/X. So: - Prepare a report template and run it in preview mode; - Choose Export to PDF format. We are interested in "Settings" tab: There are some changes unlike in previous versions of FastReport. This tab looked like this, before: Added the new option " Lossless images". It allows you to use the original image without conversion to Jpeg. This is especially important for vector images and barcodes. The main differences in the "Compliance" section. Now you do not need to choose this option. The default is PDF 1.5 format. This is the usual Export as PDF. The list of compliance standards contains one more - PDF/X-3. Select it. The options of the "Security" tab will not be available. Open the export file in a PDF program Adobe Acrobat Pro. you need to open the panel "Standard" to verify compliance with the standard document. "View" opens the menu - "Show / Hide" -> "Navigation Area" -> "Standards". Now we can see that the document does conform to the PDF/X-3 ISO 15930-3: Thus FasrtReports reports become more useful, especially for polygraphy and publishing. Now there is no need to worry about repetition reproduction of a document on the different sources of print. The report will always look the same. Tags: .NET, FastReport, PDF ### Saving FastReport .NET template to RDL file URL: https://www.fast-report.com/tr/blogs/saving-net-template-rdl Why is it necessary Possibility to save FRX report to RDL is needed for some users. Unfortunately, some objects of FRX report will be lost, because there is no relevant in the RDL . Saving the report to RDL format To do this go to the File menu in designer and select Save As... . On next window select the filter RDL file (*. rdl) and enter the file name. The designer saves report template in the RDL file. The next pictures shows FRX report (left) and the same report saved in RDL (right). Tags: .NET, .NET, FastReport, FastReport ### Saving images from Delphi / C++ Builder / Lazarus URL: https://www.fast-report.com/tr/blogs/saving-images-delphi Summary: We talk about the advantages and disadvantages of popular raster image formats. Saving the report in the form of images with fine-tuning using FastReport VCL and code. We talk about the advantages and disadvantages of popular raster image formats. Saving the report in the form of images with fine-tuning using FastReport VCL and code. We talk about the advantages and disadvantages of popular raster image formats. Saving the report in the form of images with fine-tuning using FastReport VCL and code. BMP, JPEG, TIFF, GIF – there is a variety of raster image formats. 1. BMP First of all, you should know that since BMP is an old image format it is not so popular among Internet users, only the bitmap images are saved in this format which doesn’t support the vector ones. The size of .bmp files can differ, depending on the quality of the images. Despite the fact that users consider the BMP format obsolete, it is actively used in many spheres. For example, all Windows interfaces were based on this format. Why exactly BMP? Because it is convenient to use when creating images that do not lose quality after editing them. BMP is often used in Photoshop when editing images, this format is also easy to upload to social networks and various websites. Of course, it is better to use modern image formats, as they are multi-layered and you can upload them to any website without technical issues. At the same time, there are many options to edit these images and they have a smaller file size. 2. JPEG JPEG is a commonly used format for storing images. It has a good compression quality for viewing pictures. This format has many benefits because the user has several advantages, such as: the ability to change the quality and size of the file, open the image in any browser with ease, editing this file in any graphic editors, as well as low size, which doesn’t take much space on computers and other data storage devices. If you do not compress much, the quality of the image will be completely saved. This format has few disadvantages: a) There is no transparency unlike, for example, PNG. b) If you compress (resize) the JPG image, its distortion (or complete loss) will be noticeable. c) It is not recommended to edit the restored JPG file after compression, as it may lose the quality. Despite these drawbacks, this format is considered the most popular on the internet and people use it a lot. 3. TIFF This is a well-known raster format that supports almost all known color spaces. Images without compression has almost become the standard in the printing industry. There are various compression algorithms with or even without losses. A TIFF file can contain an image stored in the CMYK, RGB, Lab color models in indexed color mode, as well as in grayscale. This allows to use this format for storing a variety of images, used both for the preparation of web-graphics and typography. In addition to the image itself, the TIFF contains transparency channels which allows you to save transparent areas of the image or highlight objects between work sessions. Another feature of the TIFF format is the ability to save multiple images that have their own sets of attributes and properties (tags) in one file. This makes TIFF similar to GIF, though it doesn’t have the ability to create animated images. The popularity of this format makes it easy to transfer images between programs and hardware platforms. 4. GIF GIF files have small size and support simple animations, i.e. changing frames in one file. GIF format is widespread in the field of creating banners, as well as the graphic shell of video content. The main advantage is data compression without an obvious loss of quality at a depth of up to 256 colors. Animated images consist of a number of static frames, as well as data on the required time of demonstration of a frame. People use the GIF format in many fields. For example, in the design of their sites, web design, graphic design, while writing articles or books, on social networks, in the form of advertising banners, for storing photos and so on. Using this format, you can reduce the size of the image, which positively affects the speed of loading pages of the Internet website. 5. SVG This format is a vector one. In short, the websites are compiled with its help. SVG is an XML text file with tags. This format doesn’t lose the image quality when scaling and cropping. For more information on the advantages and disadvantages of SVG format, as well as about saving it from Delphi, see here .  Now we know when and which format is better to use. So how can we export to these formats from a Delphi / Lazarus application? Easy! Of course, this is not our primary goal, there are many options. We are interested in the opportunities of FastReport VCL, because using it we can prepare a document, a poster, a banner – fortunately, the visual designer includes graphic primitives and many objects with effects. You can immediately see an, if needed, change / edit the document before exporting it to the desired image format. So, we need to create / save / export to BMP or GIF from Delphi? First we have to create a document. Simple or complex – there is no difference. Now, after we created the object that we want to turn into an illustration, launch and look . In the preview window, we select the format for saving the report. For example, we need to export to BMP image. Select and click. The export settings window will appear. Configure and save. Let’s talk a bit about settings. We can save all pages, current page or a range. Here are the screenshots to compare the settings of different formats: (TIFF, JPEG,GIF)  In some cases, some settings are not available (format differences). Monochrome – images in shades of black; Crop pages – whether to crop pages; JPEG quality – setting the quality of the graphic object; Resolution (dpi) – dots per inch; Open after export – opening the document automatically after the export. You can specify where to save your file (in the local storage, send as E-mail, upload to FTP or cloud storage). Well, now we learned how to easily save the report in graphical formats from Delphi / C++Builder / Lazarus from the preview window. But how can we save BPM/JPEG/TIFF/GIF directly from the Delphi / C++Builder / Lazarus code? Here is how! Export to BMP ``` procedure TForm1.Button1Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxBMPExport1.PageNumbers := '2-3'; {Set whether to export each page to a separate file.} {.N will be added to the file name, where N is the serial number of the page} frxBMPExport1.SeparateFiles := True; {Set whether to export to monochrome image} frxBMPExport1.Monochrome := False; {Set whether to crop empty edges (page margins)} frxBMPExport1.CropImages := False; {Set the resolution, DPI} frxBMPExport1.Resolution := 96; {Set whether to open the resulting file after export} frxBMPExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxBMPExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxBMPExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxBMPExport1.FileName := 'C:\Output\test.bmp'; {Export the report} frxReport1.Export(frxBMPExport1); end; ``` Export to JPEG ``` procedure TForm1.Button2Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxJPEGExport1.PageNumbers := '2-3'; {Set whether to export each page to a separate file.} {.N will be added to the file name, where N is the serial number of the page} frxJPEGExport1.SeparateFiles := True; {Set whether to export to monochrome image} frxJPEGExport1.Monochrome := False; {Set whether to crop empty edges (page margins)} frxJPEGExport1.CropImages := False; {Set the quality of JPEG} frxJPEGExport1.JPEGQuality := 90; {Set the resolution, DPI} frxJPEGExport1.Resolution := 96; {Set whether to open the resulting file after export} frxJPEGExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxJPEGExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxJPEGExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxJPEGExport1.FileName := 'C:\Output\test.jpg'; {Export the report} frxReport1.Export(frxJPEGExport1); end; ``` Export to TIFF ``` procedure TForm1.Button3Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxTIFFExport1.PageNumbers := '2-3'; {Set whether to export each page to a separate file.} {.N will be added to the file name, where N is the serial number of the page} frxTIFFExport1.SeparateFiles := True; {Set whether to export to monochrome image} frxTIFFExport1.Monochrome := False; {Set whether to crop empty edges (page margins)} frxTIFFExport1.CropImages := False; {Set the resolution, DPI} frxTIFFExport1.Resolution := 96; {Set whether to open the resulting file after export} frxTIFFExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxTIFFExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxTIFFExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxTIFFExport1.FileName := 'C:\Output\test.tif'; {Export the report} frxReport1.Export(frxTIFFExport1); end; ``` Export to GIF ``` procedure TForm1.Button4Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxGIFExport1.PageNumbers := '2-3'; {Set whether to export each page to a separate file.} {.N will be added to the file name, where N is the serial number of the page} frxGIFExport1.SeparateFiles := True; {Set whether to export to monochrome image} frxGIFExport1.Monochrome := False; {Set whether to crop empty edges (page margins)} frxGIFExport1.CropImages := False; {Set the resolution, DPI} frxGIFExport1.Resolution := 96; {Set whether to open the resulting file after export} frxGIFExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxGIFExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxGIFExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxGIFExport1.FileName := 'C:\Output\test.gif'; {Export the report} frxReport1.Export(frxGIFExport1); end; ``` After seen how we can create and export to such formats, we come to the conclusion that it is extremely easy! But please – do not exploit these features! Very often (for example, many software products for generating tax reports or 1040-SR forms) allow to save the resulting file only in a certain closed format, send it to print or save as TIFF – unfortunately, this option doesn’t withstand any criticism from the point of view further use. It can only be admired or printed. After all, it doesn't cost you anything to export these documents to PDF (or, if necessary – PDF/A), ODS , ODT , RTF , DOCX , XLSX – with full support of relevant standards but much more convenient for working with them as text documents.  Tags: VCL, Export, Lazarus, FastReport, Delphi ### Saving report in cloud services from a user application code URL: https://www.fast-report.com/tr/blogs/saving-report-cloud-services You are not only available report exports, but also some options for saving the report, for example, into Box, into DropBox, into Google Drives and others. In the menu "Save" allocated a special section with options for saving the report in a variety of cloud services: We are available: 1)      Box; 2)      Dropbox; 3)      FastCloud; 4)      GoogleDrive; 5)      OneDrive; 6)      XMPP. The latter option uses the FastCloud cloud service for storing and building reports. The XMPP protocol sends a link to the report to the jabber client. Using these save options is not difficult if you manually set the preferences in preview mode. But how to automate the process of saving, using code? This will be discussed in this article. With the exception of FastCloud, all cloud services use OAuth-type authorization. This is an authorization protocol that allows you, without using a real login and password from the service, to give the application access to the cloud service. However, you can restrict access rights. You will be given an identifier and a secret key that you need to use for authorization. To get the Client Id and the Client Secret, you need to create the application and register it on the OAuth server of your cloud service. Therefore, we need to specify at least two parameters to save the report to the cloud service. Let’s consider in order. 1)      For the Box service: First of all, you need to add the FastReport library: using FastReport; We create an instance of the ClientInfo class, which will contain information for authorization:  ``` FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); ```  ClientInfo can take three parameters: ClientName, ClientId and ClientSecret. In our case, ClientId and ClientSecret are required. Then create a GoogleDrive client to save the report: ``` FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient client = new FastReport.Cloud.StorageClient.GoogleDrive.GoogleDriveStorageClient(clientInfo); ```  Create a report object and load the report into it: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  If you want to save the report in a format other than native fpx (the format of the report preview), you need to create an export instance: ``` FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); ```  Save the report using the client: ``` client.SaveReport(report, pdf); ```  If you save a report in the fpx format, you can pass null instead of the second parameter: ``` client.SaveReport(report, null); ```  2)  For the DropBox is slightly different. Within OAuth, you can also use access token. This is an access key that is generated as a result of successful authorization. Passing such a token, we seem to restore the previous authorization. Create a client for the DropBox and pass it access token in text format: ``` FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient drop = new FastReport.Cloud.StorageClient.Dropbox.DropboxStorageClient("accessToken"); ```  Proxy settings: ``` drop.ProxySettings.Server = ""; drop.ProxySettings.Port = 999; drop.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; drop.ProxySettings.Username = "Username"; drop.ProxySettings.Password = "Password"; ```  Next, as in the previous example: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  Save the report: ``` drop.SaveReport(report, null); ```  3)  For the GoogleDrive: ``` FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); GoogleDriveStorageClient client = new GoogleDriveStorageClient(clientInfo); ```  Proxy settings if needed: ``` client.ProxySettings.Server = ""; client.ProxySettings.Port = 999; client.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; client.ProxySettings.Username = "Username"; client.ProxySettings.Password = "Password"; ```  Create a report: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  Create export: ``` FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); ```  Save the report:            ``` client.SaveReport(report, pdf); ```  4)  For the OneDrive: ``` FastReport.Cloud.StorageClient.SkyDrive.ClientInfo clientInfo = new FastReport.Cloud.StorageClient.SkyDrive.ClientInfo("ClientName", "ClientId", "ClientSecret"); FastReport.Cloud.StorageClient.SkyDrive.SkyDriveStorageClient one = new FastReport.Cloud.StorageClient.SkyDrive.SkyDriveStorageClient(clientInfo); ```  Proxy settings if needed:             ``` one.ProxySettings.Server = ""; one.ProxySettings.Port = 999; one.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; one.ProxySettings.Username = "Username"; one.ProxySettings.Password = "Password"; ```  Create a report: ``` Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); one.SaveReport(report, null); ```  5) For FastCloud there are differences. It does not use the OAuth protocol. Authorization is carried out by email address and password. Create a FastCloud client: ``` FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient fast = new FastReport.Cloud.StorageClient.FastCloud.FastCloudStorageClient(); ```  Assign a token. To generate a token, use the GetAccessToken method:  ``` fast.AccessToken = fast.GetAccessToken("email@mail.com", "password"); ```   Create an instance of the export: ``` FastReport.Export.RichText.RTFExport rich = new FastReport.Export.RichText.RTFExport(); Report report = new Report(); report.Load(@"C:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); fast.SaveReport(report, rich); ``` 6)  Send the report to Jabber (XMPP). Previously, we need to create an xmpp client: ``` FastReport.Messaging.Xmpp.XmppMessenger messenger = new FastReport.Messaging.Xmpp.XmppMessenger("user@xmpp.jp", "password", "user@xmpp.jp"); ```  If you need to configure Proxy: ``` messenger.ProxySettings.Server = "server"; messenger.ProxySettings.Port = 999; messenger.ProxySettings.ProxyType = FastReport.Cloud.ProxyType.Http; messenger.ProxySettings.Username = "username"; messenger.ProxySettings.Password = "password"; ```  Then, or before, create a report object: ``` Report report = new Report(); report.Load(@"С:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); ```  And we pass it to xmpp client: ``` messenger.SendReport(report, null); ```  Having executed this code, we send the report to the cloud service FastCloud. At the same time, the jabber user receives a message with a link to the report. The link in the xmpp client looks like this: https://cloud.fast-report.com/reports/3da0fcd3f76ac1f6d87c21df85f5d5e2 Tags: .NET, .NET, FastReport, FastReport, Web Storage, Web Storage ### Saving SVG images from Delphi / C++ Builder / Lazarus URL: https://www.fast-report.com/tr/blogs/export-svg-delphi-vcl Summary: Using SVG, you can save reports as pictures without losing quality from Delphi code. Using SVG, you can save reports as pictures without losing quality from Delphi code. Using SVG, you can save reports as pictures without losing quality from Delphi code. The SVG file is a two-dimensional vector image based on documents in XML format. The SVG format is used not only for the description of two-dimensional vector graphics, but also for mixed vector-raster images. Let's list the main advantages of SVG format: First of all, as previously mentioned in the last article , vector graphics are scaled up or down without loss of quality (and when enlarged, the image doesn’t turn into the cubism art). Second, SVG is fully compatible with web technologies and therefore will be an organic part of any web-site. Third, adding Javascript to objects, we can make the image interactive, that is, responding to certain user actions with the given answers – in relation to the image and its form. Forth, SVG files are considered text, so you can optimize the file for SEO without external meta tags by directly adding keywords to the image code. This format has some disadvantages, too: The file size will rapidly increase just like an avalanche when increasing the detailing of images. However, for images with a bunch of details, it is best to use PNG of JPG formats. So, unfortunately, SVG is completely unsuitable for realistic high-resolution photographs and detailed maps of the area. SVG is not supported by older browsers (Internet Explorer 8 and older), but I don’t think this is a great disadvantage. By default, (for example, WordPress), doesn’t allow you to upload SVG files, due to security issues. WordPress perceives this extension as something malicious and therefore blocks it. But you can bypass this block using plugins. SVG is suitable for creating simple objects that can be described by simple figures or their parts. We should also mention that social networks, such as Facebook and Twitter, do not support SVG format. If you use SVG files as thumbnails, you will have to use the plugin and set PNG or JPG for meta tags. We reviewed the main advantages and disadvantages of the SVG format and now we can return to the main topic of this article.  How to save a SVG file using Delphi or Lazarus? First you need to create the image! And then I can advise (all of a sudden) FastReport VCL, because using it you can save immediately in the desired format from Delphi. After all, there might be many objects to display apart from the pictures. It’s convenient – so, why not? From barcodes to tables and maps, it’s strongly recommended to save them in a vector format! Therefore, let’s begin! Create a report. Previewed before saving, didn’t like something? Changed, edited! Now, after we created what was required, launch it and see what happened. Call a preview and select the format we need. Here it is – below! Select and click . Now we see a window with many different settings. Set up everything we need and click OK ! Briefly about export settings You can see that when saving in SVG format, the settings are not the same with BMP, JPEG, TIFF or GIF. More precisely, such functions as: Styles – saving styles; Unified Pictures – unifying pictures; Formatted – saving formatting; Pictures – saving a document with pictures – this is the right choice for those images that were already pixel when adding to our document; Multi Page – saving multiple pages; Page navigator – creating a page navigator; Saving images in PNG, EMF, BMP and JPEG formats. And the settings for the BMP, JPEG, TIFF, GIF formats are: Monochrome – images in shades of black; Crop pages – whether to crop pages; JPEG quality – setting the quality of the graphic object; Resultion (dip) – resolution. Obviously, a vector image will be rasterized when saved in raster formats, but the opposite (raster to vector) will not happen. The only things that seem to be common among all these formats are the action settings, ability to save and automatically open the document immediately after saving. Having considered how to save using the preview window, let’s move on to the saving without a preview. Saving SVG files using Delphi / C++Builder / Lazarus code Export to SVG ``` procedure TForm1.Button1Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxSVGExport1.PageNumbers := '2-3'; {Set whether to export styles of the objects} frxSVGExport1.EmbeddedCSS := True; {Set whether to convert all images in accordance with PictureFormat:} {if the image in the report is in BMP format and the PictureFormat is PNG, then BMP will be saved in PNG format} frxSVGExport1.UnifiedPictures := True; {Set whether to format the source text of SVG (increases the size of the resulting file)} frxSVGExport1.Formatted := False; {Set whether to export pictures} frxSVGExport1.EmbeddedPictures := True; {Set whether to export each page to a separate SVG file} frxSVGExport1.Multipage := False; {Set whether to add navigation buttons to the resulting SVG file} frxSVGExport1.Navigation := False; {Set in which format to export pictures} //uses frxExportHelpers; // TfrxPictureFormat = (pfPNG, {$IFNDEF FPC}pfEMF,{$ENDIF} pfBMP, pfJPG);) frxSVGExport1.PictureFormat := pfPNG; {Set whether to open the resulting file after export} frxSVGExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxSVGExport1.ShowProgress := False; {Set whether to display the export filter dialog box} frxSVGExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxSVGExport1.FileName := 'C:\Output\test.svg'; {Export the report} frxReport1.Export(frxSVGExport1); end; ``` Let’s compare the results of exporting raster and vector objects! I will provide JPEG and SVG examples below. JPEG SVG And… here we immediately see the difference. Can you find it? :) Well, for example, a raster image has a larger size than a vector image, and when scaling, the clarity decreases. But as for a vector image (SVG), when scaling, clarity remains the same and the file size is much smaller. The only drawback is that SVG is not suitable for realistic photos (but we don’t have them anyway). Let’s summarize! The SVG vector format is very convenient (if you use it in the right place), and saving via FastReport VCL makes it simple. Tags: VCL, Export, Lazarus, FastReport, SVG, Delphi ### Scale management when printing in Excel URL: https://www.fast-report.com/tr/blogs/scale-management-printing-excel FastReport .NET 2018.4 version brought quite a few innovations. One of them is the ability to set the scale of the Excel page of the document when printing in the Excel export settings. You can export the report to Excel in preview mode or from the code of the user application. Let's consider both options. Export to Excel 2007 from pre-view. For example, I will take a report with a large number of rows and columns - a matrix of 100 by 100. Let’s open the export menu in Excel 2007: At the bottom of the form is the “Print Scaling” option. The default setting is “Actual Size” (No Scaling). Let's make an export and see the Excel document in the view mode when printing: As you can see, the report did not fit one printing page. It will take 6 pages for our matrix. Let's export the report again. But now, for Print Scaling, we select Fit Sheet on One Page. What will we see in the print mode of an Excel document? The scale of the document is reduced so that it fits entirely one page. Well, this is a very valuable option. Often we need to print the entire report on one page. It is necessary to select the scale by trial and error. Let's move on to the next value of the “Print Scaling” option - “Fit All Columns on One Page”. In this case, our example with the matrix will not be the most indicative. As far as you understood, this option allows you to place all data columns on one printing page. In this case, the lines may not fit one page and another one will be generated. But, since our matrix is square, both the columns and the rows will fit on the same printing page. Therefore, I will generate another 30-by-100 matrix. Let's export it to Excel with the value "Fit All Columns on One Page” of the" Print Scaling "option. Let's see how it looks like in print mode in Excel: The scale of the document was chosen so that all columns fit in the width of one page. But the lines did not fit, but this is not important for us, because we chose "All columns on one page." Another value of the option "Scaling when printing" - "All lines on one page." In this case, it is important for us to put all the lines on one page, and whether the columns fit in is not of interest to us. Let's make export to Excel of our matrix 100 by 100. Let's see what happened: All requirements are met - the lines fit on one page. And only 56 columns fit. For the rest, a second print page was created. So, we consider 4 document scales when exporting a report to Excel 2007. Now let's see how to use the considered option in the code of the user application: ``` Report report = new Report(); FastReport.Export.OoXML.Excel2007Export exp = new FastReport.Export.OoXML.Excel2007Export(); exp.PrintFit = FastReport.Export.OoXML.Excel2007Export.PrintFitMode.FitAllColumsOnOnePage; report.Export(exp, @"C:\result.html"); ```  4 values available for PrintMode: NoScaling, FitSheetOnOnePage, FitAllColumsOnOnePage, FitAllRowsOnOnePage. And for the web report, only one mode of scaling Excel document is available - Place on one page: ``` webReport.XlsxPrintFitPage = true; webReport.ExportExcel2007(); ```  Thus, we have at our disposal another useful option. Tags: .NET, .NET, FastReport, FastReport ### Seminar Firebird and FastReport, Prague, 9. November 2007 URL: https://www.fast-report.com/tr/news/seminar-firebird-prague-2007 Summary: Seminar Firebird and FastReport, Prague, 9. November 2007 Seminar Firebird and FastReport, Prague, 9. November 2007 Seminar Firebird and FastReport, Prague, 9. November 2007 We cordially invite you to a one-day seminar on The Firebird and FastReport database systems, which will be held in patek 9. November in Prague hotel Angelo na Smichove (Radlicka 1g, Prague 5, metro station Andel). Preface: Dmitry Yemanov, chief developer of Firebird Pavel Cisar, IBPhoenix and Firebird QA Mikhail Phillipenko, CEO of FastReport Dmitry Kuzmenko, CEO of IBSurgeon and IBPhoenix expert on data optimization and data recovery. The topic of the seminar will be news in Firebird, security, data protection and optimization, business intelligence and reporting with fastreport and Firebird products. You will not miss the chance to meet members of the developing Firebird team and the opportunity to get prime answers to your questions at the round table! Lectures will be presented in Czech and English. Admission to the seminar is free. However, the number of mist is limited, so register as soon as possible! Seminar programme: 1. Introduction 2. New features of Firebird (English, Dmitry Yemanov) 3. Fastreport kits (English, Mikhail Phillipenko) 4. Protection against damage or loss of data (English, Dmitry Kuzmenko) 5. Firebird Internals by Dmitry Yemanov 6. Business intelligence with FastCube (English, Mikhail Phillipenko) 7. Firebird and security (Czech, Pavel Cisar) 8. Optimization (English, Dmitry Kuzmenko) 9. Round table (English and Czech, all lecturers) http://ibphoenix.fr/spip.php?article80 ### Seminar in Warsaw URL: https://www.fast-report.com/tr/news/seminar-warsaw-2007 Summary: Seminar in Warsaw Seminar in Warsaw On behalf of Fast Reports Inc. and Firebird we are pleased to invite you to a seminar devoted to new functionalities of the Fast Report and Firebird programmes. The seminar will take place on 07.12.2007 at Hotel Lord in Warsaw, Al. Krakowskie 218.    Fast Reports Inc company has been operating on the IT market since 1998 and its main objective is to develop report-generating software.  The aim of the seminar is to present new functionalities and features of Fast Report and Firebird, as well as other tools.  All the advantages and functionalities of the programmes will be presented by: Fast Reports' BI solutions for developers and end-users, Michael Philippenko, CEO Fast Reports Fighting database corruptions, Dmitry Kuzmenko, CEO IBSurgeon Fast Reports' new products and new features, Michael Philippenko, CEO Fast Reports Optimization of Firebird databases, Dmitry Kuzmenko, CEO IBSurgeon  Participation in the seminar is free of change.   All the interested persons are asked to contact us by phone: 022 885-43-21 or by writing to the e-mail address:  info@softkey.pl  in order to receive an application form.  The number of participants is limited. We invite you to take part in our seminar! ### Sending report from Delphi program via MAPI protocol URL: https://www.fast-report.com/tr/blogs/send-report-delphi-mapi-protocol Just copy following code for sending the report from your own application: ``` procedure TForm1.Button2Click(Sender: TObject); var mail: TfrxMailExport; txt: TfrxTXTExport; begin txt := TfrxTXTExport.Create(nil); mail := TfrxMailExport.Create(nil); mail.UseMAPI := MAPI; mail.Address:='Recepient Name '; mail.ExportFilter:=txt; mail.FilterDesc:='TXT per E-Mail'; mail.FromMail:='Sender Name '; mail.Login := ''; mail.Password := ''; mail.Subject:='Subject-Text here'; mail.Lines.Add('Hi there, ' + #13#10#13#10+ 'heres comes an email with attached file'); frxReport1.Export(mail); mail.Destroy; end; ``` There are two important issues for this example:  The recepient address must be written in canonical form Name . Simple forms  - user@host.net will be rejected by some mail clients. For example, Microsoft Outlook require a  canonical form of the recepient address. You must set fields Login and Password  with empty values. Tags: VCL, VCL, MAPI, MAPI, FastReport, FastReport, Delphi, Delphi ### Sending report in PDF to Email from application code URL: https://www.fast-report.com/tr/blogs/send-report-pdf-email-application-code It is no secret that FastReport .Net allows you to send reports by email. But few people know how to do it by using the code in a custom application. In such way that you wouldn't have to run a report and send it via email manually. The required reports will be automatically sent to a specified e-mail address with help one button, or schedule. Let's consider the example of sending the report in PDF format by e-mail. Create WindowsForms application. Add buttons and two text fields. In the first one, we will input recipient's email address, and the second - mail server for outgoing mail. We will need the following libraries: ``` using FastReport; using FastReport.Export; using FastReport.Utils; ``` Create an event handler for the button click:      ``` private void button1_Click(object sender, EventArgs e) { Config.ReportSettings.ShowProgress = false; //Disable progress window Report report1 = new Report(); //Create new report object report1.Load(Environment.CurrentDirectory+"\\text.frx"); //Load report report1.Prepare(); //Prepare report FastReport.Export.Pdf.PDFExport pdf = new FastReport.Export.Pdf.PDFExport(); //Cteate PDF export FastReport.Export.Email.EmailExport email = new FastReport.Export.Email.EmailExport(); //Create Email export   //email mailer settings email.Account.Address = "gromozekaster@yandex.ru"; email.Account.Name = "TestUser"; email.Account.Host = textBox2.Text; email.Account.Port = 25; email.Account.UserName = "Gromozekaster"; email.Account.Password = "Password"; email.Account.MessageTemplate = "Test"; email.Account.EnableSSL = true;   //email addressee settings email.Address = textBox1.Text; email.Subject = "Test Report"; email.MessageBody = "Test message";   email.Export = pdf; //Set export type email.SendEmail(report1); //Send email } ``` First of all I disabled the progress window in the report settings, but you can skip this step. If you do not need it, just do not write this line of code. Then create an instance of a report object and load the report into it. Before the export you need to prepare a report (Prepare), in other words - build it. Since the title of the article contains “PDF”, let's create an object of export to PDF.  Likewise we create export to email. Now we can customize the export settings in the Email. In the Account - the sender's settings. Basically it is the outgoing mail server settings. Next - set the parameters of the recipient as well as the email address, subject line, message text and export to the desired file type. Here it should be noted that is not necessary to export to PDF, you need only to create an export object. Email export makes exports to the specified format. If you do not specify Export parameter, then the report will be sent in the FPX format. This file is preview of the report. You can view, print or export the report, but can not edit it. Finally, we will send a letter using Sendmail method. Be sure to pass the report object to this method. Considered method will be useful for standard emails, for example, you can arrange to automatically broadcast daily reports to your chief email. Tags: .NET, .NET, FastReport, FastReport, PDF, PDF, Report, Report, Email, Email ### Sending reports by E-mail via MAPI protocol URL: https://www.fast-report.com/tr/blogs/sending-reports-email-mapi FastReport.VCL with the very first version uses the original realization of SMTP protocol, written for sending generated reports via email. Excellent implementation, which is used by many users. These days some providers of postal services have demanded secure authentication to send mail, therefore some users have difficulty in sending reports. Customers of .NET version of the report generator does not run into this problem, because the implementation of sending reports in FastReport.NET based on MAPI protocol. In this case, the report generator uses an external mail program for sending the reports. Due to numerous requests the support of MAPI protocol was included in VCL version. We apologize to all users who are prematurely get informed of readiness MAPI - our implementation had contained some errors that did not allow to send mail when using the report generator with modern versions Delphi with Unicode support. We are pleased to report that MAPI error corrected now. All comments, bug reports and suggestions regarding sending reports via MAPI protocol in FastReport.VCL you can write into this blog. Tags: VCL, VCL, MAPI, MAPI, FastReport, FastReport, Email, Email ### Service Solutions Update to Version 2026.1 URL: https://www.fast-report.com/tr/news/release-service-2026.1 Summary: In the 2026.1 release of our service solutions lineup, we focused on improving usability, security, and expanding capabilities. In the 2026.1 release of our service solutions lineup, we focused on improving usability, security, and expanding capabilities. In the 2026.1 release of our service solutions lineup ( FastReport Cloud , FastReport Publisher , FastReport Corporate Server ), we focused on improving usability, security, and expanding capabilities. The update includes dozens of improvements to the interface, integration mechanisms, user tools, and increased stability. Saving Documents to S3-Compatible Storage A component for working with Amazon S3-compatible storage has been added. This allows saving templates, reports, and finished documents in various formats (pdf, docx, xlsx, etc.) to S3. One use case is creating an annual report (by passing start and end dates as report parameters), exporting it to PDF, and saving it to S3-compatible storage, where it will be available for viewing and downloading.  For more details on saving to S3  and its programmatic use , please refer to the documentation. Sending Documents to Telegram Telegram Bot API support has been added. Similar to saving to S3, documents and report templates can now be sent to Telegram. Sending to channels, direct messages with the chatbot, and group chats is supported. To send, use the unique identifier or name of the public channel or group where the bot has been added. More information on Telegram bots and their creation can be found on  the official Telegram website .  Additionally, the most convenient way to send documents to Telegram is by using an export task followed by sending. To do this, select the previously created Telegram sending task from the dropdown list in the export task settings. Hotkey Hints Added to Context Menus Interface usability has been improved: hotkey hints now appear in context menus. These allow for faster interaction with the user panel interface. Enhanced API Security: CORS Support and Trusted Domain Management We have updated the API request protection mechanism in accordance with modern web security standards. Now, authorized API requests require explicitly specifying trusted domains—this enables correct handling of CORS (Cross-Origin Resource Sharing) and preflight requests in modern browsers. Browsers block cross-domain requests without explicit permission—this protects users from CSRF (Cross-Site Request Forgery) and other attacks. The previously used approach stopped working after security policy updates in Chrome, Firefox, and other browsers. Workspace administrators can configure the list of allowed domains in the “Settings → Workspace” section. Only requests from these domains will have authorized access to the API. This enhances security without compromising convenience—integrations continue to function, but now reliably and according to standards. Added Script Autocompletion Support for FastReport Online Designer Online Designer now includes support for autocompletion hints (similar to IntelliSense), which increases the speed and accuracy of template development. For other new features of the Online Designer, please refer to the 2026.1 release news .  New Template and Report Preview Modes Added The preview component has received additional modes. The following are now available: Static preview (a lightweight mode that displays/renders templates and reports in SVG format); WASM Static Preview—a more accurate, but also resource-intensive component, written in Blazor; Interactive WASM Preview—the most accurate and powerful mode, allowing interactive reports to be run. The appropriate mode can be selected before opening a template or report.  It is also possible to set a default mode in the user settings. Nested Parameters Added to Static Preview Static Preview now supports parameters of any nesting level. This improves work with complex templates and allows parameters to be grouped by topic. Global File Search Added to API The ability to perform a global search for files and folders via API has been added.  This allows you to find a template, report, or any document by its name, even without knowing which folder it is located in. Additional Changes for FastReport Corporate Server and FastReport Publisher Below are additions that apply only to the on-premise products in the lineup. Docker Image Repository Builds are now distributed via Docker Registry. Documentation has been added and updated, and related docker-compose scripts have been fixed. This simplifies product updates and deployments. Separate Sign-In Form A separate sign-in form has been introduced, fully supported by Gateway mechanisms. Old settings (SignInPagePath, DisabledPath) have been removed—they are now replaced by the built-in system. The authorization process has become simpler and requires less traffic. As of the 2026.1 release, this functionality is used for logging into the administrator panel. Support for other services will be added in future releases. Information on Active Users and Subscriptions on the Audit Page The administrator panel has gained additional functionality: the “Audit” page now displays the IDs of active users and subscriptions for a specified time interval. This allows for more effective system usage control and better user understanding. Font Management in the Administrator Panel A dedicated font management page has been added to the administrative panel. Corporate Server and Publisher Installation Wizard The installation wizard has received a major update: Added the option to install FerretDB and PostgreSQL as databases. Users can now choose to install either Publisher or Corporate Server. Added the option to select a demo version for installation. Improved configuration file creation. Reworked interface and bug fixes. Documentation The documentation has been significantly revised and expanded: Documentation for Cloud, Corporate Server, and Publisher is now unified into a single build. Added guides for working with S3, FerretDB, and Docker Registry. Added an article on integrating static preview via iframe. Corrected errors and typos. Added canonical tags and current version to the online documentation. Full list of changes [Frontend] + added font interface to workspace information page + added export parameters to localstorage + added virtualization to users page + added s3 component to user panel + added hotkey hints to various context menus + added telegram task component * added support for alternative uid / pwd keys in MySQL connection dialog (now it will also parse “user id” and “password”) * added new components for font limit designation * added S3 and FTP tasks to workspace information page - fixed product purchase link - fixed automatic connection string parsing in data source setup dialog for MS SQL - fixed file renaming with F2 - fixed export to docx in paragraph breaking mode [Admin Panel] + added more links to entities in the admin panel + added information about active users and subscriptions to the audit page in the admin panel + added a new page in the admin panel for fonts + added checks for duplicate file names and incorrect user IDs in analytics * fixed an error with parameters in the admin panel - fixed visual errors when loading fonts in the admin panel - fixed a bug where the problem solver returned an error when analytics found font problems - fixed a bug where the check for unlinked documents marked all font description models as unlinked (belonging to a non-existent workspace) [Docs] + added documentation on how to use FerretDB instead of MongoDB + added documentation for S3 + added an article to the documentation on integrating staticpreview via iframe + added canonical tag for documentation pages * added current version to online documentation * updated documentation for working with docker registry * fixed some typos in the documentation * unified documentation into one [Online Designer] * disabled html5 notifications in Online Designer * changed the preview generation mechanism for Online Designer; now the temporary template file is deleted after creation [Backend] + added S3 upload task + added Telegram sending task + added domain permissions; now, to execute authenticated requests, a list of allowed domains must be specified in the workspace; previously, due to the new browser security system, this functionality was inoperable + added IntelliSense support for Online Designer + added global file search to API * improved font caching mechanism in the worker service * added search by subscription plan to audits * replaced the view model for the request for space occupied by fonts. Now it is not the same model as for files - fixed an error where many parallel requests led to memory leak and caused an error - fixed data types of returned view models in the task controller - fixed a bug where font space calculations accounted for all workspaces - fixed a bug where OpenID users did not display any useful information in the workspace user list - fixed a bug where nested transport had a null subscription ID [Tasks] - fixed an error where a task could sometimes enter an infinite loop and hang the entire system [Preview] + added new preview modes + added localization switching logic for wasmpreview, identical to staticpreview + added nested parameters to static preview [Installer] + added FerretDB installation option + added Publisher installation capability + added Docker-related text to the final page + added demo version license keys • changed behavior: the “Next” button will now be disabled if a license key is not specified • changed behavior: the installer now creates an extended configuration file - fixed a bug where the installer crashed when clicking to show the RabbitMQ password [Demos] + added WPF demo application for FastReport .NET + Cloud [Common] + added a new AllowLocalSignUp property for Auth, which allows enabling and disabling user registration + added a new FaviconLink property for Server, which allows setting the favicon link for a white-label license * assembly download is now available via Docker Registry instead of ZIP * changed the API test cleanup method * the gateway now handles the sign-in form; sign-in is simplified and requires less traffic - fixed an error where license restrictions erroneously prevented the use of OpenID (OIDC) - removed SignInPagePath property from Gateway config; it is replaced by the built-in sign-in mechanism - removed DisabledPath property from Gateway config; it is replaced by the built-in mechanism - fixed docker-compose script for installation files, updated RabbitMQ version [Font Server] - fixed a bug where some TTF files failed to load ### Service Solutions Update to Version 2026.2 URL: https://www.fast-report.com/tr/news/release-service-2026.2 Summary: In the 2026.2 release of our service solutions lineup (FastReport Cloud, FastReport Publisher, FastReport Corporate Server), we focused on improving reliability and usability. In the 2026.2 release of our service solutions lineup (FastReport Cloud, FastReport Publisher, FastReport Corporate Server), we focused on improving reliability and usability. In the 2026.2 release of our service solutions lineup ( FastReport Cloud , FastReport Publisher , FastReport Corporate Server ), we focused on improving reliability and usability: task scheduling has been enhanced, the admin panel has been extended with new capabilities, new integration options have been added, and bugs have been fixed across several key components. API Key Support in Online Designer Online Designer now supports authentication via API keys, expanding integration capabilities for enterprise systems. To authenticate via an API key, add the apikey parameter to the URL. For example: {hostname}/designer/?uuid={templateId}&v=df&apikey={apikey} . Online Designer also now uses the icon from the server configuration, allowing branding to be applied correctly without additional setup. Faster Task and Scheduler Execution Cron expression execution caching has been added. This significantly reduces the number of database calls when working with the scheduler. Also fixed bugs that caused tasks to run without proper permissions or execute too frequently. Documentation Updates The current product version has been added to all documentation articles. This allows you to use scripts from the documentation to install the current product version. Documentation for tasks and the scheduler has been improved, and a new article has been added on the limitations of the demo version of Publisher and Corporate Server. Additional Changes for FastReport Corporate Server and FastReport Publisher The following changes apply only to the on-premise products in the lineup. New Admin Panel built on Fluent UI The admin panel has been completely rebuilt using Fluent UI — a modern Microsoft component library. The interface is now more consistent, user-friendly, and accessible. Error handling on the bulk plan editing page has also been improved. The new admin panel is currently being tested in the cloud infrastructure and will soon be set as the default in Publisher and Corporate Server. Bulk Editing Plans in Workspaces A new flag has been added to the UpdateSubscriptionPlan method — it allows updating the current plans for all subscriptions that use the plan being updated. This simplifies bulk configuration management. Local Browser Time Support Workspace creation and renewal are now set using the browser's local time. The audit creation date on the audit page is also displayed in local time — eliminating date discrepancies for users across different time zones. Default Product Name from the License Key The product name (Corporate Server or Publisher) can now be automatically determined from the license key. Initial product configuration during deployment will now be easier. Extended FerretDB Integration A bug that prevented migrations from being applied when using FerretDB has been fixed. Additionally, the migration mechanics have been improved. Swagger File for the Admin Panel A Swagger file describing the Admin Panel API has been added to Corporate Server and Publisher. This simplifies integration and makes it easier to explore the available administrative API capabilities. The Admin Panel API description is available at /api/swagger/index.html by selecting the appropriate section in the top right corner of the screen. Installer Fix A bug has been fixed that caused the installer to use incorrect demo keys during installation. FastConverter A new service, FastConverter, has been released. It allows converting *.FPX files to various formats supported by FastReport Cloud (for example, *.PDF, *.DOCX). The service does not require installation or registration. You can convert your reports here . Full Changelog [Admin Panel] + a new flag has been added to the UpdateSubscriptionPlan method — it allows updating the current plans for all subscriptions that use the plan being updated; * workspace creation and renewal are now set using the browser local time; * the audit creation date on the audit page is now displayed in browser local time; - improved error handling on the bulk plan editing page; - fixes for the new admin panel; [Backend] + added missing audit messages; - fixed a bug where CORS returned a 500 error for static files; - added the ability to set the default product name (Corporate Server, Publisher) from the license key; - fixed permission check during bulk file move; - fixed a bug in migration #48 where a null value could not be processed as a string; - fixed MHT export; [Common] + added a Swagger file for the admin panel in Corporate Server and Publisher; + added additional health checks for FerretDB; - fixed a bug where MySQL did not allow creating SELECT command parameters for the database; - fixed a bug where migrations were not applied when using FerretDB; [Docs] + added the current product version to all documentation articles; + improved documentation for tasks and the scheduler; + added an article on the limitations of the demo version of Publisher and Corporate Server; [Frontend] + added a new admin panel built on Fluent UI; - fixed the file selection dialog in transport tasks; [Installer] - fixed a bug where the installer used incorrect demo keys; [Online Designer] + added API key support in Online Designer; * Online Designer now uses the icon from the server configuration; [SDK] - fixed a bug when passing date and time values; [Tasks] + added cron expression execution caching, which significantly speeds up database operations; - fixed a bug that allowed tasks to run if the user had no active cloud workspace; - fixed a bug where tasks executed even if the workspace had no permission to use the scheduler; - fixed a bug where a task executed too frequently when a cron expression was specified. ### Session: Generating document templates using machine learning in Azure URL: https://www.fast-report.com/tr/news/generating-document-azure Summary: Session: Generating document templates using machine learning in Azure Session: Generating document templates using machine learning in Azure On September 26 lead developer of Fast Reports Viacheslav Shamshin will hold a session on generating document templates using machine learning in Azure during Basta! conference in Mainz. The session discusses the current MS Azure cloud possibilities focused on artificial intelligence and machine learning technologies for automatical creation of reports and document forms. In addition, the speaker presents a new approach for report generation using machine learning for data blocks recognizing. Models for templates deploying of databases and report generators based on cloud structure finalize the session. Buy your tickets for Basta! conference here:  https://basta.net/tickets/ ### Setting up the Online Designer in a React .NET Core app URL: https://www.fast-report.com/tr/blogs/designing-react-net-core Summary: Let's take a closer look at how to setup the Online Designer in a React .NET Core application. Find more usefull tips and articles in our blog. Let's take a closer look at how to setup the Online Designer in a React .NET Core application. Find more usefull tips and articles in our blog. Let's take a closer look at how to setup the Online Designer in a React .NET Core application. Find more usefull tips and articles in our blog. Many FastReport.Core users are interested in how the report generator will work in a web application written by using the React library. We have already reviewed this in the article "How to use FR Core Web Report with React.docx". In this article we will look at the way to use an online designer. Despite the fact that it is displayed in the same web object as a regular report, the difference with the display in React is significant. But first things first. If you have never created an application on React with a backend on .Net Core, then you need: 1) Install NodeJS. This is a software package that allows you to perform JavaScript code on the server side, as well as install various JavaScript libraries. 2) Install Microsoft Visual Studio 2017 or another IDE + .Net Core SDK 2.0. To create the application, open the Windows command prompt in the folder where the project will be located and execute the command: dotnet new react –o ReactFRCoreDesigner Open the created project. Let's just add FastReport libraries to the NuGet packages manager. Configure the local package source for the folder: C:\Program Files (x86)\FastReports\FastReport.Net\Nugets Install the FastReport.Core package. Locate the Startup.cs file in the project and add one line of code to the Configure () method: ``` app.UseFastReport(); ```  Now we can use the report generator in our project. In addition to displaying the online designer, we also look at the way to transfer the name of the desired report and upload it to the online designer. Therefore, we will add the App_Data folder to the project. And in it we will add report templates from the Demos \ Reports folder in the FR.Net installation directory. As you can see, we also added an xml file from the same folder. This is a database for reports. Find the Controllers folder. A SampleDataController controller is available to us. Add two methods to it: ``` … using FastReport.Web; using System.IO; … [HttpGet("[action]")] public IActionResult Design(string name) { WebReport WebReport = new WebReport(); WebReport.Width = "1000"; WebReport.Height = "1000"; if (name != "Blank") WebReport.Report.Load("App_Data/" + name + ".frx"); // Load the report into the WebReport object System.Data.DataSet dataSet = new System.Data.DataSet(); // Create a data source dataSet.ReadXml("App_Data/nwind.xml"); // Open the database xml WebReport.Report.RegisterData(dataSet, "NorthWind"); // Registering the data source in the report   WebReport.Mode = WebReportMode.Designer; // Set the web report object mode - designer display WebReport.DesignerLocale = "en"; WebReport.DesignerPath = @"WebReportDesigner/index.html"; // We set the URL of the online designer WebReport.DesignerSaveCallBack = @"api/SampleData/SaveDesignedReport"; // Set the view URL for the report save method WebReport.Debug = true; ViewBag.WebReport = WebReport; // pass the report to View return View(); }   [HttpPost("[action]")] // call-back for save the designed report public IActionResult SaveDesignedReport(string reportID, string reportUUID) { ViewBag.Message = String.Format("Confirmed {0} {1}", reportID, reportUUID); // Set the message for representation Stream reportForSave = Request.Body; // Write the result of the Post request to the stream. string pathToSave = @"App_Data/TestReport.frx"; // get the path to save the file using (FileStream file = new FileStream(pathToSave, FileMode.Create)) // Create a file stream { reportForSave.CopyTo(file); // Save query result to file } return View(); } ```  The first method creates a web report object, sets a template and data source for it, and also sets the report editing mode, report designer settings. As a result, the method will return the view where the web report object will be displayed. The method has a parameter - the name of the report, which we substitute when loading the report template into the web object of the report. The second method is a call back handler for clicking the report save button. It saves the edited report in the App_Data folder. For these two methods, you must create two views. Create a Views folder in the project root. Now back to the controller. Right click on the design method signature and select Add view from the menu. Set the view name - Design. Replace the entire contents of the created view with the code: ``` @await ViewBag.WebReport.Render() ```  For the SaveDesignedReport method, we also create a view with the same name. Its contents are replaced by: ``` @ViewBag.Message ```  We turn to the most interesting - the frontend. React application is located in the ClientApp folder. Expand it in the tree in the solution browser. Further we open the src and components directory. Add a new component to this folder. Create a javascript file named Designer: ``` import React, { PureComponent, Fragment } from 'react'; import { WebReport } from './WebReport';   export class Designer extends PureComponent { constructor(props) { super(props); this.state = { options: [ { value: 'Select report name …', }, { value: 'Matrix', }, { value: 'Master-Detail', }, { value: 'Text', }, ] }; }   handleChange = (event) => { this.setState({ name: event.target.value }); };   render() { const { options, value } = this.state; return (
); } } ```  Probably, you paid attention to the import of the WebReport component, we will observe it later. First of all, add states to the class constructor. In our case, it is an array with the names of the reports. Next, consider render () straight away - the method that builds the web page. Rendering is performed every time the state changes. For example, when we select a list item, the onChanges event handler is executed. This method sets the new state of the name variable using the setState function. After that the contents of the render will be rebuilt. Notice the tag. Here another component is called. As a parameter, it receives the selected report name. Consider the WebReport component, which also, like Designer.js should be created in the components directory: ``` import React, { Component } from 'react';   export class WebReport extends Component { constructor(props) { super(props); this.state = { designer: "" }; }   componentWillReceiveProps(nextProps) { fetch('api/SampleData/Design?name=' + nextProps.name + '').then(response => response.text()).then(text => { this.setState({ designer: text }); }); };   render() { return (
); } } ```  The whole point of this component is to execute a ‘get’ request to the backend and return the resulting html code. The built- in function componentWillReceiveProps (nextProps) is executed each time the props property changes. That is, when this component will receive a new value when called. We get the report name from the property and substitute it in the url of the request. We get the answer in text format. It needs to be converted to secure html code in order to be inserted into the DOM. The attribute dangerouslySetInnerHTML will help us with this. It remains only to add the Designer component to the menu. Add to NavMenu file: ``` ```  And to the App.js file add this: ``` … import { Designer } from './components/Designer'; … … … ```  That's all. Run the application. On the Designer page, we will see a drop-down list: Select the name of the Matrix report: And now - Master-Detail: Go to the Report tab and click the Save button: The message “saved” appeared on the right, which tells us about the successful saving of the report on the server. Check it out: Another file appeared in the App_Data folder - TestReport.frx. This completes the creation of our demo application. We successfully displayed the report designer, loaded the necessary report into it and saved it. Tags: FastReport, Online Designer, Core, React ### Setup of advanced export functions in FastReport.Web for Core and Blazor Server URL: https://www.fast-report.com/tr/blogs/setup-export-web-core-blazor Summary: Using the code, we configure individual options and parameters for exporting reports for FastReport.Web for Core and Blazor Server. Using the code, we configure individual options and parameters for exporting reports for FastReport.Web for Core and Blazor Server. Using the code, we configure individual options and parameters for exporting reports for FastReport.Web for Core and Blazor Server. Often, our users need to change the file export parameters, and we will look at their implementation today. This feature was integrated into the 2022.1 release. Let's say that we have a finished project. Let's take any report from the FastReport .NET demo application and add additional parameters to the export window using this code: ``` WebReport.Toolbar.Exports.EnableSettings = true; ``` Now let's run our application and see the result: Let's study how it works in FastReport Web for Core in more detail. All options for advanced export settings have been implemented to be enabled or disabled depending on just one setting, EnableExportSettings. You can set up customized export options. Let's say we only need PDF and HTML. The implementation will look like this: ``` Exports = new ExportMenuSettings() { ExportTypes = Exports.Pdf | Exports.HTML } ``` Let's slightly change the export settings in the container, you can read more about this in the article Toolbar customization and export settings in FastReport.Web for Core . Let's enable advanced settings using the EnableSettings property, this will allow calling modal windows with various additional settings for export: ``` WebReport.Toolbar.Exports.EnableSettings = true; ``` Let's run our application and see the result: In the screenshot above, we have only two formats for saving. You can also notice the possibility to localize into various languages. To use different languages, you need to write a small line of code: ``` webReport.LocalizationFile = Path.Combine(Directory.GetCurrentDirectory(),"Localization", "English.frl"); ``` But how to export a file with advanced settings? Let's look at this step by step. Step 1. Click on the gear opposite “Export to PDF”, where the following window should appear: Step 2. Select the parameters that we need, for example, an HTML file without images: Step 3. Click OK and look at the result: If the pictures are not displayed, then we did everything right. It should be noted that you can customize the settings window. Let's take a look at how to do this. First, let's write a few lines of code: ``` WebReport.Toolbar.Exports.Color = Color.Gray; WebReport.Toolbar.Exports.FontSettings = new Font("Times New Roman", 14, FontStyle.Bold); ``` Let's see what happened: You may notice that the color is set to gray and the font family is Times New Roman as specified. At this stage, we examined how to use the advanced export settings for FastReport.Web for Core. Now let's show you how to work in Blazor. Again, we will review one of the available reports. For example, let's take the demo application from our article Toolbar customization and export settings and add new features to it. Let's again add advanced settings and all kinds of exports. By the way, there is also customization here and it is used in the same way as in Core. Go to Pages/Index.razor.cs file and write two lines of code: ``` webReport.Toolbar.Exports= ExportMenuSettings.All; ``` ``` webReport.Toolbar.Exports.EnableSettings = true; ``` Let's run our application: We see that all the exports are displayed and their advanced settings too. Let's try it with the advanced export options to “HTML”. To do this, open the settings by clicking the left mouse button on the gear, where, for example, we will leave only the current page with pictures: We confirm our choice with the "OK" button and look at the result: We covered how to use the advanced export settings for FastReport.Web for Core and Blazor Server through your application code. Tags: .NET, Visual Studio, FastReport, Core, WebReport, Blazor ### Several reports in the same object WebReport - Working with tabs URL: https://www.fast-report.com/tr/blogs/several-reports-same-object-webreport Web Reports direction actively develops in FastReport.Net. A new feature - bookmarks, you can create a bookmark to a web report toolbar. These tabs allow you to open other reports in the same window. Such a decision may be convenient to display a series of reports similar subjects or reports related by the context. It looks like this: Tabs are presented in the form of buttons. By selecting a tab, we run the report in the same window. Now there is no need to display each report in individual object WebReport. This will help to save space on the page and to avoid congestion of the site. Let's look at the implementation of this function in the example. I used the MVC web project. Add FastReport libraries to the project: FastReport.dll; FastReport.Web.dll. They can be found in the folder FastReport.Net application. Create in the controller Home: instances of report objects, data source, tabs. In general, all the logic here. Declare the libraries: ``` using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using FastReport.Web; using System.Web.UI.WebControls; ```  For Index method write the following code: ``` public ActionResult Index() { string report_path = "C:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\"; //Report path System.Data.DataSet dataSet = new System.Data.DataSet(); //Create DataSet instance dataSet.ReadXml(report_path + "nwind.xml"); //Read XML databse WebReport webReport = new WebReport(); //Create webReport instance webReport.Width = Unit.Percentage(100); //Set the webReport object width 100% webReport.Height = Unit.Percentage(100); //Set the webReport object heigh 100% webReport.SinglePage = true; //Enable SinglePage mode webReport.Report.RegisterData(dataSet, "NorthWind"); //Register data source in the webReport object webReport.Report.Load(report_path + "Simple List.frx"); //Load a report into the webReport object webReport.CurrentTab.Name = "Simple List"; //Set the current tab name Report report2 = new Report(); //Create a Report instance which will be displayed in the second tab report2.RegisterData(dataSet, "NorthWind"); //Register data source in the report object report2.Load(report_path + "Labels.frx"); //Load a report into the report object webReport.AddTab(report2, "Labels").Properties.SinglePage=true; //Add web tab in the webReport object. Pass as parameters report object and tab name. Enable SinglePage mode for the tab. Report report3 = new Report(); //Create a Report instance which will be displayed in the third tab report3.RegisterData(dataSet, "NorthWind");//Register data source in the report object report3.Load(report_path + "Master-Detail.frx");//Load a report into the report object webReport.AddTab(report3, "Master-Detail");//Add web tab in the webReport object. Pass as parameters report object and tab name. webReport.TabPosition = TabPosition.InsideToolbar;//Set the property TabPosition ViewBag.WebReport = webReport; //Set the ViewBag as webReport return View(); } ```  There is another interesting property: webReport.ShowTabCloseButton If it is set to true, the tabs will have an "X" to close the tab. This option may be useful in interactive reports, where tabs will be dynamically created and contain detailed reports. If a report is not needed, you can close the tab. Then, if necessary, it will be possible again to generate its tab. Above we have looked at how to create a tab, send them reports. We used: ``` public ReportTab AddTab(Report report, string name); ```  As parameters we pass the report object and the name of the tab. However, you can do one parameter: ``` public ReportTab AddTab(Report report); ```  Pass a report object. This tab name will be generated automatically. This will be the serial number of a tab. It is possible to pass the already built report to bookmark of a Web report: ``` public ReportTab AddTab(Report report, string name, bool reportDone); ```  Here, we pass: report, name for the tab and the property that indicates whether the report is to be pre-built. You can upload a file of already prepared report into the report object, and the last parameter specify as true. Then the report will be loaded from the specified file fpx. It might look like this: ``` Report report2 = new Report(); //Create a Report instance which will be displayed in the second tab report2.RegisterData(dataSet, "NorthWind"); //Register data source in the report object report2.Load(report_path + "Labels.frx"); //Load a report into the report object report2.Prepare();//Prepare the report string s = this.Server.MapPath("~/App_Data/Prepared.fpx");//Set the location to save prepared report report2.SavePrepared(s);//Save prepared report   Report firstReport = new Report();//Create instance of Report object firstReport.LoadPrepared(s);//Upload prepared report to the Report object webReport.AddTab(firstReport, "First tab", true);//Add the tab to the WebReport toolbar ```  I showed how to keep the prepared report to a file, and then download it and use it in a web report tab. Go to the view. In the folder Views-> Home open the file Index.cshtml. All page code consists of four lines: ``` @{ ViewBag.Title = "Home Page"; } @ViewBag.WebReport.GetHtml() ```  In the last line of the report output. Home controller sends a report to the page. Add scripts for the web report in the initialization of view _Layout.cshtml (in Views-> Shared folder): ``` … @WebReportGlobals.Scripts() @WebReportGlobals.Styles() … ```  Edit the Web.config, which is located in the Views folder Add the namespace: ``` … ```  Edit the Web.config, which is located in the project root. Add the handler: ``` … ``` Undoubtedly, the new feature of the addition of tabs in the Web report will be useful and in demand. Features of web reports is gradually expanding. It seems that in the near future, web reports nothing will not yield to the desktop reports. Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### Shape property of PictureObject in FastReport .NET URL: https://www.fast-report.com/tr/blogs/shape-property-dotnet Summary: With the release of 2024.1, a new property called "Shape" has been added to the PictureObject element, allowing to change the image's shape. With the release of 2024.1, a new property called "Shape" has been added to the PictureObject element, allowing to change the image's shape. With the release of 2024.1, a new property called "Shape" has been added to the PictureObject element, allowing to change the image's shape. With the release of 2024.1, a new property called "Shape" has been added to the PictureObject element, allowing to change the image's shape. The following shapes are available for the Shape property: Rectangle. RoundRecangle. Ellipse. Triangle. Diamond. In the designer, they look like this: It is worth considering that the form is not attached to the picture but to the PictureObject. Also, for correct export to PDF format, you must disable the "Original resolution" setting, otherwise, the export may not be correct. Tags: .NET, .NET, FastReport, FastReport, Designer, Designer ### Simplifying the work with TableObject in the report designer URL: https://www.fast-report.com/tr/blogs/table-object-dotnet Summary: New features for the "Table" object in the report designer will allow you to create templates faster through the context menu. New features for the "Table" object in the report designer will allow you to create templates faster through the context menu. New features for the "Table" object in the report designer will allow you to create templates faster through the context menu. Before the 2024.1 update, to add a row or column, you had to look for the desired property in the properties panel and set the desired value. If you wanted to insert a row or column other than at the end of the table, you had to transfer all the cell values manually. In addition, to transfer values, it was necessary to open the editor, copy the value, and paste it through the same editor of another cell. To resolve these issues and make working with TableObject easier, we have added several changes to the designer. 1. Adding columns and rows using the “+” buttons; 2. Copying, cutting, and pasting cell contents into other cells using keyboard shortcuts; 3. Adding lines above and below using the context menu; 4. Adding columns on the right and left using the context menu; 5. Setting styles for a group of cells via the context menu; Thanks to all these changes, working with tables in the designer has become much easier. Tags: .NET, .NET, FastReport, FastReport, Designer, Designer ### Single ecosystem for Delphi products in FastReport 2023.2 release URL: https://www.fast-report.com/tr/news/fastreport-vcl-2023.2 Summary: This major update links our core Delphi and Lazarus products into a single ecosystem with shared installation and authorization. This major update links our core Delphi and Lazarus products into a single ecosystem with shared installation and authorization. This major update combines our core products for Delphi and Lazarus into a single ecosystem. What does it mean? One installation system with online authorization—install and update all your products at once. Shared release system—major releases are a shared release of all products. Shared library for all products—fixes and new functions are available in several products. The Recompile utility has been removed. The functions of package rebuilding are now performed by the installer. ❗️To download the update, we recommend you uninstall all products through the old installer and then use the new one (installer). ❗️ Core library There are new Core, Core Graphics, and Core Localization packages combining products into one ecosystem. The product localization system has been changed. Now it does not require rebuilding packages: it is enough to install language packs during installation, add the TfrLocalizationController component, and select the desired language. FastReport VCL The system for editing and using styles in the report designer has been revised. The new mode allows you to: create, edit and assign styles during report design. The created styles copy the formatting of the object by default. Changing a style affects all objects that have been assigned this style. The new Style Table tool allows you to customize the appearance of a report using styles and switch between them on the fly. You can: Select style table mode; Create new custom styles and color schemes that would fit your report; Change already created styles of report objects to your taste; Switch almost instantly between ready-made solutions. Style tables are supported in a rendered report and allow you to change the report style without rebuilding. These styles are saved to the rendered report file to allow report distribution to other users. Each user can choose their style. Composite barcodes We have added a new container object for composite barcodes. The object has ready-made settings for composite barcodes: EAN 8+2, EAN 8+5, EAN 13+2, and EAN 13+5. The object editor offers functionality for quick compilation of your compound barcodes. An example of barcodes used when printing price tags. Powerful tools for your reports For the efficient work of multi-threaded applications, we have added the ability to print in multiple threads. Each thread can print to the printer without blocking others. This approach is efficient for applications running in print service mode. We have improved the digital signature object for PDF export. Now you can supplement the signature with the current signed date, name, and other additional information. The ability to override and replace the standard export dialog has been added to export filters without changes in the FastReport source codes. Example: ``` uses frxExportPDFDialog; type TfrxCustomPDFExportDialog = class(TfrxPDFExportDialog) protected procedure InitControlsFromFilter(ExportFilter: TfrxBaseDialogExportFilter); override; end; procedure TfrxCustomPDFExportDialog.InitControlsFromFilter(ExportFilter: TfrxBaseDialogExportFilter); begin inherited; SignaturePage.TabVisible := False; end; procedure SetDialogClass; begin frxPDFExport1.CustomExportDialogClass := TfrxCustomPDFExportDialog; end; ``` We have improved and fixed the bugs in export filters. PDF export has received support for handling translucent SVG images. Report compatibility between Lazarus and Delphi versions has been improved. The transfer of report variables between versions has been fixed. FastCube VCL and FastCube FMX For FastCube VCL and FastCube FMX products, we have added integration with FastScript, which we moved to a separate package. For FastScript support, it is enough to install one additional package and not rebuild all the others. We also paid attention to fixing errors in highlighting and editors. FastCube VCL gets HiDPI support for high-resolution monitors. It supports all available RAD Studio development environment modes. FastQueryBuilder gets package support for the latest RAD Studio versions. RAD Studio 11 compatibility bugs have been fixed in FastReport FMX. Product optimization and performance have been improved, and internal architectural changes have been made. The full changelog for the 2023.2 version Сore library --------------- + Added new core package with a shared code for all products + Added a new graphics core package with a shared code for all products + Added new localization packs * Changed product localization system Fast Report VCL --------------- [Designer] - Fixed Int64 support in Object Inspector - Fixed filter behavior in the data selection dialog - Fixed TfrxRichView frame borders in the designer - Fixed a bug when the dropdown code completion did not copy styles from Syntax Memo [Engine] + Added support for style tables and improved work with styles in the report designer + Added the option of simultaneous multi-threaded printing - Fixed form scaling for additional display for Delphi 10.1 and later - Fixed bug with parent container component interactive events - Fixed error handling in CrossView events - Fixed printing of current page mode - Fixed Duplex printing for multiple copies of documents with collation enabled [Exports] + Added new CustomExportDialogClass property for export filters, which allows you to override the export dialog for standard export filters * Improved translucent SVG export in PDF export via EMF - Fixed memory leak with embedded files in PDF export - Fixed progress dialog in HTML export when entering the wrong page number - Fixed export of TfrxLineView and TfrxShapeView in PPTX export [Lazarus] + Added support for variable portability in templates (Delphi <--> Lazarus) - Fixed behavior of empty TfrxPictureView in Lazarus [Preview] - Fixed button order in the preview [Report object] + Added composite barcodes (EAN 8+2, EAN 8+5, EAN 13+2, EAN 13+5) + Added TfrxPictureView.LoadFromStream method + Added handling of Hint property (similar to TagStr) - Fixed placement of SVG pictures in TfrxPictureView [Resources] * Updated Portuguese resources * Updated Polish resources FastReport FMX --------------- - Fixed integer overflow error in gradient fill object - Fixed crosstab editor bug in RAD Studio 11 FastQueryBuilder --------------- - Added packages for new Delphi versions (RAD Studio 10-11) FastCube --------------- + Added HiDPI support for high-resolution monitors + Added integration package with FastScript (integration does not require rebuilding of the main packages) - Fixed bugs in highlighting rules - Fixed Access violation error when using the component in some editors ### Special offer for the 25th anniversary of FastReport VCL! URL: https://www.fast-report.com/tr/news/sale-25-vcl-ultimate Summary: In honor of the anniversary of the FastReport VCL Ultimate report development kit, we are giving you a discount until February 8th. Don't miss the chance to make reports fast, flexible and beautiful at a great price! In honor of the anniversary of the FastReport VCL Ultimate report development kit, we are giving you a discount until February 8th. Don't miss the chance to make reports fast, flexible and beautiful at a great price! Only from February 4 to 8 - 25% off FastReport VCL Ultimate . To celebrate the anniversary of this legendary reporting toolkit, we’re offering a special discount on FastReport VCL Ultimate - a powerful and flexible suite for creating reports, documents, and analytical interfaces in your business applications. FastReport VCL Ultimate is a professional set of reporting components for Delphi, C++Builder, RAD Studio, and Lazarus, featuring rich functionality - from visual report design and editing to advanced multidimensional analytics and export to dozens of formats. The key advantage of the Ultimate edition is that all core solutions for the Delphi ecosystem are bundled into a single package. Instead of purchasing individual products, you get a complete toolkit for report development across VCL, FMX, and Lazarus, along with a web-based designer for working with templates. This is not only convenient, but also highly cost-effective - especially now, with a 25% discount. FastReport VCL Ultimate includes: FastReport VCL report generator; FastReport FMX cross-platform report generator; FastReport for Lazarus report generator. As well as products available exclusively as part of FastReport VCL Ultimate: FastCube VCL and FMX OLAP analysis tools; FastGrid data visualization library; FastReport Online Designer for visual editing of document templates. The promotion is valid only from February 4 to 8 - 25% off any FastReport VCL Ultimate license (Single, Team, Business, or Site). This is the perfect time to upgrade your reporting tools or to introduce a professional reporting solution with maximum capabilities into your project. Don’t miss this opportunity — make your reports fast, flexible, and beautiful with FastReport VCL Ultimate at a great price. If you are purchasing through FastSpring, use the promo code FRUVCL25 , and if you are paying via PayPro, use the links below. ### Start FastCube 2 VCL beta-testing! URL: https://www.fast-report.com/tr/news/fastcube-vcl-beta-testing Summary: Start FastCube 2 VCL beta-testing! Start FastCube 2 VCL beta-testing! We announce powerful beta-testing of FastCube 2 VCL! What does it mean? - Trial versions of FastCube 2 for all supported IDEs are available here: https://www.fast-report.com/en/download/fast-cube-2/ - All who ordered FastCube 1 from now to date of release of FastCube 2 (approximately May 2013) will get FastCube 2 for free (beta - today and release then). - All customers of FastCube 1 can order FastCube 2 with great discount (see customer panel) ### Styles in FastReport .NET URL: https://www.fast-report.com/tr/blogs/styles-fastreport-net In this article, I would like to talk about the use of styles in FastReport .NET. Indeed, many people underestimate this feature. They think that styles helps bring documents to a unified specie. Almost every user faced with a text editor Microsoft Word. And most know that styles help instantly change the appearance of objects (such as titles). FastReport .Net also allows styles to bring individual objects or groups of objects to uniformity. The practice of style greatly accelerates the development of reports. So, open the report designer. The toolbar Stiles is located on the tab Home: There is the drop-down list that allows you to choose the current style. To apply the style you need to select an object or group of objects. Then select the desired style from the drop-down list. To open the Style Editor, use the icon below the drop-down list: In the Style Editor, you can add, delete, and edit. In addition, you can save a set of styles file * .frs, and then load styles from this file to create another report. This is very useful if you are developing many reports in the same style. Style allows you to: set the object frame. This can be a whole frame and one or more lines to choose from. Also, is defined style, thickness and color of lines; Set the fill color. This can be not only a solid color, but a gradient or hatching; Set the font. Traditionally, you can set the size, style, alteration; Set the font color. For example, apply a style for headlines data in the report Master-detail: Bands also have property Style. This means that it is possible to apply the custom styles. But let's turn our attention to the property EvenStyle. Because of this property we can set style for even rows in the table. Create another style with a light gray fill. Choose a band with the data (in our case, a detailed band data). For the property EvenStyle select created style. Preview the report: Admit this is a very simple and effective. Thus, using the styles in your reports, you will: accelerate the creation of the report, achieve a uniform design of report objects, and improves the appearance of the lists through the property EvenStyles. Tags: .NET, .NET, FastReport, FastReport ### Subscribe on save events in FastReport Online Designer URL: https://www.fast-report.com/tr/blogs/subscribing-save-events-online-designer In case you need to do some actions on client side after saving the report like show some beautiful dialog from your code or do redirect to the other page you can use following techniques. 1) you can use the following code: ``` const eventName = 'save_success';   window.addEventListener('message', e => { if (e.data === eventName) { // here is your code. It could be something like showSuccessDialog(); } }, false);   ``` where eventName can also be: save_begin - will be executed when user starts saving the report but before sending request to the server save_failure - will be executed in case the request failed and report was not saved. 2) Another possibility to do some actions on save events is to set URL option in config section during building your online designer : Tags: FastReport, FastReport, Online Designer, Online Designer ### Summary and plans for 2021 URL: https://www.fast-report.com/tr/blogs/2020-summary-2021-plans Summary: Summing up the year 2020 and planning 2021: new technologies and objects Summing up the year 2020 and planning 2021: new technologies and objects Summing up the year 2020 and planning 2021: new technologies and objects We could talk a lot about our experiences and difficulties in the past year, but we'll just take stock of this year and talk a little bit about our plans for the future. In spite of all the difficulties, we worked hard this year. Not everything we planned has been completed, but we are committed to achieving all of our goals for the foreseeable future. What's done? Over the past year we were able to implement new quality control processes for our products. Work in this direction will continue. We have optimized and improved exports to various formats, added new object properties, improved report generation algorithms and fixed many bugs. We have added support for 5 new barcodes and 6 new formats for saving documents. We want to acknowledge the hard work our developers did to refactor the code to merge the .NET family source code into a common repository. In addition, in FastReport .NET we added Windows Forms support for .NET Core 3.1 and support for .NET 5, introduced security control of the report script when working in web applications, and developed a new demo application. Also we deprecated .NET Framework 2.0 support in the FastReport NET product. The FastReport Mono gained the ability to build charts. We added support for new RAD Studio in FastReport VCL, did a lot of work to improve the user interface, added new features to build complex reports, and improved the quality of generated reports. Separately we note the work on improving the product FastReport for Lazarus. In turn, FastReport FMX has gained the ability to work in 64-bit apps under macOS operating system, the report designer has been improved as well as work on data processing and document generation. OLAP FastCube .NET product can be used in ASP.NET Core web-applications now, it has an improved interface, new possibilities of data filtering were added and it works in Mono. FastCube VCL got expression support, it works better in Lazarus. In FastCube FMX new options for data highlighting were added. We want to thank all FastReport Open Source users, those who contributed to its improvement and those who wrote to us with their issues. What's next? Our analysts together with the entire team closely follow trends in software development and the entire IT industry. We are constantly learning and trying to improve our products according to our customers' wishes. Let's start with the FastReport VCL and FMX product plans: we want to release FastReport VCL 7; the tables in the reports will be improved; PDF documents will get digital signing capabilities; reports will be able to use SVG images; new transports will be added; the Lazarus version will get a RichView object; new interface styles will be added. The FastReport .NET product will get: support for high-resolution screens (high dpi); components to work with the Blazor framework; support for the new .NET 6; digital signatures for MS Office documents; parallel printing on multiple printers; ability to connect to the Clickhouse column based DB. FastReport Mono cross-platform report generator will become even more compatible with different operating systems - we plan to improve stability and performance of this product. Browser-based report editor FastReport Online Designer will be added support for editing charts, new report objects, improved user interface. Work on improvement of the FastCube user interface will be continued, also it is planned to expand its capabilities to connect to different DB. It is planned to release a new product for generating reports and launch its closed beta-testing. You can take part in it. Just follow our news. We also plan to update and publish documentation for all our products. We also plan to introduce a subscription-based licensing model for those products which haven't used it yet. Good luck in the new 2021! We want to wish you good and positive emotions in the coming year 2021! May your programs be bug-free and your reports always complete and timely! May your DB queries run fast, and may users' requests to you for new features not hamper you! And let the suppliers of libraries for your products fulfill your requests quickly! In any case - we'll do our best for you! We always welcome your requests - write us your wishes about our products, and we'll try to fulfill them! With respect, Fast Reports team Tags: FastReport ### Summary and plans for 2022 URL: https://www.fast-report.com/tr/news/summary-and-plans-2022 Summary: We are wrapping up the outgoing 2022: the release of FastConverter .FP3, the end of support for Delphi 7, and also share our plans for 2023. We are wrapping up the outgoing 2022: the release of FastConverter .FP3, the end of support for Delphi 7, and also share our plans for 2023. The year 2022 was full of important events. Despite its unpredictability and all challenges, that we've faced over the past 12 months, we've continued to work hard to improve document generation in thousands of apps. What important happened? A milestone for the VCL report generators was the end of support for obsolete non-Unicode versions, which will allow us to work harder to improve FastReport and introduce more sophisticated features with each release. Since the release of 2023.1, FastReport VCL supports Delphi versions starting from 2010. We have released the fp3 converter which converts to any FastReport VCL data format — FastConverter .FP3 . We have launched NuGet server for the .NET direction — a repository of licensed products for users. Now you can conveniently download the latest versions of our components on any operating system. FastReport.Core now supports graphics and text rendering using the SkiaSharp library. Also, FastReport .NET got a bronze medal in the "Reporting, Analysis and Visualization" nomination in the Reader's Choice Awards by Visual Studio Magazine. We were happy to share the stand with Devexpress and SAP Crystal Reports. What about plans? The release of several services at once will be a truly revolutionary breakthrough in 2023. One of them is FastReport Cloud cloud report builder. This is an online service for creating, storing, and editing reports and documents, which allows you to set up and implement reporting in companies with minimal involvement of programmers. Stay tuned and you will be one of the first to try it! We are also working on a high-performance WPF reporting and document library for business application development. Other products will have the following features: WASM support New report objects Support for the latest version of the environment — NET 8, RAD Studio 11.3 Updated user interface and user experience Digital signature stamp Support for RFID tags for ZPL export Map implementation based on GeoJson And much more! It's also time for New Year's wishes. Maybe it's reporting for Android? Or export to some exotic format? Write to us your wish in the form below. It would be great if you also tell us how this will change the work of your applications. Congratulations on the upcoming holidays, Fast Reports team. Загрузка… ### Summer events with Fast Reports URL: https://www.fast-report.com/tr/news/summer-events-2018 Summary: Summer events with Fast Reports. We are having a busy-busy summer and invite you to meet us at the following events in Europe that we organized together with our partners Summer events with Fast Reports. We are having a busy-busy summer and invite you to meet us at the following events in Europe that we organized together with our partners We are having a busy-busy summer and invite you to meet us at the following events in Europe that we organized together with our partners:  Date Name Location For .Net Developers For Delphi Developers Link June 6 – 7 Delphi Day Italy Piacenza, Italy + June 15 SDN (Free!) Zeist, Netherlands + + June 25-28 DWX Nuremberg, Germany + June 29 Workshop (Free!) Nuremberg, Germany + + July 2 Workshop (Free!)  Barcelona + + ### Summer offer: 10% off on FastReport VCL editions URL: https://www.fast-report.com/tr/news/fastreport-vcl-discount-2023 Summary: Get Lazarus support and source code with 10% off in FastReport VCL Professional and Enterprise editions with VCL Ultimate. Get Lazarus support and source code with 10% off in FastReport VCL Professional and Enterprise editions with VCL Ultimate. From  July 11 to July 25 , get Lazarus support and source code with 10% off in FastReport VCL Professional and Enterprise editions, or full cross-platform with FastReport VCL Ultimate. Save from $39,9 when purchasing a Single license, $89,9 when purchasing a Team and $599,9 when purchasing a Site! Take advantage of getting much more functionality for less cost. You can see the differences between editions here . The offer is valid only for the license purchase and does not apply to an upgrade or renewal. You can use the hot offer by clicking on the link. ### Summing up. Rewarding our partners URL: https://www.fast-report.com/tr/news/summing-up-rewarding-our-partners Summary: We would also like to acknowledge sales growth in the UK of 52% and the Czech Republic of 69%. We would also like to acknowledge sales growth in the UK of 52% and the Czech Republic of 69%. Dear Friends! We are going to reward our best dealers and present them with personal certificates for their good work and special contributions in FastReport product promotion. The key results and awards given are:  Germany. We have awarded a certificate and "Partner of the Year" status to  Christian Haimerl  and  McLicense   for their active promotion of our products and high sales levels. Japan! This is exceptional! The  Ag-Tech  company has localized FastReport.Net and FastReport VCL to Japan, and sales have grown by 1973% Brazil. Very good performance. Growth is low at 8% but we thank  our dealers  from Brazil for the stable sales and technical support. Netherlands.  Growth is 73% for the year 2011. We would like to mention in a special way  Isah , our technical partner in Holland. Poland. Rising sales  of 73%. Moreover, we have opened a training center for FastReport customers. An award goes to  Softkey.pl  and  BSC Polska . China. Very good work by resellers in this country. We thank our partners for their hard work and marketing campaigns! Awards go to  Qast Software Group ,  Panyan Tehnology (Component CN) ,  Chongqing Huidu Technology (Evget) . Italy. Many thanks to  Andrea Urbani   for his work and product technical support. Andrea is our friend and very good partner. We would also like to acknowledge sales growth in the UK of 52% and the Czech Republic of 69%. We thank our partners from other countries and give them “Partners of Year 2011” status : Component Source  (UK and World),  Jan Kadlecek  (Czech Republic),  Olivier Pennec  (France),  Danysoft  (Spain),  Linksoft  (Taiwan). Michael Philippenko rewards Jan Kadlecek ### Support URL: https://www.fast-report.com/tr/support Summary: Customer Support Center. Contact us in a convenient way or leave a request through the contact form. We are always ready to help you. Destek Merkezi Yardım için buradayız İletişim Destek Talepleri Forum Sıkça Sorulan Sorular Yardıma mı ihtiyacınız var? Faydalı Materyaller Dokümantasyon Bloglar Eğitim Videoları info@fast-report.com Satış sales@fast-report.com 800-985-8986 (English, US) +31 97 01025-8466 (English, EU) +49 30 56837-3928 (German, DE) +55 19 98147-8148 (Portuguese, BR) Ofis Alexandria, VA 22314 66 Canal Plaza, Ste 505 Ürünler Satın Al Demo Dokümantasyon Nasıl kaldırılır Lisanslar Ürünler Satın Al Demo Dokümantasyon Nasıl kaldırılır Lisanslar Destek Destek SLA Çevrimiçi destek SSS Eğitim Videoları Forum Makaleler Haberler Destek Destek SLA Çevrimiçi destek SSS Eğitim Videoları Forum Makaleler Haberler Şirket Hakkında Kurumsal Kimlik Bayiler Bizimle İletişime Geçin Şirket Hakkında Kurumsal Kimlik Bayiler Bizimle İletişime Geçin Gizlilik politikası Çerez politikası © 1998-2026 Fast Reports Inc. Trustpilot Bağlantı başarıyla kopyalandı ### Support for .NET 7 in new FastReport .NET 2023.1 URL: https://www.fast-report.com/tr/news/fastreport-net-2023.1 Summary: We are pleased to present you a integration with FastReport Cloud, .NET 7 support, JasperReports converter, connection to stored procedures in MsSQL. We are pleased to present you a integration with FastReport Cloud, .NET 7 support, JasperReports converter, connection to stored procedures in MsSQL. The autumn update for the report generator is now available! The functionality of our solutions is expanding every day and we are pleased to present you a partial integration with FastReport Cloud, .NET 7 support, JasperReports template converter, connection to stored procedures in MsSQL, and much more. Integration with FastReport Cloud FastReport .NET, FastReport Core, and FastReport Mono now support some interaction experience with FastReport Cloud. Downloading and uploading reports Now you can download the report from Cloud and work on it in the designer, or vice versa — upload your files to Cloud. Web Preview A web preview function has also appeared in addition to the standard preview. The report can only be viewed this way if it was opened from Cloud. Connecting to FastReport Cloud data sources FastReport Cloud can store connections to data sources. From now on, you have the option to add these data sources to your report.  It also became possible to add the connection to Cloud. R ead this article to learn more about the new features.  .NET 7 support We have added  .NET 7  support for FastReport.Core and FastReport.CoreWin. This platform improves application performance and adds many new features to your projects. Report validator improvements Increased work speed Now the report validator runs in a single thread. The speed of its work is significantly optimized. You can notice the changes in processing reports with a large number of errors. While the validator is checking the report, the check window shows a respective message. In this case, you can edit the report. A table with errors will appear upon completion of the validator. Validator table setup For convenience, we have added a new column with error numbers. Its display can be enabled or disabled via the table context menu. In the same way, you can customize the display of the error type column. JasperReports Template Converter We have added the option to convert report templates from JasperReports to FastReport .NET templates. JasperReports reports may contain objects that are not supported by the FastReport designer. These objects will not be converted or will be replaced to make the generated report as similar as possible to the one created in JasperReports. Read more in the article. MSChartObject improvements and fixes The MSChartObject object has many properties and settings. The most frequently used ones are moved to the object editor. Properties that are not available in the editor can be modified using the Object Inspector. However, there was a problem with these properties — when they were changed, the report was not seen as modified. As a result, saving was not available. To save the report, it was necessary to change its other property or object. In addition, the values of the specified properties were reset to their default values when preparing a report and after closing the preview window. This bug has been fixed in the new version. Connection to Stored Procedures in MsSQL We have added the option to connect to procedures stored in MsSQL. This was previously available via a database query. Now you can connect to procedures much more conveniently using the interface of database table connection. They will be displayed in the selection window along with the tables. Once you select a procedure, a window with parameter settings, if any, will appear.  Read more in the article. Export Improvements "Print optimized" option in RTF export We have added a new PrintOptimized property and a corresponding option in the export window. Enabling this option will greatly increase the quality of the exported image. However, the size of the output file will be bigger. UseFileStream property in Excel 2007 export We have added a new option, UseFileStream, for exporting to Excel 2007. It can only be used when exporting from code to a file. This option is useful when exporting reports with a large number of pages (several tens of thousands) in multiple threads. This will help you avoid memory shortage errors. In other cases, it does not make much sense to use it and it is not recommended to do it. Example: ``` Report report = new Report(); Excel2007Export export = new Excel2007Export(); export.UseFileStream = true; report.Export(export, "report.xlsx"); ``` Accounting format when exporting to Excel 2007 You can now export the currency data format as an accounting format. To do this, a corresponding option has been added in the export window and the CurrencyToAccounting property. Upgrading the minimum .NET Framework version from 4.0 to 4.6.2 We are upgrading the minimum supported version of FastReport .NET to .NET Framework 4.6.2 due to the following: support for .NET Framework 4.0 has long been ended; there are problems with building the FastReport source code in the latest versions of Microsoft Visual Studio; the need to implement new APIs. The full list of changes is available at the following link. ### Support for editable fields in WebReport URL: https://www.fast-report.com/tr/blogs/support-editable-fields-webreport In the article "Interactive forms in the PDF export of Fast Report .Net 2018" I have already considered editable fields. The bottom line is that the Text and Checkbox objects can be edited in the report preview mode if you include the Editable property. Until recently, this function was supported only for desktop reports. Now, starting with version 2018.2.3, web reports can also have editable fields. That is, when viewing the report in the browser, you can change the text and the checkboxes, and after that, for example, export the report to the desired format. Let's look at an example of how this works. Let's say we have a Web application with a WebReport object. An arbitrary report is displayed in the object. I took for example the Master-Detail report from the FastReport.Net delivery. Select the desired text object and set its properties to Editable = true. I made two fields editable: Unit price and Discontinued. Launch the web application: Before us there are categories with lists of goods. Let's say I'm a businessman and look through the goods of my store. I see an error in the price or description and correct it right in the report. Then, I can save the report or print it to transfer it to the price adjustment to the administrator. Everything is simple and convenient. Let's fix the price for a product. Just click on the desired text field, and before you open the editing window: Put the check boxes in the Discontinued field for other products: By the way, if you use the Editable property, and set the InteractiveForms option when exporting to PDF, you will get editable fields in the PDF document. Tags: FastReport, FastReport, ASP.NET, ASP.NET, WebReport, WebReport ### Support of Lazarus in FastReport VCL 6 URL: https://www.fast-report.com/tr/news/support-lazarus-vcl6 Summary: Support of Lazarus in FastReport VCL 6 Support of Lazarus in FastReport VCL 6 We are excited to announce that FastReport VCL 6 now supports Lazarus in beta test mode. Update your FastReport VCL Professional edition and see it first. Feedback is welcomed at support@fast-report.com What's new?  - Support of Lazarus 2.0.0 Improved: - paper handling by default - refreshing page count when jumping between tabs - drop-down list of fonts Fixed: - undo-redo buffer in Linux - hyperlinks in Text object - nested cross objects - report variables Added: Export to following formats: HTML, HTML5, RTF, DBF, CSV, ODS, ODT, XML, PDF, DOCX, PPTX, XLSX. ### Support our products in Community Choice Awards URL: https://www.fast-report.com/tr/news/community-choice-awards-2010 Summary: Support our products in Community Choice Awards Support our products in Community Choice Awards Two community choice awards votings are taking place now. These are:  1. "2010 SQL Server Magazine Community Choice Awards" Our great reporting product- “Fast Report .Net"- is taking part in this voting .It is in the second category called “Best Business Intelligence & Reporting Product”. This is our great chance to vote for our product, let others what it can do and promote it in different communities.  And to add to that, are you impressed with our tech support team?  Then you have a chance to vote for our own team in the ninth category called “Best vendor tech support”. And what can be the best way to encourage our team than to vote for it?  2. "2010 DevProConnections Community Choice Awards". Our impressive and effective data analysis tool –FastCube- is taking part in the second category “Charting & Graphics Tool”, The best way to tell others that there is a better way to analyze their data is by voting for our product. And this will do us all pride that once again, we are together supporting our team and making others aware of better ways to handle and report their data. Thanks for your support! ### Tabs in WebReport URL: https://www.fast-report.com/tr/blogs/tabs-web-report We can use tabs to view multiple reports in WebReport  in version FastReport.NET 2013.4 and newer. Tabs can be useful for viewing many reports with additional information. Each report in tab has own navigation and may be attached to any data source. Saving in different formats is performed for each tab. We have plans to implement FastReport.NET for open the detailed report in a separate tab by clicking on the object page. Also we will add the ability to close unnecessary tabs. Tabs can be added directly in the application code, for example: ``` WebReport webReport = new WebReport(); webReport.Report.RegisterData(dataSet, "NorthWind"); webReport.Report.Load(report_path + "Simple List.frx"); webReport.CurrentTab.Name = "Simple List"; // tab 2 Report report2 = new Report(); report2.RegisterData(dataSet, "NorthWind"); report2.Load(report_path + "Labels.frx"); webReport.AddTab(report2, "Labels"); // tab 3 Report report3 = new Report(); report3.RegisterData(dataSet, "NorthWind"); report3.Load(report_path + "Master-Detail.frx"); webReport.AddTab(report3, "Master-Detail");   ``` A property “webReport.CurrentTab” needs for access to the current tab, for example: “webReport.CurrentTab.Report”. By default, the first tab is available. In each of the tabs we have next available properties: “Report” – report object, “Name” – tab name. The name of the tab will be taken from the properties of report or report file name if the “Name” property is not specified. The collection of tabs "webReport.Tabs" is also available. These can be used to refer to the tab by its index, for example: webReport.Tabs [0]. Name. WebReport.AddTab method adds a new tab. We can use any declaration from next: ``` // an adding of report object public ReportTab AddTab(Report report); // an adding of report object with its name public ReportTab AddTab(Report report, string name); // an adding of prepared report object with its name (reportDone = true) public ReportTab AddTab(Report report, string name, bool reportDone);   ``` Last call declaration can add any prepared report. An example of adding some prepared reports: ``` webReport.Tabs.Clear(); string s = this.Server.MapPath("~/App_Data/Prepared.fpx"); // first Report firstReport = new Report(); firstReport.LoadPrepared(s); webReport.AddTab(firstReport, "First tab", true); // second Report secondReport = new Report(); secondReport.LoadPrepared(s); webReport.AddTab(secondReport, "Second tab", true);   ``` In the near future we will add the display settings for tabs and an implementation of interactive reports. LIVE DEMO Thank you for attention! Tags: .NET, .NET, FastReport, FastReport, ASP.NET, ASP.NET, MVC, MVC ### Thank you for your request URL: https://www.fast-report.com/tr/user-request-successful Summary: You succesfully applied your contest project! Thanks for being a part of it. We will notify you about your status change via email You succesfully applied your contest project! Thanks for being a part of it. We will notify you about your status change via email You succesfully applied your contest project! Thanks for being a part of it. We will notify you about your status change via email ### The content of .NET component packages URL: https://www.fast-report.com/tr/fastreport-packs-net Summary: The composition of the product line .NET directions, effective from June 1, 2024: now the products are more specialized The composition of the product line .NET directions, effective from June 1, 2024: now the products are more specialized Here you can learn how .NET products will be formed starting on June 1, 2024. Instead of the usual product and edition, we suggest choosing the set of components (pack) that is right for you.  Ultimate WEB Avalonia WinForms WPF Mono Open Source The composition of component sets Run-time report designer ✓ ✓ ✓ ✓ ✓ ✓ ✓ Report Viewer ✓ ✓ ✓ ✓ ✓ ✓ ✓ Saving and uploading templates to  FastReport Cloud ✓ ✓ ✓ ✓ ✓ ✓ ✓ Saving prepared reports to the cloud ✓ ✓ ✓ ✓ ✓ ✓ Report script ✓ ✓ ✓ ✓ ✓ ✓ ✓ Print support ✓ ✓ ✓ ✓ ✓ ✓ In-report data sources ✓ ✓ ✓ ✓ ✓ ✓ ✓ In-report dialogue forms ✓ ✓ ✓ ✓ ✓ ✓ Export the prepared report to other formats ✓ ✓ ✓ ✓ ✓ ✓ Partly* Advanced report objects : Table, Matrix, AdvMatrix, Barcode, Charts, Maps, RichText, Checkbox, Zip code, CellularText, Digital signature ✓ ✓ ✓ ✓ ✓ ✓ Partly** Report objects - Text, Picture, Shape, Line, Subreport ✓ ✓ ✓ ✓ ✓ ✓ ✓ System.Drawing (GDI) ✓ ✓ ✓ ✓ ✓ ✓ ✓ FastReport.Drawing (Skia) ✓ ✓ ✓ Blazor Server ✓ ✓ Blazor Webassembly (WASM) ✓ ✓ ASP.NET components (WebReport) ✓ ✓ ✓ WinForms components ✓ ✓ WEB components  ✓ ✓ ✓ Avalonia components ✓ ✓ WPF components ✓ ✓ Mono components ✓ ✓ OLAP components ✓ Business Graphics components ✓ Online Designer included ✓ ✓ Source code ✓ Operating systems Windows ✓ ✓ ✓ ✓ ✓ ✓ ✓ macOS ✓ ✓ ✓ ✓ Linux ✓ ✓ ✓ ✓ ✓ Pricing policy Single $1,499 $799 $599 $499 $499 $499 Team $4,499 $2,399 $1,799 $1,499 $1,499 $1,499 Site $22,499 $11,999 $8,999 $7,499 $7,499 $7,499 *Only PDFSimple, Images (Jpeg, PNG, BMP, GIF, TIFF, EMF), HTML, HTML5 (layered) are supported **Only Table, Matrix, Barcode, RichText, Checkbox, Zip code, CellularText are supported ### The content of Delphi component packages URL: https://www.fast-report.com/tr/fastreport-packs-delphi Summary: The content of the Delphi product line, effective from June 1, 2024: now the products are more specific foк your needs The content of the Delphi product line, effective from June 1, 2024: now the products are more specific foк your needs Here you can learn how Delphi products will be for med starting on June 1, 2024. Instead of the usual product and edition, we suggest choosing the set of components (pack) that is right for you. Ultimate VCL Optimum VCL Reporting VCL Reporting FMX Reporting Lazarus Analysis VCL Embarcadero Edition The composition of component sets Report Designer ✓ ✓ ✓ ✓ ✓ Partly* Report script ✓ ✓ ✓ ✓ ✓ Connecting data sources ✓ ✓ ✓ ✓ ✓ ✓ ✓ In-report dialogue forms ✓ ✓ ✓ ✓ ✓ Export to other formats ✓ ✓ ✓ ✓ ✓ ✓ Partly** Advanced report objects - Table, Matrix, Barcode, Charts, Maps, RichText, Checkbox, Zip code, CellularText ✓ ✓ ✓ ✓ ✓ Partly*** Report objects - Text, Picture, Shape, Line, Subreport ✓ ✓ ✓ ✓ ✓ ✓ Converters from Quick Report, Report Builder, Rave Reports ✓ ✓ ✓ VCL components (Core, Core controls, Core Graphic, Core Localization) ✓ ✓ ✓ ✓ VCL OLAP components ( FastCube VCL ) ✓ ✓ ✓ VCL ClientServer components ( learn more ) ✓ ✓ FMX components (Core, FastScript, Reporting) ✓ ✓ FMX OLAP components (FastCube FMX) ✓ Lazarus components (Core, Core UI,  FastScript, Reporting) ✓ ✓ Lazarus OLAP components (FastCube Lazarus) ✓ Lazarus ClientServer components  ( learn more ) ✓ Save prepared reports to clouds (transports) ✓ ✓ Source code ✓ ✓ ✓ ✓ ✓ ✓ FastScript included ✓ ✓ ✓ ✓ ✓ ✓ FastQueryBuilder included ✓ ✓ ✓ Operating systems Windows ✓ ✓ ✓ ✓ ✓ ✓ ✓ macOS ✓ ✓ ✓ Linux ✓ ✓ ✓ Pricing policy Single $1,299 $899 $499 $499 $499 $399 Download Team $3,899 $2,699 $1,499 $1,499 $1,499 $1,199 Site $19,499 $13,499 $7,499 $7,499 $7,499 $5,999 *Design time only **Only PDF, RTF, HTML, TXT, Images, CSV  are supported ***Only Сharts, Linear barcodes, Rich Text, Checkbox are supported ### The era of WinForms is over, the era of FastReport.Core.Skia began URL: https://www.fast-report.com/tr/blogs/fastreport-core-skia Summary: The new Sharp graphics engine for creating high-quality reports and correctly exporting to different formats is available in FastReport .NET. The new Sharp graphics engine for creating high-quality reports and correctly exporting to different formats is available in FastReport .NET. The new Sharp graphics engine for creating high-quality reports and correctly exporting to different formats is available in FastReport .NET. To create high-quality reports and correctly export them to different formats (PDF, Word, Excel, etc.), it is necessary to use the graphics engine. Since the earliest versions of the .NET Framework, Microsoft has used GDI+ and its wrapper as part of the System.Drawing library. FastReport .NET has long been using the same library to create beautiful and functional reports. The Mono team has developed their GDI+ version for Unix systems: libgdiplus, which is used by System.Drawing.Common. However, this method does not work perfectly. GDI+ problems Unfortunately, unlike on Windows, System.Drawing.Common works on other platforms very specifically. Such common issues that we receive from our users include incorrect rendering text sizes, lack of RTL language support, incorrect word spacing, word break error in sentences, lack of ARM processor support, and general libgdiplus instability (“Out of memory”, problems during the work in a multi-threaded configuration). You can solve some of these problems by manually rebuilding libgdiplus from the Mono repository  with Pango/Cairo support . In any case, this is inconvenient, especially if your application uses containerization. The other problems affect the quality of report export on all operating systems except Windows. As a result, Microsoft officially dropped support for System.Drawing.Common on non-Windows platforms. Here is their post:“ Breaking change: System.Drawing.Common only supported on Windows - .NET | Microsoft Docs “ . After it, our users began to actively ask how they could use the powerful functionality of FastReport on Linux or macOS. Solution We have developed a special version of FastReport.Core, which uses Skia as a graphics engine and its wrapper for .NET - SkiaSharp, called FastReport.Core.Skia. The FastReport.Core.Skia and FastReport.Web.Skia packages are available on our private NuGet server.  In case you have problems rendering text under Linux with libgdiplus, we highly recommend trying FastReport.Core.Skia. To use it in your application, just change the package name  FastReport.Core -> FastReport.Core.Skia , and add the following packages on Linux (on Windows and macOS, the necessary packages are added automatically) : - SkiaSharp.NativeAssets.Linux ( NuGet ). - HarfBuzzSharp.NativeAssets.Linux ( NuGet ). Let's now compare FastReport.Core with libgdiplus and FastReport.Core.Skia on Linux/macOS. First, let's look at the incorrect calculation of text length after exporting to HTML format on Linux Ubuntu 20.04. In the images below, you can see how libgdiplus with Pango, even rebuilt from the source, does not display the end of the 1st line correctly, dropping some information, Skia works fine. Incorrect HTML export on Linux, libgdiplus + Pango Correct HTML export on Linux, SkiaSharp Let's look at exporting the Unicode.frx report from our demo with texts in different languages. Unfortunately, even after rebuilding libgdiplus with Pango, it does not work with RtL languages such as Hebrew, Arabic, and others. FastReport.Core.Skia can work with such languages. Incorrect PDF export of RtL text on Linux, libgdiplus with Pango wrote all text in 1 column for 8 pages Correct PDF export of RtL text on Linux, SkiaSharp We can see the similar situation with some Eastern languages, the correct display of which requires a special font: Incorrect PDF export of text on Linux, libgdiplus with Pango Correct PDF export of text on Linux, Skia. An appropriate font is automatically selected for each text. Let's try FastReport.Core.Skia in a previously unsupported scenario: working on devices with ARM processors, such as Apple M1. Let's create a .NET 6 console application (because only .NET 6 has native support for ARM architecture for macOS) and export the Simple List.frx report from our demo. In the end, we recall that System.Drawing.Common, starting with version 7.0, will completely stop supporting non-Windows systems, so the examples of libgdiplus given above will soon not work at all. Limitations: This version of FastReport.Core cannot be used with the System.Drawing API: in some .NET Framework projects, NET Core 3.1/ NET 5+ WindowsForms projects, and in projects with System.Drawing.Common due to the specifics of this modification. Try the new version of FastReport.Core with SkiaSharp support and enjoy all its advantages. If you have any questions, please contact our  Support . Tags: .NET, MacOS, Mono, FastReport, Linux, Core, PDF, WinForms, HTML, Libgdiplus, Windows ### The Event of ExportParameters in WebReport.Report URL: https://www.fast-report.com/tr/blogs/exportparameters-in-webreport Summary: The article discribes how to use event ExportParameters with FastReport.Net reports. The article discribes how to use event ExportParameters with FastReport.Net reports. The article discribes how to use event ExportParameters with FastReport.Net reports. In FastReport 2020.1 we have added the ability to change export parameters. To do this, you must subscribe to the ExportParameters event in WebReport.Report. Until now the FastReport.Net library did not provide access to the export parameters. Or rather, it did, but only to some of the parameters, and with the help of individual properties of the Web report. All these properties are piled up and working with them using intelisense is quite inconvenient, and they do not cover all the needs of users. So it was decided to give users access to all properties of the export object, using a special ExportParameters event. In the event handler you can get the export object and set all the properties you need. Thus, it is now possible to configure the export more precisely due to previously unavailable properties. This is how you can use the new event: ``` WebReport.Report.ExportParameters += (sender, e) => { PDFExport export = e.Export as PDFExport; if (export != null) { export.Title = "test"; export.DefaultPage = 2; } }; ```  In this example, we only changed the header and the default page. Note that we are expecting a PDF export when processing, which means that this code will not work for another type of export. In one handler you can specify settings for several export types at once. Now, let's take the example of PDF export as an example of how the available export properties have expanded. Previously WebReport offered us a set of export properties, which were essentially wrappers over the properties of the PDFExport export object: ``` public string PdfTitle { get; set; } public string PdfAuthor { get; set; } public string PdfSubject { get; set; } public string PdfKeywords { get; set; } public string PdfCreator { get; set; } public string PdfProducer { get; set; } public string PdfUserPassword { get; set; } public bool PdfPrintScaling { get; set; } public string PdfOwnerPassword { get; set; } public bool PdfAllowModify { get; set; } public bool PdfAllowCopy { get; set; } public bool PdfAllowAnnotate { get; set; } public bool PdfA { get; set; } public bool PdfShowPrintDialog { get; set; } public bool PdfImagesOriginalResolution { get; set; } public bool PdfJpegCompression { get; set; } public bool PdfAllowPrint { get; set; } public bool PdfCenterWindow { get; set; } public bool PdfHideWindowUI { get; set; } public bool PdfFitWindow { get; set; } public bool PdfEmbeddingFonts { get; set; } public bool PdfBackground { get; set; } public bool PdfInteractiveForms { get; set; } public bool PdfPrintOptimized { get; set; } public bool PdfOutline { get; set; } public bool PdfDisplayDocTitle { get; set; } public bool PdfHideToolbar { get; set; } public bool PdfHideMenubar { get; set; } public bool PdfTextInCurves { get; set; } ```  I must say that this list of properties includes the main and most popular, but not all. Many users want more. And now, with the new event ExportParameters, they have the full set of properties available: ``` public bool HideWindowUI { get; set; } - hide user interface; public bool ShowPrintDialog { get; set; } – show printing dialog; public bool HideToolbar { get; set; } – hide toolbar in PDF viewer; public bool HideMenubar { get; set; } – hide menubar in PDF viewer; public GradientInterpolationPointsEnum GradientInterpolationPoints { get; set; } – gradient interpolation poinrs; public bool FitWindow { get; set; } – enable window fitting; public bool CenterWindow { get; set; } – center window; public bool PrintScaling { get; set; } – show scaling; public bool Outline { get; set; } – show contents; public MagnificationFactor DefaultZoom { get; set; } – default zoom; public int RichTextQuality { get; set; } – RichText quality; public bool Compressed { get; set; } – compress file; public bool TransparentImages { get; set; } – transparent image; public bool DisplayDocTitle { get; set; } – display document title; public int DefaultPage { get; set; } – default page number; public byte[] ColorProfile { get; set; } – color profile; public ExportType ExportMode { get; set; } – export type; public bool InteractiveForms { get; set; } – enable interactive forms; public bool IsDigitalSignEnable { get; set; } – enable digital signature; public bool SaveDigitalSignCertificatePassword { get; set; } – save digital signature certificate password; public X509Certificate2 DigitalSignCertificate { set; } – digital signature certificate; public string DigitalSignCertificatePath { get; set; } – digital signature certificate path; public string DigitalSignCertificatePassword { set; } – ; digital signature certificate password public string DigitalSignLocation { get; set; } – digital signature location; public string DigitalSignReason { get; set; } – digital signature reason; public string DigitalSignContactInfo { get; set; } – digital signature contact info; public CurvesInterpolationEnum CurvesInterpolation { get; set; } – curves interpolation; public bool AllowAnnotate { get; set; } – allow annotation; public bool AllowCopy { get; set; } – allow copying; public bool AllowModify { get; set; } – allow editing; public bool AllowPrint { get; set; } – allow print; public GradientQualityEnum GradientQuality { get; set; } – gradient quality; public PdfStandard PdfCompliance { get; set; } – PDF standard complience; public bool EmbeddingFonts { get; set; } – enable embedded fonts; public bool Background { get; set; } – enable background; public CurvesInterpolationEnum CurvesInterpolationText { get; set; } – interpolation text curves; public PdfColorSpace ColorSpace { get; set; } – color space; public bool ImagesOriginalResolution { get; set; } – use original image resolution; public bool PrintOptimized { get; set; } – print optimization; public bool JpegCompression { get; set; } – Jpeg image compression; public bool TextInCurves { get; set; } – make text in curves; public string Title { get; set; } – title; public string UserPassword { get; set; } – user password for encrypted documents; public int JpegQuality { get; set; } – Jpeg image quality; public string OwnerPassword { get; set; } – Owner’s password; public string Producer { get; set; } – Producer; public bool SvgAsPicture { get; set; } – Display Svg objects as pisctures; public string Keywords { get; set; } – Keywords; public string Subject { get; set; } – Subject of the document; public string Author { get; set; } – Author; public string Creator { get; set; } – Creator; ```  And this is without considering the properties common to all exports. Let's summarize what benefits the new ExportParameters event brings us. By using an object for a specific export, we can only access the properties of that export. Previously, it was required to select from a common list of properties of all possible exports, which is not always convenient, because the names of some properties are not obvious to identify the export. You will see the full list of available properties using Intellisense or you can see the full list of available properties. Tags: .NET, .NET, Export, Export, FastReport, FastReport ### The Future of Report Generation with Blazor WebAssembly URL: https://www.fast-report.com/tr/blogs/blazor-webassembly-manual Summary: Step-by-step instructions for creating a demo application on .NET 6 and 7 directly in the browser using Blazor WebAssembly in FastReport .NET. Step-by-step instructions for creating a demo application on .NET 6 and 7 directly in the browser using Blazor WebAssembly in FastReport .NET. Step-by-step instructions for creating a demo application on .NET 6 and 7 directly in the browser using Blazor WebAssembly in FastReport .NET. Microsoft has long introduced a framework for creating an interactive web interface with C#, HTML and CSS. It comes in two versions: Server-side (Blazor Server) and Client-side (Blazor WebAssembly). WebAssembly is particular because it is executed right in the user’s browser and accesses the remote server only for the libraries required for code execution. FastReport .NET already supports Blazor technology as part of the FastReport.Web package ( more ). However, until now, we have only supported Server-side rendering (Blazor Server). It took us a long time to get FastReport .NET working right in the user’s browser because we needed  Skia  support for stable work. Starting with version 2023.2, we are pleased to announce Blazor WebAssembly support as part of the FastReport.Blazor.Wasm package. This package is available as part of a FastReport .NET Enterprise subscription and higher (including Ultimate).  Attention! Blazor WebAssembly support is currently in beta. Some reports and functionality may not work. Read the documentation and restrictions carefully before using. Creating a demo application Let’s create a test demo application to see the work of FastReport in WebAssembly. First, install WebAssembly Build Tools to build your project with WebAssembly. If it is not installed, then run the following commands on the command line, depending on the TargetFramework of your application: For .NET 6: ``` dotnet workload install wasm-tools-net6 ``` For .NET 7: ``` dotnet workload install wasm-tools ``` Now let’s create a simple Blazor WebAssembly demo project from a template. You can do this using Microsoft Visual Studio 2022 or the dotnet CLI. For simplicity, let’s use the command: ``` dotnet new blazorwasm -n BlazorWasmDemo ``` Let’s edit the csproj of our project and add the latest FastReport.Blazor.Wasm package: ``` ``` Now, if you want to prepare your report in the browser (.frx), you must disable Trimming, as it interferes with the report script compilation. You can do this in the following way: ``` false ``` Now we add the native SkiaSharp libraries as part of our application. Depending on the TargetFramework we need to add: For .NET 6: ``` ``` For .NET 7: ``` ``` In the _Imports.razor file, similarly to the Blazor Server components, add the necessary namespace to view the FastReport components: ``` @using FastReport.Web @using FastReport.Web.Blazor.Components ``` Register FastReport services in our DI container (file Program.cs): ``` builder.Services.AddScoped(_ => new HttpClient{ BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); builder.Services.AddFastReport(); ``` Note that for FastReport to work in WebAssembly, you must have a configured HttpClient in a DI container that can access root to load the necessary dlls builds. If you need to override HttpClient for your use, you can just set a separate HttpClient only for FastReport needs: ``` builder.Services.AddFastReport(options => options.HttpClient = new HttpClient{ BaseAddress = new Uri(builder.HostEnvironment.BaseAddress)}); ``` We have almost completed our long journey of preparing FastReport in WebAssembly, but there are just a few finishing touches. In the standard wwwroot\index.html file, we need to add the loading of js scripts for the proper work of FastReport: ``` ``` Font registration FastReport must interact with the user’s fonts since FastReport works with reports and the font is an integral part of any report with text. This is what happens when the report generator runs on Windows or Linux. However, the information about installed fonts on the user’s computer becomes unavailable when FastReport runs in a browser. Thus, our application must register the fonts that we will use in our reports. In our application, we will use a font that we will embed in our library as an embedded resource (EmbeddedResource) in advance. For this, specify in our project (.csproj): ``` Fonts\%(RecursiveDir)%(Filename)%(Extension) ``` Let’s put all the fonts we need in the Fonts folder and register them in our Program.cs. Let’s create this method and call it immediately: ``` static void AddFonts() { var resources = Assembly.GetExecutingAssembly().GetManifestResourceNames(); foreach (var resource in resources) { using var font = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource); FastReport.Utils.Config.PrivateFontCollection.AddFontFromStream(font); } }   AddFonts(); ``` Data registration That’s quite difficult. Few database connectors can work directly from the user’s browser. Therefore, we leave this to the discretion of our users. For example, you can request data from some third-party resource via HTTP and then register this data in a report before preparing it. In our application, for demonstration, we use the data from the xml file, which we put in wwwroot together with the report. Attention! Do not use this method for the final project publication because hackers can easily steal your data. Using WebReportContainer component Finally, let’s change the file Index.razor to use our WebReportContainer component. It will require the following code: ``` @page "/" @using FastReport @using System.Data; @inject HttpClient HttpClient   @if (isReady) { }   @code{ WebReport myWebReport; private bool isReady = false;   protected async override Task OnParametersSetAsync() { // We receive a report var reportBytes = await HttpClient.GetByteArrayAsync("Simple List.frx"); var reportStream = new MemoryStream(reportBytes); var report = Report.FromStream(reportStream);   // Get xml database and register it var dataBytes = await HttpClient.GetByteArrayAsync("nwind.xml"); var dataSet = new DataSet(); dataSet.ReadXml(new MemoryStream(dataBytes)); report.RegisterData(dataSet, "NorthWind");   // Create a WebReport and assign a report to it myWebReport = new WebReport() { Report = report, EmbedPictures = true }; isReady = true; } } ``` Everything went well if we saw our report in the browser: You have access to the reporting engine, you can build reports and view ready-made. Online designer support will be added in future. For security reasons, database connections are disabled inside reports, you will need to connect data from your application yourself. We are working hard on improving our WebAssembly component. If you have any questions, write to our support at  support@fast-report.com . Tags: .NET, FastReport, WebReport, Blazor ### The indicator of the presence of events in the object in the report designer FastReport.Net URL: https://www.fast-report.com/tr/blogs/indicator-presence-events-designer-net In FastReport 2018.2.3, new settings for the report designer appeared - objects appearance. Settings can be opened in the File menu - Settings. The new section contains only two settings for now: • Show indicator on bands with events; • Show indicator on objects with events. Both settings allow you to enable the indication of the presence of events in the object. Thus, you can quickly find in the report objects for which there is code in the report script. The indicator is a small red triangle in the upper left corner of the object: For example, select the CheckBox object and look in the Property inspector for the events for it: Indeed, it's fast and convenient to search for objects with events. An alternative path is to go to the Code section, find the desired event and read the name of the report object. Then you need to return to the report page and, in the Property inspector, select the desired object from the drop-down list. This is very inconvenient, isn’t it? With the indicator, you can open a large, complex report and instantly detect objects with events. Obviously, the new settings section "Appearance of objects" will be replenished with other interesting options. Tags: .NET, .NET, FastReport, FastReport ### The InterBase and Firebird Developer Magazine 2005 URL: https://www.fast-report.com/tr/news/firebird-developer-magazine-2005 Summary: The first issue of "The InterBase and Firebird Developer Magazine" The first issue of "The InterBase and Firebird Developer Magazine" The first issue of "The InterBase and Firebird Developer Magazine" is published. It is a free electronic magazine in PDF devoted to InterBase`and Firebird database development. You can download the first issue and subscribe to the next issues at  www.ibdeveloper.com ### The Latest FastReport Version: 50% Discount on Updates URL: https://www.fast-report.com/tr/news/promotion-march-2026 Summary: From March 23 to April 6, 2026, a special offer is available for customers with expired licenses. Report generators FastReport .NET and FastReport VCL with a 50% discount. From March 23 to April 6, 2026, a special offer is available for customers with expired licenses. Report generators FastReport .NET and FastReport VCL with a 50% discount. From March 23 to April 6, 2026 , a special offer is available for customers with expired FastReport licenses. During this period, you can purchase the latest versions of FastReport .NET and FastReport VCL report generators with a 50% discount. The promotion applies to FastReport .NET editions: Ultimate, WEB, Avalonia, WPF, WinForms, Mono, as well as to FastReport VCL editions: Ultimate, Optimum, Reporting VCL, Reporting FMX, Reporting Lazarus, Analysis VCL. The offer is valid for Single, Team, Business, and Site licenses and allows you to upgrade to the current product versions under special conditions, even if your license has expired a long time ago. Updating provides access to the latest FastReport features, including new functionality, an updated report designer, technical support, and improved performance. Additional releases with new functionality are also planned in the coming months and will be available only to owners of active licenses. After the promotion ends, the discounted price can still be locked in for an additional 7 days if necessary. To take advantage of the offer or receive more information, please contact the sales team at sales@fast-report.com . ### The new version of FastCube FMX - 2021.1 URL: https://www.fast-report.com/tr/news/fastcube-fmx-2021.1 Summary: The new FastCube FMX with the support of RAD Studio 11 Alexandria, improved interface, and the new licensing model - subscription. The new FastCube FMX with the support of RAD Studio 11 Alexandria, improved interface, and the new licensing model - subscription. New features Now FastCube OLAP decision cube for FireMonkey supports the new RAD Studio 11 Alexandria. On top of that, we have improved the interface - there are new items in the context menus, improved the ability to search for values. We also fixed bugs. New licensing mode l Starting version 2021.1 all FastCube FMX editions are subscription-based. It means that you will always have an up-to-date version as long as your subscription is valid. Full list of changes + Add support for RAD Studio 11 Alexandria. + Axis position changes on DblClick in the axis field popup. + Added search in the popup list of unique values by pasting from the clipboard. + Added "Copy" menu item to the axis menu. Item copies dimension value to the clipboard. * Fixed keyboard handling in the popup grid list (grid must have CanFocus = True). * DataZone gets the focus and therefore keyboard handling on the grid focus (grid must have CanFocus = True). ### The new version of FastReport Online Designer 2024.1 URL: https://www.fast-report.com/tr/news/fastreport-online-designer-2024.1 Summary: With the release of 2024.1, the visual convenience when creating reports has been improved, new fills and gradients for objects and bands have been added. With the release of 2024.1, the visual convenience when creating reports has been improved, new fills and gradients for objects and bands have been added. Exciting updates to the report designer in the 2024.1 release! We have paid special attention to the internal architectural product changes and improved the visual ease of reporting. We have also added new object fills and gradients. New opportunities We added the ability to apply a "Linear Gradient" fill to an object or band To apply the "Linear Gradient" fill to an object or band, you need to select the element first and then click on the "Fill" group in the properties panel: A dialogue box will open where you need to navigate to the "Gradient" tab. After that, you can choose the gradient parameters (start color, end color, gradient angle, focus, and contrast) and apply the changes: Added the ability to apply a "Shape Gradient" fill to an object or band To apply a "Shape Gradient" fill to an object or band, you need to select an element and then click on the "Fill" group in the properties panel: You will see a dialog box in which you need to go to the "Shape Gradient" tab. After, you can select the parameters of the figure gradient (center color, edge color, shape) and apply the changes: Added the ability to apply the "Hatch" fill to an object or band To apply the "Hatch" fill to an object or band, you need to select an element and then click on the "Fill" group in the properties panel: A dialog box will open in which you need to go to the "Hatch" tab. Here, you can select hatch parameters (hatch color, background color, hatch style) and apply the changes: Added the ability to apply the "Glass" fill to an object or band To apply the "Glass" fill to an object or band, you need to select an element and then click on the "Fill" group in the properties panel: You will see a dialog box in which you need to go to the "Glass" tab. Then you can select the glass fill parameters (color, transparency, shading) and apply the changes: Added the ability to apply a "Texture" fill to an object or band To apply the "Texture" fill to an object or band, you need to select an element and then click on the "Fill" group in the properties panel: You will see a dialog box in which you need to go to the "Texture" tab. After this, you can select the texture parameters (image, texture pattern dimensions, transfer mode, "save proportions" option, pattern shift along the X and Y axes) and apply the changes: Added the ability to drag a field onto a barcode so that it is recorded in the DataColumn Now, to insert any data into a barcode, you can, in addition to using the properties panel, drag data from the data panel directly onto the barcode: Added the ability to delete a matrix via the context menu Based on user requests, we have added a useful "Delete" item in the context menu of the matrix: Improvements Rework and new design of pop-ups All pop-up windows, such as the expression and format editor, have been completely redesigned and improved to meet modern UI standards. We have completely reviewed and rewritten all dialog boxes in our project. This was done to ensure better performance, ease of use, and optimize user experience. For example, now the expression in the expression editor field is transferred to the specified location: Here is the full list of changed windows: MS Chart editing; Band editing; Border editing; Connection string editing; Data band editing; Fill editing; Font editing; GroupHeader editing; Conditional selection editing; Map editing; Matrix cells editing; MS Chart series editing; Image editing; RichText editing; Format; Link editor; Map layer loading; Adding connection; Outline editing. Rework and new design of elements in pop-up windows In addition to functional improvements, you will also notice visual changes. The design of controls has become more modern, clean, and intuitive. These changes improve user experience with the application. Rework and new design of the work panel (properties, report tree, data, events) The work panel has been redesigned and changed. It includes: Properties panel; Report tree panel; Data panel; Events panel. Now, the work panel is located on the right: The design of the properties panel has been changed. Now it looks like this: Also, the report tree panel has been redesigned: The data panel has been redesigned: And another event panel: New Components Panel for Desktop Devices For desktop devices such as personal computer or laptops, the component panel is now on the left: For devices with a touchscreen display, the component panel remains in the same place: Changed Color Picker The color picker has been updated to a more powerful version. The new version of the tool allows you to select preset colors and adjust color transparency. The old version of the tool looked like this: The new version looks like this: Now, when deleting GroupHeader, the Data band is not deleted with it Previously, if you deleted a GroupHeader, the Data band was also deleted. Now the Data band is saved: If you used JS injections for FastReport Online Designer, their functionality may be impaired! If you have any problems, please contact our support . Full list of changes ----- + Added the ability to apply a "Linear Gradient" fill to an object or band; + Added the ability to apply a "Shape Gradient" fill to an object or band; + Added the ability to apply the "Hatch" fill to an object or band; + Added the ability to apply the "Glass" fill to an object or band; + Added the ability to apply a "Texture" fill to an object or band; + Added the ability to drag a field onto a barcode so that it is recorded in the DataColumn; + Added the ability to delete a matrix via the context menu; * Rework and new design of pop-up windows; * Rework and new design of elements in pop-up windows; * Rework and new design of the work panel (properties, report tree, data, events); * New component panel for desktop devices; * Replacement of the color selection tool; * Now, when deleting a GroupHeader, the Data band is not deleted along with it; * Updated localization; * And other improvements; - Fixed a bug when the "Simple Progress Sensor" object was not displayed; - Fixed a bug when nothing happened when selecting a data format in some cases ; - Fixed default color for table borders; - Fixed reset of the separator when re-opening the "data format" form; - Fixed a problem where the CheckedListbox on the dialog form was not updated; - Fixed compatibility issues for old reports; - Fixed display of numbered list in RichText; - Correction of errors in dialog forms; - Fixed display of events after report reloading; - And other fixes. ### The new version of FastReport VCL 2022.3 is now available! URL: https://www.fast-report.com/tr/news/fastreport-vcl-2022.3 Summary: We have compiled the most interesting improvements and fixes that came out with the release of FastReport VCL 2022.3. We have compiled the most interesting improvements and fixes that came out with the release of FastReport VCL 2022.3. We have compiled the most interesting improvements and fixes that came out with the release of FastReport VCL 2022.3. We have decided to drop support for non-Unicode Delphi versions to ensure quality and constant updating. All further releases will use Delphi 2010. FastReport VCL 2022.3 now supports the latest update of Embarcadero RAD Studio 11.2. Report engine The new ClearEmptyLines property of the Text object allows to delete empty lines in the object. Combined with the CanShrink and ShiftAlways properties, this property makes it possible to collapse objects with empty values. In this case, the entire tree of objects at the bottom will move up. The new stretch mode of the text object (StretchMode) is smPartMaxHeight. Breaking objects in this mode use the height of each part after the break with correction. Unlike the smMaxHeight mode, which uses the band's height before the break. Static table cell objects now have OnBeforePrint / OnAfterPrint / OnAfterData events. We have added support for printing translucent images for non-AlphaBlend devices using Dithering. Note: Some devices may not be supported. Report Objects We have added support for TfrxPDFView object rotation. We have added a basic rotation of some figures in the report. We have added a new Code11 barcode. You can now use the TfrxHtmlView object in Lazarus. We have also added the output format from left to right with the processing of the dir="rtl" parameter. Exports and transports 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 and create questionnaires and survey forms. 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 end  Gmail  from FastReport VCL. We have added the possibility to hash duplicate images in export filters. The new cache reduces the number of duplicate images and the resulting export size. You can enable this feature using the CalculatePictureHash property of the export filter. Report Designer New pop-up tips (hints) for text objects, which do not fit in the box. 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”. Client-Server We have added the option of using the mask ‘*’ in configuration files with a list of IP addresses. An example of using a server via GCI was added in Lazarus. Full list of changes in the 2022.3 version --------------- [Transports] + New Outlook webmail transport; + New Gmail webmail transport; - Unicode names in GDrive transport have been fixed; [Client-server] + GCI example for Lazarus has been added; + Support for '*' mask in IP server lists has been added; [Designer] + New pop-up tips in the report designer that show the full text of the Memo object; + Quick comments in the Syntax Memo editor for selected text (default hotkey "Ctrl + /"); + New tooltips in the Syntax Memo editor; + Step over and StepReturn debugging modes have been added; + Quick addition of selected text from Syntax Memo to the Watches list from the context menu; - TfrxDesignerForm.GetCurrentForm has been fixed (TFrame support has been added); - We have fixed the issue with the component editors of the report designer when editors have the same property names with different flags (paMultiSelect); - Fixed paper size B4 has been adjusted (JIS); - We have fixed the destruction of CodeCompletion thread when custom scripts are assigned by Report.Script.Parent; - The generation of Unicode names for objects during Drag&Drop from DataTree has been fixed; [Report engine] + We have added a new ShiftMode, smPartMaxHeight stretches each part of the split object to the maximum height of the Band and adjusts the height of each part; + We have added the hash calculation for images used in the report, for export filters (ExportFilter.CalculatePictureHash property), and the prepared report (TfrxReport.PictureCacheOptions.CalculateHash); + We have added the emulation for printing a translucent mask using dithering for printers without alpha blending (may not be supported on all printers); + We have added TfrxTableCell.OnBeforePrint/OnAfterPrint/OnAfterData event handlers for static table object; + We have added a new property of the Memo object ClearEmptyLines, which removes all empty lines inside the Memo object after the GetData method; - We have fixed a bug in using a combination of MemoView.AutoWidth=True and Align=baWidth to position objects on container; - We have fixed a bug with the wrong value of basic object shift when the first object in the container moved to the next page; - Proper removal of editors when unloading packages; - We have fixed the mechanism for partitioning the Table static object; [Exports] + We have added interactive PDF support for Listbox and Combobox objects; - We have fixed a Unicode password when exporting to PDF; - We have fixed the export of HTML tags to PDF for Embarcadero edition; - We have fixed the export of translucent vector graphics (SVG) when AllowVector is set to False. - We have fixed XLSX export for Delphi versions, which do not support Unicode; - PDF export with European ligatures via EMF (ETO_GLYPH_INDEX) has now been fixed; - PDF export now doesn't export clip text if the entire line doesn't fit; [Other] + We have added new openssl libraries (static crt and x64 support); - We have fixed the generation of CBuilder 2007 headers; - We have fixed the issues with HiDPI PerMonitorV2; [Preview] - Setting units of the preview page have been fixed; [Report objects] + New Code11 barcode; + Basic rotation has been added to the TfrxShapeView object; + Linux support for TfrxPDFView has been added in Lazarus; + TfrxPDFView rotation has been added; + Support for RTL attributes in the TfrxHtmlView object has been added; + Support for TfrxHtmlView object in Lazarus has been added; - The bug in QR EPC barcode has been fixed; - We have fixed the bug in Datamatrix C40 encoding when data size was equal to code size limits; - We have fixed the bug in scaling of 2D barcodes during the export to PDF for applications that do not support dpi; - The processing of TfrxHTMLView expressions for data fields has been fixed; - The bug in GS1-128 code has been fixed; - RichView splitting in double pass reports has been fixed; * Laz Chart support has been updated to version 2.2.0; [Resources] * Swiss resources have been updated; * German resources have been updated. ### The object rendering border for the Clip property URL: https://www.fast-report.com/tr/blogs/clip-setting-boundaries-drawing Summary: Let's take a closer look at how the object rendering boundary works for the Clip property in FastReport. Find more usefull tips and articles in our blog. Let's take a closer look at how the object rendering boundary works for the Clip property in FastReport. Find more usefull tips and articles in our blog. Let's take a closer look at how the object rendering boundary works for the Clip property in FastReport. Find more usefull tips and articles in our blog. In this article I would like to draw your attention to an interesting property of the of the object Text. Clip property determines whether to display the text, if it goes beyond the boundaries of the object. If this feature is enabled, the text will be cut according to the boundaries of the object. If disabled - will be displayed in full, as if the object was stretched. Let's look at an example. Create a simple report. For example, I bring a list of product categories with pictures: Please note that the selected text object with the name of the category has a small size. I specifically disabled text wrapping (WordWrap property) for clarity. Preview the report: As you can see, the names of the categories cut because of the small size of the text object. Now, set the Clip property to false (default true) for the same object. Let's see how the report will look is now: Names are displayed in full, despite the size of the text object. Now do export to PDF format:  The document corresponds to the report, everything is correct. I went ahead and decided to display the text vertically. To do this, change the angle of the text of the object in the Angle property, for example - 270. Now the object of the text is as follows:  Run the report:  At this time, the property did not work. But it is not all that bad. Let us export the report in PDF: And here, the Clip property really disabled and the text is displayed correctly, despite the size of the text object. Make text slope of 45 degrees and repeat the experiment.  The report is still not fully displayed text. And now export to PDF: And this time, export to PDF did not disappoint. Everything looks correct. Summarize. The property Clip of the text object truncates text that does not fit within the boundaries of the object. If you use the autogrow feature object may occur displacement of neighboring objects or objects overlap that for some exports will lead to an incorrect display of the report. In such cases it is convenient to disable Clip property. From considered above, it is clear that now this "feature" works only with horizontal withdrawal of the text in the reports. However, when exporting to PDF, the rotation angle of the text does not matter. The text is always displayed in its entirety. Tags: .NET, FastReport, Designer ### The way to add a data field to a matrix row URL: https://www.fast-report.com/tr/blogs/add-data-field-matrix-row Summary: Let's take a detailed look at how to add a data field to a matrix row in FastReport. Find more usefull tips and acticles in our blog. Let's take a detailed look at how to add a data field to a matrix row in FastReport. Find more usefull tips and acticles in our blog. Let's take a detailed look at how to add a data field to a matrix row in FastReport. Find more usefull tips and acticles in our blog. In this article, we'll have a look at the way to create a dynamic matrix that is populated from the report's script code. The peculiarity of this matrix is that in addition to the data added from the script, we will insert the data field in the report cell using a text object. Suppose you create a matrix with a variable number of columns, which will be added depending on any conditions, but some of the data you have is constant. They are always filled. It would be nice just to put these data fields simply in the matrix, and the remaining cells should be filled from the code. Despite the fact that the filling of the matrix data is provided only in two ways (from the code or automatically, the data fields) we will match them. In fact, the technology is very simple. The data field is simply inserted into the cell as a separate text object. However, this is not all. When you add data to the matrix in the report, you must add the row number from the data set. Let's have a look at the example. Create a report and add the matrix to the "Data" band. Connect the data source - the demonstration database from the delivery, the Employees table. The matrix template looks like this: In the cell with a value of 2, we added a text object. In it, select the field Employees.LastName. This is exactly the "static" field about which we have spoken in above. Create the AfterData event handler for the matrix. ``` private void Matrix1_AfterData(object sender, EventArgs e) { DataSourceBase rowData = Report.GetDataSource("Employees"); // we get the data source Employees. Matrix1.DataSource = rowData; // assign it to the DataSource matrix property   rowData.Init(); // initialize the data source // we go through all records of the data source while (rowData.HasMoreRows) { Matrix1.Data.AddValue(new Object[] {"Phone" }, new Object[] { (string)Report.GetColumnValue("Employees.City"), (string)Report.GetColumnValue("Employees.FirstName")}, new Object[] {(string)Report.GetColumnValue("Employees.HomePhone") }, Report.GetDataSource("Employees").CurrentRowNo); // add another record rowData.Next(); //get the next record } } ```  It is clear from the comments that when you add a data string, we define the title of Phone. Then we insert the data in order: city, name and phone. And also, we need to transfer the data line number to insert the last name from the current data record. Now run the report: As you can see, you can make it easier for yourself and not add all the necessary data in the report script, but simply place them in the matrix template using a text object. Tags: .NET, FastReport, Data Source ### Tipos de soluções para geração de relatórios e documentos URL: https://www.fast-report.com/tr Summary: Fast Reports - create libraries and tools for generating reports and documents. Use the FastReport report generator to create high-quality and fast reports. Create all the documentation you need easily and efficiently with our tools. FastReport .NET Çeşitli platformlarda raporlar oluşturmak, düzenlemek ve üretmek için temel bileşen. ASP.NET Avalonia Blazor Mono .NET WASM WinForms WPF FastReport VCL Delphi, C++Builder, RAD Studio ve Lazarus için çok işlevli rapor ve belge oluşturucu. C++Builder Delphi FMX Lazarus RAD Studio FastReport Online Designer Tarayıcınızda doğrudan kullanabileceğiniz bir görsel şablon ve rapor tasarımcısı. All Browsers HTML 5 RIA WEB İş Çözümleri Hazır hizmetler, istemci-sunucu sistemleri ve hızlı veri görselleştirmeye yönelik programların yanı sıra bilgi işleme için otomatikleştirilmiş görevler. Herhangi Bir Veri Kaynağı SQL, JSON, XML, CSV, REST API’leri ve iş nesnelerine bağlanın Güçlü Tasarım Aracı Grafikler, tablolar ve alt raporlar kullanarak basit veya karmaşık raporlar oluşturun Her Yere Dışa Aktar Raporları PDF, Excel, Word, HTML, CSV ve diğer biçimlere dışa aktarın Tamamen Özelleştirilebilir Raporları komut dosyaları, ifadeler, olaylar ve özel API’lerle uyarlayın Esnek Lisanslama Ürünlerinize, kurulumunuza ve iş modelinize uygun lisanslama seçeneğini belirleyin AI-Ready Esnek veri entegrasyonu ile yapay zeka destekli raporlama iş akışları oluşturun Types of solutions for generating reports and documents FastReport .NET Sets of components that simplify and automate the process of creating reports and documents in C# for diverse technologies. Ultimate .NET WinForms WPF WEB Mono Avalonia FastScript .NET FastReport VCL Sets of VCL, FMX, and Lazarus components with full source codes for creating reports and documents in Delphi and Pascal. Ultimate VCL Optimum VCL Reporting VCL Reporting FMX Reporting Lazarus FastQueryBuilder FastScript FastGrid FastEditors WEB reporting Components for cross-platform projects to develop, build, display, print, and export reports directly in the browser. Online Designer Solutions for end-users Independent software solutions for designing, building, converting, and viewing ready-made reports on your computer. FastReport Desktop FastReport Viewer FastConverter OLAP and Business Graphics Data presentation and analytical processing tools for obtaining pivot tables with subsequent visualization based on Business Graphics. Business Graphics .NET FastCube .NET Analysis VCL Service solutions Ready-made services and client-server systems for fast data visualization and automatic execution of information processing tasks. FastReport Cloud FastReport Publisher FastReport Corporate Server News All news Reviews All reviews Articles September 21, 2026 FastReport .NET için Bir AI Aracısını Yapılandırma: Mimari, Sınırlamalar ve Rapor Taşıma Raporlarla çalışmak genellikle rutin bir işe dönüşür: XML şablonlarını (.frx) düzenlemek, veri bağlamalarını yapılandırmak ve eski formatları uyarlamak. Bu işi otomatikleştirmek için özel bir... Read September 08, 2026 FP3 Formatı ile ilgili Sıkça Sorulan Soruların Cevapları FP3 formatı, özellikle hazırlanmış bir raporu geliştirme ayrıntılarına girmeden hızlı bir şekilde açmak, görüntülemek veya dönüştürmek isteyen kullanıcılar arasında sıklıkla sorulara yol açar.... Read September 04, 2026 FastReport .NET'ten bir raporu DXF formatına nasıl aktarabilirim? DXF (Çizim Değişim Formatı), Autodesk tarafından iki boyutlu ve üç boyutlu çizimleri depolamak ve aktarmak için geliştirilmiş, grafik verilerinin değişimi için kullanılan açık bir formattır.... Read All articles Popular questions What is a report generator? Report generators are libraries or stand-alone applications that connect a report template with a data source and generate ready-made documents based on current data. They can later be exported to various formats (PDF, DOCX, HTML, JPG, etc.) or sent for printing or storage. The report generator turns the data into information (document). Why do we need report generators and OLAP analytics tools? Any business system collects and stores data in some form. Unfortunately, this type is convenient for storage but not for presentation, obtaining important information, or making a decision by a person. Our tools, solutions and libraries allow us to make data informative. These can be documents or tables - structured as needed and convenient for users for their specific tasks. What does Fast Reports Inc. do? We create report generators and other tools for programmers and business application developers. ### Toilet paper printing URL: https://www.fast-report.com/tr/blogs/printing-on-toilet-paper Summary: How to print report on toilet paper if needed with FastReport .NET. How to print report on toilet paper if needed with FastReport .NET. How to print report on toilet paper if needed with FastReport .NET. Gentlemen jokes aside! Today we are talking about toilet paper. This essential hygiene product was only recently developed in the United States in the 19th century. But to be honest, toilet paper was first mentioned in China as early as the 6th century, but this product was only available for a narrow circle of people. In preparation for the self-isolation in the midst of a pandemic, almost every inhabitant of the planet has got a myriad supply of toilet paper. It is worth remembering that first of all this is a paper. And so happened, that the paper - the carrier of information. So let's consider if we can use toilet paper to output information? You can ask a reasonable question: why? Of course for fun! For example, here is a shortlist of possible applications of printing on toilet paper: News - but they quickly become out of date, it is unlikely you will spend the toilet paper as fast; Jokes - humor never hurts, and such information is quite appropriate in this medium; Comics, manga, stories - as well as anecdotes - easy entertaining reading, just what we need; Images and pictures - are purely decorative prints. By the way, this kind is the most popular now print on toilet paper. Advertising - and this is a commercial approach. It is strange that until now there are no advertising prints on toilet paper, they are certainly more effective than billboards; Calendars and horoscopes. And these are only the options that appeared in my mind right now. You are limited only by your imagination. Let’s print on toilet paper! Printers Many inkjet and matrix printer models support roll printing. This function is not new, but the dying function on the home printer. But the laser printer is not suitable for printing. This is related to the mechanism of making news pages. A laser printer stores the entire page in memory in a line with jet or matrix printing. Therefore, we will no longer consider laser printers. Given the high roughness of toilet paper, printing on an inkjet printer will be fuzzy. The paint will fade on soft paper. Therefore, do not expect high-quality printing. Try printing the image on ordinary office paper. Even her stiff paper is not able to give a decent picture. A good matrix printer will give more clarity, simply because it was originally created for low-quality paper. The thinnest needles of the printing head carry microscopic drops of ink on paper, which are much thicker than the colors of the inkjet printer. Therefore, if you do not need color printing and you are ready to tolerate low printing speed, then the matrix printer is the best choice for your purposes. Carrier size Now it is necessary to think about the source of printing, the document itself. In fact, you will not be able to find a toilet paper template in any text or graphic editor. Width and length have to be chosen by yourself. FastReport.Net report generator allows you to create pages with reports of arbitrary width and length - according to our needs. What are the dimensions of the toilet rolls? Very different. Nevertheless, we can highlight the most popular sizes. As you remember, in the US and the UK to measure the length and width is inches, and in all other countries - centimeters. The most common sizes of roll width are 4.5 "(11cm), 4.1" (10 cm) and 3.7 "(9.4cm). The length can be completely different for different manufacturers and models. For example, rolls with an empty middle are more likely to be about 17 meters long. But there are quite large ones - 200m and even 500m. Among all the characteristics of toilet paper examined, we can draw the conclusion that the most suitable for printing is a harder paper with the minimum roughness. This kind of paper can often be seen in public toilets, placed on the large steering wheel. This is usually a single layer of grey paper from the second material. It's harder to break than soft. How to print? Now let’s move to create the document for printing. Let’s create it with the help of FastReport .NET report designer icon: In the form you need to set only the height and width: For example, the length of paper in a roll is 17 meters, and the width is 11 centimeters (670"). By default, the values are set in centimeters. Therefore, we introduce 1700cm in length and 11cm wide. The units can be changed in the designer's settings: Now, in the property inspector on the right, you need to select the object of the page and set the Property UnlimitedHeight to true. This property will not break the report into separate pages and will output all on one, as on a roll. Also, we set the PrintOnPollPaper property to true. It can't be set as true until you turn on the UnlimitedHeight property. Now it's time to decide what we will print. Report Generator can take the data not only from the database but also from the files. You can also add images. If your toilet paper is perforated to break into individual sheets, it is necessary to adjust the height of the DataBand according to the length of the resulting paper passage. In this case, the remaining bands are better to remove or take into account their height. Suppose we decided to display images. Then add on the band Picture object and set its properties Dock = Fill, so that it fills the entire area. Given that the band height 10 cm, and 1700 cm roll length, it is necessary to display the band 170 times. When the DataBand band is connected to a data source, then for each row of data appears a new instance of a band. But, as in our case there is no data source, we're just in the properties of the band shall indicate the number of times it should be repeated. To this end, the properties of the band set a property RepeatBandNTimes = 170. This is how will look like part of our report: Now you can load paper in the printer and start printing right out of the mode of viewing the report. But if you do not want to print right now, or want to share a document obtained, with colleagues working remotely, you can export the report, for example, in PDF. Tags: .NET, .NET, FastReport, FastReport, Printing, Printing ### Toolbar customization and export settings in FastReport.Web for Core URL: https://www.fast-report.com/tr/blogs/toolbar-customization-and-export-settings-in-fastreport-web-core Summary: We add colors to your application by customizing the appearance of the toolbar. We add colors to your application by customizing the appearance of the toolbar. We add colors to your application by customizing the appearance of the toolbar. Our users often need to change the appearance of the toolbar or customize the export menu, but not everyone knows how to do this. Let’s say that we already have a finished project. As an example, we can use any report from the FastReport .NET demo application. Let’s add some colors to our toolbar. We need to write a code that will be responsible for customization: ``` ToolbarSettings toolbar = new ToolbarSettings() { Color = Color.Red, DropDownMenuColor = Color.IndianRed, IconColor = IconColors.Left, Position = Positions.Left, IconTransparency = IconTransparencyEnum.Low, }; webReport.Toolbar = toolbar; ``` Now let's run our application and see the result: Let’s take a look at how customization of the toolbar works in FastReport Web for Core in more detail. All customization parameters are stored as a collection of properties. There are several options of how you can implement changes in the appearance of the toolbar, but they all come down to adding or changing parameters. Let’s consider the appearance customization from the code, where you can see a list of collections and properties. Here are some of them: Color – change the background color of the toolbar. DropDownMenuColor – set the background color of the dropdown menu. DropDownMenuTextColor – set the text color of the dropdown menu. Position – change the toolbar position in the report. Roundness – add roundness to the toolbar. ContentPosition – change the content position. IconColor – change the icon colors. IconTransparency – adjust the icons transparency. FontSettings – fine-tune text styles. Let’s assume that we want to change the color of the dropdown menu and display all kinds of export options in it. To change the appearance of the dropdown menu, you just need to write some changes in the toolbar. But to display all the exporting data options, you need to add the following piece of code: ``` ToolbarSettings toolbar = new ToolbarSettings() { Color = Color.Red, DropDownMenuColor = Color.Red, DropDownMenuTextColor = Color.White, IconColor = IconColors.White, Position = Positions.Right, FontSettings = new Font("Arial", 14, FontStyle.Bold), Exports = new ExportMenuSettings() { ExportTypes = Exports.All } }; model.WebReport.Toolbar = toolbar; ``` If we run our project, we will see that the dropdown menu has changed, and the exporting data options have significantly increased: Now we see a customized menu with export formats. But what if we need only certain formats? For example, we need PDF, XPS, and CSV only. Let’s implement it! We need to slightly change the export settings in the container: ``` Exports = new ExportMenuSettings() { ExportTypes = Exports.Pdf | Exports.Xps | Exports.Csv } ``` Let’s run our application and see the result: If only these export options are displayed, then you did everything right. So, we have described how to customize the toolbar and edit the dropdown menu with export options in FastReport Web for Core. In addition to these examples, you can use the parameters discussed in combination with the other ones. Customization of objects appearance in Blazor We also need to mention Blazor, which includes everything that a regular version does, but with more advanced functionality. We will use the project from the following article:  Reports and PDF documents in Blazor .  Let’s customize the toolbar appearance. Go to the Pages/Index.razor.cs file. Here we will customize the toolbar, and add a part of the code that is responsible for customization in Blazor: ``` var toolbar = new ToolbarSettings { FontSettings = new Font("Verdana,Arial sans-serif", 15), Color = Color.Red, DropDownMenuColor = Color.Red, DropDownMenuTextColor = Color.White, IconColor = IconColors.White, Position = Positions.Bottom, ContentPosition = ContentPositions.Center, }; ``` Let’s run our application and see the result: Imagine, that in addition to simple customization we need to add export to PS, HPGL, JSON, and PDF. Let’s add the following code to implement this: ``` Exports = new ExportMenuSettings() { ExportTypes = Exports.PS | Exports.Hpgl | Exports.Json | Exports.Pdf } ``` As a result, we will get the export settings we need. At the moment, the Index.razor and Index.razor.cs files look like this: Pages/Index.razor ``` @page "/" @page "/{ReportName}" @inject NavigationManager NavManager     @code { [Parameter] public string ReportName { get; set; }   protected override void OnParametersSet() { base.OnParametersSet();   Load(); } } ``` Pages/Index.razor/Index.razor.cs ``` using System; using System.Drawing; using System.IO; using FastReport; using FastReport.Web; using System.Data;   namespace Blazor.UserDebugApp.Pages { public partial class Index { private readonly string directory;   private const string DEFAULT_REPORT = "Simple List.frx";   public WebReport UserWebReport { get; set; }   Report Report { get; set; } DataSet DataSet { get; } ToolbarSettings Toolbar { get; }   public Index() { directory = Path.Combine( Directory.GetCurrentDirectory(), Path.Combine("..", "Demos", "Reports"));   DataSet = new DataSet(); DataSet.ReadXml(Path.Combine(directory, "nwind.xml"));   Toolbar = new ToolbarSettings { FontSettings = new Font("Verdana,Arial sans-serif", 15), Color = Color.Red, DropDownMenuColor = Color.Red, DropDownMenuTextColor = Color.White, IconColor = IconColors.White, Position = Positions.Bottom, ContentPosition = ContentPositions.Center, Exports = new ExportMenuSettings() { ExportTypes=Exports.PS|Exports.Hpgl|Exports.Json|Exports.Pdf } }; }   private void Load() { Report = Report.FromFile( Path.Combine( directory, string.IsNullOrEmpty(ReportName) ? DEFAULT_REPORT : ReportName));   Report.RegisterData(DataSet, "NorthWind");   UserWebReport = new WebReport(); UserWebReport.Report = Report; UserWebReport.Toolbar = Toolbar; } } } ``` We have covered how to customize the objects appearance and set up the list of export options in Blazor. Now you can use the discussed options in your own applications.  Tags: .NET, Visual Studio, FastReport, Core, WebReport, C#, Customization, Toolbar, Blazor ### Top 100 Bestselling Publisher Award 2012-2013 URL: https://www.fast-report.com/tr/news/publisher-award-2013 Summary: Fast Reports - Top 100 Bestselling Publisher Award 2012-2013 Fast Reports - Top 100 Bestselling Publisher Award 2012-2013 Good news! We ranked in 63rd place in ComponentSource Top 100 publisher list, up from 78th place last year.  ### TOP100 companies on the ComponentSource Awards 2011 URL: https://www.fast-report.com/tr/news/component-source-awards-2011 Summary: Fast Reports in TOP100 companies on the ComponentSource Awards 2010-2011 Fast Reports in TOP100 companies on the ComponentSource Awards 2010-2011 This is great news for us and for all our customers. Now the FastReport becomes better known throughout the world. Thank you our dear customers - at affordable price, we compete with more expensive products. So you agree that the main thing - the quality of the product. We will continue to delight you with quality products for developing and implementing Business Intelligence. ### Transition to a new product forming system URL: https://www.fast-report.com/tr/news/fastreport-packs Summary: We are changing our approach to product line formation: the new system will allow to select only the components and platforms needed in development We are changing our approach to product line formation: the new system will allow to select only the components and platforms needed in development Starting  June 1 , Fast Reports will switch to a new product forming system. Previously, the product line was formed on the principle of "Product + platform", and compatibility with platforms was evolutionarily added to the entire tool. Now a software product will represent a more specific set of components, providing a wider range of choices for the specific needs of developers. We have divided products into a set of components and put them together in such a way that you no longer have to pay for unnecessary or unused functionality. This makes our software solutions more flexible. Now you can purchase not the entire report generator, for example FastReport .NET, but choose the set of its components that you need. We kept the possibility to choose the license by the number of developers, and also left the option to purchase a separate version with source code or web components. Ultimate edition will also be available, which contains maximum components and additional tools for working with reports. The changes will take effect on June 1, 2024. You can read about the package components and prices here: Delphi direction .NET direction ### Try Beta-version of FastReport VCL 5 URL: https://www.fast-report.com/tr/news/beta-fastreport-vcl Summary: Try Beta-version of FastReport VCL 5 Try Beta-version of FastReport VCL 5 Trial version and install packages of FastReport VCL 5 for Delphi 7'XE5 and C++ Builder 2005-XE5 published. You can download and try it. If you are our customer of FastReport VCL 4 you can get discounted upgrade to FastReport VCL 5 beta (and than free upgrade to release) from your customer panel. ### Turn database data into a document in Delphi / Lazarus / C++ Builder URL: https://www.fast-report.com/tr/blogs/turning-database-into-documents Summary: How to use the data more efficiently by turning it into an understandable and structurized document. How to use the data more efficiently by turning it into an understandable and structurized document. How to use the data more efficiently by turning it into an understandable and structurized document. How to make a mush of data into an informative report? Oracle DB, MySQL, Microsoft SQL Server, PostgreSQL, FireBird are probably the most popular, but by no means all, of the many DBMSs in which data can be created, populated, modified and managed. Often they are filled with this very data for quite a long time (e.g. in timekeeping systems, goods-orders, and the question "how to get information out of them?" (readable, encompassable by sight and human mind, for further analysis) is put off for later. Let's consider what to do "then" - when we have a "full database" and we (or the company's management) have wondered "what's actually happening? Let's make effective use of the data we collect in the process, derive information from that data and make decisions based on that information!". Basically, this is the definition of Business Intelligence (BI) in plain language. There are many possibilities to create them (reports), but here we will look at FastReport VCL. There's a designer for generating templates, a preview and many other features to perform different levels of tasks - we've looked at them in other articles, but we still haven't looked at all of them. FastReport can work with several data sources (databases) at the same time, or retrieve them from so-called user sources (not databases) - arrays or regular files. How to get information from DB in Delphi? In order to connect the data source, a connector (TfrxDBDataSet) must be applied from the component palette. This is the link between the data and FastReport. Now I will tell you briefly about the role of the components: TfrxDBDataSet is an element used to work with data source, it is also compatible with TDataSet, but TfrxIBODataSet is used for IB Objects, also TfrxUserDataSet is used for other resources - arrays, files, etc. First of all, using the DataSet property, connect to the query or table itself, well, or DataSource (it connects to the TDataSource component). For the data to already be in the report, you will need to specify which of them will go into our report! This is also easy to do. Select in FastReport VCL designer in menu Report -> Data. Select necessary elements and click “OK”!  Connect this data source to the band. Select DataSet (table) in its properties. Now drag and drop table/request fields to the appropriate bands. After single dragging have peculiarity of automatic linking on band - fields of base. If you need to view the generated report, you can use the preview! Don't forget that you can add almost anything, be it QR codes, maps  and other add-ons, which are enough in FastReport VCL. Preview: In the top left corner select “File” . A list of settings appears immediately. In it, select "Preview". That's it! After this action, you will see what the finished report will look like. If you are satisfied, you can save to different formats and export to cloud storage or PC memory, as well as print. Select "Save" and the desired format. The selected one will be sent to the specified location for saving/export! The following steps are required to generate a report from the code: - clear the report. - add data source. - add “Data” page - add report page. - add bands on the page. - set band properties and connect them to the data. - add objects on every band. - set object properties and connect them to the data. Save the template and press “Preview”!  The report is ready! We can also save it in XML, PDF, even CSV or DBF for further analysis! I understand that such an abundance of screenshots can make one get depressed. But in writing this article making all these screenshots was the longest and most time consuming task. Preparing the report itself took about 5 minutes. And if it is quicker and without screenshots? Create a report from our database from Delphi / Lazarus - code! Consider creating a simple "list" type report. Assume we have the components frxReport1: TfrxReport and frxDBDataSet1: TfrxDBDataSet (the latter is connected to data from DBDEMOS, table Customer.db). Our report will contain one page with report title and master data banks. The report title band will have an object with the text "Hello FastReport!" and the master data will have an object with a reference to the field "CustNo". Turn database data into a document in Delphi / Lazarus / C++ Builder ``` var DataPage: TfrxDataPage; Page: TfrxReportPage; Band: TfrxBand; DataBand: TfrxMasterData; Memo: TfrxMemoView;   { Clear the report } frxReport1.Clear;   { add data source to the available list for the report } frxReport1.DataSets.Add(frxDBDataSet1);   { add “data” page } DataPage := TfrxDataPage.Create(frxReport1);   { add page } Page := TfrxReportPage.Create(frxReport1); { create unique name } Page.CreateUniqueName; { set page properties by default } Page.SetDefaults; { change page orientation } Page.Orientation := poLandscape;   { add report title } Band := TfrxReportTitle.Create(Page); Band.CreateUniqueName; { it’e enough for a band to set coordinate Top and hight } { both coordinates are in pixels } Band.Top := 0; Band.Height := 20;   { add object on report title } Memo := TfrxMemoView.Create(Band); Memo.CreateUniqueName; Memo.Text := 'Hello FastReport!'; Memo.Height := 20; { this object will be aligned with the band width } Memo.Align := baWidth;   { add master data } DataBand := TfrxMasterData.Create(Page); DataBand.CreateUniqueName; DataBand.DataSet := frxDBDataSet1; { coordinate Top shouldn’t cross the previous band! } DataBand.Top := 100; DataBand.Height := 20;   { add object on master data } Memo := TfrxMemoView.Create(DataBand); Memo.CreateUniqueName; { connect to data } Memo.DataSet := frxDBDataSet1; Memo.DataField := 'CustNo'; Memo.SetBounds(0, 0, 100, 20); { align text on the right side of the object } Memo.HAlign := haRight;   { show the report } frxReport1.ShowReport; ```  So - we have learned how to turn invisible but collected data into reports - documents. You can now publish them or pass them on to analysts! Tags: VCL, Lazarus, FastReport, Data Source, SQL, Firebird, Delphi ### Ultimate .NET URL: https://www.fast-report.com/tr/products/ultimate-net Summary: Um conjunto de ferramentas para criar infraestrutura de relatórios para aplicativos de negócios.NET e desenvolvimento multiplataforma. Um conjunto de ferramentas para criar infraestrutura de relatórios para aplicativos de negócios.NET e desenvolvimento multiplataforma. .NET iş uygulamaları için raporlama altyapısı oluşturmaya yönelik bir araç seti Rapor tasarımı ve veri analizi için ek araçlar içeren, raporlama altyapısı oluşturmaya yönelik en kapsamlı paket Ultimate .NET A set of tools for creating reporting infrastructure for .NET business applications and cross-platform development. Buy Try for free Documentation Neredeyse her şeyi: Faturalar, finansal raporlar, renk profili desteğine sahip ürün katalogları, restoran menüleri, satış detayları, elektronik formlara sahip anketler, uçak biletleri, faturalar (su, elektrik vb.) ve çok daha fazlası. Görsel olarak anlaşılır hale getirilmesi gereken verilerinizvarsa FastReport sizin için mükemmel bir çözümdür. Projeler içine gömülebilirlik Gerekli paketi NuGet deposundan yükleyebilir veya paketi web sitemizden bilgisayarınıza indirerek ilgili kütüphaneleri projeye dahil edebilirsiniz. Herhangi bir ek modül veya özel eklenti gerektirmez. Yüksek performans Bileşenlerimiz, büyük veri hacimleriyle gerçekten kararlı bir şekilde çalışabilmek için birçok test aşamasından geçmiştir. Çok sayfalı raporunuz anında işlenecektir. Geliştirme süreci üzerinde tam kontrol Bu araç seti, kaynak koduyla birlikte sunulmaktadır. Kodu kendi ihtiyaçlarına göre uyarlamak isteyen şirketler için en üst düzeyde kolaylık sağlar. Rapora ve veri yapısına hızlı erişim Rapor ağacından ve özellikler ağacından; rapor yapısını, parametreleri ve filtreleri, ayrıca veri kaynakları ile genel stilleri düzenleyebilirsiniz. Uyumluluk ve entegrasyon Ultimate .NET, C# üzerinde FastReport ekosisteminin oluşturulmasına olanak tanır. Ultimate paketi kapsamındaki tüm ürünlerde oluşturulan raporlar birbiriyle tamamen uyumludur. Diğer çözümlerden sorunsuz geçiş Rapor oluşturucumuz; List&Label, DevExpress, Microsoft Reporting Services (RDL, RDLC), Crystal Reports, StimulSoft ve Jasper Library biçimlerindeki raporlarınızı anında FastReport formatına dönüştürür. Cross-platform development Report in the browser .NET Core demo Online Designer demo Blazor WASM demo Blazor Server demo FastReport .NET için Bir AI Aracısını Yapılandırma: Mimari, Sınırlamalar ve Rapor Taşıma Raporlarla çalışmak genellikle rutin bir işe dönüşür: XML şablonlarını (.frx) düzenlemek, veri bağlamalarını yapılandırmak ve eski formatları uyarlamak. Bu işi otomatikleştirmek için özel bir yapay zeka ajanı oluşturuldu. Bu ajan, FastReport .NET mimarisini anlar ve kurumsal geliştirme standartlarını sıkı bir şekilde uygular. FastReport .NET için yapay zeka özelliği: Crystal Reports ve StimulSoft’tan raporların otomatik olarak taşınması, .NET 8/9 için yeniden düzenleme, şablon oluşturma ve veri sızıntılarına karşı koruma. FastReport .NET'ten bir raporu DXF formatına nasıl aktarabilirim? DXF (Çizim Değişim Formatı), Autodesk tarafından iki boyutlu ve üç boyutlu çizimleri depolamak ve aktarmak için geliştirilmiş, grafik verilerini paylaşmak için kullanılan açık bir formattır. Çeşitli CAD sistemleri tarafından geniş çapta desteklendiği için DXF, uygulamalar arasında mühendislik ve teknik belgeleri paylaşmak için en yaygın formatlardan biri haline gelmiştir. Bu makalede, bir raporu DXF formatına aktarma yöntemlerini inceleyecek ve ayrıca dosya bir CAD uygulamasında açıldıktan sonra elde edilen çıktının nasıl göründüğünü göreceğiz. Bu makalede, bir raporu DXF formatına aktarma yöntemlerini inceleyeceğiz ve ayrıca dosya bir CAD uygulamasında açıldıktan sonra elde edilen çıktının nasıl göründüğünü göreceğiz. FastReport .NET'ten bir raporu PostScript formatına nasıl aktarabilirim? FastReport .NET, raporları PDF, Excel, Word ve diğerleri gibi birçok popüler formata rapor aktarmayı destekler. Ancak, profesyonel baskı, çizim yazıcıları ve özel baskı ekipmanları genellikle PostScript (.ps) formatını gerektirir. Bu makalede, pratik bir örnek kullanarak parametre yapılandırmasını ve programatik uygulamayı inceleyerek, bir FastReport .NET raporunun PostScript formatına nasıl aktarılacağını ele alacağız. Bu makalede, pratik bir örnek kullanarak parametre yapılandırmasını ve programatik uygulamayı inceleyerek, bir FastReport .NET raporunun PostScript formatına nasıl aktarılacağını ele alacağız. Any other questions? Contact the manager ### Ultimate VCL URL: https://www.fast-report.com/tr/products/ultimate-vcl Summary: Um conjunto de ferramentas para criar infraestrutura de relatórios para aplicativos de negócios Delphi e desenvolvimento multiplataforma Um conjunto de ferramentas para criar infraestrutura de relatórios para aplicativos de negócios Delphi e desenvolvimento multiplataforma Delphi'de rapor oluşturma ve çapraz platform geliştirme için araç seti Verilerin "anında" analizi için ek araçlar içeren ve bir raporlama ekosistemi oluşturan kapsamlı bir paket. Ultimate VCL A set of tools for creating reporting infrastructure for Delphi business applications and cross-platform development Buy Try for free Documentation İletim Protokolleri Müşterilerinize hızlı ve pratik bir şekilde ulaştırmak amacıyla, oluşturulmuş raporları yalnızca birkaç tıklamayla Google Drive, Nextcloud, Box ve Dropbox gibi bulut depolama servislerine kaydedin. Rapor ve veri yapısına hızlı erişim Rapor ağacı ve özellikler panelini kullanarak rapor yapısını, parametreleri, filtreleri ve global stillerle tanımlanmış veri kaynaklarını kolayca düzenleyebilirsiniz. İstemci-sunucu bileşenleri İstemciyi doğrudan veritabanı sunucusuna bağlamaya gerek kalmadan, standart FastReport VCL bileşenlerini kullanarak raporları doğrudan WEB üzerinde oluşturun. Esnek ve açık mimari FastReport'un işlevselliği sizin için yeterli değilse, kendi nesnelerinizi (dışa aktarma filtreleri, veritabanları) oluşturup raporlarınıza bağlayarak onu geliştirebilirsiniz. Kaynak kodu Bu bileşen seti, FastReport kaynak kodlarını içerir. Kodu kendi ihtiyaçlarına göre uyarlamak isteyen şirketler için maksimum kolaylık sağlar. Faydalı eklentiler ltimate; çok boyutlu analiz sistemleri olan FastCube VCL ve FMX'in yanı sıra raporları tüm olası formatlara aktarmak için FastConverter .FP3 eklentisini içerir. Client-Server components Cross-platform developing Any other questions? Contact the manager ### Update for FastReport .NET 2026.1 version URL: https://www.fast-report.com/tr/news/release-fastreport-net-2026.1 Summary: A new version of FastReport .NET 2026.1 has been released with several updates: a unified demo center for .NET products, a report designer with built-in plugins for databases. A new version of FastReport .NET 2026.1 has been released with several updates: a unified demo center for .NET products, a report designer with built-in plugins for databases. A new version of FastReport .NET 2026.1 has been released with several significant updates: a unified demo center for .NET products with demonstration applications, a report designer with built-in plugins for databases. A new Ribbon UI interface and RibbonDesignerControl have been added, and exports have been improved (the ability to export formulas to Excel and configure image quality when exporting to Word). Changes have also been made to our WebReport. The toolbar design has been improved, cache clearing has been added when the Circuit is completed in Blazor Server, and additional settings have been added for WebReport created through the Online Designer . WEB demo applications for ASP.NET, ASP.NET Core, Blazor Server, and Blazor WASM have been updated, and much more. New Features Unified Demo Center for the .NET Lineup We have a rich lineup of .NET products. Each one comes with at least one demo application. In some cases, there can be up to a dozen. We’ve developed a demo center—an application that brings together all our demonstration examples. Now, after installing it, you can explore and try out all of our products. In the demo center, you can select the application you need. It will launch either as a program or open in your browser for an online demonstration. Report Designer Build with Connection Plugins The report designer allows you to use connections to various databases as data sources for reports. Some data sources are available by default. However, many of them are implemented as plugins for technical reasons. The advantage of plugins is that you can install only the ones you need. But there is also a downside: they need to be downloaded, compiled, and added to the designer. Difficulties can arise at this stage. To avoid installing plugins yourself, we’ve included a build of the designer with all available plugins in our application. Learn more about the designer with plugins in the article.  Read the article New Ribbon UI and RibbonDesignerControl A modern interface for report designers based on Ribbon UI is a significant upgrade, improving the user experience. It features high interactivity and an intuitive structure, optimizing report creation and editing. Previously, Ribbon support already existed, but the old interface had its drawbacks. It can still be enabled in the designer settings, as before.  A restart of the designer is required for the changes to take effect. In addition, a new control has been added —  RibbonDesignerControl . It allows you to use Ribbon UI in your own applications. Previously, this was not possible, as only  StandardDesignerControl  was available. Excel Report Export with Formula Support Now, when saving reports to Excel, it’s possible to enable the “Export Formulas” option. This means that text elements, table cells, and matrices with valid Excel formulas will be saved as formulas. When you open such a file in Excel, all the formulas will function correctly. For example, an object containing the text: =A1+B1 Will be converted to a cell with the corresponding formula. If the formula is incorrect from Excel’s perspective, the object will be saved as plain text. Find more detailed information about the limitations and features of exporting with formulas in the article.  Read the article Image Quality Settings for Word Export You can now configure the image quality when exporting a report to MS Word. A new “Images” tab has appeared in the export settings. There, you can choose to save with the original resolution, for printing, enable compression, or select one of four qualities: standard, low, medium, or high. For more detailed information, read the article. Read the article Improved Paragraph-Based Export in OpenOffice Writer The paragraph-based export mode in OpenOffice Writer has undergone significant changes. The process is now faster, the document complies with modern standards, and takes up less space. Numerous errors have been fixed, including issues with styles. The logic for generating pages has also been updated. Changes in WebReport New Toolbar Design in .NET Framework WebReport A new toolbar design has appeared in .NET Framework WebReport, which now matches the other versions of WebReport. To use the updated interface, use the following property: ``` WebReport.UseNewInterface = true; ``` Before: After: WebReport Cleanup on Circuit Completion in Blazor Server In Blazor Server, the ability to clear WebReport from the cache when a user session (Circuit) ends has been added. A Circuit is a user session based on SignalR (WebSocket or long polling). Now, when a Circuit closes (for example, when a tab is closed or a report is switched), the associated WebReport is automatically removed from the cache, which reduces memory consumption. The option is enabled as follows: ``` services.AddFastReport(options => { options.CacheOptions.UseCircuitScope = true; }); ``` The new UseCircuitScope option works as an add-on to the existing cache settings and does not change their logic. UseCircuitScope can only speed up the removal of the report from the cache, but never extends its lifetime beyond the specified rules. Configuring a New WebReport Created via Online Designer In the Online Designer, it is now possible to create a new WebReport directly from the interface. However, by default, the report will be empty: without connected data and without configured restrictions. To solve this problem, the following options have been added: ``` services.AddFastReport(options => { options.Designer.OnWebReportCreated = (webReport, serviceProvider) => { // WebReport configuration example webReport.EmbedPictures = true; webReport.Report.RegisterData(...); }; // or an asynchronous version of the method options.Designer.OnWebReportCreatedAsync = (webReport, serviceProvider, cancellationToken) => { webReport.EmbedPictures = true; webReport.Report.RegisterData(...); return Task.CompletedTask; }; }); ``` Using one of these options, you can further configure the WebReport (or the Report itself) using any available parameters. The changes will be immediately applied to the report in the Online Designer. Updated WEB Demos We have updated the WEB demo applications for ASP.NET, ASP.NET Core, Blazor Server, and Blazor WASM. The updates include a unified design and new reports. Ability to Disable Borders on WebReport Pages It is now possible to disable the shadows that separate pages in WebReport. To do this, use the following code: ``` WebReport.PageBorderVisible = false; ``` Full list of changes [Engine] + added the ability to choose encoding when connecting to an XML database; + added support for asynchronous requests in database connectors; + fixed an error with calculating the sizes of Polygon and Polyline objects; * supplemented the description of the IsNull function; * changed behavior in the methods for setting the values of the RFIDLabel.UseAdjustForEPC and RFIDLabel.RewriteEPCbank properties; - fixed an assembly loading error when compiling a report script; - fixed an error with the clipping area in SVG; - fixed a text display error in SVG if absolute character positioning is specified; - fixed an error with resetting the parameter value when setting it using the SetParameterValue() method; - fixed an error where table rows and columns with the Printable property disabled were printed; - fixed an XXE vulnerability in the SVG object; [Designer] + added support for horizontal scrolling gesture in designer and report preview windows; + added Ctrl key support for selecting multiple objects in the designer (previously the Shift key was used); + added a build of the designer with database connection plugins; + added display of the number of bytes in the RFID editor; + added a setting to display extended information about the position of an object in the designer; + added an alternative grid (Alt + mouse) in the designer; + added scaling of objects relative to their own center (Shift + corner markers); + added RibbonDesignerControl and new Ribbon UI; + added transfer of fields by dragging and double-clicking in the standard report wizard; + added the PaperSizeEqual(...) method for comparing the sizes of the paper used; + added support for change notifications in the Collection Editor; * changed the OpenLink method in AboutForm; * changed the sequence of calling the CheckDirectories method; - fixed the visibility error of the StartReport and FinishReport events; - fixed an error with an empty database name when connecting to MongoDB; - fixed an error with line spacing when exporting to Word; - fixed an error with resizing small objects; - fixed an error with displaying the position and size of an object in the designer; - fixed an error with returning the result of an empty parameter expression; - fixed an error with missing icons in the code editor; - fixed an error in the code editor when using snippets; - fixed an error with the line offset when resizing non-diagonal lines in the designer; - fixed errors in the SVG object editor; - fixed an error in the MDI mode of the report designer; - fixed an error where Scale, Pointer, and Border were drawn twice for SimpleGauge; - fixed the incorrect display of some windows in High DPI mode (target net60-windows); - fixed drag and drop in Avalonia and WPF designers; [Preview] - fixed errors when selecting the paper type; - fixed the behavior of the “Properties” button in the print window; - fixed an error in the print dialog; [Exports] + added XPSExport.PrintOptimized property; + added exporting the digital signature object name when exporting to PDF; + added changing the text color and filling the text box in ZPL; + added the ability to validate Excel formulas for MS Excel export; + increased the export speed of a table with an opaque background; * corrected the brightness of the watermark when exporting to MS Word; - fixed the export of semi-transparent images to PDF; - fixed an error with incorrect closing of the “div” tag during tabular export to HTML; - fixed the export of different top and bottom headers on separate pages in all export options to Word (tabular, layered, paragraphs); - fixed an error with the Cambria font in PDF export; - fixed errors causing slow export of interactive forms to PDF; - fixed an error with missing characters when exporting to PDF; - fixed an issue with missing Padding when exporting to Word using TextRenderType = HtmlParagraph; - fixed the export of transparent fill of shapes in Word; - fixed incorrect navigation to a bookmark in a Word document after export; - fixed text positioning when exporting to HTML with the HrAlgin.botom property enabled; - fixed an error when exporting to PDF with some SVG files; - fixed the export of LineObject to HTML; - fixed an error with the space width when exporting to PDF; - fixed the appearance of a border around the image in a table after exporting to Word; - fixed incorrect indents when using the top/bottom header option in Word export; - fixed an error when opening a file after exporting to Word using headers; - fixed an error with double borders of an object in layered HTML export; - fixed the export of RichObject to ODT format in paragraph mode; - fixed the formation of text with the justification property when exporting to Word; - fixed text styles and pagination during ODT export in paragraph mode; - fixed an error when exporting to Word in paragraphs with an incorrect left indent of the object; - fixed a problem with opening some files when exporting to Excel; - fixed an error with field widths when exporting to Word; - fixed an error importing DOCX documents; [Common] + added a field of properties of the start/end character in Codabar; * updated MySqlConnector dependency to version 2.4.0; - fixed database binding for a chart with a JSON data source; - fixed an error when changing the printer, the paper format was reset; - fixed an error displaying extra coordinates when exporting to ZPL; [Demos] - fixed the “Deutsche Leitcode” barcode type in demo reports; [Extras] + added support for the Apache Ignite plugin for other platforms; - fixed an error when importing docx files. ### Update of .NET-based products to ver. 2023.2 URL: https://www.fast-report.com/tr/news/fastreport-net-2023.2 Summary: Support for Blazor Web Assembly, new icons for the Ribbon interface, changes to the report validator and WebReport in update 2023.2. Support for Blazor Web Assembly, new icons for the Ribbon interface, changes to the report validator and WebReport in update 2023.2. Meet new opportunities for your projects! Added support for Blazor Web Assembly, new icons for the Ribbon interface, the ability to open a page of another report inside the current one, changes to the report validator and WebReport, and much more. Changes are available for the following products: - FastReport .NET, - FastReport Mono, - FastReport Desktop, - FastReport for DBA, - FastCube .NET. New opportunities Blazor WebAssembly support Added FastReport.Blazor.Wasm package with Blazor WebAssembly support for owners of FastReport .NET Enterprise and higher editions. Now you can use Razor components to display a report in your WebAssembly application. Attention! Blazor WebAssembly support is currently in beta. ``` ``` Read more in this article. Ability to open another report page The designer now allows you to open and add pages and dialog forms of another report to the developing report. To do this, go to the "File" menu and select "Open Page...". Next, the standard file selection dialog box will open where you can select a report. After that a window will appear with a list of pages and a preview of the selected page. Here you can select one or more pages to be added to the current report. The names of pages and all objects contained in them, will be changed to unique, if the report already has them. This is necessary to avoid errors, as identical names are not allowed. Read more in this article. New icons for the Ribbon interface New Visual Studio-style icons have been added to the Ribbon interface in the designer. You can select them in the user interface options. Will need to restart the designer for the changes to take effect.  Filter in the properties window A new button has been added to the properties window that allows you to enable the display of object-specific properties. For example, for a text object, this mode displays the Text, Font properties. Common object properties such as Top, Left, Height and Width are not displayed. Report validator changes The report validator now doesn't run in the background, but runs with a separate "Validate Report" button in the "Report" menu. In addition, the validator window has been removed, and its messages are displayed in the window "Messages". Ability to hide connection string Added a new property Config.ConnectionStringVisible, which gives the ability to hide the connection string in the designer. Can be used to differentiate permissions between the application developer and the report user. When set to false, the user will not be able to see and edit connection strings in the designer. WebReport changes Added support for MemoryCache. By default, at the moment, the current WebReportCache is used. You can enable MemoryCache when registering FastReport services: ``` services.AddFastReport(options => { options.CacheOptions.UseLegacyWebReportCache = false; }); ``` Unlike the built-in cache in WebReport, MemoryCache unloads WebReport instances more aggressively after a certain time CacheOptions.CacheDuration of WebReport instance inactivity, which can help in cases where the old cache for some reason does not clear memory. Added the ability to fix the toolbar on the screen. Now you can configure the toolbar to always stay in place, even when scrolling through the page. This is convenient when working with large reports - the toolbar will always be visible. To pin the toolbar on the screen, you need to set the following property: ``` webReport.Toolbar.Sticky = true; ``` Now the toolbar will always be in view. Also, the ability to customize the export settings window has been added. Now it can be made fixed on the screen and displayed in the foreground. To do this, you need to set the following property: ``` webReport.Toolbar.Exports.PinnedSettingsPosition = true; ``` Validation for entering a range of pages has been added to the export settings window. Now, in case of incorrect input, the field will look like this. FastReport.Core.Skia improvements Improved the performance of the FastReport.Core.Skia package. Export errors have been fixed, examples are listed below. Fixed the rendering of objects with CanShrink = true: Fixed the background rendering of objects with transparent backgrounds: Added a standard font that depends on the operating system. Now, if the font from the report is not detected in the system, the export will not produce an error, but will render the report with the standard font. For other fixes, please refer to the full list of changes. Updated design of FastReport Cloud file manager Updated the design of the file manager window for more convenient and intuitive use of the service. Changes have been made to the layout of interface elements and color scheme, which will improve the overall visual perception of users. Full list of changes [Engine] + added property Config.ConnectionStringVisible, which indicates whether the connection strings of data sources will be displayed in the designer; - fixed a bug with extraction of procedures in connection that cannot contain procedures; - fixed a bug where the first column of the page was always displayed in the leftmost position; - fixed a bug when GaugeObject.Value property was set equal GaugeObject.Minimum, if new value was more than GaugeObject.Maximum. Now it will be set equal GaugeObject.Maximum; [Designer] + added the ability to open report from FastReport Cloud using recent files list; + added a context menu to the page panel elements; + a context menu for creating new pages and dialog forms has been added for the panel with report pages; + added new Visual Studio style icons for the Ribbon interface; + added "Sync" button in the "Report Tree" window; + added Filter button in the Properties window; + added HiDPI icons for Ribbon-interface; + added support of DBNull and Guid types for parameters; * now the name of the attached file when exporting to mail, can be set from the code when creating the export form; * report validator now runs from "Report|Validate report" menu. "Messages" window is used to display validation messages; * changed interface of QR code editor; - fixed a bug on right clicking Data Sources menu item; - fixed a bug when checkbox "Select all" was not visible in Data wizard; - fixed a bug causing System.NullReferenceException when deleting dialog form; - fixed the absence of the Api key when re-opening the Account->Server window if it was entered in the standard server item; - fixed incorrect web address when trying to preview webview for custom server; - fixed the problem of collapsing panels and incorrect change of the language of tabs and bars when changing the localization in the Ribbon interface; - fixed issue with adding tables that were not selected in the connection wizard; - fixed a bug causing System.NullReferenceException when creating connection to stored procedure; - fixed exception when manually entering an invalid parameter type; - fixed a bug where it was impossible to set an object to a transparent color; - fixed reopening of the query wizard; [Preview] + added a message about sending a report to the mail in the status bar; [Exports] + added word wrapping in cells when exporting to Excel 2007; - fixed a bug that made MSChart text blurred after HTML export; - fixed incorrect margins when exporting the report to HTML; - fixed an error that made the transparent background become white with Skia; - fixed a bug with an extra empty page when exporting if there are bands with the Exportable property equal false; - fixed a bug when padding top was not taken into account when exporting to layered HTML; - fixed an error that made the text go beyond the table when the page was zoomed out in HTML export; [WebReport] + added Blazor WebAssembly support; + added support for DI in WebReport.Core/Blazor. To use, call services.AddFastReport(); + added support for Microsoft.Extensions.Caching.Memory.MemoryCache instead of the standard WebReportLegacyCache. To use, when registering a DI container, use services.AddFastReport(options => options.CacheOptions.UseLegacyWebReportCache = false); + implemented the ItemCheck event in CheckedListBox; + added an option to enable the toolbar to display regardless of the screen position in WebReport using WebReport.Toolbar.Sticky property; + added asynchronous version of method WebReport.Designer.SaveMethod - WebReport.Designer.SaveMethodAsync; + added validation of page range in WebReport export settings window; + added WebReport.Toolbar.Exports.PinnedSettingsPosition property. If enabled, the container of export settings will be fixed on the screen and displayed in the foreground; - fixed a bug when selection mode in ListBox was multiple, but it was able to select only one item; - fixed a bug of non-refreshing dialog when CheckedBox was the initiator of the event. In this case, add at least one dependent object of the CheckedBox to the DetailControl property; - fixed a bug when in .NET Framework MVC application the report with dialog form on clicking "OK" would not hide dialog form and not show loading of the report; - fixed an error that caused extra pages to appear when printing; - fixed incorrect work of report 'Interactive Report' on WebReport.Core; - fixed rare NullReferenceException in WebReportLegacyCache; [Online Designer] - fixed a bug where First Page Source, Other Page Source, Last Page Source and Duplex properties was not saved when changing ReportPage; - fixed an error that made the report preview not refresh before pressing "Refresh" button; [.NET Core] + the script compiler will now display errors depending on the selected locale set with FastReport.Utils.Res.LoadLocale() or FastReport.Utils.Config.CompilerSettings.CultureInfo; - fixed an issue where text with CanShrink = True was incorrectly rendered after export with Skia; - fixed a bug with incorrect indent width between characters with TextRenderType = HtmlTags in Skia; - fixed a bug that caused the watermark with transparency to have a gray background when exporting with Skia; - fixed an error that caused incorrect calculation of table row height; [CoreWin] - fixed error when trying to add new data connection; [Mono] + added zoom control in preview and designer windows; - fixed problem of scaling PreviewControl; [Demos] + added demo-app ASP.NET Core (Razor pages) under .NET 6.0; * updated demo applications for FastReport Core; [Extras] - fixed a situation in which the host during logout could not match the one during authorization; - fixed a bug when updating an expired session in the Account window, a browser opens and requests re-authorization. ### Update of Cloud Services to 2025.2 Version URL: https://www.fast-report.com/tr/news/release-service-2025.2 Summary: In version 2025.2 the ability to use custom fonts has been added, functionality for Tasks, data sources, and preview service has been improved, the installation wizard has been redesigned. In version 2025.2 the ability to use custom fonts has been added, functionality for Tasks, data sources, and preview service has been improved, the installation wizard has been redesigned. In version 2025.2 of FastReport Cloud and Corporate Server , the ability to use custom fonts has been added, functionality for Tasks, data sources, and preview service has been improved, the installation wizard has been redesigned, and a new edition of Corporate Server — FastReport Publisher — has been introduced. Font Service Users can now upload their own fonts in *.ttf and *.otf formats and use them for template design in the Online Designer , in the preview window, and in exports to various formats. Fonts are stored in the user's workspace. New fonts can be added or existing ones can be configured on the "Workspace Information" page or via the API (method descriptions are available at the link https://fastreport.cloud/api/swagger/ in the Fonts section). Once a font is added, it can be used within the Online Designer. In the preview window, it will appear as follows. When exporting to various formats, it will also work correctly. However, please keep in mind some details. For the font to be displayed in the generated document, you need to have that font installed on the device from which the document is being viewed or embed the font in the document itself. This functionality is supported, for example, in PDF export. Task Filtering by Task Type Added Two new parameters have been added to the method for retrieving the list of Tasks /api/tasks/v1/Tasks : taskType useProjection The taskType parameter allows the user to specify the type of Tasks to be returned. The useProjection (true/false) parameter indicates whether all information about the task will be returned or only the minimum necessary information. These parameters will help when you need to find all tasks of the specified types, for example, email tasks and FTP tasks. Ability to Search for Files Saved as a Result of Task Execution Added The models of export and prepared reports have been updated to include the fields taskId and taskMessageId . After the execution of transformers, the generated report is saved in the Reports or Exports folder, depending on the type of Task being performed.  Additionally, the taskId field of this document includes the identifier of the transformer Task (for example, the task of exporting from a template) that created the file. To find an export or report by taskId use the following methods: /api/rp/v1/Exports/File/Task/{taskId} /api/rp/v1/Reports/File/Task/{taskId} The taskMessageId field contains a unique identifier that is generated with each execution of a Task. Below are the methods used to search for documents created after the specified task execution. /api/rp/v1/Exports/File/TaskMessage/{taskMessageId} /api/rp/v1/Reports/File/TaskMessage/{taskMessageId} Additionally, running a "Task without saving" (/api/tasks/v1/Tasks/run) returns taskMessageId , which can be used to find the generated documents in Exports or Prepared Reports. Custom Query Names in Data Sources Now Unique With the release of 2025.2, when creating custom SQL queries, table names will be unique. Duplicate names entered will be automatically supplemented with characters to ensure uniqueness. This will help avoid issues when working with the Online Designer. Parameter Input in the Preview Window If you open the preview window for a template with parameters, you will see a sidebar where you can set the input for these parameters. After changing a parameter, the report will be restructured. The parameters are also saved in the URL. This means that parameters can be saved in a link and shared with a colleague. Alternatively, you can generate these parameters programmatically and display the current report. New Demo Application in Java A new demonstration application in Java has been added, which uses the REST API to work with FastReport Cloud or Corporate Server. Try out our application right now on GitHub . Saving Sort Orders in the User Panel The feature to save table sort selections on the user panel pages has been implemented. Now, when the page is reopened, the previously selected sort order will be applied, for example, by date or document size. Additional Changes for FastReport Corporate Server   Page with License Limitation Description in the Admin Panel An admin panel page has been added where you can view the current limitations of the Corporate Server. Improved Corporate Server Installation Wizard The Corporate Server installer has been significantly reworked. The design and application stability have been enhanced. FastReport Publisher A new lightweight edition of the Corporate Server — Publisher — has been introduced. It is designed for companies with a small number of users that do not require the reporting server to be run in a cluster. The Publisher is the most accessible solution for deploying a full-fledged reporting system. Additionally, the Publisher provides seamless functionality expansion whenever needed. You can find more details about the Publisher on the product page or in articles on the website. Full List of Changes [Backend] + Added task ID and task message ID to export and report;   + Added Google Fonts caching;   + Added report parameters to temporary files;   + Added a new system for fonts;   + Added task type filter for retrieval method;   + Added company name to configuration;   * Custom query names for data sources are now unique;   * More options for searching tasks added;   * Error messages in the report script are now localized;   * Demo and missing white-label headers are now different;   - Fixed subscription owner's permissions retrieval;   - Fixed file (or folder) moving to the same folder where it was located;   - Fixed issue with MongoDB connection;   - Incorrect Authorization header will now result in a 401 response instead of using an anonymous user;   [Common] + Added parameter input in static preview;   + Added change log to the product page;   + Added a link to Online Designer documentation in Corporate Server documentation;   * Documentation removed from Corporate Server loading script;   * Updated documentation for VM types in tasks;   - Fixed bug with disappearing transports on the tasks page;   [Demos] + Added new Java REST demo;   [Frontend] + Added sorting saving to local storage;   + Added links to the report store;   + Added error handling for data sources that do not support parameters;   + Added license limitation page to the admin panel;   * Tasks page changed, task controller fixed;   * You can no longer click "create task" if it is not in your subscription plan;   * SQL query step hidden when editing a data source that is incompatible with SQL;   - Added padding in the sidebar, added title to task launch buttons, changed access rights display to a column;   - Fixed context menu on document pages;   - Fixed double request when creating a folder;   - Fixed error regarding empty name parameter in notifications;   - Fixed loading indicator in static preview;   - Fixed issue with a popup window inside another popup when accepting an invitation in the Corporate Server;   [Installer] + Added Installer localization;   * New Corporate Server installer design;   [SDK] + Added TasksClient in CSharp SDK. ### Update of Cloud Services to Version 2025.1 URL: https://www.fast-report.com/tr/news/fastreport-cloud-2025.1 Summary: In version 2025.1 has significantly improved work with data sources, tasks, and report templates. We also added API methods for retrieving user rights and new demo applications In version 2025.1 has significantly improved work with data sources, tasks, and report templates. We also added API methods for retrieving user rights and new demo applications For FastReport Cloud and FastReport Corporate Server , version 2025.1 has significantly improved work with data sources, tasks, and report templates. We also added API methods for retrieving user rights and new demo applications, and, of course, fixed numerous bugs. Changes for FastReport Cloud and Corporate Server Custom SQL Tables Added to Data Sources The ability to add custom tables as SQL queries to data sources has been added. To do this, create or edit a data source on the corresponding page, click “Next,” and enter the SQL query. If the query contains parameters starting with the “@” symbol, a data source parameter will be created, allowing you to configure its data type and default value. After adding your own table and saving the data source, it will become available for use in Online Designer. Stored Procedures Creation Included in the Data Source Structure Starting from the current version, stored procedures are available for use when creating data sources for layout templates. Data Source and Task Names Have Become Unique As with files, when creating data sources and tasks, they will be automatically renamed to avoid name duplication. Template Engine for File Names Added  In the name of the template or report file, you can use the variables ${Date} and ${Time} . Then, in the final exports, the file name will contain the date or time of export (UTC) instead of these variables. For example, when exporting sales_report_${Date}.frx to PDF, the final file will be named sales_report_2024-07-08.pdf. The order of the day, month, and year depends on the localization chosen during export or the default localization.   These variables can also be specified in the output file name when creating tasks.   Report Parameters Are Now Available for Retrieval and Editing Via API The following API methods have been added: ``` - GET /api/rp/v1/Templates/File/{id} - now this method returns a list of report parameters if they are set. ``` ``` - POST /api/rp/v1/Templates/File/{id}/parameters - with this method, you can set or edit report parameters. ``` Report parameters also remain available for editing in Online Designer and when downloading report templates.   Added API Methods For Retrieving the Current User’s Permissions on Files, Groups, Tasks, and Data Sources Previously, there was only one method for retrieving user permissions, which makes the following request:   ``` /api/manage/v1/Subscriptions/{subId}/mypermissions ``` With this update, we have added 10 more requests:   ``` /api/data/v1/DataSources/{id}/mypermissions/api/rp/v1/Exports/Folder/{folderId}/mypermissions/api/rp/v1/Exports/File/{id}/mypermissions/api/manage/v1/Groups/{id}/mypermissions/api/rp/v1/Reports/Folder/{folderId}/mypermissions/api/rp/v1/Reports/File/{id}/mypermissions/api/tasks/v1/Tasks/{id}/mypermissions/api/rp/v1/Templates/Folder/{folderId}/mypermissions/api/rp/v1/Templates/File/{id}/mypermissions ``` With them, you can find out what permissions the user has and only perform corresponding actions if these permissions are available. Added Current Product Version Display  Now, at the bottom of each page in the user panel, you can see the current product version.   Case Insensitivity in Sorting   Previously, when sorting documents by name, those whose names started with an uppercase letter were shown first. Now, the sorting works independently of letter case in file names. New Demo Applications Added New console and Android applications in Kotlin and Angular have been added to GitHub. In addition, you can deploy demo applications in Java, PHP, Cpp, Haskell, JavaScript, Go, and Python in your projects. Try the demo Additional Changes for FastReport Corporate Server   Added the Ability to Download Files and Folders from The Admin Panel  To download a template, report, export, or folder in the admin panel, simply click the corresponding button on the row displaying the item.   A Graph of Active Users and Workspaces Added to The Admin Panel With this, you can evaluate user activity for each month. To view the graph, go to the ‘Audit’ page and click the ‘Show Statistics‘ button at the bottom of the page.   Added Parameters for Scheduling Tasks in The Admin Panel  On the ‘Tasks’ page of the admin panel, a ‘Details’ button has appeared, which opens a page with a detailed description of the task. Full list of changes --- [Backend] + added a log for invalid license keys;   + added tests for upload size limits;   + added custom tables to data sources;   + added a template engine for file names;   + enabled the creation of stored procedures in the data source structure;   + added a new parameter to the license key;   + added a method for retrieving the current user’s rights on files;   + added retrieval of mypermissions for groups, tasks, and data sources;   * changed sorting for backend;   * changed data source names to be unique;   * changed the maximum number of users in the Corporate Server without a license key (5);   * added parsing of template parameters from metadata;   * changed case sensitivity in sorting;   * changed task names to be unique;   - fixed file uploads with identical names;   - fixed the path for the destination folder;   - fixed report parameters;   - fixed duplication of the jti claim in the JWT token;   - fixed task execution with files in the request body;   - fixed rights checking for moving to the trash;   - fixed an error returning an incorrect ID when creating nested tasks;   - fixed a bug where the UsersPerWorkspace parameter in the configuration was not considered if there were no user limits in the license key;   - fixed a bug where an anonymous user received errors in the controllers;   - fixed a bug where the administrator received a 403 error when retrieving the data structure;   - fixed delayed task execution in the scheduler;   - fixed the incorrect creation time for data sources;   - fixed an error when opening compressed templates in Online Designer. [Common] + added an article on Webhook;   + added the ability to download folders and files to the admin panel;   + added a graph of active users and subscriptions in the admin panel;   + added documentation for custom queries in data sources;   + added current product version display;   + added documentation for export parameters;   + added a Name in the docker-compose installer;   * improved the task scheduler;   * changed the name in the docker-compose installer; it is now always the same by default;   - fixed the documentation;   [Demos] + added console and Android demos in Kotlin;   + added Angular demo. [Frontend] + added task scheduling parameters to the admin panel;   + added notifications for failed folder exports;   + added an interface for creating custom SQL queries;   + added a check for the user’s subscription limit;   + added localization for export parameters in the admin panel;   + added error texts in notifications within the admin panel;   + added a ‘Refresh’ button in the context menu on document pages;   + added localization for audit notifications;   * shortened links in the admin panel to delete the scrollbar;   * changed input for users and subscriptions on the audit page;   * changed sorting for the admin panel;   * changed notifications for deleting API keys;   * removed mutations from injection in Online Designer;   * the ‘Plus’ button on the document page will no longer appear if the current user does not have permission to create files in the folder;   * improved localization in the admin panel;   * all online libraries became local;   * displayed date and time have been converted to local time zones;   * new .fpx icon;   * connection testing on the ‘Data Sources’ page has become optional;   - fixed export and download buttons;   - fixed history on export and report information pages;   - fixed an error when creating a data source from the online designer;   - fixed the display of the user deletion button in the admin panel in corporate server mode;   - fixed a white stripe appearing after clicking on the checkbox and the disappearing title on hover;   - fixed localization of workspaces in the admin panel;   - fixed validation of the owner ID in the admin panel;   - added a default avatar for all user icons;   - fixed localization for starting a task;   - fixed an error regarding payment necessity on the expired subscription detail page;   - fixed notifications for downloading files without permissions;   - fixed the search field and the output file name field;   - fixed the ‘Select All’ button on the API keys page;   - fixed a bug with an incorrect default subscription when updating a user in the admin panel;   - fixed a bug where pages did not refresh after deletion in the admin panel. ### Update of Delphi and Lazarus Products To 2025.2 Version URL: https://www.fast-report.com/tr/news/fastreport-vcl-2025.2 Summary: With version 2025.2 appeared: setting up watermarks, updating server components, a new mechanism for dialog pages of a WEB report, an object for RFID tags, changes in the reporting engine, support for themes. With version 2025.2 appeared: setting up watermarks, updating server components, a new mechanism for dialog pages of a WEB report, an object for RFID tags, changes in the reporting engine, support for themes. Get ready for the highly anticipated update for the entire line of Delphi and Lazarus products! With version 2025.2, you’ll enjoy exciting new features, including an easy-to-use tool for configuring watermarks, an updated set of server components, a brand-new dialog page mechanism for web reports, and the innovative TfrxDeviceCommand report object for RFID tags. We've also made significant enhancements to the reporting engine, improved export and transport options, added theme support, and much more! Upgrade your product today and unlock a world of new possibilities with us! New Features in FastReport VCL User-Friendly Watermark Customization Tool   A customizable watermark feature has been added for report pages. Watermarks are often used for document protection or to indicate the type of document. We have introduced an easy-to-use tool that allows you to configure watermarks for each page of the report effortlessly. Any page in the report can have multiple watermarks, enabling individual customization for print, display, or export. Watermarks can utilize both images and text, with a wide range of customizable parameters (text rotation, style). Watermarks can be set up both in the report designer and in the preview mode. Update of Server Components   With the release of 2025.2, all available export filters from FastReport VCL are now also available in server components. Take advantage of all these formats in your web application. New Mechanism for WEB Report Dialog Pages   The completely revamped mechanism allows for the use of container objects such as PageControl and groups, as well as extending the functionality of available controls on the dialog page for web dialogs. In this update, we have expanded support for new components for dialog pages. Specifically, we have added dialog page controls that were not previously available in WEB. List of new dialog form controls: Date picker — date picker DBComboBox — drop-down list linked to a data source List Box — selection list CheckListBox — selection list (with checkboxes) MaskEdit (without mask) —Input field Password edit —input field for password PageControl —creating pages with tabs GroupControl — grouping panel Panel — panel You can now also apply a custom HTTP header for your projects. New TfrxDeviceCommand Report Object  This non-visual object is designed to send commands to devices (exports) that can process these commands. In the current version, the object contains a settings class for RFID tags. RFID tags transmit non-visual data to the ZPL export to write this data to the chip using specialized equipment. The RFID tag class has its own editor and set of properties for precise adjustment of the information being written. You can read more in our article. Read the article The TfrxPDFView report object now allows you to configure the range of pages to be output. You can set values using expressions in the TfrxPDFView.PagesRange  property. Thus, you have access to filtering the output pages for a PDF document. Changes in the Report Engine Combining Object Output Techniques New changes to the report engine allow you to combine different object output techniques, giving you the freedom to create complex reports with a variety of options. The operation of the bottom alignment mechanism (baBottom) of a growing band has been changed when one of the band's objects is split into several parts (pages). In the old implementation, an object with the baBottom property is displayed on the very first part of the data break. The new mechanism for operating such a report corrects objects with baBottom, placing them on the last part of the data (at the end of the band). Please note that this behavior of the report engine is considered correct and should be taken into account when developing reports. Support for smMaxHeight Stretching for a Static Table (AllowSplit rows only) The smMaxHeight stretching in a table works differently than in objects. The desired height is set for the entire table on the band. Then it is distributed among the rows with the AllowSplit=True property set and AutoSize=False  disabled. Rows with the MaxHeight value are also taken into account. This approach allows you to choose which rows of the table can be stretched to fill the empty space, and which cannot. New TfrxRichView Report Object Splitting Behavior The RichText object allows you to use tables, images, and other objects that cannot be split for a specific size. Such objects could sometimes create entire non-splittable blocks of content that extended beyond the page. In the current version, TfrxRichView splitting has been reworked and works selectively depending on the situation. Finding the smallest splittable part . If an object contains a part that cannot fit on a new page and is non-splittable (an object or table row is larger than the height of the entire sheet). Then the smallest "non-splittable" part is now found for such a part and is displayed as is. Splitting does not stop. If there are other parts, they will also be split and output. The main difference from the old mechanism is the search for the smallest value for the non-splittable part and the continuation of the build. Previously, all content fell into the "non-splittable" part and the separation stopped there, and some of the text could be lost. Finding the largest splittable part . If a part is encountered that cannot fit on a new page, but it is splittable, such as the same table, then a search for the largest splittable part will be performed and the output will continue. Report Designer Added Theming Support (Runtime Themes) The report designer and its components have been adapted to support themes, both system and custom. Now the report designer will always be in the same style as your application! In Rad Studio 12.3, work with monitors with high display scaling was improved. This change is aimed at improving the quality of visualization and usability of the interface in the development environment when working on monitors with high resolution and scaling settings. In this update, the dialog editor in the report designer has been redesigned. Now this is a fixed workspace, just like the report page. The position of the dialog can be changed through the object inspector. Improved Code completion in the report code editing window. For your convenience, a pop-up menu has been added for the watch list window. We also redesigned the "Designer Options" window for the best support for small screen resolutions. Exports and Transports Support for user-defined characters has been implemented in PDF and SVG exports (EUDC) . Also improved alignment of RTL text with ligatures. Added support for ZUGFeRD 2.3 with the following profiles: “MINIMUM”,” BASIC WL”, ”BASIC”, ”EN 16931”, ”EXTENDED”, ”XRECHNUNG”. An example with the inclusion of data for this format can be found in InvoiceDemo, which comes with the product. In the new version, the mechanisms for exporting to XLSX and DOCX formats have been improved. This has enhanced the quality of the generated documents and expanded their customization options. The e-mail (SMTP) transport has been improved with native support for TLS\STARTTLS and support for XOAUTH authorization. Use secure channels to send your reports. FastReport Lazarus In addition to the fundamental changes that have been included in the VCL and Lazarus versions, FastReport for Lazarus has received support for high-resolution monitors (HiDPI). FastCube VCL and FMX In the VCL version of FastCube, all TTreeView controls have been replaced with TfrTreeView. All versions received filter indication in the list of available fields. The FMX version received the ability to save Custom Filter and Custom Group, as well as a number of improvements and fixes. FastQueryBuilder Added support for high-resolution monitors (HiDPI). FastScript In this update, we have implemented Android support. This innovation works only when compiling with strings that are indexed starting from one. You can use all the power of the script engine in your mobile Android applications. Added support for classes for working with XML and JSON. You can read more about how to work with these formats using the example of loading data into a report in this article. Read the article FastReport VCL Controls For the TfrShellTreeView control, it became possible to create custom nodes and shortcuts to other nodes. You can read about how to configure TfrShellTreeView and add custom nodes in this article. Read the article Installer You can now install our products with Android support. Also, support for installing packages on the 64-bit version of the IDE Embarcadero RAD Studio 12.3 has been added. Complete List of Changes: 2025.2 version ======================== VCL.Core [Localization] - Fixed sorting in LocalizationEditor; VCL.Controls [Engine] + Added the ability to create a custom structure of root Shell Node and regular Node; - Fixed HiDPI support in smartMemo; - Fixed the behavior in which the control is not scaled when Parent is assigned when csFreeNotification is set in ComponentState; - Fixed some shortcomings in the rendering of TfrTreeView and TfrShellTreeView; [UI] - Fixed custom color rendering and disabled state for tfrTreeView; Lazarus.Controls [Engine] + Added the ability to create a custom structure of root Shell Node and regular Node; - Fixed HiDPI support in smartMemo; [UI] - Fixed custom color rendering and disabled state for tfrTreeView; - Implemented HiDPI support for Lazarus; - Fixed some shortcomings in the rendering of TfrTreeView and TfrShellTreeView; VCL.FastCube [UI] + Added filter indication to the list of available fields; + Added the ability to save Custom Filter and Custom Group; • TreeView replaced with TfrTreeView; - Fixed localization of the FastCube toolbar; FMX.FastCube [UI] + Added filter indication to the list of available fields; + Added removal of ActivePopup in TfcxSliceGrid.FullUpdate; • TreeView replaced with TfrTreeView; - Fixed localization of the FastCube toolbar; - Fixed incorrect operation of the TfcxRangesEditor form; - Fixed the problem of positioning and visibility of the "OK", "Cancel" buttons; - Fixed FastCube FMX error in the selection rules editor; - Fixed the operation of incremental search in drop-down lists; [Engine] + Added the ability to save Custom Filter and Custom Group; - Fixed an error when clicking in the Top-N filters list area after zeroing TfcxSliceGrid.Slice := nil; Lazarus.FastCube [UI] + Filtering indication added to the list of available fields; * TreeView replaced with TfrTreeView; - Localization of the FastCube toolbar fixed; VCL.FastQueryBuilder [UI] + First version of HiDPI added; Lazarus.FastQueryBuilder [UI] + First version of HiDPI added; VCL.FastScript [Engine] + Support for XML and JSON added to FastScript; * Improvement of TfsTree by replacing TTreeView with TfrTreeView; - Fixed error in TfsScript.Destroy that could lead to a crash; FMX.FastScript [Engine] +Added support for Android; - Error fixed in TfsScript.Destroy that could lead to a crash; Lazarus.FastScript [Engine] + Added support for XML and JSON to FastScript; * Improvement of TfsTree by replacing TTreeView with TfrTreeView; - Fixed error in TfsScript.Destroy that could lead to a crash; - Fixed fs_ibx package for compilation in Lazarus; VCL.FastReport [Preview] + Fixed collapsing when Application.MainFormOnTaskbar = True; [Engine] + Added the ability to configure watermarks for report pages; * Modified the RichView splitting mechanism, added minimum non-breakable part definition; - Fixed HTMLView with Page.EndlessHeight; - Fixed "Class not found" error when using the UseFileCache property with empty pages in the report; - Fixed frxDecompressStream function; - Fixed error with incorrect value in CopyName macros; - Fixed date and time export to XLSX; - Fixed splitting of the RichView component with an empty line at the end; - Fixed SVG boundaries updating; - Fixed loading order of 'hmtx' table in TTF fonts; - Fixed error where a renamed dataset did not change the default username; - Fixed error where the print dialog reset settings when moved to a secondary screen; - Fixed size of the signature for non-visual components; - Fixed HiDPI support for smartMemo; - Fixed behavior of the band with additional height; - Fixed memory access error when using external DBX connection; - Fixed error when printing a nested report with multiple columns on the page; - Fixed missing line break in CellData.Text; - Fixed Memo AutoWidth error with macros like TotalPages; - Fixed error where some table events were triggered twice; - Fixed baBottom when the object breaks across multiple pages and added support for smMaxHeight for static tables (only AllowSplit rows); - Fixed rounding height error in band breaks; - Fixed left coordinate of the subreport when moving to a new page; - Fixed AnyDAC packages in FastReport product so they automatically install on RAD Studio XE3 and older IDEs; - Fixed error when macros are updated at design time; - Fixed duplex selection mode; - Fixed baBottom and smMaxHeight behavior in the page footer; - Fix that clears the ParentForm singleton when the parent form is closed not from the report component; [Exports] + Improved export of RTL text to PDF; + Added export of external symbols; + Added support for ZUGfERD 2.3 in PDF export; - Removed compiler warning; - Fixed export of long HTMLView; - Fixed generation of PDF/A metadata; - Fixed PDF using the ZUGFeRD standard; - Fixed incorrect input focus transition via Tab in export dialogs; - Fixed numerical format in XLS export filter; - Fixed character size in SVG and PDF exports; - Removed floating anchor for the docx table, replaced with an empty line; [Client-server] + Added new dialog form controls: Date picker, DBComboBox, ListBox, CheckListBox, MaskEdit (without mask), Password edit, PageControl, GroupControl, Panel; + Added the ability to use a custom HTTP header in client-server components; * Redesigned the dialog generation engine, supporting nested controls and the ability to extend with custom controls; * Updated exports for client-server components; - Fixed an error when working with parameters and dialogs; [Designer] + Improved rendering and functionality of designer elements in VCL themes; + Added context menu for watch list windows in the report designer; * Redesigned the "Design -> Options" window for small screen resolutions; * Redesigned the dialog editor in the report designer; - Fixed error in RichEditor with older versions of msftedit.dll; - Fixed dialog scaling (TfrxDialogPage); - Fixed TfrxLabel behavior when AutoSize = True; - Fixed TfrxDesigner.DefaultFont functionality with HiDPI; - Fixed TfrxDialogPage behavior on a secondary screen; - Fixed barcode editing behavior in the report designer via the object inspector; - Fixed code completion behavior in nested procedures and functions in scripts, as well as in scripts with string concatenation expressions; - Fixed tooltip behavior in the code window; - Fixed menu style for the report designer in RAD 12.2 at design time; [Other] + Added the ability to override the search form; * Updated Romanian resources; - Fixed compilation of InvoiceDemo; - Fixed example of CustomScrollsDemo; [Report object] + Added support for single-page TIFF in TfrxPictureView; + Added object for RFID Tags (TfrxDeviceCommand); + Implemented a list of displayed pages in a PDF document (Range) in TfrxPDFView; - Fixed compatibility with HTML Viewer; - Fixed barcode rendering when ((Rotation > 0) and (WideBarRatio > 2)); - Fixed default font size for the top label of barcodes with HiDPI; - Fixed behavior of the HTMLView component when colgroup width overrides td tag width settings; - Fixed report generation with RFID; - Fixed incorrect clipping in RichView; - Fixed label for two-dimensional barcodes; - Fixed label for two-dimensional barcodes; - Fixed setting "Swiss QRCode" for QRCode barcode; FMX.FastReport [Engine] - Fixed "Class not found" error when using the UseFileCache property with empty pages in the report; - Fixed rotating text transfer when exporting to PDF; - Fixed date and time export to XLSX; [Exports] - Removed compiler warning; - Fixed WordWrap in PDF export with simple text visualization; [Designer] - Fixed group header editor; Lazarus.FastReport [Engine] + Added the ability to configure watermarks for report pages; - Fixed HTMLView with Page.EndlessHeight; - Fixed "Class not found" error when using the UseFileCache property with empty pages in the report; - Fixed frxDecompressStream function; - Fixed error with incorrect value in CopyName macros; - Fixed date and time export to XLSX; - Fixed loading order of 'hmtx' table in TTF fonts; - Fixed error where a renamed dataset did not change the default username; - Fixed error that caused the print dialog to reset settings when moved to a secondary screen; - Fixed error when creating TfrxComboEdit for Lazarus; - Fixed size of the signature for non-visual components; - Fixed HiDPI support for smartMemo; - Fixed behavior of the band with additional height; - Fixed memory leak when exporting PDF in Linux; - Fixed error when macros are updated at design time; - Fixed duplex selection mode; - Fixed baBottom and smMaxHeight behavior in the page footer; - Fix that clears the ParentForm singleton when the parent form is closed not from the report component; [Exports] + Improved export of RTL text to PDF; + Added export of external symbols; - Removed compiler warning; - Fixed export of long HTMLView; - Fixed generation of PDF/A metadata; - Fixed PDF using the ZUGFerd standard; - Fixed PDF export with HiDPI; - Fixed export dialogs with HiDPI; - Fixed image inversion in ZPL export; [Client-server] + Added new dialog form controls: Date picker, DBComboBox, ListBox, CheckListBox, MaskEdit (without mask), Password edit, PageControl, GroupControl, Panel; + Added the ability to use a custom HTTP header in client-server components; * Redesigned the dialog generation engine, supporting nested controls and the ability to extend with custom controls; * Updated exports for client-server components; - Fixed an error when working with parameters and dialogs; [Designer] - Fixed error in RichEditor with older versions of msftedit.dll; - Fixed dialog scaling (TfrxDialogPage); - Fixed TfrxLabel behavior when AutoSize = True; - Improved rendering and functionality of designer elements in VCL themes; [Other] + Added the ability to override the search form; [Report object] + Added object for RFID Tags (TfrxDeviceCommand); - Fixed behavior of the HTMLView component when the colgroup width overrides the settings for the "td" tag; - Fixed label for two-dimensional barcodes; - Fixed compatibility with HTML Viewer; - Fixed creation of composite barcodes; [Preview] - Fixed preview with HiDPI. ### Update of Delphi and Lazarus Products to Version 2025.1 URL: https://www.fast-report.com/tr/news/fastreport-vcl-2025.1 Summary: Version 2025.1 introduces a new application to demonstrate the capabilities of FastReport VCL, expands the component library, and improves the report designer and export filters. Version 2025.1 introduces a new application to demonstrate the capabilities of FastReport VCL, expands the component library, and improves the report designer and export filters. Our products are constantly evolving, with new features continuously added and the quality of the code improving. This update includes enhancements and fixes for the entire line of Delphi and Lazarus products. Version 2025.1 introduces a new application to demonstrate the capabilities of FastReport VCL, expands the component library, and improves the report designer and export filters. New App for Demonstrating FastReport VCL Capabilities We have updated our main demo application for FastReport VCL to ensure that the product not only delights you with its rich functionality but also with its appearance. Expansion of the Component Library for Delphi and Lazarus We introduce the new visual component TfrShellTreeView for developing applications in Delphi or Lazarus. This is a fully functional file system navigation component that works on Windows and Linux (Lazarus). Key Features: •    Native rendering (icons and themes from the operating system) •    Subscription to file system changes and automatic updates •    Fast rendering (utilizes a virtual tree) •    Customization and overriding options allow you to extend the component to suit your needs. Improvements in the FastReport VCL Designer The FastReport VCL designer offers extensive functionality for designing your reports. In version 2025.1, we have added the ability to customize the highlighting of expressions, which you can find in the designer settings. A search feature has been introduced in built-in editors such as Memo and SQL. Improved working with hiDPI modes in Embarcadero RAD Studio 12 and fixed issues affecting the user experience of creating templates. A new interactive editor for the "Table" object has been added. Edit the table in a familiar way, just like in Microsoft Word. FastReport VCL Reporting Engine A new feature in the reporting engine allows you to create chains of Subreports with printing on the parent (Subreport.PrintOnParent). This approach enables printing structures similar to tree-like structures and stretching elements located on the parent band. This method is based on the height of the structure printed in the Subreport. Export Filters The ability to edit the CellularText object in interactive PDF forms has been added. You can now use CellularText as an element of an interactive form. In table export filters, a new feature has been added to select the quality of objects exported as images. This setting allows you to set the scale for all images in table export filters. Fixes and quality improvements have been made to export filters: PDF, DOCX, PPTX, XLSX, SVG. Preview The ability to copy the contents of the RichView object in the preview has been added, including group selection of objects via Shift + Right Mouse Button. FastReport FMX A new export to PPTX has been added for Windows, macOS, and Linux platforms. Delphi and Lazarus Version 2025.1 also supports Embarcadero RAD Studio 12.2 (including the new Windows 64 Modern platform for C++ Builder) and Lazarus 3.6. Version 2025.1  ---------------   [Designer] + Added expression highlighting settings in the report designer; + Added basic search in editors with Memo; * Improved mouse functionality in SimpleMemo; - Improved scrolling in the Memo editor; - Fixed the issue when opening the report designer; - Fixed a potential AV error after deleting a StyleSheet element in the report designer; - Fixed name duplication when dragging from DataTree; - Fixed stretching of the object toolbar when the height is insufficient in the designer; - Fixed calling the text editor through the object inspector; - Fixed an issue with the Auto Update Fields option enabled; - Fixed navigation issues in the Report Tree of the designer; - Fixed SmartMemo (code editor) for HiDPI;   [Engine] + Added TfrShellTreeView control for shell management in VCL and Lazarus with Linux support; + Added nested handling for Subreport.PrintOnParent in the reporting engine; + Added support for the Win64x compiler during development; + Implemented native rendering of controls for VCL and Lazarus in Linux; + Added WideString type in FastScript; - Fixed compatibility with C++ Builder and JVCL; - Fixed updating DBX parameters when extracting field definitions; - Fixed an issue when using a multi-column page along with PrintOnPreviousPage and KeepTogether options; - Fixed a problem in automatically generated headers for C++ Builder; - Fixed the HTML editor; - Fixed RTL output with tags in TfrxHTMLView; - Changed data field updates to clear automatically defined fields when DataSet is modified; - Fixed incorrect rendering of SliceGrid when loading a scheme at high DPI; - Fixed icon caching during scaling for HiDPI; - Fixed an issue when changing the DBDataSet.DataSet property did not clear field definitions; - Fixed TfrxComboBoxView and TfrxListBoxView; - Fixed the field type definition for ftFixedChar; - Fixed memory leak when displaying SVG; - Fixed an issue where DataLink did not clear previous data; - Fixed the error 'Resource FCXBUTTONS not found' in FMX RS12 Builder when calling the formula editor; - Fixed the state of the old XML format flag after clearing; - Fixed initialization of the interactive parameters structure; - Fixed warning in frxGetCertificate.   [Exports] + Added the ability to edit the CellularText object in interactive PDF forms; + Added the FromName field in TfrxMailExport when using Indy SMTP; - Fixed EMF export to SVG; - Fixed font substitution in PDF export; - Fixed line break issue when exporting to .rtf format from Lazarus on Linux; - Fixed export of katakana, hiragana, and geometric symbols in PDF export; - Fixed line selection and bottom field line during DOCX export; - Fixed EMF export to PDF; - Fixed hyperlinks in RTF export; - Eliminated GDI object leaks; - Fixed customizable PDF signature; - Fixed alignment issues in TfrxMemoView and reduced sizes of images with alpha channels in PDF export; - Fixed date formatting in XLSX export; - Fixed compiler warnings; - Fixed XLS export for empty pages; - Fixed date format in XLSX export; - Fixed "Unexpected variant error" in XLS export;   [Lazarus] - Fixed ODF export when AllowHTMLTags is enabled; - Fixed RTF export when AllowHTMLTags is enabled; - Fixed TfrxDateEditControl in Linux under Lazarus; - Removed unnecessary ScrollBar rendering in the designer; - Fixed selection reset in the Linux Lazarus Rich editor; - Fixed infinite loading when using Linux Lazarus Rich;   [Other] + Added VarIsNull function; - Fixed issue with displaying the Data Highlighting dialog in FastCube; - Fixed converters for QuickReport, ReportBuilder, and Rave Reports;   [Preview] + Added the ability to copy RichView content in preview; - Fixed issues with active preview tabs when exporting all open preview tabs; - Fixed toolbar issues in HiDPI mode in version 10.4, when some toolbar buttons were disabled; - Fixed AV when calling preview in XE2; - Fixed display of double tooltips in the preview window;   [Report object] + Added property TfrxFIBDatabase.LibraryName; * Added Tab key handling in TfrxRichView editor; - Fixed serialization of TfrxPictureView.Stretched property; - Fixed barcode positioning after changing BarType when Align is set to [baCenter, baRight]; - Fixed Swiss preset in QR barcode;   [Resources] * Updated Polish resources; * Updated German resources for FastCube; - Fixed FCXBUTTONS resources for applications with run-time packages;   [FastReport FMX] - Added export to PPTX for Windows, macOS, and Linux platforms; - Fixed export dialog display in macOS; - Export dialogs have been separated from export filter modules (ability to override export dialogs with custom ones). ### Update of FastCube 2 beta URL: https://www.fast-report.com/tr/news/update-fastcube2-beta Summary: Update of FastCube 2 beta Update of FastCube 2 beta 1. Improved integration with FastReport: reports now use grid highlights and style. Fixed cell autosize options: adjust width, adjust width with restrictions and adjust height. 2. Added FireDac support. 3. Extended scripting abilities :  a. «Calc all cells» option –to build calculated measure for empty cells (which does not have records in source dataset),  b. calculate totals with script,  c. “FormulaDetail” aggregate - calculate measure values on source data (not on other measures). 4. Copy to clipboard now copies headers . ### Update of FastReport Online Designer 2025.2 URL: https://www.fast-report.com/tr/news/release-fastreport-online-designer-2025.2 Summary: We are pleased to introduce the new version of Online Designer 2025.2, which includes support for VCL reports, the ability to create new reports when working with .NET WebReport, a new bands menu. We are pleased to introduce the new version of Online Designer 2025.2, which includes support for VCL reports, the ability to create new reports when working with .NET WebReport, a new bands menu. Exciting changes in our product! We are pleased to introduce the new version of Online Designer 2025.2, which includes support for VCL reports in the .fr3 format, the addition of parameters when creating SQL queries, the ability to create new reports when working with .NET WebReport, a new bands menu, and much more. New Features [Beta] Support for .fr3 Reports   With the 2025.2 release, an experimental feature for working with .fr3 format reports has been introduced. This format is used in reports for FastReport VCL . Now, you can build a designer for WebReport VCL, which allows using Online Designer for projects based on another reporting platform without the need to adapt existing .fr3 reports.   Available: All types of horizontal bands are supported A limited set of components is available (Text object, Image, Table) Fill styles for components are supported Component borders are supported Font settings can be edited Component properties can be edited   Limitations: Vertical bands are not available Creating data sources is not available There may be differences in property structure and logic of operation. However, report preview and basic editing are already operational. In future versions, we plan to significantly expand this set of features.  To build Online Designer with support for the FastReport VCL reporting core (in .fr3 format), you can follow these instructions: 1.    Open the Designer Builder (FastReport Online Designer Builder). 2.    Go to the build page. 3.    Select “Reporting Core” from the build menu. This menu allows you to specify which core (.NET or VCL) the designer will be built for. 4.    Choose the “VCL” option. This will activate the designer’s build with support for .fr3 format reports. Components related to FastReport .NET will not be included in the build. 5.    Click the “Build” button. This will start the process of generating the build with the selected configuration. Wait for the build to complete. This may take some time depending on the options you have chosen. After the build is finished, you will receive a link to download it. Please note that this version is in beta status, and there may be limitations in functionality. Style Editor Implemented The Online Designer now features a style editor that allows for centralized management of the appearance of report components. You can now create your own styles and customize fill colors, fonts, borders, and other formatting parameters just once. Then, you can apply them to multiple elements without the need to adjust each component manually! Create a style, adjust it to your requirements, and simply select it for the desired report components. This simplifies the formatting process and ensures a consistent visual style. Ability to Create Parameters When Writing SQL Queries Added Now, when creating a custom SQL query in the data source, you can use parameters that make the queries more flexible and adaptable to various scenarios. In the SQL query creation window, there is now an option to add parameters that can then be used directly in the query text by referencing them with the @ symbol. For example: ``` SELECT * FROM Orders WHERE Category = @cateroryParam ``` Parameters specified in the interface will be automatically substituted when executing the query. This allows for the creation of more versatile reports where data can be filtered based on external conditions or values entered by the user. Ability to Create a New Report Added The Online Designer now includes the ability to create a new report when working with WebReport .NET. You can now start creating a report from scratch directly from the interface without the need to upload a file in advance. A new menu item called “File” has also been implemented, providing convenient access to the main actions related to the report. This menu allows you to: Create a new report (if supported by your server); Save the current report; Change the interface language; View information about the version and build of the designer. The new menu simplifies navigation and makes working with reports more flexible and intuitive. Improvements New Bands Menu Implemented In version 2025.2, the band panel has been redesigned with an updated interface and improved structure. The new panel was developed with a focus on responsiveness and ease of use on various devices, including tablets and mobile screens. Ability to Change the Order of Conditions in the “Text Highlighting” Window Added The “Text Highlighting” window now has the ability to change the order of conditions that govern text formatting. This is especially useful in cases where multiple rules apply to the same element, and their order affects the display outcome. This mechanism allows for precise control over the visual logic of the report and helps achieve the desired formatting in various scenarios. Ability to Use Views and Procedures in Data Sources Added The new version of the designer introduces support for views and stored procedures in the list of available data sources. Previously, when connecting to a database, the designer only displayed tables, and views were not available for selection. Now, views returned from the server are correctly displayed and can be used alongside regular tables. After creating a data source, you can use stored procedures and views just like tables. Please note that the support for views and procedures depends on the capabilities of your database and the connection settings. Ability to Disable Popup Messages Added The behavior of popup notifications in the Online Designer can now be configured through settings received from the server when the application starts. This allows for centralized control over the display of messages related to events, errors, or user actions. In the configuration, it is sufficient to specify the notifications parameter and select one of the operating modes: "default" — displays built-in notifications in the upper right corner of the interface (default setting); "html5" — uses system HTML5 notifications (if permission is granted in the browser); false — completely disables all popup notifications. Example configuration: { notifications: "html5" } — activates system notifications. { notifications: false } — completely hides all popup messages. Full List of Changes + Support for reports in .fr3 format; + Implemented the Style editor; + Added the ability to create parameters when writing SQL Query; + Added the ability to use views and procedures in data sources; + Implemented new bands menu; + Added the ability to resize the expression editor; + Added the ability to disable popup messages; + Added the ability to change the order of conditions in the “Text Highlighting” window; - Fixed an error in the advanced matrix when calculating span (colSpan, rowSpan) in cells; - Fixed the display of the “MSChart Editor” window; - Fixed the behavior of the ruler when clicked frequently; - Fixed fields in the properties panel; - Fixed the Container object; - Improved the appearance of the “Watermark” window; - Fixed an issue with saving ConnectionString; - Fixed an issue with incorrect positioning during drag and drop in the expression editing window; - Fixed the display of the “Fill” window; - Fixed an issue with incorrect restoration of position values when using Ctrl+Z; - Fixed an issue with saving format properties. ### Updated export engine in FastReport VCL URL: https://www.fast-report.com/tr/blogs/updated-export-engine-vcl Summary: Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. This means the scaling of objects does not affect the quality. Fast Report VCL pleased us with an updated export engine. This affected the export of compound objects, such as charts, maps, RichText. Earlier these objects were exported as a picture, but now a vector representation of objects and text is used. This means the scaling of objects does not affect the quality. It is better to consider this with examples. Since there was no Map object in the 5th version of FR VCL, let's look at the example of a Chart object. I will present screenshots of the export of the one and the same report in the 5th and 6th versions. Diagrams’ representation in the 5th and 6th versions differs in color filling. In the previous version, the diagram was painted with a lurid vivid colors. I agree, it contrasts, but looks "childish". In the 6th version, quiet colors are used for filling, and it looks "more mature". Let's look at exporting to a PDF report format with a chart in version 5. To show the disadvantages of using a picture to display compound objects, I zoomed in: Even with a slight zooming, the picture quality deteriorates noticeably. In addition, there is no way to select and copy the inscription. Now look at the PDF export of the same report in FR VCL 6: And even at high magnification ... The chart looks perfect. Note that on the previous screenshot, I showed the highlighted chart title. Any text in a diagram, map or RichText can now be selected and copied to the clipboard. The PDF file size for FR VCL 5 is 447KB, and for FR VCL 6 is 307KB. That is, updates have benefited not only the quality of exports, but also the size of the resulting file. Since we are considering PDF export, take a look at its settings for the 5th ...  and the 6th version: The Outline option is available. At the bottom of the form appeared drop-down list with options for saving the report: As you can see, in addition to saving to the local disk (File option), you can save the report to a remote FTP server or to one of the cloud stores. Updated export is applied for three formats: PDF, HTML5 and SVG. Tags: VCL, Export, FastReport ### Updated Export menu FastReport.Net report URL: https://www.fast-report.com/tr/blogs/updated-export-menu-net In the version of FastReport.Net 2018.3.14 appeared useful refinement that does not relate to the functionality of generator. However, it significantly improves usability report designer, or rather the report preview mode. Finishing touched menu exports. Because developers regularly delight us with new export formats, their recruit until 31. Let's take a look how it looked until recently: In such a huge list is not just quickly find export, not to mention the size of the menu that on smaller screen resolutions are simply not fit entirely. There is only one way out-group exports by destination. Here is what we have now: Very compact. Just some relief. Briefly go through the menu. Prepared report formats and Adobe Acrobat stand apart. For them there is no pair to create the drop-down list. All formats of Microsoft Office and Open Office in the same group. XML group contains export formats such as: Web group contains other markup languages used in the Web: In the Image group - export formats in image. Export Image file formats support: JPG, BMP, PNG, GIF , TIFF, Windows metafile. Export to SVG stands out because it has a lot of their own settings.  Group Database contains formats commonly used to store data: Print Group gathered all export formats that are relevant to printing. And the Other group includes other export formats for which a separate section is inappropriate: Group Cloud contains exports to external storage. Usually it is cloud services. Here you need to understand that it is not enough simply to have an account in one of cloud services, you want to create an application in the cloud-based service through which you will save the report to the store. More details can be found in the documentation of FastReport.Net. The last group contains Messengers only one export to XMPP for now, also known as the Jabber. The fact that exports in Messenger placed in a separate section, gives us hope for the addition of new export formats to the most popular instant messengers. What is the export of this? FastReport.Net loads report to the cloud FastReport Cloud. And then sends a link to the report in the messenger. In conclusion, I would like to commend the work of FatReport.Net team that she does not forget about usability. I look forward to further work in this direction. Tags: .NET, .NET, FastReport, FastReport ### Updated FAQ URL: https://www.fast-report.com/tr/news/update-faq-fastreport-vcl4 Summary: Updated FAQ Updated FAQ Added FAQ sections for  Fast Report 4 VCL  and for  Fast Report Studio . ### Updating .NET products to 2024.1 version URL: https://www.fast-report.com/tr/news/fastreport-net-2024.1 Summary: In this release, we focused on implementing the long-awaited features that greatly simplify the process of developing reports. In this release, we focused on implementing the long-awaited features that greatly simplify the process of developing reports. In this release, we focused on long-awaited features that greatly simplify developing report templates. The following are now available to you: custom line styles, changing the shape of the "Picture" object, setting up hotkeys, support for the ODBC connector, and much more. New opportunities Improved work with the Table object Working with the report designer has become easier and more convenient. There are new capabilities for working with the "Table" object. 1. Quickly add columns and rows. If you point to a row boundary to the left of the table or a column boundary at the top, a conditional display will appear showing where a new row or column will be added. There is also a button that, when clicked, will add a new row or column to the table. The table must be active (selected). Otherwise, new controls will not appear. 2. Change the height of rows and width of columns. Now, you can change the column width or row height accordingly by dragging the column or row border using the mouse. 3. Drop-down menu "Insert". When you right-click a cell in the context menu, you will see a drop-down list that allows you to insert a new column or row next to the cell. 4. Hotkeys. Copy cell text and paste text into a cell using the hotkeys Ctrl+C and Ctrl+V. Read more about the new table capabilities in the article. Merging text objects Now, there is a mechanism for merging text objects with the same text. For this purpose, a new MergeMode property has been added to the "Text" object, which allows you to configure the merge mode. The new property works very similar to the Duplicates property in Merge mode, but there are important differences: Duplicates works only with one object located in the “Data” band. For example, the Data1 band has a text object named Text1, and the Duplicates property is set to Merge. When building a report, at the first iteration of Data1, when the first record is displayed in Text1, the text "10" will be displayed. On the second iteration of Data1 and the output of the second record, the same text will be output in Text1. As a result, two instances of Text1 will be connected, and the text "10" will be displayed only once. MergeMode, unlike Duplicates, can merge instances of different text objects, and do this both vertically and horizontally. For example, when building a report, the text "10" will be displayed in Text1 and Text2, located next to and to the right. In this case, Text1's MergeMode property is equal to Horizontal. In this case, the text objects will be connected and the text "10" will be displayed once. Read more about the new property in the article at this link. Custom line styles For the LineObject, ShapeObject, PolyLineObject, and PolygonObject objects, a new property has been added—DashPattern, which allows you to create your line styles. Previously, the line style of these objects was set using the Border.LineStyle property. Only six styles were available: Solid, Dash, Dot, DashDot, DashDotDot and Double. With the new property, you can specify a collection of values that will sequentially specify the length of strokes and spaces. For example, with values 5, 4, 3, and 2, we set a pattern in which a stroke of length 5, a space of length 4, a stroke of length 3, and a space of length 2 will be displayed. Then, the values will be repeated in a circle, starting from 5. The unit of measurement here is the Border.Width. If there is at least one value in the DashPattern collection, then this new mechanism will work. And the Border.LineStyle property will be ignored. If the DashPattern collection is empty, the Border.LineStyle property mechanism will still work. Below, you can see some examples: Instructions for setting up lines are available at the following link. Change the shape of the Picture object It is now possible to change the shape of the "Picture" object. PictureObject now has a new Shape property that allows you to specify the following shapes: rectangle (default), round rectangle, ellipse, triangle, and diamond. You can find out more in the article. Setting up hotkey combinations It is now possible to customize hotkey combinations at your discretion. You can configure commands for actions such as "Open file," "Save file," "Prepare report," and much more. To do this, a new button has been added to the "Interface" tab in the designer settings. Pressing it opens a window for setting up hotkey combinations. Here is a table with actions and their assigned keyboard shortcuts. You can change the combination by double-clicking on the desired line. You can also navigate the table using the Up and Down keys, and make changes by pressing the Enter key. You can also return all combinations to their default values. You can find more information about setting up keys in this article. .NET 8 support Added  .NET 8 support  for FastReport .NET, FastReport.Core, FastReport.Core.Skia, and FastReport.WPF. This platform improves application performance and adds many new features to your projects. Refusal of support for .NET Standard 2.0 in FastReport.Web To cover more and more technologies that are constantly being added to the .NET world, we have decided to abandon the legacy .NET Standard 2.0 compatibility layer in our Web integration library FastReport.Web (WebReport Core/Skia). The minimum supported version of TargetFramework for this product will now be .NET Core 3.1 and higher (including .NET 5, 6, 7, and 8). FastReport.Core and FastReport.Core.Skia will still support .NET Standard 2.0 without changes. Added ODBC connector support for FastReport.Core Our users have been asking us for a long time to add the ability to connect to databases via the ODBC protocol for our cross-platform products. This feature was present only in FastReport .NET and FastReport WPF previously. With this update, it is also available in FastReport.Core and FastReport.Core.Skia. To use it, add the FastReport.Data.Odbc plugin to your project and register it with this code: ``` FastReport.Utils.RegisteredObjects.AddConnection(typeof(OdbcDataConnection)); ``` Changes in WebReport Email Export to WebReport Now, WebReport has a function for sending reports by email. To enable this feature, you need to configure the SMTP server parameters when registering FastReport services. Just add the code: ``` services.AddFastReport(options => options.EmailExportOptions = new FastReport.Web.EmailExportOptions { Address = "SomeAddress@example.com", EnableSSL = true, Host = "Host", MessageTemplate = "Message template here", Name = "John", Password = "password", Port = 25, Username = "Username" }); ``` After this, activate the option WebReport.Toolbar.Exports.ShowEmailExport and users will be able to send reports by email: When you click the "Send by mail" button, the user will be asked to configure the message through a convenient modal window: Printing in Blazor WebAssembly WebReport now allows you to print reports in Blazor WebAssembly. This feature is enabled by default, but if you need to disable it, just use the following code: ``` webReport.Toolbar.ShowPrint = false; ``` Your reports can now be printed directly from Blazor WebAssembly: Full list of changes --- [Engine] + added merging of text objects; + added the ability to change the shape of PictureObject; + added the ability to create custom line styles; * now working with fonts is done without blocking; - fixed text going beyond the boundaries of the TextObject when TextRenderer = HTMLParagraph; - fixed creation of fonts from PrivateFontCollection; - fixed incorrect text color in RichObject; - fixed a break between RichObject and image; - fixed a bug when the focus was lost from the DateTimePicker object if it had the DetailedControl property specified; - fixed a bug in barcodes (display on HiDPI, export to PDF); - fixed indentation in HTMLTextRenderer; - fixed incorrect RichObject breaks; [Designer] + added the “Show progress window” property to the designer settings; + added the ability to configure hotkey combinations; * updated checks for links; links with spaces are now processed correctly; - fixed the appearance of extra lines when scaling a RoundRectangle of small size; - fixed slash encoding in Barcode 93 Extended; - fixed deleting a link when merging dictionaries; - fixed a bug with the choice of date or time formatting in the Hungarian localization; [Preview] - fixed incorrect size of the page border when the page height or width is infinite; [Exports] + implemented saving of each image in a separate thread; + added missing links to event handlers in exports to Excel 2007, Word 2007, and RTF; + added a new property for scaling barcodes when exporting to ZPL; + added selection of group by which the report will be divided into sheets in Excel 2007; + added the ability to disable grouping of sheets when exporting to Excel 2007; + added the use of wrap mode for texture fill when exporting to SVG; * when exporting to cloud storage, the window automatically closes after receiving the authorization code; - corrected private font collections; - fixed error in parsing the GSUB table; - fixed incorrect export of DashDot, DashDotDot, and Double object border styles to PDF; - fixed a bug when the numbers in the Gauge were displayed blurry during HTML export; - fixed calculation of the ContentMD5 header in S3 export; - fixed incorrect positioning of text when exporting to ZPL; - fixed incorrect export of GaugeObject to PowerPoint 2007; - fixed incorrect export of RadialGauge with filling in layered export in Word 2007; - fixed incorrect export of RadialGauge with filling in non-layered HTML; - fixed display in "Clamp" transfer mode for texture fill when exporting to SVG; - fixed the change in text size when using HTML tags in Excel 2007 export; - fixed the incorrect behavior of HTML tags with tabs when exporting to Excel 2007; - fixed the problem of reducing the quality of the watermark when exporting to PDF; - fixed a bug with incorrect indents when exporting to tables in Word 2007; - fixed image positioning in CheckBox when exporting to Word 2007; [WebReport] - support for .NET Standard 2.0 has been removed in FastReport.Web; - fixed an error when exporting in the Blazor application; - fixed ignoring Margin when printing with PrintHtml in WebReport; [.NET Core] - fixed a bug when the text width was incorrectly calculated when exporting to PDF; [Demos] - fixed a bug in displaying the navigation menu after minimizing Demo New; [Extras] + added Variant conversion to CLR types in MySqlDataConnection; + added FastReport.Data.Odbc plugin; + added support for FastReport.WPF for FastReport.Data connector plugins; * changed the behavior of the message about duplicate names in a request; - fixed the automatic creation of parameters in a request. ### Updating .NET products to 2024.2 version URL: https://www.fast-report.com/tr/news/fastreport-net-2024.2 Summary: From version 2024.2 you have access to a new report generator with Avalonia UI, improvements in exports, support for HTML Plugin for Core.Skia. From version 2024.2 you have access to a new report generator with Avalonia UI, improvements in exports, support for HTML Plugin for Core.Skia. We are pleased to present you the long-awaited update for the entire FastReport .NET component line. In this release, you can expect a new report generator with Avalonia UI support, improvements in data exports, HTML Plugin support for FastReport.Core.Skia, and, of course, the discontinuation of support for .NET Standard 2.0 - 3.1 and .NET 5. New FastReport Avalonia component The FastReport .NET component lineup has introduced a new addition — FastReport Avalonia . This is a versatile library that enables report creation when developing cross-platform applications using Avalonia UI. This component allows for the development of applications with a unified user interface for macOS, Linux, and Windows. FastReport Avalonia is compatible with x64, x86, and arm64 processor architectures. It supports Avalonia UI, .NET 6 and above. FastReport Avalonia is part of the unified FastReport ecosystem in C#. Reports created in other products will work in FastReport Avalonia and vice versa. The product includes the report development core, designer, and viewer with a familiar interface. The report designer looks like this: And this is how the viewer looks like: For more information about the new component, please read the articles. New opportunities ReportPage object's PageCreate event The ReportPage has a StartPage event, which is triggered before the page is rendered. This event is called once for each template page in the report. Now, there is a new event called PageCreate, which is triggered when a page is created in the prepared report. Unlike StartPage, it is called more frequently, for each prepared page that corresponds to a template page. Both events can have their handlers assigned, allowing you to perform actions in addition to the standard ones. Read more about PageCreate in the article. Export improvements in Word 2007 Word export has undergone significant changes. Its performance has been improved, resulting in faster operation. New options have been added, such as "Keep Line Height" and "Use Headers and Footers of Word Pages". Additionally, we have fixed various bugs that had a significant impact on the functionality of the export. Export of hyperlinks and bookmarks to SVG With this update, hyperlinks and bookmarks of report objects are also exported to SVG format images. PostgreSQL functions and views When connecting to Postgres databases, you have the ability to use function and view data in your reports. To do this, use the FastReport.Data.Postgres plugin. HTML Plugin support for FastReport.Core.Skia FastReport.Core.Skia has now support for HTML Plugin. Now you can easily embed HTML content in your reports, enhancing their creation and presentation. To use this functionality, install the FastReport.Plugins.HtmlObject package using NuGet. Changes in Blazor WebAssembly Webcil support for .NET 8 Starting with .NET 8, by default, all libraries necessary for operation are packaged in the Webcil format (.wasm) instead of the usual.dll . This is a more secure and web-friendly format ( see more ). However, to compile the report script we must use these libraries. Previously, we advised our users to disable packaging in .wasm. Starting from the current version, FastReport.Blazor.Wasm can work with Webcil resources and use them to compile a report script without preliminary settings, everything happens automatically. Automatic addition of required SkiaSharp resources Previously, one of the requirements for using FastReport.Blazor.Wasm was that users had to manually add the necessary SkiaSharp and HarfBuzzSharp resources to their Blazor WebAssembly projects. The main issue was that these resources varied depending on the .NET version and the use of multithreading in WASM. Users had to manually select which libraries they needed, which caused a lot of complexity. Starting from the current version, FastReport.Blazor.Wasm can determine the resources needed depending on the environment, and apply them to your application automatically. However, if you still need to select the required resource manually, then you can disable automatic behavior by adding to your .csproj project the following code: ``` False ``` Removal of support for .NET Core 2.0, 2.1, 2.2, 3.0, 3.1, .NET 5 To cover an increasing number of technologies continually being added to the .NET world, we have decided to drop support for the outdated .NET Standard 2.0 - 3.1 and .NET 5 compatibility layers in our libraries. The minimum supported version is now .NET 6, and the minimum supported framework is .NET Framework 4.6.2. Read more about the changes in the news. Full list of changes [Engine] + added OnCreatePage event for the ReportPage object; * now, when converting RTF, insignificant spaces after tabs are discarded; - added exception handling if the contents of the RichObject are incorrect; - removed top and bottom padding when splitting TextObject between pages; - fixed vertical indents in RichObject; - fixed the display of a row following a row with a column union; - fixed an exception when preparing a report with a TableObject containing MSChartObject; - fixed loss of spaces in the RTF parser; - fixed display of the bottom border line when using GrowToBottom; - fixed support for the Portuguese language in the RTF parser; - fixed a bug when the Report.IsPrepared parameter returned an incorrect value when preparing a report asynchronously; - fixed translation of RichObject to TableObject; - fixed error when printing with different pages selected; - fixed IndexOutOfRangeException when executing Graphics.Path.AddBeziers; - fixed vulnerability with the ability to call JS code from a hyperlink; - fixed default tab setting when converting RTF; [Designer] + added interaction with FastReport Cloud in the Community edition; + added the Contains (string , string) function, which determines whether a string contains a substring; * changed the text of the warning message about duplicate parameter names in the query wizard; *replaced the error with a warning form about parameters with the same names in the SQL query; *changes in SwissQR: the processing of the "Amount" field has been changed; the "Currency" field is now a text field; added processing of data from the database in the fields of information about the Recipient, Payer and in the "Link" field; - fixed Datamatrix brush color; - fixed errors in the PictureObject editor; - fixed a bug in the format editor; - fixed a bug when resizing the dialog form; - fixed the drawing of a rotated ITF14 barcode; - fixed a bug with the operation of the "select all" keyboard shortcut; -fixed a bug in resetting the format when changing an expression; - fixed errors with the separation of source data into lines, both separator options (\r\n and \n) are now supported; - now during the QR code generation process, extra \r\n characters at the end of the line are removed; - fixed NullRreferenceException when editing the SelectCommand of the data source table; - fixed text scrolling in AdvMatrix; - fixed context menu of the RFIDLabel object; - fixed the band title in the classic band display mode; - fixed a problem when using the hh:mm time format; - fixed a bug leading to System.NullReferenceException when connecting to JSON; - fixed a bug when resizing objects while holding down the Shift key; - fixed an exception that occurred when using DontEditCode; - fixed incorrect behavior of lines when changing the Height property for a horizontal line or the Width property for a vertical line if the Diagonal property is set to False; [Preview] - fixed a bug with the search dialog in the preview; - fixed rendering of report objects outside the page; - fixed incorrect display of superscript or subscript text for RichObject if such text is at the beginning of the line; - fixed display of vertical paddings in preview when using the LineHeight property; [Exports] + added the option "Use Headers and Footers of Word Pages" when exporting Word; + increased speed of export to docx; + added the "Keep Line Height" option to export to Word 2007; + added export of hyperlinks and bookmarks to SVG; - fixed error in exporting a rotated svg image to pdf; - fixed a bug when images with a transparent background were incorrectly exported to PDF of the PdfA_1a standard in FastReport.Skia; - fixed font reset in an empty cell after exporting a report to Word; - fixed a bug with incorrect export to a JSON file; - fixed a problem with exporting to Word 2007 when using a watermark and the "Page Title" band with a system variable; - fixed a bug in svg export (hangs if text contains incorrect cr/lf sequences); - fixed incorrect calculation of row height in a table when exporting to Excel; - fixed error in exporting vector graphics to PDF; - fixed error in SVG export (table with merged cells); - fixed opening of exported reports in Word 2007; - fixed incorrect black background when exporting RichObject with image to layered HTML-export; - fixed the value of the paddingNonSeparatePages variable in ImageExport (OpenSource) to eliminate unnecessary padding; [WebReport] + added support for the Webcil format in FastReport.Blazor.Wasm; + added dialog form title to WebReport; + added a detailed description of the report compilation error in the WebReport preview; * the logic of standard images in WebReport has been reworked. Now images are loaded directly into the report, rather than being loaded by a large number of requests from the server; - fixed a problem with editing tables in a document when exporting a report to Word 2007 via WebReport; [Extras] + added support of FastReport.Plugins.HtmlObject for FastReport.Core.Skia + added support for views and functions in the PostgreSQL connector (Extras/Core/FastReport.Data/FastReport.Data.Postgres); + added a new filter for selecting file extensions when connecting to SQLite, combining .db and .db3, with the first filter selected by default; - fixed import of plugins for FastReport .NET with TargetFramework net6.0 and higher; - fixed the issue of object alignment in a report that contains an HTMLObject plugin; [Mono] * changed the tooltip text in RichObject in Mono; - fixed maximum text length on code pages in the designer. ### Updating .NET products to version 2025.1 URL: https://www.fast-report.com/tr/news/fastreport-net-2025.1 Summary: In this release, we have focused on implementing long-awaited features that greatly simplify the process of developing templates for reports. In this release, we have focused on implementing long-awaited features that greatly simplify the process of developing templates for reports. In this release, we have focused on implementing long-awaited features that greatly simplify the process of developing templates for reports. Now you can add a report page with a link, asynchronous report preparation with undo support, text rotation with TextRenderType.HtmlParagraph, text search in code editors, export to images for WebReport and much more. New Opportunities Adding a report page with a link In previous releases it was possible to add a page of another report to a report. This option can be found in the  "File->Open Page..".  By default, a copy of the page is added to the report. You can now enable the "Add as link" option, which will add a link to the page to the report rather than a copy of the page. This means that when you change a page in the original report, the changes will be reflected in all reports to which the page is added as a link. And vice versa, if a page is changed in one of the reports that has a link to it, it will be changed in the original report as well. Asynchronous report preparation Added the report.PrepareAsync() method, enabling asynchronous report preparation in addition to the existing synchronous report.Prepare() method. This method also supports CancellationToken , allowing users to cancel the report preparation process if needed, improving control and performance for large reports in non-blocking environments. This functionality may be further enhanced in the future, with new methods providing additional asynchronous access. IfNull function ``` object IfNull(object expression, object defaultValue) ``` There is a new function allows to avoid  System.NullReferenceException when evaluating expressions. The function has two parameters: the first is the expression to be evaluated, the second is the default value. If the expression can be evaluated, the function returns its result. If not, it returns the default value. Rotate text with TextRenderType.HtmlParagraph Added support for rotating text with TextRenderType.HtmlParagraph. Previously, text rotation was only available with other text renderer types. You can see examples of text rotation below. In addition, such texts are now correctly exported to PDF. Text search in FastReport WPF and FastReport Mono code editors Now you can search for text not only in FastReport .NET code editor, but also in FastReport WPF and FastReport Mono editors. An example of searching for text in FastReport WPF code: And in the FastReport Mono code editor: Changes in WebReport Localization support for Blazor WASM WebReport Introduced localization support for the WebReport interface in FastReport Blazor WebAssembly. Previously, localization was managed through file-based methods, which were incompatible with the WASM environment. A new method, webReport.SetLocalization(Stream) allows loading localization from a Stream, making it compatible with Blazor WASM applications. Image Export to WebReport Added export of the report to images. To display it in the list of exports, add the following code: ``` WebReport.Toolbar.Exports.ShowImageExport = true; ``` If necessary, you must enable the WebReport option to configure the export to images  WebReport.Toolbar.Exports.EnableSettings . After enabling it, you can click on the "gear" and change the settings in the modal window that appears. Full list of changes [Engine] + added PicturesInParagraph property to RichObject; + added method for asynchronous report preparation PrepareAsync(); + added converting of strings to dbtype compatible; + added print scale; + added decimal conversion to words in ToWords functions; + added locale identifier for Spanish is 22538 (Spanish - Latin America) and 3082 (Spanish - Spain (Modern Sort)); + a new IfNull function has been added for working with expressions. It returns the result of the calculated expression if it is not null, otherwise the specified default value; + implemented calculation of horizontal position of pictures in RichObject; + added the ability to send a request in the virtual-host-style; + added support for text rotation with TextRenderType = HtmlParagraph; + added the ability to use header bands for the "PrintOn" property of the Totals; * upgraded Oracle.ManagedDataAccess.Core in FastReport.Data.OracleODPCore; * methods GetConnection, OpenConnection and Dispose marked as virtual; * added null check for incoming value for Hyperlink.Value property; * static verification methods TryParse has been introduced into classes of QRCodes; - fixed text break issues; - fixed page visibility change after PageStart event; - fixed conversion to parameter type; - fixed checking of the report script for stop-words if it contained in the variable name; - fixed visibility of the bottom border of a text object with enabled GrowToBottom; - fixed border doubling when the grouped DataBand has the GrowToBottom option; - removed rendering of child clipPath tags in SVGPictureObject; - fixed a bug in FinishReport event; - removed invalid ability to add SubreportObject to ContainerObject; - fixed changing the CommandType of the request if it was set in GetAdapter; [Designer] + added ability to open page as link from another report; + added italic, bold, underline and strikethrough font styles to the span tag; + added a search in the TreeView by the character entered from the keyboard; + add a search function in the code editors in WPF and Mono; * added a check for duplicates of downloaded fonts; * replaced default property values in the constructors of CurrencyFormat, NumberFormat, and PercentFormat classes from fixed values to values from CultureInfo.CurrentCulture; - fixed incorrect position of Amiri, Cambria Math, DejaVu Math TeX Gyre fonts in the font selection drop-down list; - fixed a bug leading to System.NullReferenceException when saving borders via Border Editor; - fixed incorrect display of SVG-images in the designer; - fixed the display of variables declared in one line on the Code tab in the tooltips; - fixed page margins length in "ExtraDesignWidth" mode; - fixed the length of the Guides in the designer for long reports; - fixed a bug where the selected font was not displayed in the drop-down list; - fixed incorrect application of data formats; - fixed an error leading to System.NullReferenceException when deleting a band with a Subreport object; [Preview] + added properties Outline.Expand and Outline.Width in PreviewControl; - fixed index out of range when previewing empty SvgObject; - fixed closing of PreviewSearchForm after clicking the "Next" button; [Exports] + added the ability to combine all report pages into one when exporting to Excel; + added an option to use a custom format instead of general in Excel-export; + added strikethrough text formatting to Word-export; + added the MemoryOptimized option for Word-export, which enables the use of FileStream instead of MemoryStream; + added support for rotating text with TextRenderType = HtmlParagraph when exporting to PDF; * format display adjustments - format 'D' and 'MMMM yyyy' are displayed as dates (format 'MM yyyy' if possible), numeric format with negative pattern '-n' is displayed in standard Excel numeric format; * changed the export of the PictureObject border as an image in Word; * optimized memory consumption when exporting to PDF; * changed layout of table export to fixed; - fixed the issue with HTML tags rendering in HTML export; - fixed the export of negative PDF property values; - fixed the color of cell borders in the browser after exporting to Excel; - fixed border style of cell in Word and PowerPoint; - fixed export of pictures in header and footer to Word; - fixed bug with deleting temporary file; - fixed calculation of line-height when exporting to HTML; - fixed incorrect export of borders with double line style to PDF; - fixed a bug with transparency in HTML-Export; - fixed an issue where the <p> tag was incorrectly displayed during HTML-export; - fixed default value of "UseHeaderAndFooter" option in Word export; - fixed incorrect location of images in tabular export to Word; - fixed the row height of objects sets after TableObject when exporting to Excel; - fixed NullReferenceException when exporting font to PDF with alternative lookup of substitution; [WebReport] + added the ability to display the report name instead of parameters in the tab; + added  SetLocalization method for loading WebReport localization from a Stream; + added ability to export report to image format in WebReport; - fixed inheritance of "box-sizing" from custom application styles in WebReport; - fixed IndexOutOfRange exception when previewing a WebReport; - fixed a bug that caused the WebReport.Debug property to not display error information in the report when enabled; - fixed a bug where a NullReferenceException exception could occur when clicking a tab in WebReport; - fixed reset AdditionalFilter in WebReport; - fixed WebReport printing with pages in landscape orientation; [Online Designer] + added a method for updating the table; - fixed previewing of empty SVG object in Online Designer; [.NET Core] + added methods for MS SQL stored procedures in FastReport Core; [Common] + added a new method for setting an parameter expression via code; + added a timestamp when signing installs; [Extras] + added ability of connection to stored procedures in Oracle; * updated the Firebird.Client version to 10.0.0; * updated vulnerable packages Npgsql(Postgres) and System.Data.SqlClient; * changed the text of the error message when pressing the "Advanced" button in the connection to Linter; - fixed a bug with missing menu in the designer of forms for the Report object; - fixed a bug with "character varying" type of Postgres; [Demos] - fixed demo-report Barcode.frx. ### Updating .NET products to version 2025.2 URL: https://www.fast-report.com/tr/news/release-fastreport-net-2025.2 Summary: In version 2025.2 appeared: .NET 9, the FastScript library.NET, an import plugin from Word, a connector to Apache Ignite, improvements to the designer and exports, new features in WebReport. In version 2025.2 appeared: .NET 9, the FastScript library.NET, an import plugin from Word, a connector to Apache Ignite, improvements to the designer and exports, new features in WebReport. Meet the new release 2025.2  for supply options FastReport .NET : WinForms , WPF , Avalonia , Mono , WEB , Ultimate . Support is waiting for you in this update .NET 9, a library for executing scripts in C#, a plugin for importing documents from Word, a connector to Apache Ignite, improvements to the designer and exports, as well as new features in WebReport. Don't miss the opportunity to update FastReport .NET and expand your capabilities! Import of Word documents The  FastReport .NET Ultimate component set now includes a plug-in that allows you to import Microsoft Word (.docx) documents. When you open such a file, it is converted into a FastReport .NET report template (.frx). Due to the large differences in formats, it is not always possible to completely match two documents. However, this plugin allows you to significantly reduce the time required to create a template based on an existing docx file. At the moment our plugin does not support: background highlighting of part of a line, Shapes, as well as nested vector graphics Vector Markup Language (VML) and OLE objects. You can read about the peculiarities of import and how to connect the plugin in the article. Read the article .NET 9 Support This platform improves application performance and adds many new features for your projects. There is more support in this update  .NET 9 for: FastReport .NET, FastReport.Core, FastReport.Core.Skia, FastReport.WPF, FastReport.Avalonia, FastReport.Web, FastReport.Web.Skia, FastReport.Blazor.Wasm. We have done away with binary serialization. BinaryFormatter caused a number of security issues and Microsoft in .NET 9 dropped its use. Our team has also removed the BinaryFormatter class from the source code. You can read more about it at this link. Learn more Report Designer Improvements Also in this version, several useful features have been introduced to simplify work with reports. In the Object Inspector, you can now quickly copy data from the list of object properties using the  Ctrl + C  hotkeys. This will help you easily transfer object properties between different parts of the document or even between different reports. In addition, it is now possible to copy totals and parameters while preserving the nesting hierarchy. This means that when copying complex data structures, their original organization will be preserved, avoiding  Connection to Apache Ignite With this update, a new plugin has been added that greatly simplifies the process of working with Apache Ignite databases when creating reports. This plugin allows you to directly connect reports to the specified databases, providing convenient access to the necessary data for analysis and visualization.  The Apache Ignite connector is implemented based on the .NET Thin Client Ignite.NET. It provides the ability to connect to Apache Ignite clusters, work with caches (including SQL tables) and process various types of data. In addition, the connector supports connecting to one or more Apache Ignite nodes. Node addresses are specified in  host:port format and separated by commas. Connection is possible with or without authentication (if authenticationEnabled is used in the configuration). The connector supports working with caches created as key-value and SQL tables. For caches with QueryEntity metadata, operations of getting the list of fields and their data types are supported. Read more in the article. Read the article Improvements of the preview window In OutlineControl we have added handy buttons with icons for minimizing and maximizing. These buttons were there before, but without icons. In addition, properties have been added that allow you to change the width and height of the scrollbars in the preview window. Export Improvements Added export of number, currency, date, time and percent formats to OpenOffice Calc (.ods).  This update also introduces a new paragraph export mode for OpenOffice Writer (.odt) format files. This makes it easier to edit generated documents and makes them more visually understandable to humans. The new export mode does not replace but complements the existing mode and extends its capabilities.   In addition, an “Autosize width” option for MS Excel export has been added. Will only work with certain values of text object properties: AutoWidth and AutoShrink properties are enabled; HorzAling property value is any except Justify. Changes in WebReport Search across the entire report Added text search for the entire report, similar to the desktop version of the Viewer, if a word is found on another page, the viewer will automatically switch to it. Search is available in WebReport with FastReport.Core, in WebReport for Blazor Server and WebReport for Blazor Wasm. You can control the display of the search button by using the property:  ``` WebReport.Toolbar.ShowSearchButton = false; ``` The highlighting color of the words found can be changed using the property: WebReport.Toolbar.SearchHighlight = Color.Red; Improvements in caching configuration for WebReport With the release of the new version, WebReport now has additional options for caching configuration. First, you can now set individual caching parameters for each specific instance of WebReport. Previously, only general settings applied to all reports were available, which could be inconvenient, especially if you needed to keep certain reports in memory longer. With the webReport.CacheOptions property, you can customize the cache retention time for a specific report. Secondly, there is more flexibility in setting the report cache retention time thanks to the  AbsoluteExpirationDuration and AbsoluteExpiration  options. Previously, only the CacheDuration  option was used, which was based on a sliding principle: if the report was used for a given amount of time, the timer would reset and the report would remain in memory. This could result in a report never being removed from the cache. The new parameters allow you to specify the exact time when a report should be permanently deleted from the cache, regardless of its usage. In this case, CacheDuration and the new parameters AbsoluteExpiration and AbsoluteExpirationDuration can be used together. ``` // Global settings for all WebReports services.AddFastReport(options => { options.CacheOptions.CacheDuration = TimeSpan.FromMinutes(10); options.CacheOptions.AbsoluteExpirationDuration = TimeSpan.FromMinutes(20); });   // Individual WebReport settings, which take precedence webReport.CacheOptions = new WebReportCacheOptions() { CacheDuration = // ..., AbsoluteExpiration = DateTime.Now.AddMinutes(30), // or AbsoluteExpirationDuration = // ... }; ``` Updated demo web application on ASP .NET Core We have updated our demo application to ASP.NET Core, so that the product pleases you not only with its functionality, but also with its appearance. The updated application is available at the link. Online demo Updated Online Designer Demo In addition, we have updated the  Online Designer  demo application, where you can view more examples of our reports, export them, and try the updated online designer on them. The updated application is available at the link. Try the demo Support of FastScript .NET Added ability to use FastScript .NET to run report scripts. FastScript .NET is a library for running C# scripts. It does not depend on CodeDOM/Roslyn and can be used in environments where code generation is restrictedя (Native AOT, iOS, WASM).  FastScript .NET is included in the following supply options FastReport .NET : WinForms , WPF , Avalonia , Mono , WEB , Ultimate . To use FastScript .NET in the FastReport .NET: in your application, add the  FastReport.Plugins.FastScript  nuget package; run the following code before the first use of the  Report  class: ``` FastReport.Code.CodeProvider.DefaultProvider = typeof(FastReport.Code.FastScript.FastScriptCodeProvider); ``` Now, all the reports will utilise FastScript .NET to calculate expressions and run the report script. FastScript .NET does not support VB.NET script language. The dynamic type is not supported too, some of "Advanced Matrix" functions will not work. Detailed documentation on how to work with FastScript .NET is available at this link. Online documentation Full list of changes [Engine] + added new scripting engine - FastScript .NET; + added support for vertical tabulation; + added import of DOCX files to FRX report template; + added support of encoding for Chinese (simplified) language when converting RTF; + added the ability to disable integration with FastReport Cloud ; + added GS1 Datamatrix barcode; + added the conversion of SkBitmap to a Bitmap and Image in FastReport.SkiaDrawing; - fixed error with RichObject (zh-tw codepage); - fixed a bug with simultaneous compilation of a report script when preparing reports in multiple threads; - fixed a bug when printing an empty matrix; - fixed bug when passing null value to a MS SQL query parameter; - fixed errors when compiling libraries under .NET 9; - fixed a bug leading to infinite loop when child band of "Page Header" or "Column Header" has "StartNewPage" property turned on; - fixed a bug leading to System.ArgumentException when connecting to MySQL; - fixed calculation of PrintableExpression of page; - fixed a bug leading to System.NullReferenceException in the Report.GetParameterValue method; [Designer] + added a possibility to copy data from the list of properties of an object using the keyboard shortcut Ctrl + C; + added the ability to copy totals and parameters, preserving their hierarchy; * in the window for opening the report page, it is still possible to select only a *.frx file; * in the Mono designer settings, the tab "Code page" with inaccessible settings was hidden; * changed the logic of style processing for .rtf files when opened in the designer; - fixed a bug where the image of PictureObject disappeared after canceling changes in the designer when editing a prepared page; - fixed a bug with the search filter in the data tree that reset the current search state; - removed the "New Dialog" context menu item in the Community version, which when selected resulted in an unhandled exception; - fixed a bug when running preview from a designer; - fixed System.InvalidOperationException when deleting a data source column when that column no longer exists in the database; - fixed reading the GS1 DataMatrix barcode as a DataMatrix; - fixed a bug with selecting layout of band columns in "Data Band Column Editor" window; - fixed deleting objects and categories from the sidebar in the designer; - fixed a bug with displaying icons that appeared in version AvaloniaUI 11.1; - fixed deleting objects and categories from the sidebar in the designer; - fixed a bug when adding IsNull function via "Text editor" added an extra comma; [Preview] + added a button to send a report by email when using MAPI in a preview in WPF; + added collapse and expand buttons with icons in OutlineControl; + added the ability to change the width and height of the scroll bar through the code; - fixed disabling the button to save the prepared report in the preview; - fixed disabling the "Storage" tab in the report saving menu in the preview; - fixed bug with "Advanced Matrix" when filters are missing; - fixed a bug where the print form did not appear in the preview when pressing Ctrl + P; - fixed a bug with incorrect paper size for printers without "Auto paper size" option, when clicking "Settings" and then "Advanced" buttons in "Print" window; [Exports] + added export of "Author" property in export to PDF/A; + added support for HTML non-breaking space tag when exporting to Excel; + added export of number, currency, date, time, and percentage formats to OpenOffice Calc (.ods); + added "Shrink to fit" option for export to MS Excel; + added paragraph export mode in OpenOffice Writer export (.odt files) * now, when exporting Pages with ExportAlias property to Excel, suffix "-n" will not be added to sheet name if it's possible; - fixed a bug where the font name was exported without quotes to HTML; - fixed a bug in FR.Core with some user fonts; - fixed a bug in HTML-export when the barcode border was not displayed; - fixed the error of opening files when exporting a report with special characters to ODT and ODS formats; - fixed incorrect display and export of some unicode symbols in Skia/Avalonia; - fixed export of TableObject fills to PDF; - fixed export of TableObject and page fills to HTML; - added export of height for the merged cells in Excel export; [WebReport] + added WebReport search; + added WebReport WASM search; + added .NET 9 support for FastReport.Blazor.Wasm; + added the ability to create a connection to a stored procedures in WebReport; + added the ability to configure caching for a single WebReport using the WebReport.CacheOptions property; - fixed an issue that made it impossible to change the DataConnection after it was created in OnlineDesigner; - fixed converting of TextObject to SVG when preview in Blazor; - fixed support for the Size of the CommandParameter; - fixed rendering of page toggle buttons in Blazor when they are disabled; - fixed a bug when the value of the RouteBasePath parameter was not taken into account when setting up WebReport; [.NET Core] + added a filter for connection tables; + added a JsonConnectionType class for use in the JsonDataConnection.GetConnectionType method and GetConnectionType() and GetParameterType() methods; - fixed a bug with encoding when connecting of CSV data file for report in .NET Core; [Common] * changed width of "About..." window; [Extras] + added connection to Apache Ignite; [Demos] + added UsedPackages.version file for WPF packs; - fixed Avalonia and WPF name in demo. ### Updating .NET-based products to 2023.3 version URL: https://www.fast-report.com/tr/news/fastreport-net-2023.3 Summary: 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 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 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 . New features New RFIDLabel object 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. Read more in the article . Support for WebP images 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. Preview in the designer window and asynchronous report viewing 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 toolbar in the context menu 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: Export to S3 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. Read more in the article. Ability to customize barcode font settings 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. "Convert general format to text" option when exporting to Excel 2007 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. Support for partial report compilation 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. New WebReport features Improvements in WASM 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. Toolbar personalization 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 { 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: Full changelog [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 , and 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. ### Updating Delphi and Lazarus products to 2023.3 version URL: https://www.fast-report.com/tr/news/fastreport-vcl-2023.3 Summary: With version 2023.3, NextCloud transport was added, the report engine was changed, and support for new types of electronic signatures appeared. With version 2023.3, NextCloud transport was added, the report engine was changed, and support for new types of electronic signatures appeared. We are pleased to announce the release of a new version of Delphi and Lazarus products. In this update, we paid special attention to ergonomic design and component performance. With 2023.3 version, we have added a new NextCloud transport, changed the operation of the report engine, added support for new electronic signatures, and much more. Changes (different for each product) are available for the following products: FastReport VCL , FastScript , FastConverter .FP3 , FastQueryBuilder , FastReport FMX , FastReport Viewer , FastCube VCL , FastCube FMX . New demo reporting center For convenience, we have combined all demos into a single demo center. It is available with the new FastReport product installer. Changed the operating mode of the report engine The new mode allows you to automatically select the font size to match the size of the “Text” object and its content (ContentScaleOptions property). Selecting the size to match the static dimensions of the object allows you to reduce the text if there are physical limitations when printing. You can find an example of use in the article at the following link . Dynamic font sizing allows you to control the font scale that is applied to dynamically resizing or stretching objects. The report engine reduces the contents of such objects to fit the band on the current page. New resource localization editor With this update, you can edit language resources to suit your needs directly from the IDE. Thanks to the new editor, this has become as fast, simple, and convenient as possible. Full language switching at run-time. Now all language resources are updated immediately without the need to restart the report designer. Added new NextCloud transport  You can save and load reports from your corporate storage directly from the designer, as well as from code. Read in the article how to set up a connection. New types of electronic signatures When exporting to PDF format or working with random files, you can sign documents using the following electronic signatures: CADES_T and CADES_X_LONG_TYPE_1. We have also added partial font embedding in PDF export. It allows you to reduce the size of the PDF export. FastCube for Lazarus has added support for integration with the Chart component for the FastReport integration package. Full list of 2023.3 changes --------------- [Designer] - Fixed drop-down InPlace editor in the DPIAware application. [Engine] + Added the ability to automatically select the font size to match the size of the “Text” object and its content (ContentScaleOptions property); + Added language resource editor; + Added frThreadSynchronizeProc variable to override the default synchronization procedure in FastReport; + Added implementation for UP/DOWN/MOVE mouse events for report script objects; + Added support for signatures CADES_T and CADES_X_LONG_TYPE_1; + Added TfrxHtmlView.LoadFromString method to RTTI. + Added compatibility of old behavior in TfrWideStrins; + Added correction of the height of the last line of text to the tmDescent value (required for some fonts); * Improved language switching in the report designer; * Changed the TfsScript.OnSetVarValue event; * Changed the order of finalizing datasets; - Fixed work of TfrLocalizationController in FastReport FMX; - Fixed printer font scaling in FastReport FMX for RAD 11.3; - Fixed a bug where the frxIBO package did not compile in some IDEs; - Fixed a bug when the dclfqbFIB package was not compiled; - Fixed the name of the groups in the component palette; - Fixed a problem with data when editing a chart in a report for integration with FastCube; - Fixed behavior of HideIfSingleDataRecord with delayed expressions; - Fixed chart rendering in Lazarus; - Fixed TfsCustomHelper in debug mode; - Fixed out-of-range issue in FastCube; - Fixed a bug with case-insensitive keys in resources; - Fixed post-processing of expressions for paReportFinished/paGroupFinished when the ReportSummary/GroupFooter band is visible or invisible; - Fixed Job method TfrLocalizationController.ShowLocalizationEditor; - Fixed a problem with a blank page when duplex printing is forced in the printer settings, and single-sided printing is set for the report page; - Fixed inability to compile the project for FMX versions below Tokyo; - Fixed FastCube compilation for C++ Builder FMX; - Fixed behavior of the TfrxHTMLView.DefBackground method when the value is clNone; - Fixed a bug in FastScript when adding nested components via AddComponent; - Fixed an error in determining the SVG format with a BOM header; - Fixed several GDI descriptor leaks; - Fixed TeeChart package names in FastCube package templates; - Fixed inheritance of styles in the report template. [Exports] + Added the ability to partially embed fonts; + Added LineSpacing support for PPTX export; - Fixed PDF export with CJK fonts; - Fixed a bug with multi-page HTML export when the image cache was cleared for each page; - Fixed work of PDF form fields with owner password; - Fixed substitution of font names; - Fixed application closing with PDF export; - Fixed export of time format in XLSX export; - Fixed SMTP in TfrxMailExport. [Lazarus] + Added a new integration package with LazChart; - Fixed PDF export dialog for Lazarus; - Fixed visual errors in the report designer for Lazarus; - Fixed the designer reopening with TfrxLazSqliteQuery; - Fixed Unicode output from the database for Lazarus; - Fixed barcodes in Linux. [Other] + Added support for FibPlus, IB Objects, and BDE in the installer; - Fixed description of the FastCube FPC package; - Fixed a bug with using an OLE object in FastScript code; - Fixed FastCube FMX packages; - Fixed chart templates for FastReport Demo for compatibility with TeeChart 2023.38. [Preview] + Added TfrxPreviewTabs.CurrentTab property; - Fixed the HighlightRuleEditor form in FastCube; - Added the “Search” item to the preview context menu. [Report object] + Added TTeeFont and TteeShadow classes to RTTI for diagrams; * Changed the DefaultDatabase class from TFDConnection to TFDCustomconnection; - Fixed rotation of 2D barcodes; - Fixed list of modules in FireDAC; [Resources] * Updated Serbian resources; * Updated Arabic resources; * Updated Bulgarian resources; - Fixed string resource numbers. [Transport] + Added NextCloud transport. ### Updating Delphi and Lazarus products to 2024.2 version URL: https://www.fast-report.com/tr/news/fastreport-vcl-2024.2 Summary: This update to 2024.2 version includes improvements and fixes for our entire line of Delphi and Lazarus products. This update to 2024.2 version includes improvements and fixes for our entire line of Delphi and Lazarus products. This update includes improvements and fixes for our entire line of Delphi and Lazarus products. One of the main features of this update is the new package with visual components TfrTreeView. The new TfrTreeView allows you to quickly create your custom equivalents of TreeView, expanding the functionality of your application. Compared to the standard TreeView, our component has fast and convenient navigation, collapsing and expanding the tree of thousands of elements. This enhances the responsiveness of your application's interface for end users. And, of course, TfrTreeView is supported in both VCL and Lazarus! FastReport VCL You can experience the responsiveness of the interface in the FastReport VCL report designer when working with a large amount of data or objects, thanks to the use of the new TfrTreeView component. Support for GeoJSON and TopoJSON formats has been added to the map object. Use maps in whichever format is most convenient for you. Improved handling of digital signatures in PDF and other files. Our product allows for maximum flexibility in configuring digital signatures. You have access to the following settings: Signing method: FastReport, CryptoAPI, CryptoPRO Signature type: CAdES-BES, СAdES-T, CAdES-X Type 1. Time Stamping Authority servers. Certificate stores. Signature hash: md5, sha1, sha256. A mode of infinite width has been added for the dynamic table object. The size of the table grows depending on the data being output. In the preview window, you can see a page that fits all the table columns. Meanwhile, in normal mode, columns that do not fit on the sheet will be moved to the next page. Reports with detailed pages retain the states of the transmitted variables for each tab, allowing for individual reconstruction of each tab when updating parameters. A new property for linear barcodes, DigitsAutoFillMode, has been added. dafmLeftOnly fills missing barcode digits with zeros from the left side. dafmRightChecksum always adds a zero checksum when there is a shortage of digits required by the barcode standard. In this update, we have enhanced and addressed numerous issues with the HTML5, SVG, PDF, XLSX, and DOCX export filters. HTML5, SVG, and PDF exports are now closer to full WYSIWYG. The quality of DOCX and XLSX exports has been improved for table exports. An alternative path on Linux has seen overall improvements in operation under WINE on Linux. FastQueryBuilder Lazarus support has been added to FastQueryBuilder—now you can connect and use it in your Lazarus projects. FastCube The errors found were fixed and integration with the common code base was improved. FastReport FMX Added two new export DOCX and XLSX filters—export reports to the format you need. Starting with release, we will no longer support development environments released before Embarcadero RAD Studio 10.4 for the FireMonkey platform.  2024.2.0 version --------------- [Designer] + fixed SQL editor; - fixed autocompletion in memo syntax; - fixed a bug when Unicode characters could disappear when saving script code in .pas file from the report designer; - fixed TfrxRichView editor for 64 bits; - fixed scrollbars for TfrxSimpleSyntaxMemo; - fixed display of tooltips on the frxEditFieldDefs form; [Engine] + added support for infinite width for dynamic tables; + added support for GeoJSON / TopoJSON to the map object; + added new control TfrTreeView; + fixed a bug of compatibility with old aliases; + detailed reports save the states of the passed variables for each tab when using the DetailPage hyperlink; * added the ability to change the signature hash algorithm; * improved signatures for pdf and other files, improved consistency of signatures; - fixed an error in the position of the data set in the TfrxCustomLayer of the map object; - fixed update of field definitions after SQL changes; - fixed bugs when working with WINE; - fixed TfrxCustomQuery.SQLChangeHandler when destroying a complex report; - fixed a bug that could lead to a crash when exporting to BIFF8 (RS12, 64-bit); - fixed AV in FastCube when dragging a field from the filter zone to the Y axis and back; - improved synchronization with the old list of aliases and the new collection of field definitions; - fixed inherited parameters in the request; - removed duplicate Left / Top properties in serialization for components that are not internal DB components; - fixed type conversion for a field collection property in an inherited report; - fixed a bug in FastCube FMX when right-clicking on the drop-down list of measurements; - fixed a bug when using a dynamic table with manual construction on a page with several columns; - fixed behavior of alClient for diagonal TfrxLineView; [Exports] - fixed a bug when exporting in RTF format when the left position is reset to the coordinate of the left page margin; - fixed interactive Combobox in preview and pdf export; - fixed incorrect position of images when exporting xlsx; - fixed system colors in the xlsx export filter; - fixed scaling factor for images and text when exporting to docx; - fixed a bug that could lead to a crash in XLSX export; - fixed errors in HTMLDiv and SVG exports; - fixed array unlocking in XLS OLE export; - fixed pdf export errors; - fixed memo export with APAC fonts to SVG and HTML5 - fixed PDF/A export and vector export with PS_USERSTYLE; - fixed memo export with HAlign = haRight; [Lazarus] + added support for Lazarus in FastQueryBuilder; + fixed a list of paper without printers in Linux Lazarus; - fixed errors in exporting some objects in PNG mode in Lazarus; [Other] + the SmartMemo object with basic syntax highlighting has been moved into a separate package; + added RTL support to SmartMemo; - fixed certificate dialog; - fixed caret for SmartMemo in Lazarus GTK2; [Report object] + added a new linear barcode property DigitsAutoFillMode (dafmLeftOnly—fills missing barcode digits with zeros on the left side, dafmRightChecksum—always adds a zero checksum if there are not enough digits required by the barcode according to the standard); - fixed RTTI for TfrxHTMLView; - fixed incorrect clipping boundaries for the TfrxPDFView object in the preview; - fixed FireDAC DriverID; [Resources] * updated Portuguese resources. ### Updating Delphi and Lazarus products to version 2024.1 URL: https://www.fast-report.com/tr/news/fastreport-vcl-2024.1 Summary: This update includes improvements and fixes for all Delphi and Lazarus products with Embarcadero RAD Studio 12 support. This update includes improvements and fixes for all Delphi and Lazarus products with Embarcadero RAD Studio 12 support. This update includes improvements and fixes across our entire line of Delphi and Lazarus products. All products have received updates and support from Embarcadero RAD Studio 12. Report designer improvements The new "Text" object editor features highlighting of expression elements and tags, allowing for quick identification of expressions within regular text. With interactive bracket highlighting, you will no longer forget to close the bracket of an expression. Furthermore, the editor allows for word wrap during text editing. Note! This functionality is available in the Enterprise version and higher. Expression highlighting is available not only in the editor but for "Text" objects when editing a report template. New data field editor Data presentation is important. The redesigned Data Field Editor allows you to fine-tune the field definitions in the report designer. In the editor, you can update, reset, add, delete, and customize field properties. Properties allow you to assign objects that the designer creates automatically when dragging fields from the data tree, simultaneously linking them to the fields. Configure the report designer for efficient data handling. The new mode for updating the list of fields in the designer allows you to disable the auto-updating of fields and active data connections. Customize field definitions and use them in the report designer without being tied to a heavy database. Please note the change in the serialization scheme of built-in data sources! The internal properties of such objects are now fully serialized to XML in the report template. Such properties may not be readable on older versions of FastReport after they are converted to a new version. FastQueryBuilder FastQueryBuilder integration has become optional and is enabled when the appropriate components and packages are added. Enabling or disabling FastQueryBuilder no longer requires package recompilation. Transports We have added a new transport to S3 (AWS)—save and download reports from your enterprise storage. Read this article to learn how to set up a connection. Starting with release 2024.1, we will no longer support development environments released before Embarcadero RAD Studio 10.4 for the FireMonkey platform. Supported environments for the VCL platform remain unchanged. See the full list of changes Version 2024.1 --------------- [Engine] + Added support for Embarcadero RAD Studio 12; + Added the ability to optionally use FastQueryBuilder in FastReport; - Fixed the behavior of the virtual data set; - Fixed a bug in FastCube with RAD Studio 12 under x64; - Fixed HIDPI problems in RAD Studio 10.4; - Fixed incorrect font scaling in barcodes at HiDPI; - Fixed incorrect sizes of export filter dialog forms when changing DPI; - Fixed an error after editing a measure in FastCube FMX; - Fixed changing the selected line when switching the filter in the Localization Editor; - Fixed a bug in FastCube when calling the editor script function when double-clicking on a calculation field; [Designer] + Added a new Memo object editor with syntax highlighting (starting from the Enterprise version); + Added highlighting of expressions and syntax in the Memo object in the report designer workspace; + Added a new field definition editor (replacing the old alias editor); + Added the ability to specify the type of drag object when dragging data from the data tree; + Added the ability to disable auto-updating of the list of fields in the report designer; - Fixed a bug with the “Gradient” object style property in the Object Inspector; [Export] *Сhanged the use of Indy TLS in the email export filter; - Fixed positions of ligatures in languages written from right to left in the PDF export filter; [Lazarus] - Fixed a bug in the frxSQLEditorForm form; - Fixed syntax note error in Lazarus; - Fixed FastCube cross-editor in FastReport integration components; [Other] - Fixed the error “module FMX.ConverterFR3toFRFMX.pas does not exist in LibRSXX\FMX”; - Fixed the error “frx package does not contain the frxFileSignature module”; [Report object] - Fixed IBO package for RAD Studio 12; [Transports] + Added S3 transport; + Added support for AWS in S3-Transport; - Fixed default file extension when saving to clouds from preview; - Fixed opening reports from cloud storage. ### Updating HTMLObject as a plugin for FastReport .NET URL: https://www.fast-report.com/tr/blogs/plugin-html-object-net Summary: Detailed instructions for using the new HTMLObject plugin, which uses splitting DOM HTML into FastReport report objects. Detailed instructions for using the new HTMLObject plugin, which uses splitting DOM HTML into FastReport report objects. Detailed instructions for using the new HTMLObject plugin, which uses splitting DOM HTML into FastReport report objects. Our company regularly receives requests for changes in products. This time, we have improved the display of content in a report, which is stored in HTML markup format due to certain circumstances. FastReport has a built-in object for visualizing content in HTML markup format—HTMLObject. It is still being improved, but it already solves many user problems. The previous implementation of HTMLObject could not be divided into FastReport report objects and was displayed only in HTML export. Therefore, we released a separate plugin for FastReport .NET Ultimate that uses the division of the HTML DOM into FastReport report objects. Each HTML markup object is translated into FastReport objects with a specified style, with the calculation of the required sizes, and with the possible page break. To use the plugin, you need to add the FastReport.Plugins.HtmlObject package to your project. Then register it using the following line of code: FastReport.Plugins.Html.HtmlObjectAssemblyInitializer.Init() After that, the necessary libraries will be automatically added to the project, based on the product used (FastReport .NET, FastReport.Core, FastReport.WPF, FastReport.Core.Skia). It's important to note that only a subset of HTML 4 tags and styles are supported. Scripts are not supported. Supported tags: