From 6a2b27f0a62803ded276737d413013bd7bc52c77 Mon Sep 17 00:00:00 2001 From: peterforstmeier Date: Thu, 28 Oct 2010 20:20:34 +0200 Subject: [PATCH] ReportFooter keep position --- .../Project/BaseClasses/SectionBounds.cs | 23 +++------- .../Project/BaseClasses/SinglePage.cs | 7 +--- .../Project/Exporter/BasePager.cs | 24 +++-------- .../Converters/GroupedRowConverter.cs | 42 +++++++++---------- .../Project/Exporter/DataPageBuilder.cs | 2 - .../Expressions/ExpressionEvaluatorFacade.cs | 17 +++++--- .../AggregateFunctions/AggregateFunction.cs | 5 ++- 7 files changed, 49 insertions(+), 71 deletions(-) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SectionBounds.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SectionBounds.cs index 12757334a3..5f5d4ec00d 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SectionBounds.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SectionBounds.cs @@ -38,9 +38,9 @@ namespace ICSharpCode.Reports.Core.BaseClasses bool firstPage; bool landscape; -// int gap = 1; Rectangle printableArea; + #region Constructor @@ -103,20 +103,20 @@ namespace ICSharpCode.Reports.Core.BaseClasses } - //Test - public void MeasurePageFooter (IReportItem section) + + public void MeasurePageFooter (IReportItem section) { if (section == null) { throw new ArgumentNullException("section"); } - this.pageFooterRectangle = new Rectangle(this.printableArea.Location.X, this.marginBounds.Bottom - section.Size.Height, this.marginBounds.Width, section.Size.Height); - + } + //Test public void MeasureReportFooter (IReportItem section) { @@ -224,18 +224,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses } } - /// - /// gap between two Sections - /// - - -// public int Gap -// { -// get { -// return gap; -// } -// } - + public Rectangle DetailSectionRectangle {get;set;} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SinglePage.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SinglePage.cs index e9e60a38fc..0002bd51a1 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SinglePage.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SinglePage.cs @@ -37,15 +37,10 @@ namespace ICSharpCode.Reports.Core.BaseClasses } sectionBounds.MeasureReportHeader(reportModel.ReportHeader); - - //PageHeader this.sectionBounds.MeasurePageHeader(reportModel.PageHeader); - - //PageFooter + this.sectionBounds.MeasurePageFooter(reportModel.PageFooter); - //ReportFooter - this.sectionBounds.MeasureReportFooter(reportModel.ReportFooter); this.sectionBounds.MeasureDetailArea(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs index 8810143d3a..2f6ccc2be3 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs @@ -72,7 +72,7 @@ namespace ICSharpCode.Reports.Core.Exporter protected virtual void BuildNewPage () { this.SinglePage = this.InitNewPage(); - PrintHelper.InitPage(this.SinglePage,this.ReportModel.ReportSettings); + PrintHelper.InitPage(this.SinglePage,this.ReportModel.ReportSettings); this.SinglePage.CalculatePageBounds(this.ReportModel); } @@ -112,12 +112,10 @@ namespace ICSharpCode.Reports.Core.Exporter } else { Rectangle desiredRectangle = layouter.Layout(this.graphics,section); - Rectangle sectionRectangle = new Rectangle(0,0,section.Size.Width,section.Size.Height); - + 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); } - list = StandardPrinter.ConvertPlainCollection(section.Items,offset); } } @@ -197,8 +195,8 @@ namespace ICSharpCode.Reports.Core.Exporter private static void EvaluateRecursive (IExpressionEvaluatorFacade evaluatorFassade,ExporterCollection items) { - foreach (BaseExportColumn be in items) { + IExportContainer ec = be as IExportContainer; if (ec != null) { @@ -207,26 +205,16 @@ namespace ICSharpCode.Reports.Core.Exporter } } ExportText et = be as ExportText; + if (et != null) { - try{ - if (et.Text.StartsWith("=Globals!Page")) { - Console.WriteLine ("wxpression : {0}",evaluatorFassade.Evaluate(et.Text)); - } - + if (et.Text.StartsWith("=")) { et.Text = evaluatorFassade.Evaluate(et.Text); } - catch (UnknownFunctionException ufe) - { - et.Text = GlobalValues.UnkownFunctionMessage(ufe.Message); - } - finally - { - - } } } } + #endregion diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs index 3fc01122cd..13949395f1 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs @@ -63,19 +63,19 @@ namespace ICSharpCode.Reports.Core.Exporter Size groupSize = Size.Empty; Size childSize = Size.Empty; - Console.WriteLine("-------------------START"); - - Console.WriteLine ("section {0}",section.Size); - - Console.WriteLine(); +// Console.WriteLine("-------------------START"); +// +// Console.WriteLine ("section {0}",section.Size); +// +// Console.WriteLine(); if (section.Items.IsGrouped) { groupSize = section.Items[0].Size; childSize = section.Items[1].Size; - Console.WriteLine ("group {0}",section.Items[0].Size); - Console.WriteLine ("detail {0}",section.Items[1].Size); +// Console.WriteLine ("group {0}",section.Items[0].Size); +// Console.WriteLine ("detail {0}",section.Items[1].Size); } Rectangle pageBreakRect = Rectangle.Empty; @@ -102,23 +102,23 @@ namespace ICSharpCode.Reports.Core.Exporter childNavigator.Reset(); childNavigator.MoveNext(); - Console.WriteLine("-------------------after group"); - - Console.WriteLine ("section {0}",section.Size); - Console.WriteLine ("group {0}",section.Items[0].Size); - Console.WriteLine ("detail {0}",section.Items[1].Size); - Console.WriteLine(); +// Console.WriteLine("-------------------after group"); +// +// Console.WriteLine ("section {0}",section.Size); +// Console.WriteLine ("group {0}",section.Items[0].Size); +// Console.WriteLine ("detail {0}",section.Items[1].Size); +// Console.WriteLine(); //Convert children if (childNavigator != null) { StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor); do { - Console.WriteLine("-----------------childs"); - Console.WriteLine ("section {0}",section.Size); - Console.WriteLine ("group {0}",section.Items[0].Size); - Console.WriteLine ("detail {0}",section.Items[1].Size); - Console.WriteLine(); +// Console.WriteLine("-----------------childs"); +// Console.WriteLine ("section {0}",section.Size); +// Console.WriteLine ("group {0}",section.Items[0].Size); +// Console.WriteLine ("detail {0}",section.Items[1].Size); +// Console.WriteLine(); section.Size = base.RestoreSize; section.Items[0].Size = groupSize; section.Items[1].Size = childSize; @@ -151,9 +151,9 @@ namespace ICSharpCode.Reports.Core.Exporter { // No Grouping at all Size dd = section.Items[0].Size; - Console.WriteLine("---------NoGrouping"); - Console.WriteLine ("section {0}",section.Size); - Console.WriteLine ("row {0}",dd); +// Console.WriteLine("---------NoGrouping"); +// Console.WriteLine ("section {0}",section.Size); +// Console.WriteLine ("row {0}",dd); base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer,defaultLeftPos,base.CurrentPosition); section.Size = base.RestoreSize; section.Items[0].Size = dd; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs index 9ec1e833ba..9ba022bca7 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs @@ -16,7 +16,6 @@ namespace ICSharpCode.Reports.Core.Exporter readonly object addLock = new object(); - //internal delegate ExporterCollection ConverterDelegate (BaseSection s); #region Constructor @@ -103,7 +102,6 @@ namespace ICSharpCode.Reports.Core.Exporter } - protected Point BuildDetail (BaseSection section,IDataNavigator dataNavigator) { ExporterCollection convertedList = new ExporterCollection(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs index 9b890addc3..b38f6bca9a 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs @@ -33,13 +33,20 @@ namespace ICSharpCode.Reports.Expressions.ReportingLanguage public string Evaluate (string expression) { - if (CanEvaluate(expression)) { - IExpression compiled = compiler.CompileExpression(expression); - this.context.ContextObject = this.SinglePage; - if (compiled != null) { - return (compiled.Evaluate(context)).ToString(); + try { + if (CanEvaluate(expression)) { + IExpression compiled = compiler.CompileExpression(expression); + this.context.ContextObject = this.SinglePage; + if (compiled != null) { + return (compiled.Evaluate(context)).ToString(); + } } + } catch (Exception e) { + + Console.WriteLine("error"); + expression = e.Message; } + return expression; } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs index fe3ee2d674..952d204901 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs @@ -124,9 +124,10 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.AggregateFunctions } else { list.Add(true); } - } else { + } + else { string str = String.Format ("<{0}> not found in AggregateFunction",data.ToString()); -// throw new FieldNotFoundException(str); + throw new FieldNotFoundException(str); } } return list;