diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
index b8625d0a3f..a836439159 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
@@ -138,6 +138,7 @@
+
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs
index 484c4efd86..cf2b618977 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs
@@ -179,6 +179,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
#endregion
+
#region Container
@@ -228,48 +229,6 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
}
#endregion
-
- #region Evaluate
-
-
- public static IExpressionEvaluatorFacade SetupEvaluator ()
- {
- return new ExpressionEvaluatorFacade(null);
- }
-
-
- public static IExpressionEvaluatorFacade CreateEvaluator (ISinglePage singlePage,IDataNavigator dataNavigator)
- {
- if (singlePage == null) {
-
- throw new ArgumentNullException("singlePage");
- }
- if (dataNavigator == null) {
- throw new ArgumentNullException("dataNavigator");
- }
- singlePage.IDataNavigator = dataNavigator;
- IExpressionEvaluatorFacade evaluatorFacade = new ExpressionEvaluatorFacade(singlePage);
- return evaluatorFacade;
- }
-
-
- public static void EvaluateRow(IExpressionEvaluatorFacade evaluator,ExporterCollection row)
- {
- try {
- foreach (BaseExportColumn element in row) {
- ExportText textItem = element as ExportText;
- if (textItem != null) {
-// if (textItem.Text.StartsWith("=",StringComparison.InvariantCulture)) {
-//// Console.WriteLine(textItem.Text);
-// }
- textItem.Text = evaluator.Evaluate(textItem.Text);
- }
- }
- } catch (Exception) {
- throw ;
- }
- }
-
- #endregion
+
}
}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
index 1c0bff7623..6f01362ef1 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
@@ -48,7 +48,7 @@ namespace ICSharpCode.Reports.Core.Exporter
this.DataNavigator = dataNavigator;
SectionBounds = this.SinglePage.SectionBounds;
this.Layouter = layouter;
- this.Evaluator = StandardPrinter.CreateEvaluator(this.SinglePage,this.DataNavigator);
+ this.Evaluator = EvaluationHelper.CreateEvaluator(this.SinglePage,this.DataNavigator);
}
@@ -247,6 +247,26 @@ namespace ICSharpCode.Reports.Core.Exporter
}
+ protected Point ConvertStandardRow(ExporterCollection mylist, ISimpleContainer simpleContainer)
+ {
+ var rowSize = simpleContainer.Size;
+Console.WriteLine("ConvertStandardRow");
+
+ Point curPos = new Point (DefaultLeftPosition,CurrentPosition.Y + simpleContainer.Size.Height);
+
+ ExporterCollection ml = BaseConverter.ConvertItems (simpleContainer, curPos);
+ //curPos = new Point (DefaultLeftPosition,curPos.Y + simpleContainer.Size.Height);
+ EvaluationHelper.EvaluateRow(Evaluator,ml);
+ mylist.AddRange(ml);
+ //
+ simpleContainer.Size = rowSize;
+ Console.WriteLine("");
+ return curPos;
+
+ }
+
+
+ /*
protected Point ConvertStandardRow(ExporterCollection mylist, ISimpleContainer simpleContainer)
{
var rowSize = simpleContainer.Size;
@@ -258,11 +278,11 @@ Console.WriteLine("ConvertStandardRow");
return curPos;
}
-
+ */
protected void AfterConverting (ExporterCollection convertedList)
{
- StandardPrinter.EvaluateRow(Evaluator,convertedList);
+ EvaluationHelper.EvaluateRow(Evaluator,convertedList);
}
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 5ff2050a82..3a285aca66 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
@@ -5,6 +5,7 @@ using System;
using System.Drawing;
using ICSharpCode.Reports.Core.BaseClasses.Printing;
using ICSharpCode.Reports.Core.Interfaces;
+using ICSharpCode.Reports.Expressions.ReportingLanguage;
namespace ICSharpCode.Reports.Core.Exporter
{
@@ -68,7 +69,6 @@ namespace ICSharpCode.Reports.Core.Exporter
childSize = section.Items[1].Size;
}
-
do {
base.SaveSectionSize(section.Size);
PrintHelper.AdjustSectionLocation (section);
@@ -103,8 +103,6 @@ namespace ICSharpCode.Reports.Core.Exporter
FillRow(simpleContainer,childNavigator);
FireRowRendering(simpleContainer,childNavigator);
PrepareContainerForConverting(section,simpleContainer);
-
-// FireRowRendering(simpleContainer,childNavigator);
base.CurrentPosition = ConvertStandardRow(exporterCollection,simpleContainer);
CheckForPageBreak(section,exporterCollection);
}
@@ -121,12 +119,10 @@ namespace ICSharpCode.Reports.Core.Exporter
else
{
// No Grouping at all, the first item in section.items is the DetailRow
-
Size containerSize = section.Items[0].Size;
FillRow(simpleContainer,base.DataNavigator);
FireRowRendering(simpleContainer,base.DataNavigator);
base.PrepareContainerForConverting(section,simpleContainer);
-// FireRowRendering(simpleContainer,base.DataNavigator);
base.CurrentPosition = ConvertStandardRow (exporterCollection,simpleContainer);
section.Size = base.RestoreSectionSize;
section.Items[0].Size = containerSize;
@@ -180,10 +176,10 @@ namespace ICSharpCode.Reports.Core.Exporter
base.FireSectionRendering(section);
ExporterCollection list = StandardPrinter.ConvertPlainCollection(groupCollection,offset);
- StandardPrinter.EvaluateRow(base.Evaluator,list);
+ EvaluationHelper.EvaluateRow(base.Evaluator,list);
exportList.AddRange(list);
- AfterConverting (list);
+ //AfterConverting (list);
retVal = new Point (DefaultLeftPosition,offset.Y + groupCollection[0].Size.Height + 20 + (3 *GlobalValues.GapBetweenContainer));
} else {
FillRow(groupedRows[0],base.DataNavigator);
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs
index 6ebcc10687..e6b102f288 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs
@@ -8,6 +8,7 @@ using System.Linq;
using ICSharpCode.Reports.Core.BaseClasses.Printing;
using ICSharpCode.Reports.Core.Interfaces;
+using ICSharpCode.Reports.Expressions.ReportingLanguage;
namespace ICSharpCode.Reports.Core.Exporter
{
@@ -207,9 +208,9 @@ base.PrepareContainerForConverting(section,simpleContainer);
groupCollection = section.Items.ExtractGroupedColumns();
base.DataNavigator.Fill(groupCollection);
base.FireSectionRendering(section);
- ExporterCollection list = StandardPrinter.ConvertPlainCollection(groupCollection,offset);
- StandardPrinter.EvaluateRow(base.Evaluator,list);
+ ExporterCollection list = StandardPrinter.ConvertPlainCollection(groupCollection,offset);
+ EvaluationHelper.EvaluateRow(base.Evaluator,list);
exportList.AddRange(list);
AfterConverting (list);
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/EvaluationHelper.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/EvaluationHelper.cs
new file mode 100644
index 0000000000..29a22550c4
--- /dev/null
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/EvaluationHelper.cs
@@ -0,0 +1,65 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 30.01.2011
+ * Time: 19:59
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using ICSharpCode.Reports.Core;
+using ICSharpCode.Reports.Core.Exporter;
+using ICSharpCode.Reports.Core.Interfaces;
+
+namespace ICSharpCode.Reports.Expressions.ReportingLanguage
+{
+ ///
+ /// Description of EvaluationHelper.
+ ///
+ public class EvaluationHelper
+ {
+
+ public static IExpressionEvaluatorFacade SetupEvaluator ()
+ {
+ return new ExpressionEvaluatorFacade(null);
+ }
+
+
+ public static IExpressionEvaluatorFacade CreateEvaluator (ISinglePage singlePage,IDataNavigator dataNavigator)
+ {
+ if (singlePage == null) {
+
+ throw new ArgumentNullException("singlePage");
+ }
+ if (dataNavigator == null) {
+ throw new ArgumentNullException("dataNavigator");
+ }
+ singlePage.IDataNavigator = dataNavigator;
+ IExpressionEvaluatorFacade evaluatorFacade = new ExpressionEvaluatorFacade(singlePage);
+ return evaluatorFacade;
+ }
+
+
+ public static void EvaluateRow(IExpressionEvaluatorFacade evaluator,ExporterCollection row)
+ {
+ try {
+ foreach (BaseExportColumn column in row) {
+ var container = column as IExportContainer;
+ if (container != null) {
+ EvaluateRow(evaluator,container.Items);
+ }
+ ExportText textItem = column as ExportText;
+ if (textItem != null) {
+// if (textItem.Text.StartsWith("=",StringComparison.InvariantCulture)) {
+ //// Console.WriteLine(textItem.Text);
+// }
+ textItem.Text = evaluator.Evaluate(textItem.Text);
+ }
+ }
+ } catch (Exception) {
+ throw ;
+ }
+ }
+
+ }
+}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractRenderer.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractRenderer.cs
index 6143349652..6d0d5238b5 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractRenderer.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractRenderer.cs
@@ -85,7 +85,7 @@ namespace ICSharpCode.Reports.Core
this.reportDocument.RenderPageEnd += new EventHandler (PrintPageFooter);
this.reportDocument.RenderReportEnd += new EventHandler (PrintReportFooter);
- this.Evaluator = StandardPrinter.SetupEvaluator();
+ this.Evaluator = EvaluationHelper.SetupEvaluator();
}