Browse Source

File/Preview and File/Print use Exporter#s (same as in ReportViewer), the standard print code (Renderer's) will not be further developed

pull/14/head
peterforstmeier 15 years ago
parent
commit
77bb7ced64
  1. 32
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs
  2. 63
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
  3. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs
  4. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/BaseExportRenderer.cs
  5. 19
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PreviewRenderer.cs
  6. 26
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PrintRenderer.cs

32
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs

@ -11,8 +11,6 @@ namespace ICSharpCode.Reports.Addin.Commands
public class AbstractPreviewCommand :AbstractCommand public class AbstractPreviewCommand :AbstractCommand
{ {
ReportModel model;
ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer;
public AbstractPreviewCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer) public AbstractPreviewCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer)
{ {
@ -23,31 +21,29 @@ namespace ICSharpCode.Reports.Addin.Commands
throw new ArgumentNullException("reportViewer"); throw new ArgumentNullException("reportViewer");
} }
this.model = model; this.Model = model;
this.reportViewer = reportViewer; this.ReportViewer = reportViewer;
} }
public override void Run() public override void Run()
{ {
CollectParametersCommand sql = new CollectParametersCommand(model); CollectParametersCommand cmd = new CollectParametersCommand(Model);
sql.Run(); cmd.Run();
} }
public ICSharpCode.Reports.Core.ReportViewer.PreviewControl ReportViewer { public ICSharpCode.Reports.Core.ReportViewer.PreviewControl ReportViewer {get;private set;}
get { return reportViewer; }
}
public ReportModel Model {get;private set;}
public ReportModel Model {
get { return this.model; }
}
} }
public class FormsSheetPreviewCommand:AbstractPreviewCommand public class FormSheetToReportViewerCommand:AbstractPreviewCommand
{ {
public FormsSheetPreviewCommand(ReportModel model, public FormSheetToReportViewerCommand(ReportModel model,
ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer) ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
{ {
} }
@ -60,10 +56,10 @@ namespace ICSharpCode.Reports.Addin.Commands
} }
public class PullModelPreviewCommand:AbstractPreviewCommand public class PullModelToReportViewerCommand:AbstractPreviewCommand
{ {
public PullModelPreviewCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer) public PullModelToReportViewerCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
{ {
} }
@ -76,9 +72,9 @@ namespace ICSharpCode.Reports.Addin.Commands
} }
public class PushModelPreviewCommand:AbstractPreviewCommand public class PushModelToReportViewerCommand:AbstractPreviewCommand
{ {
public PushModelPreviewCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer) public PushModelToReportViewerCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
{ {
} }

63
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs

@ -5,14 +5,20 @@ using System;
using System.Collections; using System.Collections;
using System.ComponentModel.Design; using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization; using System.ComponentModel.Design.Serialization;
using System.Data;
using System.Drawing.Design; using System.Drawing.Design;
using System.Drawing.Printing;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.Commands;
using ICSharpCode.Reports.Addin.Designer; using ICSharpCode.Reports.Addin.Designer;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
using ICSharpCode.Reports.Core.BaseClasses.Printing;
using ICSharpCode.Reports.Core.Exporter;
using ICSharpCode.Reports.Core.Exporter.ExportRenderer;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
@ -557,49 +563,48 @@ namespace ICSharpCode.Reports.Addin
#region IPrintable #region IPrintable
private void ccc()
{
/*
ReportModel model = loader.CreateRenderableModel();
IReportCreator creator = ReportEngine.CreatePageBuilder(model,eventLogger.EventLog,null);
//creator.SectionRendering += PushPrinting;
creator.BuildExportList();
using (PdfRenderer pdfRenderer = PdfRenderer.CreateInstance(creator,SelectFilename(),true))
{
pdfRenderer.Start();
pdfRenderer.RenderOutput();
pdfRenderer.End();
}
*/
var model = loader.CreateRenderableModel(); public PrintDocument PrintDocument
{
get {
ReportModel model = loader.CreateRenderableModel();
IReportCreator reportCreator = null;
Layouter layouter = new Layouter();
var c = new CollectParametersCommand(model);
c.Run();
switch (model.DataModel) { switch (model.DataModel) {
case GlobalEnums.PushPullModel.FormSheet : { case GlobalEnums.PushPullModel.FormSheet :
//cmd = new FormsSheetPreviewCommand (model,control); {
reportCreator = FormPageBuilder.CreateInstance(model,layouter);
break; break;
} }
case GlobalEnums.PushPullModel.PullData:{ case GlobalEnums.PushPullModel.PullData:
//cmd = new PullModelPreviewCommand(model,control); {
IDataManager dataManager = DataManagerFactory.CreateDataManager(model,(ReportParameters)null);
reportCreator = DataPageBuilder.CreateInstance(model,dataManager,layouter);
break; break;
} }
case GlobalEnums.PushPullModel.PushData:{ case GlobalEnums.PushPullModel.PushData:{
//cmd = new PushModelPreviewCommand(model,control); ICSharpCode.Reports.Addin.Commands.DataSetFromXsdCommand cmd =
new ICSharpCode.Reports.Addin.Commands.DataSetFromXsdCommand();
cmd.Run();
DataSet ds = cmd.DataSet;
IDataManager dataManager = DataManagerFactory.CreateDataManager(model,ds.Tables[0]);
reportCreator = DataPageBuilder.CreateInstance(model,dataManager,layouter);
break; break;
} }
default: default:
throw new InvalidReportModelException(); throw new InvalidReportModelException();
} }
}
public System.Drawing.Printing.PrintDocument PrintDocument { reportCreator.BuildExportList();
get { PrintRenderer printer = PrintRenderer.CreateInstance(reportCreator.Pages);
ccc(); printer.Start();
ICSharpCode.Reports.Core.ReportModel model = this.loader.CreateRenderableModel(); printer.RenderOutput();
StandartPreviewManager reportManager = new StandartPreviewManager(); printer.End();
ICSharpCode.Reports.Core.AbstractRenderer r = reportManager.CreateRenderer (model); return printer.PrintDocument;
return r.ReportDocument;
} }
} }

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs

@ -50,15 +50,15 @@ namespace ICSharpCode.Reports.Addin
AbstractPreviewCommand cmd = null; AbstractPreviewCommand cmd = null;
switch (model.DataModel) { switch (model.DataModel) {
case GlobalEnums.PushPullModel.FormSheet : { case GlobalEnums.PushPullModel.FormSheet : {
cmd = new FormsSheetPreviewCommand (model,control); cmd = new FormSheetToReportViewerCommand (model,control);
break; break;
} }
case GlobalEnums.PushPullModel.PullData:{ case GlobalEnums.PushPullModel.PullData:{
cmd = new PullModelPreviewCommand(model,control); cmd = new PullModelToReportViewerCommand(model,control);
break; break;
} }
case GlobalEnums.PushPullModel.PushData:{ case GlobalEnums.PushPullModel.PushData:{
cmd = new PushModelPreviewCommand(model,control); cmd = new PushModelToReportViewerCommand(model,control);
break; break;
} }
default: default:

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/BaseExportRenderer.cs

@ -11,6 +11,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
/// </summary> /// </summary>
/// ///
public class BaseExportRenderer{ public class BaseExportRenderer{
PagesCollection pages; PagesCollection pages;
public BaseExportRenderer () public BaseExportRenderer ()
@ -46,6 +47,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
{ {
} }
public virtual void RenderOutput () public virtual void RenderOutput ()
{ {
} }
@ -54,6 +56,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
{ {
} }
public PagesCollection Pages public PagesCollection Pages
{ {
get {if (this.pages == null) { get {if (this.pages == null) {

19
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PreviewRenderer.cs

@ -11,10 +11,8 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer
/// </summary> /// </summary>
public class PreviewRenderer:BaseExportRenderer internal class PreviewRenderer:BaseExportRenderer
{ {
Graphics graphics;
ExporterPage page;
#region Constructor #region Constructor
@ -29,23 +27,18 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer
public override void RenderOutput(){ public override void RenderOutput(){
base.RenderOutput(); base.RenderOutput();
if (this.graphics != null) { if (this.Graphics != null) {
BaseExportRenderer.DrawItems(this.graphics,this.page.Items); BaseExportRenderer.DrawItems(this.Graphics,this.Page.Items);
} else { } else {
return; return;
} }
} }
public Graphics Graphics { public Graphics Graphics {get;set;}
get { return this.graphics;}
set { this.graphics = value;}
}
public ExporterPage Page {
get {return this.page;} public ExporterPage Page {get;set;}
set { page = value; }
}
} }
} }

26
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PrintRenderer.cs

@ -10,7 +10,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
/// Description of PrintRenderer. /// Description of PrintRenderer.
/// </summary> /// </summary>
public class PrintRenderer:BaseExportRenderer,IDisposable{ public class PrintRenderer:BaseExportRenderer,IDisposable{
PrintDocument doc;
int currentPage; int currentPage;
PrinterSettings printerSettings; PrinterSettings printerSettings;
@ -43,11 +43,14 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
private PrintRenderer(PagesCollection pages):base(pages) private PrintRenderer(PagesCollection pages):base(pages)
{ {
doc = new PrintDocument(); this.PrintDocument = new PrintDocument();
this.PrintDocument.PrinterSettings = new PrinterSettings();
// doc.QueryPageSettings += new QueryPageSettingsEventHandler(OnQueryPage); // doc.QueryPageSettings += new QueryPageSettingsEventHandler(OnQueryPage);
doc.BeginPrint += new PrintEventHandler(OnBeginPrint); this.PrintDocument.BeginPrint += new PrintEventHandler(OnBeginPrint);
doc.EndPrint += new PrintEventHandler(OnEndPrint); this.PrintDocument.EndPrint += new PrintEventHandler(OnEndPrint);
doc.PrintPage += new PrintPageEventHandler(OnPrintPage); this.PrintDocument.PrintPage += new PrintPageEventHandler(OnPrintPage);
} }
#endregion #endregion
@ -87,22 +90,25 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
{ {
base.RenderOutput(); base.RenderOutput();
if (this.printerSettings != null) { if (this.printerSettings != null) {
doc.PrinterSettings = this.printerSettings; this.PrintDocument.PrinterSettings = this.printerSettings;
} }
doc.Print();
} }
public override void End() public override void End()
{ {
base.End(); base.End();
} }
public PrintDocument PrintDocument {get;private set;}
internal PrinterSettings PrinterSettings internal PrinterSettings PrinterSettings
{ {
set { printerSettings = value; } set { printerSettings = value; }
} }
#region IDisposable #region IDisposable
public void Dispose() public void Dispose()
@ -116,10 +122,10 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
if (disposing) if (disposing)
{ {
// free managed resources // free managed resources
if (this.doc != null) if (this.PrintDocument != null)
{ {
doc.Dispose(); this.PrintDocument.Dispose();
doc = null; this.PrintDocument = null;
} }
} }
} }

Loading…
Cancel
Save