Browse Source

Pagenumbering, cleanup in BasePager.cs - Final step's

pull/2/head
peterforstmeier 16 years ago
parent
commit
8cd63bdca9
  1. 76
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
  2. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs

76
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs

@ -15,11 +15,8 @@ namespace ICSharpCode.Reports.Core.Exporter
/// </summary> /// </summary>
public class BasePager:IReportCreator public class BasePager:IReportCreator
{ {
private ExporterPage singlePage;
private PagesCollection pages; private PagesCollection pages;
private IReportModel reportModel;
private Graphics graphics; private Graphics graphics;
private bool pageFull;
private readonly object pageLock = new object(); private readonly object pageLock = new object();
private ILayouter layouter; private ILayouter layouter;
@ -36,9 +33,9 @@ namespace ICSharpCode.Reports.Core.Exporter
if (layouter == null) { if (layouter == null) {
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
@ -60,13 +57,13 @@ namespace ICSharpCode.Reports.Core.Exporter
protected ExporterPage InitNewPage () protected ExporterPage InitNewPage ()
{ {
bool firstPage; bool firstPage;
this.ReportModel.ReportSettings.LeftMargin = this.reportModel.ReportSettings.LeftMargin; this.ReportModel.ReportSettings.LeftMargin = this.ReportModel.ReportSettings.LeftMargin;
if (this.Pages.Count == 0) { if (this.Pages.Count == 0) {
firstPage = true; firstPage = true;
} else { } else {
firstPage = false; firstPage = false;
} }
SectionBounds sectionBounds = new SectionBounds (this.reportModel.ReportSettings,firstPage); SectionBounds sectionBounds = new SectionBounds (this.ReportModel.ReportSettings,firstPage);
ExporterPage sp = ExporterPage.CreateInstance(sectionBounds,this.pages.Count + 1); ExporterPage sp = ExporterPage.CreateInstance(sectionBounds,this.pages.Count + 1);
return sp; return sp;
} }
@ -74,10 +71,9 @@ namespace ICSharpCode.Reports.Core.Exporter
protected virtual void BuildNewPage () protected virtual void BuildNewPage ()
{ {
this.singlePage = this.InitNewPage(); this.SinglePage = this.InitNewPage();
PrintHelper.InitPage(this.singlePage,this.reportModel.ReportSettings); PrintHelper.InitPage(this.SinglePage,this.ReportModel.ReportSettings);
this.singlePage.CalculatePageBounds(this.ReportModel); this.SinglePage.CalculatePageBounds(this.ReportModel);
this.pageFull = false;
} }
#endregion #endregion
@ -179,32 +175,27 @@ namespace ICSharpCode.Reports.Core.Exporter
#endregion #endregion
protected void FinishRendering (IDataNavigator navigator) #region After Converting, final step's
protected void FinishRendering (IDataNavigator dataNavigator)
{ {
if (this.Pages.Count == 0) { if (this.Pages.Count == 0) {
return; return;
} }
// set values known only end of reportcreation IExpressionEvaluatorFacade evaluatorFacade = new ExpressionEvaluatorFacade(this.SinglePage);
foreach (ExporterPage p in this.pages)
{
p.TotalPages = this.Pages.Count;
}
this.singlePage.IDataNavigator = navigator;
IExpressionEvaluatorFacade evaluatorFacade = new ExpressionEvaluatorFacade(this.singlePage);
foreach (ExporterPage p in this.pages) foreach (ExporterPage p in this.pages)
{ {
this.singlePage = p; p.TotalPages = this.Pages.Count;
// evaluatorFacade.SinglePage = this.singlePage; p.IDataNavigator = dataNavigator;
// evaluatorFacade.SinglePage.IDataNavigator = navigator; evaluatorFacade.SinglePage = p;
EvaluateRecursive(evaluatorFacade,p.Items); EvaluateRecursive(evaluatorFacade,p.Items);
} }
} }
private void EvaluateRecursive (IExpressionEvaluatorFacade evaluatorFassade,ExporterCollection items) private static void EvaluateRecursive (IExpressionEvaluatorFacade evaluatorFassade,ExporterCollection items)
{ {
foreach (BaseExportColumn be in items) { foreach (BaseExportColumn be in items) {
@ -218,6 +209,10 @@ namespace ICSharpCode.Reports.Core.Exporter
ExportText et = be as ExportText; ExportText et = be as ExportText;
if (et != null) { if (et != null) {
try{ try{
if (et.Text.StartsWith("=Globals!Page")) {
Console.WriteLine ("wxpression : {0}",evaluatorFassade.Evaluate(et.Text));
}
et.Text = evaluatorFassade.Evaluate(et.Text); et.Text = evaluatorFassade.Evaluate(et.Text);
} }
catch (UnknownFunctionException ufe) catch (UnknownFunctionException ufe)
@ -228,11 +223,12 @@ namespace ICSharpCode.Reports.Core.Exporter
{ {
} }
} }
} }
} }
#endregion
#region Event's #region Event's
@ -268,19 +264,9 @@ namespace ICSharpCode.Reports.Core.Exporter
get { return layouter; } get { return layouter; }
} }
public IReportModel ReportModel public IReportModel ReportModel {get;set;}
{
get { return reportModel; } protected ExporterPage SinglePage {get;set;}
set { reportModel = value; }
}
protected ExporterPage SinglePage
{
get { return singlePage; }
set { singlePage = value; }
}
public PagesCollection Pages public PagesCollection Pages
{ {
@ -297,16 +283,16 @@ namespace ICSharpCode.Reports.Core.Exporter
protected SectionBounds SectionBounds protected SectionBounds SectionBounds
{ {
get { return singlePage.SectionBounds; } get { return SinglePage.SectionBounds; }
} }
protected bool PageFull // protected bool PageFull
{ // {
get { return pageFull; } // get { return pageFull; }
set { pageFull = value; } // set { pageFull = value; }
} // }
//
#endregion #endregion
} }

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

@ -16,7 +16,7 @@ namespace ICSharpCode.Reports.Core.Exporter
readonly object addLock = new object(); readonly object addLock = new object();
internal delegate ExporterCollection ConverterDelegate (BaseSection s); //internal delegate ExporterCollection ConverterDelegate (BaseSection s);
#region Constructor #region Constructor
@ -50,7 +50,6 @@ namespace ICSharpCode.Reports.Core.Exporter
protected override void BuildNewPage () protected override void BuildNewPage ()
{ {
base.BuildNewPage(); base.BuildNewPage();
this.BuildReportHeader(); this.BuildReportHeader();
this.BuildPageHeader(); this.BuildPageHeader();
} }

Loading…
Cancel
Save