The following example demonstrates how to implement a report storage to persist 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 XtraReports End-User Designer, if it is necessary to have a common target for saving and sharing all reports.
The default report serialization mechanism does not support the serialization of a report's data source. The following examples illustrate how you can provide a custom XML serialization logic for a report's data source as well as its custom parameters.
- How to implement custom XML serialization of a report that is bound to a dataset;
- How to serialize an XPO data source;
- How to serialize parameters of custom types.
Question Comments
Added By: (no info) at: 10/8/2012 10:48:21 AM
There is a slight error in the example if you are using a different XPO provider. The call to create the XpoReportStorage is prior to setting the default DataLayer. This results in the default MS Access DataLayer being used in the XpoReportStorage parameter. Changing the statement (as indicated below) will result in the expected behavior:
string conn = SQLiteConnectionProvider.GetConnectionString(@"c:\temp\ReportStorage.sqlite");
XpoDefault.DataLayer = XpoDefault.GetDataLayer(conn, AutoCreateOption.DatabaseAndSchema);
reportStorage = new XpoReportStorage(new UnitOfWork());
A hint for all those wo tried this with version 13.1.4:
This Example can not be built as-is using DevExpress 13.1.4 even after project conversion.
The ZipReportStorage.cs contains renamed classes:
- ZipFileCollection is now named InternalZipFileCollection
- ZipFile is now named InternalZipFile
- ZipArchive is now named InternalZipArchive
After renaming all occurences of those classes with the new names everything works just fine.
Added By: BINITR at: 10/25/2013 2:18:39 PMI'm trying to connect to the datasource Sqlite but I can not figure out how to do. I also downloaded the componeti OleDb for Sqlite but without result.
Added By: Wim Koppelaar at: 5/24/2015 2:59:21 AMNice example of the possibillities. But I don't understand where StorageDataSet is comming from?