XAF: Reporting V2 (What’s New in 13.2)

With the upcoming release of the eXpressApp Framework (version 13.2), we’re introducing a new way in which to create reports for your XAF powered application. Simply said, you’ll now be able to create your report using XtraReports within Visual Studio and effortlessly integrate them into your XAF applications.

This is an introductory post for the ReportsV2 module and I’ll describe it in more detail once we release. For now, please keep in mind that this will ship as a beta. We are looking forward to your feedback so we can continue to improve the module to meet your specific requirements.

To start using ReportV2, I’ll select it from the toolbox…


Because ReportsV2 integrates XtraReports at design time, you can use all the examples and documentation form our Reports Team. As you might imagine, when creating reports with this new module, you’ll be writing code and creating your own custom template within Visual Studio using your language of choice (C#, VB.Net). XAF will allow you to preview and print these new templates at runtime much like the existing Reports module. Since the design time report is a template, it is not editable at runtime, however, it is possible to clone it, make an editable copy and continue designing at runtime. In addition to native integration, ReportsV2 should make it easier for you to work with Stored Procedures, SubReports and hosting of custom components (this will be the subject of a dedicated blog post)..

To integrate XtraReports at design time, our team introduced two new components: the CollectionDataSource and the ViewDataSource. In the first beta release, you will need to add them to your toolbox manually.


The CollectionDataSource component

Drag and drop the component from the VS toolbox to the designer template of an XtraReport class. To create the XtraReports class, use existing XtraReports documentation. After setting up the ObjectTypeName to one of your domain objects the CollectionDataSource will load all objects properties as is.


The ViewDataSource component

Much like CollectionDataSource, you will need to set the ObjectTypeName property. Note that the ViewDataSource component is designed to load only required plain data properties or aggregated calculations instead of the entire object hierarchy. As a result, you will get better performance and less memory consumption when you are dealing with thousands of records and complex data models. To configure the properties or expressions that will be used as a datasource, you can use the Properties collection as illustrated below.


Runtime integration

To load the report you created at design time with the new module, we provide a ModuleUpdater subclass -PredefinedReportsUpdater - which can be used as shown in the snippet below.

public override IEnumerable<ModuleUpdater> GetModuleUpdaters(IObjectSpace objectSpace, Version versionFromDB) {

    ModuleUpdater updater = new DatabaseUpdate.Updater(objectSpace, versionFromDB);

    PredefinedReportsUpdater predefinedReportsUpdater = new PredefinedReportsUpdater(Application, objectSpace, versionFromDB);

    predefinedReportsUpdater.AddPredefinedReport<XtraReportOrdinary>("Inplace Report", typeof(Contact), isInplaceReport: true);

    predefinedReportsUpdater.AddPredefinedReport<XtraReportView>("Report with ViewDataSource", null);

    return new ModuleUpdater[] { updater, predefinedReportsUpdater };


We’ve created a specific demo for the ReportsV2 module. It is located in your C:\Users\Public\Documents\DXperience 13.2 Demos\eXpressApp Framework\ReportsV2Demo folder.

Because ReportsV2 will ship as a beta, we do not recommend its use in production code. We do want to hear your thoughts on ReportsV2 and are looking forward to incorporate your feedback…so please let us know what you think…


9 comment(s)

While I think its great you can now create in Visual Studio, I have little use for this scenario. My reports are designed by myself, support staff, training partners and users. Myself being the only person with Visual Studio access.

I hope this does not stop progress on the original reports module. I absolutely need users to be able to design/edit reports with the scheduler controls. Additionally I need to make sure the current XAF report solution can handle the newly announced ability to deal with pre-filled forms by setting that watermark.

8 November, 2013

Great thing! :)

8 November, 2013

I really have to agree with Nate here, although this is really nice to have, when you see some of the really valuable advances that are being made in the "unsupported" Xpand framework, its disappointing to see that this one made it to the top of the priority list.  Really have to ask the question, why Version 2 of an existing Module when there are so many more opportunities like Dashboards, et al?

10 November, 2013


Yes we do have a great number of customers like you and we believe that ReportsV2 will save your time. Simply because for example now you can create powerful report templates, replace any scripting workarounds you might use with  .NET code, use samples and articles directly from the XtraReports suite without much integration efforts, work with stored procedures, host custom components, get update with new stuff released from the XtraReports team without spending any integration resources.


First i want to correct you, eXpandFramework is not unsupported at all. It is closed monitored and all issues are addressed in short time. However it is a community project and its needs are totally different.

Now about why we have spend our resources for a ReportsV2 I am sure you agree with me that Reports is one of the major reasons we build LOB applications. So as I already answered to Nate we wanted to allow you guys to utilize the real power of the XtraReports and native .NET code thus speeding up your development and raise its quality. Therefore the ReportsV2 addresses a great number of issues for a great number of users when working with the major need of a LOB application which is Reporting.

10 November, 2013

Thanks Apostolis, but if my end users and support staff can't edit these reports without visual studio then it costs me time rather than saving any. I love the new feature, and will utilize it for some canned reports I imagine (can this module and the old one exist side by side?) but I really need new features in the existing report module.

13 November, 2013

Thank you for the additional feedback Nate. As I already mentioned in this post it is possible to clone the report created inside VS in runtime so to make it editable for your end users. As for the existing reports module we will integrate new features based on the number of requests.

14 November, 2013

Wait, so can we create a report in Visual Studio and deploy them, the end users can use the report designer without needing visual studio to edit the cloned report? If that's the case then Yes! Sign me up!

14 November, 2013

quote from this post:

Since the design time report is a template, it is not editable at runtime, however, it is possible to clone it, make an editable copy and continue designing at runtime

So this means that for for the design-time template XAF will create an non-editable record however you can simply clone it and make it editable and continue your work at runtim as with current reports module.

p.s.: Of course you are already signed up :)

14 November, 2013

Got it! I read that part but it wasn't clear how. I get it now!

14 November, 2013

Please login or register to post comments.