ReportBuilder v21.0 Enterprise: AutoPatch (Tokyo/Rio/Sydney, 32/64bit)
ReportBuilder v21.0 Enterprise: AutoPatch (Tokyo/Rio/Sydney, 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 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.
Version 21.0 - May 20, 2021
---------------------------
Designer
- new Designer.AutoSave boolean property
- new Designer Win 10 per monitor High DPI improvements
- new TextFileName property editor to use DefaultFileDeviceType
Enhanced High DPI - v2 Per Monitor DPI
- Windows 10 / Latest Delphi
- Virtual Image List (scaleable images)
- Form/Dialog save/load state
- Toolbars/ToolWindows
RCL
- new PDFComponent
- embed PDF documents in reports (similar to section subreport)
* requires PDFReader plug-in: PDFium or WPViewPDF
- new BarCode 128 - GS1 improvement
- AutoEncode, CodeSet C must encode only pairs of 0-9, exclude FNC1
- new 2DBarcode, Rotation support (90 degree increments)
- new QRCode, Exclude UTF8 BOM (Byte Order Mark) property
- new Checkbox, FieldTitle property (PDF form fields)
- new DBImage, Automatically load image from URL DB value
- new $Desktop file path variable support
- new RichText support for Superscript, Subscript
- new RichText.CharFormat: TppTextAttributes property
- new TppTextAttributes.YOffset: TppCharYOffsetType property
- new TppCharYOffsetType = (coNormal, coSuperscript, coSubscript)
- new RichText Editor SuperScript, Subscript toolbar buttons
- new RAP RTTI for RichText.CharFormat
RAF Merge Utility
- new TppRAFMerge, utilty for merging archive files
- new TppArchiveDevice.MergeUtility: TppRAFMerge public property
DataPipeline
- new Editing boolean property returns true if in editing state
Preview
- new Scrollable Page Preview support for main or background thread
- PreviewFormSettings/Viewer UseBackgroundThread boolean property
- new Multi email plugin support
Output Devices
- new ImageDevice, for single page do not append _PageNo suffix
- new Xlsx, XlsSettings CacheToFile, Optionally use MemoryStream rather than FileStream
- new Xlsx/Xls, ensure memo lines map to same col
- new Xlsx/Xls, keep columns aligned when some values empty
- new Xlsx/Xls, shape rendering to support for alternating gray bar style detail
- new PDF, Digital Signatures
* requires OpenSSL library
- new PDF, Custom PDF Metadata
- new PDF, Document-level jаvascript
- new PDF, ZUGFeRD 2.x support
- new PDF, ZUGFeRD AutoParse property
- new PDF, Page Layout control (i.e. Single Page, Continuous, Two-Up, etc.)
- new PDF, Page Mode control (i.e. Thumbnails, Attachments, Outline, etc.)
- new PDF, PrintScaling property
- new PDF, Transparent image processing enhancements
- new PDF, Support for large Metafile to Bitmap conversions
- new PDF, Built-in MIME type detection
- new RTF, RichText content exported to a single TextBox
Email
- new Multiple email plugin support (Single SMTP plugin + multiple cloud plugins)
- new Email ConnectionSettings property group
- new Stand-alone TppEmail object can be used to send emails without a report
- new Loopback HTTP OAuth2 verification
- Default browser now used to authenticate
- Decoupled all Mail REST API from RB
- new SMTPOutlook plug-in, SetModal class function to control Outlook client
Cloud Drive
- new Directory Support
- new Built-in cloud drive directory explorer
- new Loopback HTTP OAuth2 verification
- Default browser now used to authenticate
- new Support for uploading large files
- new Login information properties
- new Decoupled all Cloud REST API from RB
- new Updated documentation to match latest API versions
- new Google Drive, added support for "Desktop Application" registration
- new DropBox, added EdgeBrowser verification support
ReportExplorer
- new Save logic, added check for DataPipeline.Editing
DADE
- new QueryDesigner Search, ... button to launch SQL editor for SQL Expression
- new SQL Search Criteria support for :ParamName resolution within a SQL SubSelect
- new Magic SQL linking support for case where Criteria Value contains field name reference
- DADE Collation/Magic SQL linking
- new TppCustomDataPipeline.RegisterCompareStringHook class procedure
for case where DB collation <> RB built-in collations
RAP
- new conversion functions:
- StrToDateDef, StrToDateTimeDef, StrToTimeDef, StrToCurrDef, StrToIntDef, StrToInt64Def
TryStrToDate, TryStrToDateTime, TryStrToTime, TryStrToCurr, TryStrToInt, TryStrToIn6
- new CodeModule DataPipeline references optimization
- build list of DataPipeilnes used by RAP code used by engine and compiler/run-time
- new RichText.Paragraph RAP RTTI for
- TabCount, GetTab(liIndex), SetTab(aIndex, aTabPos)
- NumberingStyle
- LineSpacing
- RTLReading
---------------------------
Designer
- new Designer.AutoSave boolean property
- new Designer Win 10 per monitor High DPI improvements
- new TextFileName property editor to use DefaultFileDeviceType
Enhanced High DPI - v2 Per Monitor DPI
- Windows 10 / Latest Delphi
- Virtual Image List (scaleable images)
- Form/Dialog save/load state
- Toolbars/ToolWindows
RCL
- new PDFComponent
- embed PDF documents in reports (similar to section subreport)
* requires PDFReader plug-in: PDFium or WPViewPDF
- new BarCode 128 - GS1 improvement
- AutoEncode, CodeSet C must encode only pairs of 0-9, exclude FNC1
- new 2DBarcode, Rotation support (90 degree increments)
- new QRCode, Exclude UTF8 BOM (Byte Order Mark) property
- new Checkbox, FieldTitle property (PDF form fields)
- new DBImage, Automatically load image from URL DB value
- new $Desktop file path variable support
- new RichText support for Superscript, Subscript
- new RichText.CharFormat: TppTextAttributes property
- new TppTextAttributes.YOffset: TppCharYOffsetType property
- new TppCharYOffsetType = (coNormal, coSuperscript, coSubscript)
- new RichText Editor SuperScript, Subscript toolbar buttons
- new RAP RTTI for RichText.CharFormat
RAF Merge Utility
- new TppRAFMerge, utilty for merging archive files
- new TppArchiveDevice.MergeUtility: TppRAFMerge public property
DataPipeline
- new Editing boolean property returns true if in editing state
Preview
- new Scrollable Page Preview support for main or background thread
- PreviewFormSettings/Viewer UseBackgroundThread boolean property
- new Multi email plugin support
Output Devices
- new ImageDevice, for single page do not append _PageNo suffix
- new Xlsx, XlsSettings CacheToFile, Optionally use MemoryStream rather than FileStream
- new Xlsx/Xls, ensure memo lines map to same col
- new Xlsx/Xls, keep columns aligned when some values empty
- new Xlsx/Xls, shape rendering to support for alternating gray bar style detail
- new PDF, Digital Signatures
* requires OpenSSL library
- new PDF, Custom PDF Metadata
- new PDF, Document-level jаvascript
- new PDF, ZUGFeRD 2.x support
- new PDF, ZUGFeRD AutoParse property
- new PDF, Page Layout control (i.e. Single Page, Continuous, Two-Up, etc.)
- new PDF, Page Mode control (i.e. Thumbnails, Attachments, Outline, etc.)
- new PDF, PrintScaling property
- new PDF, Transparent image processing enhancements
- new PDF, Support for large Metafile to Bitmap conversions
- new PDF, Built-in MIME type detection
- new RTF, RichText content exported to a single TextBox
- new Multiple email plugin support (Single SMTP plugin + multiple cloud plugins)
- new Email ConnectionSettings property group
- new Stand-alone TppEmail object can be used to send emails without a report
- new Loopback HTTP OAuth2 verification
- Default browser now used to authenticate
- Decoupled all Mail REST API from RB
- new SMTPOutlook plug-in, SetModal class function to control Outlook client
Cloud Drive
- new Directory Support
- new Built-in cloud drive directory explorer
- new Loopback HTTP OAuth2 verification
- Default browser now used to authenticate
- new Support for uploading large files
- new Login information properties
- new Decoupled all Cloud REST API from RB
- new Updated documentation to match latest API versions
- new Google Drive, added support for "Desktop Application" registration
- new DropBox, added EdgeBrowser verification support
ReportExplorer
- new Save logic, added check for DataPipeline.Editing
DADE
- new QueryDesigner Search, ... button to launch SQL editor for SQL Expression
- new SQL Search Criteria support for :ParamName resolution within a SQL SubSelect
- new Magic SQL linking support for case where Criteria Value contains field name reference
- DADE Collation/Magic SQL linking
- new TppCustomDataPipeline.RegisterCompareStringHook class procedure
for case where DB collation <> RB built-in collations
RAP
- new conversion functions:
- StrToDateDef, StrToDateTimeDef, StrToTimeDef, StrToCurrDef, StrToIntDef, StrToInt64Def
TryStrToDate, TryStrToDateTime, TryStrToTime, TryStrToCurr, TryStrToInt, TryStrToIn6
- new CodeModule DataPipeline references optimization
- build list of DataPipeilnes used by RAP code used by engine and compiler/run-time
- new RichText.Paragraph RAP RTTI for
- TabCount, GetTab(liIndex), SetTab(aIndex, aTabPos)
- NumberingStyle
- LineSpacing
- RTLReading