Click here to Skip to main content
12,304,352 members (64,149 online)
Click here to Skip to main content
Add your own
alternative version


216 bookmarked


, 13 Feb 2006 CPOL
Rate this:
Please Sign up or sign in to vote.
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)


About the Author

Nicholas Butler
United Kingdom United Kingdom

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:

I can work 'virtually' anywhere!

You may also be interested in...

Comments and Discussions

GeneralMy vote of 5 Pin
Prakash198726-Aug-12 3:29
memberPrakash198726-Aug-12 3:29 
Questionhow to remove an algorithm Pin
Member 432624912-Feb-10 4:49
memberMember 432624912-Feb-10 4:49 
QuestionHow can I add pictures to this ? Pin
Member 418547626-Oct-09 7:48
memberMember 418547626-Oct-09 7:48 
Generaladd image to report Pin
Member 432624910-Sep-09 8:25
memberMember 432624910-Sep-09 8:25 
GeneralVB 2008 Express Edition and EasiReports Pin
ray4life10-Jul-09 19:04
memberray4life10-Jul-09 19:04 
GeneralVisual Studio 2008 Express + .NET 3.5 Pin
MCTimotheus26-Apr-09 20:23
memberMCTimotheus26-Apr-09 20:23 
GeneralRe: Visual Studio 2008 Express + .NET 3.5 Pin
DaveHolmes27-Apr-09 4:53
memberDaveHolmes27-Apr-09 4:53 
QuestionHow to use the application but DB No FK? Pin
Member 19846691-Mar-09 21:44
memberMember 19846691-Mar-09 21:44 
Question30 days trial !? Pin
Daemon44412-Sep-08 0:32
memberDaemon44412-Sep-08 0:32 
AnswerRe: 30 days trial !? Pin
Daemon44412-Sep-08 0:44
memberDaemon44412-Sep-08 0:44 
GeneralRe: 30 days trial !? Pin
Daemon44412-Sep-08 0:49
memberDaemon44412-Sep-08 0:49 
QuestionHow to set sql query to Report instead of design Pin
tuanpm8-Sep-08 0:02
membertuanpm8-Sep-08 0:02 
GeneralLicense problem with CMetadata Pin
docw13-Aug-08 11:43
memberdocw13-Aug-08 11:43 
GeneralRe: License problem with CMetadata Pin
Nick Butler14-Aug-08 1:06
memberNick Butler14-Aug-08 1:06 
GeneralRe: License problem with CMetadata Pin
docw14-Aug-08 4:05
memberdocw14-Aug-08 4:05 
GeneralRe: License problem with CMetadata Pin
Nick Butler14-Aug-08 4:37
memberNick Butler14-Aug-08 4:37 
GeneralRe: License problem with CMetadata Pin
docw14-Aug-08 11:31
memberdocw14-Aug-08 11:31 
GeneralFirebird Pin
angelmtm30-Jul-08 22:06
memberangelmtm30-Jul-08 22:06 
GeneralThanks for such an excellent work!!! Pin
Jorge Orellana29-Jul-08 18:11
memberJorge Orellana29-Jul-08 18:11 
QuestionIt is great! what about ... ? Pin
Win32nipuh18-Mar-08 21:22
memberWin32nipuh18-Mar-08 21:22 
AnswerRe: It is great! what about ... ? Pin
Nick Butler19-Mar-08 6:59
memberNick Butler19-Mar-08 6:59 
Generalconnection Pin
deltadirac7-Feb-08 12:22
memberdeltadirac7-Feb-08 12:22 
GeneralHowTo: EasiReports - Postgres - Npgsql Pin
Marc Schwarz26-Nov-07 12:59
memberMarc Schwarz26-Nov-07 12:59 
GeneralEasiReports and SharpDevelop 2.2.1 (Problem) Pin
Marc Schwarz24-Nov-07 6:12
memberMarc Schwarz24-Nov-07 6:12 
GeneralRe: EasiReports and SharpDevelop 2.2.1 (Solution found) Pin
Marc Schwarz25-Nov-07 11:57
memberMarc Schwarz25-Nov-07 11:57 
GeneralSeeing Views in EasiReporter Pin
cdfmiller6-Sep-07 8:51
membercdfmiller6-Sep-07 8:51 
GeneralRe: Seeing Views in EasiReporter Pin
cdfmiller6-Sep-07 9:32
membercdfmiller6-Sep-07 9:32 
GeneralMetadata Pin
johnmessingham24-Jun-07 22:44
memberjohnmessingham24-Jun-07 22:44 
GeneralRe: Metadata Pin
johnmessingham25-Jun-07 0:52
memberjohnmessingham25-Jun-07 0:52 
GeneralPage Number Pin
wilson123411-May-07 11:08
memberwilson123411-May-07 11:08 
QuestionCan i use it with vb6? Pin
hemalgvs22-Mar-07 21:14
memberhemalgvs22-Mar-07 21:14 
GeneralParsing parametrs ( for where statement) Pin
tomfi21-Feb-07 13:48
membertomfi21-Feb-07 13:48 
GeneralRe: Parsing parametrs ( for where statement) Pin
tomfi28-Feb-07 12:43
membertomfi28-Feb-07 12:43 
GeneralRe: Parsing parametrs ( for where statement) Pin
tomfi28-Feb-07 13:18
membertomfi28-Feb-07 13:18 
Questionprint columns - adress labels Pin
Alaric8422-Nov-06 12:18
memberAlaric8422-Nov-06 12:18 
AnswerRe: print columns - adress labels Pin
BarCode13-Dec-06 7:00
memberBarCode13-Dec-06 7:00 
QuestionImages and Labels Pin
Reanalyse29-Aug-06 22:05
memberReanalyse29-Aug-06 22:05 
QuestionHow to get the following result? Pin
pappukanghi19-Aug-06 1:25
memberpappukanghi19-Aug-06 1:25 
AnswerRe: How to get the following result? Pin
Nicholas Butler19-Aug-06 1:45
memberNicholas Butler19-Aug-06 1:45 
GeneralRe: How to get the following result? Pin
pappukanghi19-Aug-06 2:51
memberpappukanghi19-Aug-06 2:51 
QuestionDoes it not support using SQL views? [modified] Pin
pappukanghi18-Aug-06 11:58
memberpappukanghi18-Aug-06 11:58 
AnswerRe: Does it not support using SQL views? Pin
pappukanghi18-Aug-06 15:07
memberpappukanghi18-Aug-06 15:07 
QuestionWhen can we expect new version ? Pin
Tushar Bhatt11-Aug-06 20:39
memberTushar Bhatt11-Aug-06 20:39 
QuestionHow can we enter SQL Query ? Pin
Tushar Bhatt4-Jul-06 19:16
memberTushar Bhatt4-Jul-06 19:16 
AnswerRe: How can we enter SQL Query ? Pin
sam_mj16-Nov-06 2:25
membersam_mj16-Nov-06 2:25 
GeneralNullObjectReference in Report Properties Pin
Tushar Bhatt2-Jul-06 20:23
memberTushar Bhatt2-Jul-06 20:23 
GeneralDeploying reports - little problem with dlls Pin
BarCode4-Jun-06 22:12
memberBarCode4-Jun-06 22:12 
AnswerRe: Deploying reports - little problem with dlls Pin
Nicholas Butler4-Jun-06 22:31
memberNicholas Butler4-Jun-06 22:31 
GeneralRe: Deploying reports - little problem with dlls Pin
BarCode5-Jun-06 21:49
memberBarCode5-Jun-06 21:49 
AnswerRe: Deploying reports - little problem with dlls Pin
Nicholas Butler7-Jun-06 2:23
memberNicholas Butler7-Jun-06 2:23 

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.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.160530.1 | Last Updated 13 Feb 2006
Article Copyright 2005 by Nicholas Butler
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid