Skip to main content Skip to footer

.NET Reporting: Faster Rendering and Exporting with new FlexReport

Great news for reporting! If you’re using ComponentOne Studio Reports for WinForms (C1Report) or have any reporting needs, you'll experience better performance by just upgrading to FlexReport.

What is FlexReport?

FlexReport is a completely revamped and a newer C1Report, empowering .NET developers to solve complex problems for their application’s business needs. In addition to enhancing the way your users design their reports, you’ll also make data calculation easier when you take advantage of 10+ feature-enriched data visualization controls and a variety of functions available in FlexReport. FlexReport aims to be lightweight and twice as fast as C1Report, in particular for rendering small reports. What’s more, with better compatibility and enhanced report design, FlexReport allows you to import Crystal Reports more efficiently than ever.

Platform?

  • FlexReport will be introduced for WinForms for 2015 v3 (mid-November) and will be supported in other platforms in future releases.

How FlexReport is different?

  1. FlexReport uses Direct2D and DirectWrite for drawing and text drawing/measuring. Most industry standards show that these are more effective technologies than GDI+/GDI.Here is a Performance and rendering comparison between Direct Write/2D vs GDI:ComponentOne Studio FlexReport DirectWrite vs GDI Note that rendering of rounder corners is much smoother and accurate using FlexViewer that uses Direct Write/2D technology to render reports than C1PrintPreviewControl that uses GDI rendering. You may also note that the rendering time with FlexViewer is faster than C1PrintPreviewControl, one of the reasons is Direct Write/2D rendering, but it is also in combination with a faster reporting engine.
  2. FlexReport has a common base for a hierarchy of field objects like Barcode Field, Image Field etc., i.e., different field for different operation. Such a model allows users to create more flexible reports.
  3. FlexReport’s cache feature works with expressions, a common need in the reporting domain, so there’s no need to compile expressions at every execution.
  4. In FlexReport, PDF & HTML Export is implemented via special graphics components that directly convert all drawing commands to PDF/HTML components. This also makes PDF Export in FlexReport twice as fast as C1Report, where pages were drawn on metafiles, which resulted in loss of performance while converting GDI+ to GDI components.

Performance Comparison with C1Report

We've tested FlexReport alongside C1Report on a number of standard use-cases to demonstrate the performance improvement. Here are some results comparing FlexReport vs C1Report taken on Intel® Core™ i7-4870HQ Processor. The results show execution time in milliseconds for following areas:

  1. Rendering report
  2. Exporting report to PDF
  3. Exporting report to HTML

Use-Case I - Standard Reports (280 Pages)

This simple test case contained features like:

  1. Grouping on Database Fields
  2. Summary Field on Groups

Report Snapshot: ComponentOne Studio FlexReport Standard Reports Results: ComponentOne Studio FlexReport Standard Reports Figure 1: Standard Reports

Use-Case II - Complex Reports

The objective of a complex report is to use multiple features of report like multiple fields, groups and summary field in a report. The test case included:

  • Image and Chart in Page Header
  • Grouping on a Field
  • Detail section with Database Fields
  • Summary Field in Group Footer

The performance results were measured for a different number of report pages, from 10 to 500 pages. Report Snapshot: ComplexReport Results: ComponentOne Studio FlexReport Complex Reports Rendering Figure 2: Complex Reports (Render in Viewer) ComponentOne Studio FlexReport Complex Reports Export To PDF Figure 3: Complex Reports (Export to PDF)

Use-Case III - Reports with Charts/Barcodes

Barcode Report: This report uses the Barcode Field with QRCode Barcode Style and binds it with a Database Field. The Barcode is placed in the Detail section and displayed for every record. Report Snapshots: Barcode Chart Report: This simple report uses Chart Field in Detail section. The report is bound to about 77 records in the database and displays for every record. Chart Results: ComponentOne Studio FlexReport Barcodes Charts Results Figure 4: Barcodes/Chart Reports

Please note that test results will vary on different machines and configurations. Once FlexReport is out for release, we invite you to compare the results for yourself and leave your comments and feedback below.

What do you think about FlexReport performance gains? Leave a comment below. Thanks!

While performance is one of the aspects we’ve improved in FlexReport, we’ve also added many other functionalities to make it an easy and more flexible tool to use. Stay tuned for more news on FlexReport and other new features that will be part of it.

See more 2015 v3 News>>

MESCIUS inc.

comments powered by Disqus