I suggest you start with the help, the binaries, and the examples. The binaries include a generic wrapper application "EasiReporter" which you can use to test EasiReports against your data sources. The examples include many reports that show the capabilities of EasiReports, including using alternative data sources.

Click for full-size image.

Introduction

EasiReports provides a reporting solution for your applications. It is a professional-quality library with comprehensive help files and examples.

EasiReports has been written to be as simple as possible to integrate into your applications and to be as simple as possible for your users. You can publish your own reports, but EasiReports is also aimed at giving your users the power to write their own reports, or modify templates that you provide.

Its unique features include:

Automatic SQL generation when accessing a database, so your users don’t have to know anything about SQL.

It is highly extensible through its “Plugins” architecture, which provides great flexibility in any .NET language.

It can use any .NET data source as input.

It can output to many graphics file formats in addition to printing and print preview.

EasiReports follows the section paradigm familiar to Access users, so the learning curve is kept to a minimum. Common tasks can be performed easily, while more complex features are available for advanced users. These include writing code for the integrated C# and VB compilers and even referencing CLR assemblies written in any .NET language.

A demo application, EasiReporter, is included in the SDK. You can use this to explore the capabilities of EasiReports and to test against your own databases or other data sources. It is also useful as a generic report editor for writing your own reports.

In this article, I will briefly describe the main features available in EasiReports. For more detailed information, see the help files. In particular, there is a "Walkthrough" describing how to include EasiReports in your application, in the EasiReports section of the help file.

License

You may use EasiReports in your applications for free. You may not use it in comparable or competitive products. See the license file for details.

You may use the following license key in your applications:

"BuiltNicer;4;CodeProject;71502708;4780EB20"

Background

Reporting is often required in applications but is not as easy as it seems. EasiReports provides a generic reporting solution for accessing any .NET data source.

EasiReports has been written to solve a common requirement and is not just for database applications -- it is flexible enough to be used in many scenarios. For instance, if you just want to preview and print standard reports, you do not have to make the report designer available to the end-user.

In my experience, managers under-value reporting in an application and under-estimate the effort required to provide a stable and comprehensive solution. With EasiReports, you can quickly and simply solve this problem.

Features

User report designer

The user report designer is built into the heart of EasiReports. Include this control in your application to allow users to create, edit, preview, and print their own reports, or to modify templates that you provide. This is part of the core functionality of EasiReports and has been made as simple as possible.

No SQL coding required

Users don't have to know anything about SQL -- EasiReports interrogates your database for metadata, and builds dynamic SQL on the fly. It does this by collecting metadata about the tables, fields, primary and foreign keys in your database. It then examines the report to find out which tables and fields are referenced, and it builds a SQL statement, complete with table joins, which returns all the required data. Use EasiReports for this reason alone!

Data Sources

EasiReports uses OLEDB for default database access but all common .NET data sources are directly supported. If your data source is not supported, it is quite simple to write your own data source handler to expose your data.

Output

In addition to print and print preview, you can also export to many graphics file formats such as GIF, JPEG, and PNG, with just one line of code.

Source Code

Full source code is included with EasiReports. This includes the main source, and the code for three assemblies to give you practical examples of using EasiReports. These are:

EasiReporter, the demo application.

MetadataViewer, a utility application to display and edit metadata.

SquareOneSoftware.dll, an example plug-in assembly.

Between them, these assemblies cover most aspects of working with EasiReports.

Package

EasiReports is a single strong-named assembly written entirely in managed C# -- so you can just copy it to your application directory. It is about 1 MB in size.

Update: EasiReports now references the Puzzle source code editor which is packaged in four assemblies. If you want to allow your users to edit the integrated algorithms, you must also copy these assemblies to your application directory.

Controls

EasiReports supports several types of controls, from simple lines to aggregate functions on user-defined data algorithms. All controls allow you to modify their behaviour at runtime from within the code behind the report.

Algorithms

A very powerful feature is the ability to write code behind reports. Based on an event-driven pattern, you can modify the runtime behaviour of reports, even to the extent of drawing directly onto the page Graphics object.

C# and VB compilers

Choose your language –- these integrated compilers give you and your users virtually unlimited flexibility. Intuitive design allows you to write algorithms at the report, data, section, and control levels.

Visual Studio

Use any .NET language to produce a CLR assembly and you can reference it from within EasiReports at runtime. You can use this feature to build a library of common functionality, or to extend EasiReports from the comfort of Visual Studio. The source code for an assembly providing two classes is included with the example reports.

Object Model

The entire public report object model is accessible from the host application as well as from runtime code. This allows you to build or modify reports dynamically.

Example Reports

EasiReports includes many example reports, from the most simple to the very advanced. These show the capabilities of EasiReports and also show how to accomplish common reporting requirements.

Metadata

EasiReports can automatically interrogate your database for metadata about tables, fields, primary and foreign keys. While this is the preferred method of collecting metadata, the object model is public to allow you full control over which parts of your database are available to the user.

Help

A comprehensive help file with over 1000 pages is provided to aid your development. This includes:

A "Walkthrough" to show you how to add EasiReports to your application.

A .NET style reference section for the entire public object model.

Sections on Algorithms and DataSources for advanced users.

Many example reports to show the capabilities of EasiReports.

The full HTML source and HTML Help Workshop project files are provided and may be used in your application’s help file.

Support

I am committed to providing the best technical support available. Adding EasiReports to your applications has been made quite simple and is explained in detail in the help file. If you want additional help, you can email me and I will do my best to help you. You can also request support for writing complex reports.

Conclusion

EasiReports is over 60,000 lines of code. I hope that you find it useful.

Share

About the Author

I built my first computer, a Sinclair ZX80, on my 11th birthday in 1980.
In 1992, I completed my Computer Science degree and built my first PC.
I discovered C# and .NET 1.0 Beta 1 in late 2000 and loved them immediately.
I have been writing concurrent software professionally, using multi-processor machines, since 1995.

In real life, I have spent 3 years travelling abroad,
I have held a UK Private Pilots Licence for 20 years,
and I am a PADI Divemaster.

I now live near idyllic Bournemouth in England.

If you would like help with multithreading, please contact me via my website: