Click here to Skip to main content
15,797,193 members
Articles / Programming Languages / C#


Rate me:
Please Sign up or sign in to vote.
4.87/5 (64 votes)
13 Feb 2006CPOL6 min read 473.9K   9.7K   219   128
A library to add reports to your application.

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

Click for full-size image.


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.


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:



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.


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.


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.


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.


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.


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.


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.


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.


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.


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


  • Version 4.8: 06 Feb 2006
    • Improved access to alternative data sources.
    • Syntax highlighted integrated code editors.
  • Version 4.6: 01 Aug 2005: Initial release.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Written By
United Kingdom United Kingdom
I discovered C# and .NET 1.0 Beta 1 in late 2000 and loved them immediately.
I have been writing software professionally in C# ever since

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.

I can work 'virtually' anywhere!

Comments and Discussions

JokeRe: Images in reports Pin
Aljaz2421-Feb-06 23:36
Aljaz2421-Feb-06 23:36 
GeneralRe: Images in reports Pin
Nicholas Butler21-Feb-06 23:42
sitebuilderNicholas Butler21-Feb-06 23:42 
AnswerRe: Images in reports Pin
Aljaz2422-Feb-06 0:26
Aljaz2422-Feb-06 0:26 
GeneralProblems connecting SQL Express Database Pin
johan_b20-Feb-06 7:35
johan_b20-Feb-06 7:35 
GeneralRe: Problems connecting SQL Express Database Pin
Nicholas Butler21-Feb-06 23:29
sitebuilderNicholas Butler21-Feb-06 23:29 
QuestionData series - how to? Pin
BarCode20-Feb-06 3:58
BarCode20-Feb-06 3:58 
AnswerRe: Data series - how to? Pin
Nicholas Butler20-Feb-06 4:04
sitebuilderNicholas Butler20-Feb-06 4:04 
Generalvs Crystal Reports Pin
Bernhard Elbl13-Feb-06 6:12
Bernhard Elbl13-Feb-06 6:12 
Interessting work.

Why not using the free crystal reports?

What is the difference to crystal reports?

Thank you for your answer.

With kind regards,
Bernhard Elbl
GeneralRe: vs Crystal Reports Pin
FZelle13-Feb-06 9:13
FZelle13-Feb-06 9:13 
GeneralRe: vs Crystal Reports Pin
eric feng14-Feb-06 7:12
eric feng14-Feb-06 7:12 
GeneralRe: vs Crystal Reports Pin
hpetriffer16-Mar-06 19:55
hpetriffer16-Mar-06 19:55 
GeneralPrinter settings Pin
Andi Fandrich9-Feb-06 1:16
professionalAndi Fandrich9-Feb-06 1:16 
AnswerRe: Printer settings Pin
Nicholas Butler9-Feb-06 5:05
sitebuilderNicholas Butler9-Feb-06 5:05 
GeneralRe: Printer settings Pin
Andi Fandrich9-Feb-06 5:38
professionalAndi Fandrich9-Feb-06 5:38 
GeneralSetting the report's DataSource programmaticaly Pin
Andi Fandrich8-Feb-06 22:05
professionalAndi Fandrich8-Feb-06 22:05 
GeneralRe: Setting the report's DataSource programmaticaly Pin
Nicholas Butler8-Feb-06 22:17
sitebuilderNicholas Butler8-Feb-06 22:17 
GeneralRe: Setting the report's DataSource programmaticaly Pin
Andi Fandrich8-Feb-06 22:47
professionalAndi Fandrich8-Feb-06 22:47 
QuestionA few questions Pin
Andi Fandrich1-Feb-06 0:55
professionalAndi Fandrich1-Feb-06 0:55 
AnswerRe: A few questions Pin
Nicholas Butler1-Feb-06 1:21
sitebuilderNicholas Butler1-Feb-06 1:21 
GeneralRe: A few questions Pin
Andi Fandrich1-Feb-06 5:35
professionalAndi Fandrich1-Feb-06 5:35 
NewsBeta testers wanted Pin
Nicholas Butler8-Dec-05 23:17
sitebuilderNicholas Butler8-Dec-05 23:17 
GeneralXML as datasource Pin
BarCode21-Sep-05 3:23
BarCode21-Sep-05 3:23 
GeneralRe: XML as datasource Pin
Nicholas Butler22-Sep-05 2:05
sitebuilderNicholas Butler22-Sep-05 2:05 
QuestionVS.NET 2005 useability ?? Pin
mrlucmorin6-Sep-05 5:53
mrlucmorin6-Sep-05 5:53 
AnswerRe: VS.NET 2005 useability ?? Pin
Nicholas Butler6-Sep-05 9:03
sitebuilderNicholas Butler6-Sep-05 9:03 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.