From 170e18b2669c1e861362129696133611dab18da6 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Tue, 7 Jan 2014 20:30:06 +0100 Subject: [PATCH] Aggregates with StringConcat and Global functions (PageNumber,ReportName etc) --- .../Src/Expressions/ExpressionRunner.cs | 13 +++++++------ .../Expressions/Irony/Imports/ImportAggregates.cs | 2 +- .../Src/PageBuilder/BasePageBuilder.cs | 6 ------ .../Src/PageBuilder/FormPageBuilder.cs | 3 ++- .../src/Expressions/Aggregates/SumAggregate.cs | 14 ++++++++++++-- .../Expressions/IntegrationTests/GlobalsFixture.cs | 9 +-------- .../src/TestReports/TestForGlobals.srd | 2 +- 7 files changed, 24 insertions(+), 25 deletions(-) diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Expressions/ExpressionRunner.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Expressions/ExpressionRunner.cs index 501d02ced8..537b0a6d7b 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Expressions/ExpressionRunner.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Expressions/ExpressionRunner.cs @@ -34,12 +34,13 @@ namespace ICSharpCode.Reporting.Expressions public void Run() { Visitor = new ExpressionVisitor (reportSettings); - - if (dataSource.SortedList != null) { - Visitor.SetCurrentDataSource(dataSource.SortedList); - } - if (dataSource.GroupedList != null) { - Visitor.SetCurrentDataSource(dataSource.GroupedList); + if (dataSource != null) { + if (dataSource.SortedList != null) { + Visitor.SetCurrentDataSource(dataSource.SortedList); + } + if (dataSource.GroupedList != null) { + Visitor.SetCurrentDataSource(dataSource.GroupedList); + } } Visitor.Run(pages); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Expressions/Irony/Imports/ImportAggregates.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Expressions/Irony/Imports/ImportAggregates.cs index d806d860aa..70c9f2835e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Expressions/Irony/Imports/ImportAggregates.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Expressions/Irony/Imports/ImportAggregates.cs @@ -70,7 +70,7 @@ namespace ICSharpCode.Reporting.Expressions.Irony.Imports }); } } - return sum; + return sum.ToString(); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs index 66693a4580..45abb57bdc 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs @@ -193,12 +193,6 @@ namespace ICSharpCode.Reporting.PageBuilder ExpressionRunner = new ExpressionRunner(Pages,reportsettings,dataSource); } -// protected void RunExpressions(ReportSettings reportsettings,CollectionDataSource dataSource) -// { -//// var expressionRunner = new ExpressionRunner(Pages,reportsettings,dataSource); -// ExpressionRunner.Run(); -// } - protected void RunDebugVisitor() { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs index d9864af080..41b25230e8 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs @@ -27,12 +27,13 @@ namespace ICSharpCode.Reporting.PageBuilder public override void BuildExportList() { + SetupExpressionRunner(ReportModel.ReportSettings,null); base.BuildExportList(); BuildDetail(); base.AddPage(CurrentPage); UpdatePageInfo(); // RunDebugVisitor(); -// RunExpressions(ReportModel.ReportSettings); + ExpressionRunner.Run(); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/Aggregates/SumAggregate.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/Aggregates/SumAggregate.cs index 1a2705b156..f4cd9d932f 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/Aggregates/SumAggregate.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/Aggregates/SumAggregate.cs @@ -24,7 +24,6 @@ namespace ICSharpCode.Reporting.Test.Expressions.Aggregates public void CanSum_Int_WholeCollection() { var reportSettings = new ReportSettings(); -// var visitor = new ExpressionVisitor(reportSettings,dataSource.SortedList); var visitor = new ExpressionVisitor (reportSettings); visitor.SetCurrentDataSource(dataSource.SortedList); var script = "= sum('intValue')"; @@ -39,7 +38,6 @@ namespace ICSharpCode.Reporting.Test.Expressions.Aggregates public void CanSum_Double_WholeCollection() { var reportSettings = new ReportSettings(); -// var visitor = new ExpressionVisitor(reportSettings,dataSource.SortedList); var visitor = new ExpressionVisitor (reportSettings); visitor.SetCurrentDataSource(dataSource.SortedList); var script = "= sum('doubleValue')"; @@ -50,6 +48,18 @@ namespace ICSharpCode.Reporting.Test.Expressions.Aggregates } + [Test] + public void CanSum_Double_With_String_Concat() + { + var reportSettings = new ReportSettings(); + var visitor = new ExpressionVisitor (reportSettings); + visitor.SetCurrentDataSource(dataSource.SortedList); + var script = "= 'myText ' + sum('doubleValue')"; + collection[0].Text = script; + visitor.Visit(collection[0]); + Assert.That (collection[0].Text,Is.EqualTo("myText 408,25")); + } + [SetUp] public void CreateExportlist() { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/IntegrationTests/GlobalsFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/IntegrationTests/GlobalsFixture.cs index e8cf9b27e1..1d2f4c70ae 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/IntegrationTests/GlobalsFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/IntegrationTests/GlobalsFixture.cs @@ -13,7 +13,7 @@ using NUnit.Framework; namespace ICSharpCode.Reporting.Test.Expressions.InterationTests { [TestFixture] - [Ignore] +// [Ignore] public class GlobalsFixture { IReportCreator reportCreator; @@ -105,12 +105,5 @@ namespace ICSharpCode.Reporting.Test.Expressions.InterationTests var reportingFactory = new ReportingFactory(); reportCreator = reportingFactory.ReportCreator(stream); } - - -// [TestFixtureSetUp] -// public void Setup() { -// -// expressionVisitor = new ExpressionVisitor(new ReportSettings()); -// } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/TestForGlobals.srd b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/TestForGlobals.srd index 0307901de9..3581112111 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/TestForGlobals.srd +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/TestForGlobals.srd @@ -113,7 +113,7 @@ 16, 4 - 100, 20 + 264, 20 White Segoe UI, 9pt None