The dot net version of Report Manager is a translation from Delphi to C# of the reporting engine. The port to dot net is near completion but requires still some work. Libraries are provided so you can link easily your reports with your application.
How it works
You use the designer, and select a dot net provider on database connection configuration dialog. After you do this, the designer will use the dot net version of the engine (Framework 1.1 or 2.0 depending on the selected provider). That is effectively executing the command printreport.exe inside the net or net2 folder inside designer folder.
In Linux, Mono 1.1.13 or newer must be installed (preview and print only word latests versions), in Microsoft Windows, Dot Net runtime Framework 1.1 or 2.0 must be installed depending on the selected provider.
Internals
The internal procedure is save the report in a temp file, as XML (see page setup, prefered save format), then call printreport.exe with command line options (-preview for example). That is when you preview or print, the printreport.exe is used instead of the designer itself. You can also test printreport.exe independently, the only requirement is you save the report as xml (select prefered save format in page setup).
For example, this instruction will generate a pdf file from a report:
printreport.exe -pdf pdfoutputfilename.pdf mysavedreportasxml.rep
Parts already working
Missing parts
Different behaviour
Using the library
To use the libraries provided, you should include a reference to them in your project.
Modularized libraries are provided, documentation is available but still incomplete.
This is sample code to execute a report, a portion of the sample provided testinglib.exe.
using Reportman.Drawing;
using Reportman.Drawing.Forms;
using Reportman.Reporting;
using Reportman.Reporting.Forms;
Report rp=new Reportman.Report();
rp.LoadFromFile(EFile.Text);
if (pdf)
{
rp.AsyncExecution=false;
PrintOutPDF printpdf = new PrintOutPDF();
printpdf.FileName=pdffilename;
printpdf.Compressed=compressedpdf;
printpdf.Print(rp.MetaFile);
}
else
{
rp.AsyncExecution=asyncexecution;
if (ParamsForm.ShowParams(rp)
{
PrintOutWinForms prw = new PrintOutWinForms();
prw.Preview = preview;
prw.SystemPreview=systempreview;
prw.ShowPrintDialog=showprintdialog;
prw.Print(rp.MetaFile);
}
}