Introducing FlexReport: A Fast, Flexible Reporting Tool for WinForms
Overview
Generally, the key requirements of reporting applications are that report building and document generation should be simple, fast, and accurate. ComponentOne Studio introduces FlexReport, a completely revamped and newer C1Report, empowering .NET developers to solve complex problems for their application’s business needs. With FlexReport, you can:
- Experience performance twice as fast as C1Report
- Migrate from Crystal Reports in one click
- Use FlexViewer for all document types
- Enhance report rendering
- Double-click reports to open directly in FlexReport Designer
- Take advantage of feature-rich controls like ParagraphField
FlexReport Highlights
Faster than C1Report
FlexReport aims to be the industry's lightest and fastest reporting tool, in particular for small reports.
- Twice as fast as C1Report in general
- Major exports like PDF & HTML will be up to twice as fast as C1Report
Enhanced Rendering
FlexReport's modern rendering uses DirectWrite/Direct2D technology to draw/generate report content that does not depend on measurement context like Printer, Screen, etc. This makes the rendering of text, shapes, and borders much sharper than before. Comparison of rendering times in FlexReport vs. C1Report
Combine Multi-Formatted Text, Database Fields, and Scripts in a Single Field
FlexReport introduces Paragraph Field, which has the power to combine static text, database fields, expressions, and scripts in a single field. Moreover, you can choose any word and set it in a different format. You can even choose an expression and edit it separately in the Expression editor. Editing expressions in FlexReport
Flexible Viewer Control for all Document Types
Up to now, you've been using multiple preview controls for every Document type like C1PDF, C1Report, SSRS, C1Document types, etc. With the introduction of FlexViewer, it's easier to load such documents in a single viewer, starting with the support for C1Report, C1FlexReport, SSRS, and C1Document types in 2015v3. FlexViewer will be more interactive, giving you the ability to:
- Use and reset parameters
- Options to refresh & cancel report rendering
- Bookmarks
- New thumbnail panel
- DirectWrite/Direct2D-based rendering
Modern UI
FlexReport's designing and previewing tools provide a ribbon-based UI interface, offering a rich user experience with easy-to-access, well-placed designer and viewer options.
Double-click FlexReport (.flxr) to open directly in the Designer App
Reports created with FlexReport are saved with the .flxr extension. The advantage is that you can open a .flxr report directly in the FlexReport Designer App with a simple double-click.
New Designer App with a Rich User Experience
The FlexReport Designer App has additional features to improve your report design experience:
- Snap Lines to show and align distance from controls
- Collapsible and expandable sections and subsections
- Show captions settings for optionally displaying section and subsection header strips. Options include:
- All (shows strip on all)
- Sections (shows strip on Sections and not subsections)
- Hairline (hides the section header strips)
- Hidden
- Chart editors at design time to set the chart field's properties, data source, and visual effects
- Data tab to add, edit, and remove data sources, parameters, sort expressions, and calculated fields. Corresponding properties are displayed in the property grid. Sort expressions and calculated fields can be edited in the expression editor by right-clicking and choosing EDIT
- Ability to edit expressions through "Edit Expression" in the context menu
- Align the general button to automatically align numbers to the left, and other values to the right
Highly Accurate Crystal Report Migration
FlexReport supports more features that improve its compatibility with Crystal Reports. Expect more accurate migration for the following features in 2015v3:
- Sections
- Sub-Sections
- Fields
- Textbox
- Chart
- Line
- Box
- Subreport
- BlobField (Picture)
- OleObject (Picture)
- Database Fields
- Special Fields
- Time Formats
- Numbers
-
- Features
- Complex expressions that combine text with database fields and aggregates
- Grouping
- Summary Fields
- Percentage Aggregates
- Textbox Formats (Currency
- Date)
- KeepTogether
- Multiple join queries
- Hyperlinks
- Text Rotation
- Formatting
- Text Formatting
- Borders
- Backgrounds
New Reporting Features
- FlexReport is fully compatible with C1Report.
-
Hierarchy for Field Types with common base: C1FlexReport uses different class types (with a common base) to represent different types of report fields:
- FieldBase: Abstract base class for all report fields.
- DataField: Very simple field to show a single datasource field.
- TextField: Represents a text, possibly with different formatting.
- CheckboxField: Shows a Boolean Value
- ImageField: Shows static or data bound images.
- BarcodeField: Shows barcodes.
- RTFField: Shows RTF text.
- ShapeField: Shows geometric shapes.
- ChartField: Shows Charts.
- ParagraphField: Shows Field that can combine static text, expressions, scripts, and data bound fields in a single field.
- FieldBase: Abstract base class for all report fields.
-
Support for multiple data sources: C1FlexReport definition can include several data sources, accessible via the new C1FlexReport.DataSources collection. In 2015v3, the data sources can be used as the main data source in the report, as a source of valid values for report parameters, and as a data source for the chart field.
-
Improved data sorting: New property SortExpressionCollection DataSource.Sorting allows to define several sort expressions (of the type SortExpression). Each SortExpression contains an expression used for sorting, and the sort direction (ascending or descending). These expressions can easily be added in the FlexReport Designer app's data tab, using VBScript Editor.
-
Improved data filtering: In C1FlexReport, a filter can be specified in regular VBScript as all other expressions in C1Report/C1FlexReport. The syntax to use is specified by the FilterSyntax property of Data Source, possible values are DataView (compatible with C1Report) and VBScript.
-
Calculated fields for each Data source: Data sources in FlexReport allow to define calculated fields in the DataSource.CalculatedFields collection. These calculated fields can be directly used in the report.
-
New Report Parameters Collection: In C1Report, parameters could be specified either in DataSource.RecordSource, or in DataSource SQL Query, e.g.:
C1Report.DataSource.RecordSource = “PARAMETERS param1 int 0; select * from Customers where id < param1”.
In FlexReport, parameters are defined in the C1FlexReport.Parameters collection, where each element is an instance of the ReportParameter class, with the following properties:
- Nullable
- AllowBlank
- MultiValue
- Hidden
- Prompt
- Value
- DataType
-
AllowedValuesDefinition
[![ParametersNew](//cdn.mescius.io/assets/developer/blogs/legacy/c1/2015/11/ParametersNew.jpg)](//cdn.mescius.io/assets/developer/blogs/legacy/c1/2015/11/ParametersNew.jpg)
It's easy to add parameters through FlexReport Designer App through the data tab. FlexReport supports use of parameters in the following scenarios:
- Data binding
- Expressions in Calculated Fields, Sort Expressions
- Passing parameters to Subreports
- Cascading Parameters
These parameters are also accessible in VBScript Editor for calculated fields and sort expressions. You can also access the parameter properties in the VBScript Editor.
-
New Sub-sections: Each section of FlexReport can contain one or more sub-sections, which in turn can contain the report fields. Sub-sections present a number of uses: for instance, when you want to conditionally show or hide some parts of a section, or format some parts of the section in a different way.
-
New visual properties
- Multiple Border Styles: Borders can be specified for fields, subsections and sections (unlike C1Report, where borders could be defined on fields only). Additionally, each side of a border can have its own style, and rounded corners are supported (with different radii for different corners) too for all fields, subsections and sections.
- Backgrounds: Fields, subsections and sections can now have solid or gradient backgrounds.
-
New and extensive set of Charts and related API: FlexReport now has an exhaustive list of charts for you to choose from. About 70+ charts in Regular, Stacked and Percentage forms will make you meet any needs of your business application. Check out the experience of adding charts to FlexReport Designer app with introduction of chart editors giving you an intuitive way of binding data and drawing multiple series. You will no longer have to struggle your way out to add a chart to your reporting application. The extensive API will make you use native properties of different chart types.
Important Note on FlexReport:
Breaking changes from C1Report to FlexReport
Since the architecture of FlexReport is different than C1Report, there are some breaking changes in the API. Please refer to the documentation for more details.
Product Samples DLL Reference
If you have both ComponentOne Studio for WinForms and ASP.NET Web Forms studios installed on the same machine, then please change the reference path to the following DLLs manually in all WinForms Product Samples, Control Explorer that reference:
- C1.Win.4.dll
- C1.C1Report.4.dll
- C1.Win.C1Report.4.dll
- C1.Win.Barcode.4.dll
- C1.C1Pdf.4.dll
- C1.C1Excel.4.dll
- C1.C1Zip.4.dll
What do you think about FlexReport? Leave a comment below. Thanks.