|
|
|
@ -16,9 +16,9 @@ namespace ICSharpCode.Reports.Core.Exporter |
|
|
|
public class BasePager:IReportCreator |
|
|
|
public class BasePager:IReportCreator |
|
|
|
{ |
|
|
|
{ |
|
|
|
private PagesCollection pages; |
|
|
|
private PagesCollection pages; |
|
|
|
private Graphics graphics; |
|
|
|
// private Graphics graphics;
|
|
|
|
private readonly object pageLock = new object(); |
|
|
|
private readonly object pageLock = new object(); |
|
|
|
private ILayouter layouter; |
|
|
|
// private ILayouter layouter;
|
|
|
|
|
|
|
|
|
|
|
|
public event EventHandler<PageCreatedEventArgs> PageCreated; |
|
|
|
public event EventHandler<PageCreatedEventArgs> PageCreated; |
|
|
|
public event EventHandler<SectionRenderEventArgs> SectionRendering; |
|
|
|
public event EventHandler<SectionRenderEventArgs> SectionRendering; |
|
|
|
@ -38,8 +38,8 @@ namespace ICSharpCode.Reports.Core.Exporter |
|
|
|
throw new ArgumentNullException ("layouter"); |
|
|
|
throw new ArgumentNullException ("layouter"); |
|
|
|
} |
|
|
|
} |
|
|
|
this.ReportModel = reportModel; |
|
|
|
this.ReportModel = reportModel; |
|
|
|
this.layouter = layouter; |
|
|
|
this.Layouter = layouter; |
|
|
|
this.graphics = CreateGraphicObject.FromSize(this.ReportModel.ReportSettings.PageSize); |
|
|
|
this.Graphics = CreateGraphicObject.FromSize(this.ReportModel.ReportSettings.PageSize); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
@ -98,6 +98,13 @@ namespace ICSharpCode.Reports.Core.Exporter |
|
|
|
|
|
|
|
|
|
|
|
Point offset = new Point(section.Location.X,section.SectionOffset); |
|
|
|
Point offset = new Point(section.Location.X,section.SectionOffset); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Call layouter only once per section
|
|
|
|
|
|
|
|
Rectangle desiredRectangle = Layouter.Layout(this.Graphics,section); |
|
|
|
|
|
|
|
Rectangle sectionRectangle = new Rectangle(section.Location,section.Size); |
|
|
|
|
|
|
|
if (!sectionRectangle.Contains(desiredRectangle)) { |
|
|
|
|
|
|
|
section.Size = new Size(section.Size.Width,desiredRectangle.Size.Height + GlobalValues.ControlMargins.Top + GlobalValues.ControlMargins.Bottom); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
foreach (BaseReportItem item in section.Items) { |
|
|
|
foreach (BaseReportItem item in section.Items) { |
|
|
|
|
|
|
|
|
|
|
|
ISimpleContainer container = item as ISimpleContainer; |
|
|
|
ISimpleContainer container = item as ISimpleContainer; |
|
|
|
@ -105,8 +112,8 @@ namespace ICSharpCode.Reports.Core.Exporter |
|
|
|
if (container != null) { |
|
|
|
if (container != null) { |
|
|
|
|
|
|
|
|
|
|
|
ExportContainer exportContainer = StandardPrinter.ConvertToContainer(container,offset); |
|
|
|
ExportContainer exportContainer = StandardPrinter.ConvertToContainer(container,offset); |
|
|
|
|
|
|
|
|
|
|
|
StandardPrinter.AdjustBackColor (container); |
|
|
|
StandardPrinter.AdjustBackColor (container); |
|
|
|
|
|
|
|
|
|
|
|
ExporterCollection clist = StandardPrinter.ConvertPlainCollection(container.Items,offset); |
|
|
|
ExporterCollection clist = StandardPrinter.ConvertPlainCollection(container.Items,offset); |
|
|
|
|
|
|
|
|
|
|
|
@ -115,11 +122,11 @@ namespace ICSharpCode.Reports.Core.Exporter |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
|
|
Rectangle desiredRectangle = layouter.Layout(this.graphics,section); |
|
|
|
// Rectangle desiredRectangle = layouter.Layout(this.graphics,section);
|
|
|
|
Rectangle sectionRectangle = new Rectangle(section.Location,section.Size); |
|
|
|
// Rectangle sectionRectangle = new Rectangle(section.Location,section.Size);
|
|
|
|
if (!sectionRectangle.Contains(desiredRectangle)) { |
|
|
|
// if (!sectionRectangle.Contains(desiredRectangle)) {
|
|
|
|
section.Size = new Size(section.Size.Width,desiredRectangle.Size.Height + GlobalValues.ControlMargins.Top + GlobalValues.ControlMargins.Bottom); |
|
|
|
// section.Size = new Size(section.Size.Width,desiredRectangle.Size.Height + GlobalValues.ControlMargins.Top + GlobalValues.ControlMargins.Bottom);
|
|
|
|
} |
|
|
|
// }
|
|
|
|
list = StandardPrinter.ConvertPlainCollection(section.Items,offset); |
|
|
|
list = StandardPrinter.ConvertPlainCollection(section.Items,offset); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -266,14 +273,9 @@ namespace ICSharpCode.Reports.Core.Exporter |
|
|
|
|
|
|
|
|
|
|
|
#region Property's
|
|
|
|
#region Property's
|
|
|
|
|
|
|
|
|
|
|
|
protected Graphics Graphics { |
|
|
|
protected Graphics Graphics {get; private set;} |
|
|
|
get { return graphics; } |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ILayouter Layouter { |
|
|
|
public ILayouter Layouter {get; private set;} |
|
|
|
get { return layouter; } |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public IReportModel ReportModel {get;set;} |
|
|
|
public IReportModel ReportModel {get;set;} |
|
|
|
|
|
|
|
|
|
|
|
|