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. 89
      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 @@ -11,8 +11,6 @@ namespace ICSharpCode.Reports.Addin.Commands
public class AbstractPreviewCommand :AbstractCommand
{
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 @@ -23,31 +21,29 @@ namespace ICSharpCode.Reports.Addin.Commands
throw new ArgumentNullException("reportViewer");
}
this.model = model;
this.reportViewer = reportViewer;
this.Model = model;
this.ReportViewer = reportViewer;
}
public override void Run()
{
CollectParametersCommand sql = new CollectParametersCommand(model);
sql.Run();
CollectParametersCommand cmd = new CollectParametersCommand(Model);
cmd.Run();
}
public ICSharpCode.Reports.Core.ReportViewer.PreviewControl ReportViewer {
get { return reportViewer; }
}
public ICSharpCode.Reports.Core.ReportViewer.PreviewControl ReportViewer {get;private set;}
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)
{
}
@ -60,10 +56,10 @@ namespace ICSharpCode.Reports.Addin.Commands @@ -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 @@ -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)
{
}

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

@ -5,14 +5,20 @@ using System; @@ -5,14 +5,20 @@ using System;
using System.Collections;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using System.Data;
using System.Drawing.Design;
using System.Drawing.Printing;
using System.IO;
using System.Text;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.Commands;
using ICSharpCode.Reports.Addin.Designer;
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.Gui;
@ -557,52 +563,51 @@ namespace ICSharpCode.Reports.Addin @@ -557,52 +563,51 @@ namespace ICSharpCode.Reports.Addin
#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();
switch (model.DataModel) {
case GlobalEnums.PushPullModel.FormSheet : {
//cmd = new FormsSheetPreviewCommand (model,control);
break;
}
case GlobalEnums.PushPullModel.PullData:{
//cmd = new PullModelPreviewCommand(model,control);
break;
}
case GlobalEnums.PushPullModel.PushData:{
//cmd = new PushModelPreviewCommand(model,control);
break;
}
default:
throw new InvalidReportModelException();
}
}
public System.Drawing.Printing.PrintDocument PrintDocument {
public PrintDocument PrintDocument
{
get {
ccc();
ICSharpCode.Reports.Core.ReportModel model = this.loader.CreateRenderableModel();
StandartPreviewManager reportManager = new StandartPreviewManager();
ICSharpCode.Reports.Core.AbstractRenderer r = reportManager.CreateRenderer (model);
return r.ReportDocument;
ReportModel model = loader.CreateRenderableModel();
IReportCreator reportCreator = null;
Layouter layouter = new Layouter();
var c = new CollectParametersCommand(model);
c.Run();
switch (model.DataModel) {
case GlobalEnums.PushPullModel.FormSheet :
{
reportCreator = FormPageBuilder.CreateInstance(model,layouter);
break;
}
case GlobalEnums.PushPullModel.PullData:
{
IDataManager dataManager = DataManagerFactory.CreateDataManager(model,(ReportParameters)null);
reportCreator = DataPageBuilder.CreateInstance(model,dataManager,layouter);
break;
}
case GlobalEnums.PushPullModel.PushData:{
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;
}
default:
throw new InvalidReportModelException();
}
reportCreator.BuildExportList();
PrintRenderer printer = PrintRenderer.CreateInstance(reportCreator.Pages);
printer.Start();
printer.RenderOutput();
printer.End();
return printer.PrintDocument;
}
}
#endregion

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

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

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

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

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

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

Loading…
Cancel
Save