This document explains how you can implement a storage for an End-User Report Designer where all reports are retained: a database, an eXpress Persistent object, a ZIP file, or any other location.
You can store report definitions in a database or in any other custom location. This may be useful when providing end-users with the capability to create and customize reports using the End-User Designer, if it is necessary to have a common target for saving and sharing all reports.
To implement a Report Storage in your Report Designer, create a custom report storage object that inherits from the ReportStorageExtension class. The following are its essential members.
After you have defined your Report Storage type, register it by calling the static ReportStorageExtension.RegisterExtensionGlobal method.
An in-depth sample application is available online at Report Storage for the End-User Report Designer.
It demonstrates how to store reports in the following formats:
a DataSet object (the DataSetReportStorage class);
an XPCollection object (the XpoReportStorage class);
a single ZIP file (the ZipReportStorage class).
Alternatively, you can use the following online resources.
To serialize custom objects (such as custom parameters or data sources), you can extend the standard CodeDOM logic of storing report definitions by implementing XML serialization.
To implement a report storage to persist report definitions in a database or in any other custom location, use the methods of the IReportStorage interface. This approach is illustrated in the Store Reports in the Report Designer document.
To learn how you can provide a server-side storage for your web reports, refer to the following document: Implement a Report Storage.