Delphi
ReportBuilder 23.00 Enterprise (Tokyo/Rio/Sydney/Alexandria/Athens, 32/64bit)
ReportBuilder is the de-facto standard for Delphi reporting solutions. The genesis of ReportBuilder was the desire to deliver a product that does for reporting what Delphi does for application developmen...
Description
ReportBuilder is the de-facto standard for Delphi reporting solutions. The genesis of ReportBuilder was the desire to deliver a product that does for reporting what Delphi does for application development. In that spirit, ReportBuilder provides both a RAD environment and an object-oriented platform for solving the reporting equation. The RB story continues to be written every day as we continue to evolve the product and collaborate with the RB community. It’s our passion.
With ReportBuilder Enterprise, you get everything included in ReportBuilder Professional, plus the RAP language, which allows developers and end users to code calculations and complex event handlers at run-time. RAP enables the entire report definition (data, calculations, and layout) to be stored outside of the application executable.
In the introduction to ReportBuilder, the reporting equation is described. The reporting equation divides reporting into four main activities:
In ReportBuilder Enterprise, the goal is to deliver a full-fledged reporting solution to end users. This goal is achieved by delivering visual, easy-to-use solutions in each of these four areas. This screen shot of the ReportBuilder Report Designer shows the ergonomic design of the user-interface.
Each of the four areas of reporting has a representative notebook tab containing a visual environment for the creation and configuration of components within that area. The results of each area then become inputs to the next area: data feeds into calculations, calculations feed into components within the report layout, and the report layout is rendered into a preview of the report. The implementation used by ReportBuilder Enterprise for each area of reporting is described below.
Data
Within the work environment of the Data tab, end users can quickly create dataviews, which can then be used to supply data to reports. Dataviews are usually created via the Query Wizard or Query Designer. Both of these tools are visual; they also allow the end user to select the tables, fields, search criteria, and sort order necessary for the report. Behind the scenes, an SQL statement is generated and used to retrieve the data from the database. A screen shot of a completed dataview is shown below.
The solution described above is the standard behavior within the data workspace. However, the developer can customize this user-interface by doing one of three tasks:
Register a replacement query wizard or query designer.
Remove the query wizard or query designer.
Create new dataview template classes that can simplify the data selection process even further by establishing the relationship between the tables in the database and presenting an alternative user-interface (such as a single form that allows search/sort criteria to be entered).
The bottom line is that the Data area contains a turnkey solution that can be used out-of-the-box, but if customizations are needed, an architecture has been provided so that those customizations are possible.
Calc
The Calc workspace is used to manage the RAP code associated with the Report. The Calc workspace contains a tree view of the report, all the bands within the report, and all the objects within each band. When a band or component is selected, all the events for that component are shown in a list. The user can then select an event and code the event handler in the syntax-sensitive code editor at the bottom. The following screen shot shows an OnPrint event as coded for a Line component.
This screen shot shows the Calc workspace in its most feature-rich and complex configuration. Development work completed here can be passed on to end users so that they can modify it, locked down so that end users can only view it, hidden completely so that end users do not know it is there. The most scaled-down version of the Calc tab is provided by the dialog only interface, where no Calc tab exists at all, and a single syntax-sensitive code-editor dialog is accessible from the Calculations… menu option of the variable component. The user-interface and behind-the-scenes architecture has been made highly scalable in order to meet the various needs of developers.
Design
The Design workspace contains the actual layout of the report. The user-interface is identical to the one presented to developers using ReportBuilder at Delphi design-time; in other words, it is full-featured and professional. The Office97 interface-style makes the Design workspace especially easy to learn for end users. A Report Wizard is available for creating reports quickly. You can customize this interface by replacing any of the dialogs it uses and by registering your own report wizards.
Preview
The Preview workspace contains the rendered report. The report can be printed to the printer or to various file formats from this workspace.
What's New for RB 23 (February 4, 2025)
--------------------
Installer
- new "All Languages" option when selecting language resources
Designer
- new ReportWizard, restore field to original position when de-selected
- new ReportTree, optimize to eliminate flicker
- new ReportTree, set workspace focus when component selected
- new DataTree, optimize to eliminate flicker
- new DataTree, update selected DataPipeline when report/subreport selected
- new Object Inspector, improved VclStyle support
User Interface
- new Enhanced Tabs/TabbedNotebook VclStyle support
- new Toolbars/ToolWindows enhanced VclStyle support
- new Menu enhanced VclStyle support
- new VclStyleTheme IsDarkTheme: boolean method (detect Dark themes)
- new TppSpinButton descends from TSpinButton (VclStyle support)
- new Rotation angle dialog
Image Resources
- new Image Resource (.res) support for PNG resources
- new Preview toolbar icons
Preview
- new Thumbnail optimize performance when show/hide/resize Thumbnails
- new PageCache optimize performance when Outline enabled
- new Preview toolbar icons
- new Preview auto-detect dark theme and use dark icons
RCL
- new PDFComponent FitToPage boolean property
- new Checkbox Radio buttons
- new Checkbox FormFieldSettings
- new Image Rotation
- new Image ExportScaledImage property
- new DrawImage.ClipMetafile property
Output Devices
- new DocxDevice improved text rendering accuracy
- new XlsxDevice enhanced to support DateTime formats w/quoted strings
- new PDF Radio button form-field support
- new PDF Layers support
- new PDF Bookmark (Outline) support
- new PDF Device refactor for increased speed and efficiency
- new PDF SVG image support via Skia
- new PDF ZUGFeRD 2.3 compliance
Email
- new Multi-email plugin support for all plugins
- new Bulk-email send option
- new MAPI compatibility mode (32/64 bit)
- new Email Status events
- new Email Status dialog
- new Email Status success splash dialog
- new Email Status in preview status bar
- new Email Refined and localized status messages
- new Group email status and error support
- new Webmail Refresh token encryption
- new Webmail Group email support
- new Webmail Log-in/out options
- new Webmail Account info when logged in
Cloud Drive
- new Refresh Token encryption
- new "Stay Logged In" option
- new Shared cloud drive/folder support
- new Shared cloud drive/folder view in Cloud Explorer
- new Cloud log-in/out options
- new Account info access when logged in
- new Logged-in status info in Cloud dialog
- new Ability to log out/in from Cloud dialog
------> Professional <-------
ReportExplorer
- new Confirm Replace dialog 'Yes to all' option (when pasting items)
QueryDesigner
- new Optimize screen drawing to eliminate flicker
- new TableJoin dialog enhanced to be resizable
- new TableJoin dialog field list views w/sortable columns
------> Enterprise <---------
RAP
CodeExplorer
- new Optimize screen drawing to eliminate flicker
Code Editor
- new Left margin with line numbering (like Delphi)
- new Search/Replace tool panel
Code Toolbox
- new Optimize screen drawing to eliminate flicker
- new Datatree: Update selected DataPipeline when Report/Subreport selected
Compiler
- new For/While loops support nesting
------> Server <---------
RB Services (Windows Service)
- new Improved Windows Service 64-bit install
- new Improved TrayIcon app 64-bit compatibly
ReportServer
- new Exception.StackTrace to log, when available
- requires using JCLDebug, EurekaLog, MadExcept, or other...
*features may vary by ReportBuilder Edition and Delphi version
*RB 23 includes support for Delphi versions: Delphi 12, Delphi 11, Delphi 10.4.2, Delphi 10.3, Delphi 10.2, Delphi 10.1, Delphi 10, Delphi XE8, XE7, XE6, XE5, XE4, XE3, XE2, Delphi 2007, and Delphi 7.
Bug Fixes for RB 23.0
----------------------
RCL
- Report, AV can occur when subreport template loaded as main report
- RichText, Update to improve RichText multi-thread support for RBServer
Email
- Fixed bug disabling web mail when only one plugin registered
Output Devices
- PDF, Hyperlinks enabled for PDF/A
- PDF, Fixed AV with Delphi 2007 and earlier
- PDF, Fixed AV when exceptions occurred
- PDF, Fixed rare issue where streamed attachment would not be used
- RTF, Added check for nil renderer
- Xlsx, When CacheToFile True, AddToZip method not honoring setting
- Xlsx, Reports containing RichText can sometimes result in invalid file output
- Xlsx, Removed line of code that adds an escape to formats containing spaces (' ')
- Xlsx, When DBText/Variable OnGetText used export DisplayFormat as ''
- Xlsx, Added support for DateTime formats containing quoted strings
- Docx, Memory overflow can occur when stretchable memo is empty
- Docx, Memory overflow can occur when 2 layout elements have same left, top
- Docx, Improve/fix text accuracy