Ultimate VCL

A set of tools for creating reporting infrastructure for Delphi business applications and cross-platform development

v. 2025.1.4

What reports can Ultimate VCL do?

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.

Features and Benefits Ultimate VCL

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.

The template designer in your application

A powerful modern editor includes a large set of tools for visual design and modification of report templates. Our flexible architecture allows you to create your editors for both existing objects and new ones. A template designer can be included in your application to provide users with their report design. Localization is supported for more than 30 popular languages of the world.

Ultimate VCL is a band-oriented report generator. A rich set of bands allows you to build reports of any type: list, master-detail, report with grouping, multi-column, master-detail-detail, and others. If you need to create many reports that contain the same elements (header, footer, company details, logos), then you can collect common elements into a base report and inherit all other reports from it. We also support the nested reports feature.

The template designer in your application

Data processing

Ultimate VCL supports data sorting and filtering, master-detail relationships. Everything can be configured with a few clicks. It can connect to FireDAC, ADO, BDE, DBX, IBX, and FIBPlus, thus providing access to almost all databases, including Oracle and many third-party libraries.

Your report may contain data (tables, queries, database connections). This way, you can not only use the data available in your application but also independently connect to any database directly from the report. Ultimate VCL contains a script engine that supports PascalScript, C++ Script, BasicScript, and JScript.

The report may contain dialog forms to request parameters before the report is built. Dialog controls support the ability to connect to data and then filter it. Filtering can be added to absolutely any report; it does not require writing any code. Using the visual query builder, you don't need to know SQL to build a complex query from multiple tables.

Data processing

Preview and print

The pre-prepared report can be examined in detail in the Report Viewer's preview window. Our component supports working with parameters, multi-level detailing, and interactive reports. You can define a response to a mouse click on an object in the preview window. For example, you can build and display another report that shows detailed information about the object the user clicked on.

Additional printing settings. The following options are available to you: cutting large report pages into small ones, printing several small pages on one large one, and printing in a given format with scaling. Do you need to print a report containing A3 pages on a regular A4 printer? Now, this is not a problem!

Preview and print

Exports to convenient formats

Filters for exporting the finished report to many formats: PDF, RTF, XLSX, XML, DOCX, TXT, CSV, Excel OLE, PowerPoint, HTML, MHT, XPS, JPEG, BMP, PNG, Open Document Format (ODT, ODS, ODP), XAML, Scalable Vector Graphics (SVG), ZPL, etc.

Ultimate VCL allows you to quickly convert reports with editable fields (such as text fields, combo boxes, checkboxes, radio buttons, and graphics fields) into PDF documents without connecting additional libraries. Save your reports in popular formats: PDF 1.4-1.7, PDF/A-1a, PDF/A-1b, PDF/A-2a, PDF/A-2b, PDF/A-3a, PDF/A-3b, which are secure, accessible, and reliable.

Exports to convenient formats

Client-Server components

Build reports directly on WEB by using client-server technology with standard FastReport tools without the need for a direct connection to a database server. You can manage several client requests at the same time in separate threads, thus minimizing the server's response time.

The TfrxReportServer component is an autonomous HTTP server with the capability to build reports. The report server can build several reports simultaneously, log events, and collect data. For using the already existing solutions based on other HTTP servers, you can integrate them with the FastReport server with a CGI mechanism. Reports can be built into an already-working system (site). HTTP- servers and report servers can work on different computers and use SSL encryption.

FastScript formulas

FastScript formulas

In Ultimate VCL, the FastScript package is used to perform non-standard calculations. Using scripts, you can calculate indicators and filters. You can set data processing after or simultaneously with standard indicators.

For indicators, you can set filters specified by the script. This filter is used if it is necessary to calculate indicators not for all rows of the original data set, but only for selected ones. The calculation filter can be applied to both measures based on standard aggregate functions and calculated measures.

Transports

Transports

Ultimate VCL allows exporting the prepared reports and export results into different cloud storages, such as FTP, Dropbox, OneDrive, Google Drive, Box.com, and others. It simplifies report-saving processes and makes them available to other users at any time and place.

Cloud services allow for automatic file backups, which reduces the risk of losing data in the event of equipment malfunctions or other emergency situations. Storing files in the cloud makes room for local storage, which comes in handy for users with limited space on a hard drive or SSD.

FastQueryBuilder

FastQueryBuilder

Create database inquiries with knowledge of SQL! You can use FastQueryBuilder in your applications written in Embarcadero Delphi, C++ Builder, RAD Studio (VCL and FMX - FireMonkey), and Lazarus for creating a simple SQL generator. Visual models of the request are kept for further use and editing.

FastQueryBuilder allows working with local and client-server databases by using BDE, ADO, IBX, and FIBPlus. A complete visual parameter setting of the requests can be built into any window of your application.

OLAP components

OLAP components

Ultimate VCL includes cross-tab components for VCL and FMX, an interactive tool for data presentation and analytical processing. The central part of the table displays the values of the indicators. The cross-table consists of many areas: the header of the cross-table, the area of the filter fields, the vertical and horizontal headers of the dimensions, the vertical and horizontal header of the cross-table, the data area, the field list, the list of Top-N filters, the area of aggregate calculations for the selected cells, and scale control.

Cross-platform developing

A set of FastReport FMX and FastCube FMX components, included in Ultimate VCL, allow the development of cross-platform applications that create reports for Windows, macOS, and Linux. It allows developers to create documents that will work on different operating systems without the need for additional settings or recompiling.

Thanks to the FireMonkey IDE, which is compatible with Embarcadero RAD Studio, it is possible to create projects for different screen dimensions, ensuring app adaptivity on all devices.

Delivery options

Features
from $1,299
from $899
from $499
from $499
from $499
from $399
FastReport Engine
VCL components
FMX components
Lazarus components
OLAP features
OLAP aggregation functions
Data connections
Reporting features
Report objects
Barcodes
Charts
Printing
Export in formats
Source Code
Convertors from
Transports

Resent articles

November 20, 2024

Localization and Language Switching in FastReport VCL

In today's world, the ability to provide your software to customers around the globe is of great importance. Therefore, FastReport VCL supports about 40 of the most widely spoken languages for localizing the user interface.  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. The localization package is included in all FastReport VCL delivery kits. Localization is performed "on the fly" by selecting the desired language in the Report Designer from the "View — Language" menu. Moreover, you can manage the interface language of FastReport VCL directly from the code!     Checking and Installing Localization Packages  For localization to work correctly, it is necessary for the IDE to have the localization packages (frxLanguageXXX) and the localization controller package (frLocalization) installed. In the Windows operating system, localization packages are automatically installed for the Delphi and Lazarus IDEs. If the localization menu is not available, you need to check if these packages are installed in the IDE. In Delphi, you will see the following window: The localization menu in Lazarus looks as follows:   If any of the translation packages are not required, they can be removed from the development environment.     Working with TfrLocalizationController and Language Selection As mentioned earlier, changing the language in FastReport within the report designer is very simple. Go to the "View — Languages" menu and choose the desired language. To connect FastReport localization to the application, you need to use the TfrLocalizationController component. Simply place it on the main form of the application. Next, for Delphi, right-click on the component, and then in the dropdown menu, select the language that you need FastReport to support in your program:   After this, you need to select the language for the TfrLocalizationController component that will be loaded by default when the application starts. You can also add the module containing the necessary localization to the uses section of the main form. It should be noted that by default, FastReport VCL uses the English language, so if you only need English, there is nothing else to do. To connect localization in Lazarus, you need to add the language package to the project and then add the module for that language.     Changing Language from Code In some situations, it may be necessary to manage FastReport VCL localization from the program code. This is done as follows:   frLocalizationController.Language := ‘German’; The following code sets the language to German. Do not forget that your program must be compiled with the language package you wish to switch to. You can find out which language packages the program is compiled with using the code below. To do this, you need to include the Types module, place TButton and TMemo components on the form, and write in the Button.OnClick event handler: 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;    Please note that the English language is not included in the list of supported languages, but it is always available by default.     Editing Localization via the Localizer You can open the Localization Editor as follows:   In the Delphi IDE, go to the menu "Tools… - Localization Editor…"   In Lazarus, navigate to the menu "Services - Localization Editor…" You can invoke the "Localization Editor" from your program using the code below. However, this method is not available in all versions.   frLocalizationController1.ShowLocalizationEditor; Purpose of controls in the localization editor: open the *.xml file with translation save the *.xml file with translation save the translation file with a specified name  undo the last action   redo the undone action   set the translation language filter records by mask   clear the filter   show only translated records show only untranslated records   The “Localization Editor” allows you to translate FastReport VCL resources into various languages line by line. In the center of the editor is a grid with the translatable values.   The first column displays the identifier of the element that is to be translated. It is always a string, even though some rows may contain numbers, as their string representation is used. The second column shows the original value of the element in English. The third column contains the translated value of the element for another language. Let's move on to the principle of how the localization editor works. Upon loading, the editor checks which localizations are available to the application it is embedded in. It then populates the list of available languages (a combo box for entering the target language). The currently set localization is active for editing. You can choose and edit the translation for any of the available languages and save it to an XML file. If you already have an XML file with translations, you can load it for editing. In the localization editor, you can switch between display modes. For example, you can show only those elements whose translation matches the original in English, or conversely, show only those elements whose translations differ from the English version. However, it should be noted that not all elements need to be translated. You can apply a filter to the entries in the grid. A grid element is displayed only if the filter value exists in any column. You can also sort the grid in both ascending and descending alphabetical order by clicking on the header of any column. If you have modified the translation file, you can connect it to the application instead of the standard one. To do this, you need to include the frResources module in the uses clause using the following code:   frStringResources.LoadFromFile('mylanguage.xml'); We recommend restarting your application after editing files for the correct display of all translated resources. It should also be taken into account that the loaded translation immediately becomes active but will only work until the first switch of the language. Upon switching back to that same language, the localization will be pulled from the resources connected to the program. Additionally, you can compile the resource with the translation file yourself. Place it in the directory with the corresponding language module and use it in your program. To have this translation appear in the IDE, run the installer and select the Recompile mode, or simply recompile the package for the language you need. In Lazarus, you will need to rebuild the IDE afterward; in Delphi, you will need to restart the environment. If you want your translation to be retained after each update, you can send the localization file to us at support@fast-report.com. We will review the received file and add it to the installer.
Read
November 01, 2024

New Features of the FastReport VCL Editor

Our products are constantly evolving, with new features being continuously added and the quality of the code improved. In this article, we will explore new capabilities of the report editor that are not covered in the user manual. Object Inspector You now have the option to add individual properties to "Favorites." To do this, focus the cursor on the object inspector and press the CTRL key. Checkboxes will appear next to the property names; select the properties you need and add them to your favorites list. You can remove properties in the same way from the "Favorites" tab. Events cannot be added to favorites. A search input box has been added next to the object inspector tabs for quick property searching. The search window may not be visible if the object inspector is narrow. When you enter data into this box, the inspector will begin displaying only those properties that contain the entered string. The inspector highlights property values in bold if they differ from the default values. This allows for quick identification of object properties that have been changed during editing. Note: Not all properties have default values, so not all properties may be highlighted.     Report Tree A search feature for components by name has also been added to the report tree. To display the search bar, click the >> icon located at the bottom right of the tree. Additionally, you can select multiple items in the report tree using the CTRL key. You can also call the editing menu using the right mouse button—it is similar to the menu that appears when you click on a component. When multiple components are selected, you can edit them all simultaneously. For example, you can hide all of them using the Visible property or delete them, for instance.     Data Tree An interesting feature of the data tree is the ability to drag and drop fields onto the designer's workspace from the "DB Fields" tab. If you have activated the "Insert Field" or "Insert Header" buttons (buttons F and C in the image above), a frxMemoView will be created in the designer's workspace, either with the header text from the data field or bound to the data. If both buttons are pressed, two TfrxMemoView components will be generated—one with the field header and one bound to the data. If the data is sourced from a TfrxDataSet, you can configure the type of component that gets created upon dragging in the editor of that component (within the Delphi IDE). Field groups can also be dragged. Additionally, if you select a dataset along with the fields, a band containing the data fields will be created. If a data field is dragged, the component name is created from the data set name and the data field name. You can also drag a data field onto an existing component. In this case, the component will be linked to the dragged data field (the previous value will be lost). A data field can also be dragged into any string property of the object inspector. The data tree also has two more tabs: "Functions" and "Classes," which display all the classes and functions available in the report. These can also be dragged into the report designer.     Report Designer Workspace The report designer workspace has a number of interesting features that make a developer's life easier. On most controls, if they have event handlers, a small red triangle appears in the upper left corner. If a TfrxMemoView component is placed on a band linked to a dataset, hovering the mouse over the component reveals a triangle on the right side (similar to a combo box). Clicking this triangle allows you to link a field from the band's dataset to the TfrxMemoView. If the text component is not fully visible on the screen (cut off), hovering over the component will display a tooltip with the full content of that component. These tooltips can be disabled in the designer settings. To do so, go to the "View" menu -> "Settings" and uncheck the "Enable workspace hints" checkbox.     Extension Lines Extension lines are a set of vertical and horizontal lines used for positioning report components. The visibility of extension lines can be controlled through sub-elements of the "View" menu.  Extension lines – This menu item enables the use of extension lines. To create an extension line, double-click on the ruler at the top or side of the designer. Extension lines are displayed in blue. Automatic Extension lines – Extension lines appear along every border of a component. If an extension line is created by the user and is not connected to a component border, it disappears. If it is connected, it turns brown. Creating custom extension lines in this mode is not possible. Using Horizontal and Vertical Extension lines – These two menu items control the visibility of horizontal and vertical extension lines. You can also adjust the visibility of extension lines using the button located at the intersection of the vertical and horizontal rulers in the upper left corner of the report designer editing area (screenshot below). This button cycles through extension line modes in the following order:-    no automatic extension lines-    all automatic extension lines-    horizontal automatic extension lines-    vertical automatic extension lines To delete a custom extension line, simply move it outside of the designer area or right-click on the extension line pointer. In automatic extension line mode, you can convert these lines to custom lines and then revert them back to automatic. To do this, double-click on the extension line pointer on the ruler. Extension lines are used to arrange report elements in the desired order. The key feature of extension lines is that component borders "stick" to extension lines when resizing components. When dragging an extension line, all "sticked" component borders move with it. If the opposite border of a component is "sticked" to another extension line, the component changes its size. If the opposite border of the component is free, the component moves along with the extension line, and its size does not change (each of these settings can be disabled in the designer options, such as "Stick to Extension lines" and "Use Extension lines as Anchor"). Extension lines can also "merge" with each other—if one extension line is moved onto another, they will merge. Thus, this allows you to quickly arrange report components on a custom grid using extension lines. This functionality is crucial when exporting a report to certain formats (for example, to an Excel spreadsheet), creating tabular reports without using grid components, and so on.     Additional Designer Toolbar Buttons The "Standard" toolbar now features two new buttons: "Highlight Intersecting Objects" and "Search." The first button highlights intersecting objects, which are automatically highlighted in red in the image above. You can change the highlight color in the editor settings. The second button opens the text search or replace window. In this window, you can specify the search area: search in component names, string property values, content, or script text. Content refers to, for example, the value of the Memo property of the TfrxMemoView component. Let's move on to search settings. If the "Case Sensitive" checkbox is enabled, lowercase and uppercase letters will be distinguished. If the "Find All" checkbox is checked, the list of found items will be displayed in the panel below, with explanations of which report element the found text belongs to. Clicking on any item in the list will jump to the found element. When the "Find All" checkbox is unchecked, clicking the "Find Next" button (or pressing the F3 key on the keyboard) will jump to the next found element. Transitions between elements are done through the "Data," "Page," or "Code" tabs depending on the active tab. If the "Replace With" checkbox is checked, a window becomes active for entering the new text to replace the current text. The label on the "Find Text" button changes to "Replace." Now, when you click the "Replace" button, a dialog box like this appears: This dialog box allows you to confirm or cancel the text replacement. This functionality may be useful, for example, if you need to change the font of all components to another font. Or, for example, if you renamed a dataset that is actively used in scripts.
Read
October 30, 2024

Using Styles When Creating Reports in FastReport VCL

In FastReport VCL, a style refers to a set of visual parameters for a component, specifically: font, fill, and border. Right in the report designer, you can create a style that contains only font information, or just the border, or a combination of fill and border. You can use all of these parameters simultaneously or alternate them depending on your needs. Styles are convenient for mass changes to the appearance of components. This helps when adjusting several parameters so that you don't have to repeatedly set the same properties manually. Additionally, by changing style parameters, you can quickly alter the appearance of a report. You can save a completed style library in a separate file for use in configuring multiple reports. In FastReport VCL, styles can be combined into a ''StyleSheet''. The collection of style sheets is referred to as a "Style Table" (or "Style Book"). Each style exists within each style sheet, and in each style sheet, the same style can have different parameters. This allows for quick changes to the report's appearance simply by switching the current style sheet. This can be useful, for example, if the same report needs to be used in different operating systems with different fonts. Thus, the necessary styles can be set just by switching the style sheet. It can be considered that in FastReport VCL, each report has at least one style sheet named "Default."     Style Control Elements To manage and work with styles and style tables, there is a “Styles” toolbar.   Controls the use of style tables: This includes a submenu with two options: "Designer Style Book" — Allows the use of style tables in the report designer."Preview Style Book" — Allows the use of style tables in the preview window (to change the current style table). Enables style editing mode directly in the report. Adds a new style sheet. Responsible for selecting the active style sheet, as well as changing the name of the style sheet. Deletes the currently selected style sheet. Adds a new style. Allows selection of a style for the currently highlighted component, and enables changes to the name of the current style. Deletes the current style.   Additionally, there is a form available for editing and managing styles, which can be accessed from the menu “Report” -> “Styles.” The toolbar buttons on this form have the same functions as those on the “Styles” toolbar. Additionally, it allows you to save and load style tables from disk. On the left side of the form, there is a list of styles available in the report. When any style is selected, its parameters can be edited. Below this, there is a sample showing how the style is applied to a report element. In the center of the form, there are 3 buttons that allow you to edit the components of the style. Next to the buttons, there are 3 checkboxes where you can indicate whether the style contains a specific component — background color, font, or border. The use of each component of the style is either allowed or prohibited across all style sheets at the same time.     Working With Styles To set style properties, there is a special form accessible from the menu “Report -> Styles…” (screenshot above). This form allows you to add and remove styles in the report, rename them, and set their properties. You can also save and load them from style files. You can assign a style to a selected report component using the ComboBox on the styles panel or through the “Style” property in the Object Inspector. If you set a report component style to “No Style” or remove the style name in the Object Inspector, the appearance of the component will be retained. However, after these actions, the component will no longer depend on the style. You can also switch the report designer to style editing mode using the button on the styles panel (Edit Styles Mode). In this mode, two buttons appear on either side of the ComboBox with the style names, allowing you to add and remove styles using these buttons. When a style is created using the button on the styles panel, the new style inherits the properties of the currently selected component. When a style is deleted, the formatting of the report components is preserved. However, this formatting will now be stored in the component itself rather than in the style. Each user has the ability to edit styles directly in the report. If you edit the visual properties of an element that is assigned a style, you are essentially editing the properties of that style. This behavior can be observed directly in the designer. When changing the parameters of one component, all components that share the same style will also change.     Working With Style Tables To work with style tables, you first need to enable them. This is done by clicking the “Style Book Mode” button and selecting either the “Design Style Book” or “Preview Style Book” option. After this, the buttons “Add Style Sheet”, “Delete Style Sheet”, and the ComboBox with style table names become active. You can add, delete, and rename style tables, as well as make any one of them active. When a style table is activated, all styles change their state to match that of the current style table. When creating a new style table, the data for it is taken from the currently active style table. With the “Preview Style Book” option active, changing style sheets is available in the preview mode. A ComboBox will appear on the right side of the toolbar, where you can select the desired style sheet, and it will be immediately applied to the report.     Saving and Reading Styles Let's return to the style configuration window. In this window, there are "Save" and "Load" buttons. When clicked, these buttons open file dialogs for reading and writing, allowing you to save and upload the style table in the *.fs3 format. Regardless of the working mode with styles, all style tables present in the report are saved to the file. Typically, the end user should not edit the report; they only have the option to preview it. Therefore, the programmer should be able to set the current style of the report in the application code. This can be done as follows: begin  //loading the report    frxReport1.LoadFromFile(DefPath+'main.fr3');  //loading styles    frxReport1.Styles.LoadFromFile(DefPath+'main.fs3');  // to manage style tables, frxReport1.Styles.StyleBookMode should not be equal to []  frxReport1.Styles.StyleBookMode:=[fsbDesigner];  //setting the desired style    frxReport1.Styles.ActiveStyleSheet:='MyStyleSheet';  //applying the style to the report    frxReport1.Styles.Apply;  frxReport1.ShowReport();end; More details on working with styles are described in the programmer's guide.     Style Tables and Conditional Formatting Conditional formatting should be used with caution alongside style tables. If the “Preview Style Book” mode is active, changing the style will result in the loss of conditional formatting. However, formatting elements that are not used by the style can be changed without issues. In summary, working with styles and style sheets is not difficult at all. This functionality significantly simplifies and speeds up the report creation process. It allows you to create groups of reports with the same formatting style much more quickly.
Read
Fast Reports
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2025 Fast Reports Inc.