Home General

ANN: ReportBuilder 14.0 is now available including Delphi XE2 support!

edited October 2011 in General

Digital Metaphors Corporation announces the release of ReportBuilder 14.0!

ReportBuilder 14.0 includes VCL support for Delphi XE2, Delphi XE,
Delphi 2010, 2009, 2007, 2006, and Delphi 7.

Overview: http://www.digital-metaphors.com/rbwiki/General/What's_New/RB_14

New Feature List: http://www.digital-metaphors.com/PDF/NewFeatures.pdf

Pricing: http://www.digital-metaphors.com/order

Upgrade here! https://www.digital-metaphors.com/secure

Version 14.0 - 10/21/2011

- Delphi XE2 support for VCL Win32
- Delphi XE2 support for VCL Win64

Design Layers
- separate layout elements into logical layers
- load/save design layers (example std header/footer or watermark)
- prevent users from adding, selecting, moving, deleting elements
- prevent users from seeing, selecting, deleting layers
- LayerTypes: Band, Page
- Inactive Layers draw alpha blended behind active layer
- ComponentOptions: Add, Delete, Select, Move
- LayerOptions: Select, Rename, Visible, Delete, Load, Save

- continuous page scrolling
- single and two-up page display
- background thread report generation
- hand scrolling
- PreviewFormSetings.PageDisplay property
- PreviewFormSettings.PageIncrement propery (control page generation)
- PreviewFormsSettings.SinglePageOnly (forces use of old screen device)
- Viewer.DeadSpace property (control amount of space outside of page)

Output Devices
- HTML file device
- PDF/A device (http://en.wikipedia.org/wiki/PDF/A)
- PDFSettings.PDFA boolean property (force PDF to PDF/A standard)
- PDF image compression (automatic jpeg compression)
- PDF image scaling (PDFSettings.ImageCompressionLevel)
- PDF, high quality metafile to bitmap conversion
- DocForm device (exact positioning of lines and text)
- RTFSettings.UseTextBoxes boolean property (exact text positioning)
- RTF/Doc device, support for CodePage and Font.CharSet
- XLS support for AppName, Author, Subject, Title (XLSSEttings)
- Email, Extended Mapi plug-in
- avoid security warnings, Unicode and Html support
- Email, support for HTML messages via Indy 10 Extended Mapi
- Email, EmailSettings.HtmlBody, BodyHtmlAttachments properties
- Email, EmailSettings.StreamAttachments option
- Email, Unicode message body (Unicode VCL w/Indy 10 or Extended Mapi)
- new ScrollableScreenDevice, used by Viewer to implement continuous
- PrintToFile enhancements
- DefaultFileDeviceType defaults to PDF
- default TextFileName, ArchiveFileName ($MyDocuments)\Report.pdf
- Change default file device, auto-changes default file name
- change output format in print dialog, auto-changes default file name
- support for wildcards in default FileName, ($MyDocuments) is resolved
by print dialog for display to end-user
- change the extension in the print dialog, changes the file

International Language support
- added 64-bit language modules

TeeChart support
- enhanced TeeChart Package Builder for 64-bit

- Variable support for Int64 via dtLargeInt data type
- Groups, PreventOrphans
- prevent group header with no detail at bottom of page
- prevent group footer with no detail at top of page
- Columns, ColumnBalancing
- generate vertical columns in min number of rows
- ColumnFooter, AlignToBottom boolean
- enables column footer to generate immediately after detail
- Band.Background property for all bands
- DrawCommand.AsMetaFile feature for simpler RCL add-on support
- SummaryBand enhanced to print on same page as columns

- enhanced group generation - PreventOrphans management
- enhanced horizontal and vertical Column generation

- DesignLayers
- LayerOptions: use to lock layers, hide layers
- for example, create a visible/invisible water mark layer
- ComponentOptions: prevent users from moving, deleting etc.
- new OnCustomSaveQueryDoc event
- new ShowHelp method - fires Designer.OnHelp event
- ReportExplorer, invokes Help via new Designer.ShowHelp

- new Int64 data type
- compiler/parser support for // comments
- enhanced object ref scoping: childreport can access parent report
- File functions: FileExists, DirectoryExists, ExtractFileName, etc.
- RTTI for PrintDialog
- RTTI for FileDevice
- RTTI for ObjectList
- RTTI enhanced for Picture, Graphic
- enhanced run-time exception message to display subreport name

- added 64-bit windows service (ReportBuilder Services)

*features may vary by ReportBuilder Edition and Delphi version
*RB 14 includes support for seven Delphi versions:
D7, D2006. D2007, D2009, D2010, DXE, DXE2.

Digital Metaphors Corporation


  • edited October 2011

    some really nice and useful features in the new release, thanks a lot!

    If I load an existing template, everything is in the foreground layer, in
    order to work with new release, which is good. In design layers it's
    possible to prevent components from being deleted by the user. That means
    that I am able to control the deletion of elements, but if I see it correct,
    the option coDelete (and others) applies to all elements. Some time ago I
    made a feature request to make it possible to control deletion of elements,
    i.e. of single / certain elements with the option to either allow it or not
    depending on user input etc. That means that the new option for design
    layers is still not what I was requesting, unless there is a way to handle
    the event when the check for element deletion is being executed. Is there a
    way? (something similar to ppDesigner.OnSelectionChanged, where it's
    possible to prevent selection of certain elements)


  • edited October 2011
    Good release!

    I would like to know what has been fixed, next to what is new. Is there
    going to be a 12.06, or can you publish the fixes that have been done in
    RB 14.0?

    Thanks in advance.

    Geerten Doornenbal

    Op 21-10-2011 23:50, Digital Metaphors schreef:
  • edited October 2011

    Bug Fixes for RB 14.0

    - Deleting a component while dragging caused an AV
    - Context menus, sometimes AV can occur when closing a dialog
    - Image border in designer did not match the border in preview

    - DBPipeline, added support for ftSingle field type, introduced by D2010

    - Producer, enhanced exception handling for the Report object.
    - SubReport, fix for exceptions, added a try..finally to CalcSpaceUsed
    - RichText, mod to support rendering a background color
    - CustomText, mod to FormatTextWithEllipsis to be consistent w/autosize

    - PDF, added underline, strikeout support for center, right wrapped text
    - PDF, Removed use of printer for wrapped text measurements
    - PDF, sometimes gif images were exported with black background
    - RTF, fix for render text containing reserved characters
    - RTF, fixes to improve exporting each group as a separate file
    - Image, updated to clear image during initialization

    -----> Professional <----------

    - SQL, fix validation to use use optimized "stealth mode" SQL
    - SQL, only update non-aggregate calcs when group search criteria added
    - SQL, dtAdvantage calc field in Group By, use SQLFieldName, not Expression

    -----> Enterprise <----------

    - fix for calling TStrings.SaveToFile from Unicode VCL

    Nard Moseley
    Digital Metaphors

    Best regards,

    Nard Moseley
    Digital Metaphors
  • edited October 2011

    Op 25-10-2011 17:30, Nard Moseley (Digital Metaphors) schreef:
  • edited October 2011

    The solution would be to define a design layer with a descriptive name and
    then place the elements that you want to prevent from being deleted into the
    design layer.

    Design layers offer a way to separate layout elements into meaningful
    groups. The advantages of the approach are many. You can assign a
    meaningful/description name to the layer. The layers can be edited
    individually without interfering with other layers. There are visual cues to
    the designer and to the end-user that let them know how things are

    Nard Moseley
    Digital Metaphors

    Best regards,

    Nard Moseley
    Digital Metaphors
  • edited November 2011
    That's may well be, but in complex reports it's hardly possible to separate
    the elements into design layers AND the layers to be meaningful at the same
    A meaningful group of elements can be on a separate design layer, but in
    that group only certain elements shall be allowed to get deleted, others
    shouldn't and so we have a problem already. Plus the fact that quite a few
    layers would arise -> the more design layers the more cimplicated it will be
    for the end user.

    Plus an event would be good, when an element is about to get deleted, so
    that I can react to it and to warn the user or something like that.

    Sorry to say, but the design layers and the option coDelete=false is not
    really a solution for the case / problem I'm describing. That would be only
    a kind of misusage(?), which is very limited and would work in very few
    situations only.

    Kind regards,

This discussion has been closed.