[]
        
(Showing Draft Content)

Breaking Changes

The following changes in ActiveReports 20 may require updates to your existing applications. Please review these items before upgrading.

New Enums for Export Settings

Summary

To standardize export settings, new public enumerations have been introduced to replace internal or scattered enum types.

  • A new PrintLayoutMode enum was added to MESCIUS.ActiveReports.dll.

  • A new PaddingType enum was added to MESCIUS.ActiveReports.Export.Xml.dll.

Impact

This affects projects referencing the following properties, as their types have changed:

  • PDF & Image Export: PrintLayoutMode in GrapeCity.ActiveReports.Export.[Pdf|Image].Page.Settings.

  • XML Export: HorizontalPaddings in GrapeCity.ActiveReports.Export.Text.Page.Settings.

Migration

Update your code to use the new enumeration types as shown below:

Property Location

Old Type

New Type

Export.Image.Page.Settings

GrapeCity.ActiveReports.ImageRenderers.PageControl.PrintLayoutMode

GrapeCity.ActiveReports.PrintLayoutMode

Export.Pdf.Page.Settings

GrapeCity.ActiveReports.ImageRenderers.PageControl.PrintLayoutMode

GrapeCity.ActiveReports.PrintLayoutMode

Export.Text.Page.Settings

GrapeCity.ActiveReports.Export.Text.Page.PaddingType

GrapeCity.ActiveReports.Export.Xml.Text.Page.PaddingType


Direct2D Rendering Enabled by Default

Summary

The Direct2D rendering engine is now the default for desktop controls. This applies to:

  • Page and RDLX reports.

  • Section reports running in CrossPlatform compatibility mode.

Impact

This change may affect applications that rely on specific behavior of the legacy GDI printer wrapper (e.g., manual manipulation of PageDocument.Printer or SectionDocument.Printer properties/events).

Migration

If your application requires the legacy GDI rendering behavior, you must explicitly configure the Viewer.PrintingSystem to "GDI" in your ActiveReports.config file:

<Configuration>
    <ActiveReportsConfig.Desktop>
        <Settings>
            <add key="Viewer.PrintingSystem" value="GDI" />
        </Settings>
    </ActiveReportsConfig.Desktop>
</Configuration>

Configuration File Standardization

Summary

The ActiveReports configuration schema has been updated to follow standard .NET configuration rules, replacing the previous proprietary section logic.

Impact

This affects all projects relying on ActiveReports.config or app.config to configure the reporting engine. The legacy configuration schema keeps working, but, strict adherence to the new schema is required for guaranteed stability.

Migration

Update your configuration file to match the new .NET-compliant schema. Please refer to the Configure ActiveReports using Config file documentation for the full specification.


Designer Assembly Refactoring

Summary

The monolithic MESCIUS.ActiveReports.Designer.Win assembly has been split into three specialized assemblies:

  1. MESCIUS.ActiveReports.Designer.Win: The core designer functionality.

  2. MESCIUS.ActiveReports.Editor.Net: The code editor (formerly QWhale), now built from sources with specific fixes.

  3. MESCIUS.ActiveReports.Advanced.Win: The End-User Designer (EUD) components.

Impact

This specifically affects the process of localizing the designer. You can no longer build a single resource assembly; you must now build separate resource assemblies for the components you are using.

Migration

Split your localization resources into separate satellite assemblies corresponding to the new assembly names listed above.


Removal of MESCIUS.ActiveReports.Serializer.VS2022 Package

Summary

The MESCIUS.ActiveReports.Serializer.VS2022 NuGet package has been deprecated and is no longer required. Its functionality has been merged or superseded by other assemblies.

Impact

Projects explicitly referencing this package will fail to restore NuGet packages or build.

Migration

Remove the reference to MESCIUS.ActiveReports.Serializer.VS2022 from your project dependencies.


Updated Signature for PageDocument.Render

Summary

The Render method signature has been updated. The progress argument previously used an internal type but now uses a public type from the GrapeCity.ActiveReports.Document namespace.

Impact

This affects code calling PageDocument.Render with a progress reporter.

Migration

Update your using directives or fully qualified names to use the new type location.

  • Old: GrapeCity.ActiveReports.Core.Rendering.ProgressInfo (Internal)

  • New: GrapeCity.ActiveReports.Document.ProgressInfo


HTML Export Settings Enum Changes

Summary

The RenderMode and RenderingEngine properties in GrapeCity.ActiveReports.Export.Html.Page.Settings have changed types. They now use enums defined directly in the HTML Export namespace rather than the Core namespace.

Impact

This affects code that exports report to HTML.

Migration

Update your code to reference the enums in GrapeCity.ActiveReports.Export.Html.Page. If namespace conflicts occur, update your using directives or use fully qualified names.


PageDocument API Refactoring (Parameters & Interactivity)

Summary

Internal types previously exposed in the public API have been replaced with new public wrappers in the GrapeCity.ActiveReports.Document namespace.

  • PageDocument.Parameters: Now returns GrapeCity.ActiveReports.Document.ParameterCollection.

  • PageDocument.ApplyInteractivity: Now accepts GrapeCity.ActiveReports.Document.InteractiveActions.

Impact

This affects code that accesses report parameters or handles interactivity actions using types from GrapeCity.ActiveReports.Core.Rendering.*.

Migration

Remove references to GrapeCity.ActiveReports.Core.Rendering.ReportParameters or Interactivity. Update your code to use the equivalent types in the GrapeCity.ActiveReports.Document namespace.


Data Collection Type Changes

Summary

The collection type for several properties in the GrapeCity.ActiveReports.Extensibility.Data and SchemaModel namespaces has been standardized. The custom IItemCollection<T> interface has been replaced with the standard .NET System.Collections.Generic.IReadOnlyList<T>.

Affected Properties:

  • DataTable: Rows, Columns

  • Table: Columns

  • ForeignKey: SourceColumns, DestinationColumns

Impact

This affects code that implements custom Data Providers or working with the Schema Model. Code explicitly referencing IItemCollection<T> or using the .ToItemCollection() extension method will fail to compile.

Migration

  • Update variable declarations to use IReadOnlyList<T>, IList<T>, or var.

  • Replace calls to .ToItemCollection() with standard LINQ methods such as .ToList() or .ToArray().