Skip to main content
Email Password   helpLost your password?

Screenshot

Introduction

This component helps you generate simple but useful reports for printing in .NET. The idea is to generate XML-based templates, and then to call them from your program, and eventually to fill them with the data required. This is appropriate for generating small and simple printing documents.

Background

The basic class of this project is DaPrintDocument. It inherits from the standard .NET class PrintDocument. Therefore, you can use it pretty much the same way as the PrintDocument class.

This class simply paints attached drawing objects within its PrintPage() method. For simplicity, there are only four types of drawing objects supported: TextField (simple formatted text), PictureBox (images), ChartBox (simple charts), and StyledTable (table with static or dynamically loaded data).

Template file overview

DaPrintDocument makes use of template files written in XML syntax. Those provide all static information relevant for printing a page.

You can write template files in any text editor, or alternatively, use the DaReport Designer (beta) provided in the distribution (it's a separate application: DaReportDesigner.exe).

The brief overview of the XML structure:

<daReport>

<parameters>
   <parameter name="parameter1_name" />
   <parameter name="parameter2_name" />
</parameters>

<content>

<!-- Static objects are evaluated once per report -->
<staticContent>

      <!-- The list of static objects goes here. 
         Check in reportStatic.xml (in download package). -->
     
</staticContent>

<!-- Dynamic objects are evaluated once per page of report 
      (like data table segment or page number) -->
<dynamicContent>

      <!-- The list of dynamic objects goes here. 
        Check in reportDynamic.xml (in download package). -->

</dynamicContent>

</content>
</daReport>

Once again, the preferred way for XML template file generation is by using the DaReport Designer (beta) provided in the distribution.

Using the code

First, add a reference to the daReport.dll file (provided in the distribution) to your project. If you feel like it, you can also put this component in your controls toolbar.

Second, add an instance of DaPrintDocument to your module (form); if you have previously attached it in your controls toolbar, simply drag it to your form:

private daReport.DaPrintDocument daPrintDocument = 
                         new daReport.DaPrintDocument();

At the point where you wish to print some report, set the template file and fill in the parameters (if any):

// set .xml file for printing

daPrintDocument.setXML("reportStatic.xml");

// fill in declared parameters (if any)

// (parameter names are case sensitive)

Hashtable parameters = new Hashtable();
parameters.Add("author","Predrag Dukanac");
daPrintDocument.SetParameters(parameters);

Using tables

Take a look at reportStatic.xml, reportDynamic.xml, reportCharts.xml, and the ReportTest project (all in the download package) for a deeper insight.

Latest update

The DaReport print engine has turned into a commercial product - Stampa Reports System�. A Stampa Reports demo is available for download here. Stampa designer features backward compatibility with daReport in design mode. The Stampa printing engine can be used free of charge.

The DaReport project at this address is still an open-source project by all means.

You must Sign In to use this message board.
 
 
Per page   
 FirstPrevNext
QuestionMem usage problem!!!!!!!!!!! [Report design] Pin
utehn
0:37 9 Jan '09  
QuestionUSE FREE Pin
Member 3233816
6:00 31 Dec '08  
Generalprinters on c#.net Pin
balu12345
8:41 30 Jul '08  
QuestionHow can I draw text or table only at the end of last page? Pin
JM ® - DE CASTRO
12:58 11 Jun '08  
GeneralVery nice Pin
Hugo Faselo
12:16 13 Dec '07  
QuestionRe: Very nice Pin
dimazoid
9:34 16 Oct '08  
QuestionMonday's date at the top of the report. Pin
damonhogan
6:48 16 Nov '07  
Questionmultple page in staticContent [modified] Pin
abhishek nath
21:28 5 Feb '07  
AnswerRe: multple page in staticContent Pin
negleden
15:46 25 May '09  
GeneralWhat royalties do i need to add into the help file? Pin
NarutoFan#1
20:50 31 Oct '06  
GeneralRe: What royalties do i need to add into the help file? Pin
Predrag Dukanac
0:36 1 Nov '06  
GeneralRe: What royalties do i need to add into the help file? Pin
NarutoFan#1
4:58 1 Nov '06  
GeneralHow to add image path? Pin
NarutoFan#1
23:41 28 Feb '07  
QuestionReportDesigner Pin
bszom
12:38 13 Oct '06  
QuestionFromPage/ToPage question Pin
bp003
11:13 21 Jul '06  
GeneralFormatMask question Pin
calvin_cch
16:40 3 Jun '06  
GeneralHow to print page numbers? Pin
steve_dee
5:10 25 May '06  
AnswerRe: How to print page numbers? Pin
Predrag Dukanac
5:22 25 May '06  
GeneralRe: How to print page numbers? Pin
steve_dee
5:37 25 May '06  
AnswerRe: How to print page numbers? Pin
Predrag Dukanac
21:23 25 May '06  
Generalnice job Pin
clody
0:48 24 May '06  
QuestionMargin Pin
calvin_cch
9:29 23 May '06  
AnswerRe: Margin Pin
Predrag Dukanac
3:44 24 May '06  
GeneralReport designer missing? Pin
jmw
17:36 21 Apr '06  
GeneralDraw Text Only In the First Page Pin
georani
5:42 21 Apr '06  


Last Updated 20 Apr 2006 | Advertise | Privacy | Terms of Use | Copyright © CodeProject, 1999-2009