Browse Source

Expressions can handle the Namespace 'System.DateTime', be aware of the difference between Property and Function

reports
Peter Forstmeier 12 years ago
parent
commit
0924a05dab
  1. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Expressions/Irony/ReportingLanguageGrammer.cs
  2. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Expressions/Irony/ReportingLanguageRuntime.cs
  3. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj
  4. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/IntegrationTests/AggregatesGroupesFixture.cs
  5. 74
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/IntegrationTests/DateTimeFixture.cs
  6. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/IntegrationTests/StandardTests.cs

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Expressions/Irony/ReportingLanguageGrammer.cs

@ -2,10 +2,8 @@ @@ -2,10 +2,8 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.Reporting.Expressions.Irony.Ast;
using Irony;
using Irony.Interpreter;
using Irony.Interpreter.Ast;
using Irony.Interpreter.Evaluator;
using Irony.Parsing;
namespace ICSharpCode.Reporting.Expressions.Irony

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Expressions/Irony/ReportingLanguageRuntime.cs

@ -23,10 +23,12 @@ namespace ICSharpCode.Reporting.Expressions.Irony @@ -23,10 +23,12 @@ namespace ICSharpCode.Reporting.Expressions.Irony
//add built-in methods, special form IIF, import Math and Environment methods
// BuiltIns.AddMethod(BuiltInPrintMethod, "print");
// BuiltIns.AddMethod(BuiltInFormatMethod, "format");
http://irony.codeplex.com/discussions/446823
BuiltIns.AddSpecialForm(SpecialFormsLibrary.Iif, "iif", 3, 3);
BuiltIns.ImportStaticMembers(typeof(System.Math));
BuiltIns.ImportStaticMembers(typeof(Environment));
BuiltIns.ImportStaticMembers(typeof(System.DateTime));
//Aggregates
BuiltIns.AddSpecialForm(ImportAggregates.Sum,"sum",1,1);
}

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj

@ -69,6 +69,7 @@ @@ -69,6 +69,7 @@
<Compile Include="src\Expressions\Aggregates\AggregateFuctionHelper.cs" />
<Compile Include="src\Expressions\Aggregates\SumAggregate.cs" />
<Compile Include="src\Expressions\IntegrationTests\AggregatesGroupesFixture.cs" />
<Compile Include="src\Expressions\IntegrationTests\DateTimeFixture.cs" />
<Compile Include="src\Expressions\IntegrationTests\FieldsFixture.cs" />
<Compile Include="src\Expressions\IntegrationTests\GlobalsFixture.cs" />
<Compile Include="src\Expressions\IntegrationTests\StandardTests.cs" />

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/IntegrationTests/AggregatesGroupesFixture.cs

@ -25,7 +25,6 @@ namespace ICSharpCode.Reporting.Test.Expressions.IntegrationTests @@ -25,7 +25,6 @@ namespace ICSharpCode.Reporting.Test.Expressions.IntegrationTests
[Test]
public void SumGroupedList()
{
// visitor = new ExpressionVisitor(reportSettings,dataSource.GroupedList);
var visitor = new ExpressionVisitor (reportSettings);
visitor.SetCurrentDataSource(dataSource.GroupedList);
var script = "= sum('randomint')";
@ -45,7 +44,6 @@ namespace ICSharpCode.Reporting.Test.Expressions.IntegrationTests @@ -45,7 +44,6 @@ namespace ICSharpCode.Reporting.Test.Expressions.IntegrationTests
collection[0].Text = script;
container.ExportedItems.AddRange(collection);
// visitor = new ExpressionVisitor(reportSettings,dataSource.GroupedList);
var visitor = new ExpressionVisitor (reportSettings);
visitor.SetCurrentDataSource(dataSource.GroupedList);
var group = dataSource.GroupedList.FirstOrDefault();
@ -62,7 +60,7 @@ namespace ICSharpCode.Reporting.Test.Expressions.IntegrationTests @@ -62,7 +60,7 @@ namespace ICSharpCode.Reporting.Test.Expressions.IntegrationTests
public void SumAllGroups () {
var container = new ExportContainer();
container.ExportedItems.AddRange(collection);
// visitor = new ExpressionVisitor(reportSettings,dataSource.GroupedList);
var visitor = new ExpressionVisitor (reportSettings);
visitor.SetCurrentDataSource(dataSource.GroupedList);
foreach (var group in dataSource.GroupedList) {

74
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/IntegrationTests/DateTimeFixture.cs

@ -0,0 +1,74 @@ @@ -0,0 +1,74 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 26.01.2014
* Time: 18:10
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using NUnit.Framework;
using System.Collections.ObjectModel;
using ICSharpCode.Reporting.Exporter.Visitors;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Test.Expressions.IntegrationTests
{
[TestFixture]
public class DateTimeFixture
{
Collection<ExportText> collection;
ExpressionVisitor expressionVisitor;
[Test]
public void CanHandleToday(){
var script = "= Today.ToShortDateString()";
var resultColumn = Evaluate(script);
Assert.That(resultColumn.Text,Is.EqualTo(System.DateTime.Now.ToShortDateString()));
}
[Test]
public void CanHandleDateAdd() {
var expected = DateTime.Today.AddDays(2).ToShortDateString();
var script = "=Today.AddDays(2).ToShortDateString()";
var resultColumn = Evaluate(script);
Assert.That(resultColumn.Text,Is.EqualTo(expected));
}
[Test]
public void CanHandleDayOfWeek () {
var expected = DateTime.Today.Day.ToString();
var script ="=Today.Day";
var resultColumn = Evaluate(script);
Assert.That(resultColumn.Text,Is.EqualTo(expected));
}
ExportText Evaluate(string script)
{
collection[0].Text = script;
var exportContainer = new ExportContainer();
exportContainer.ExportedItems.Add(collection[0]);
expressionVisitor.Visit(exportContainer);
var resultColumn = (ExportText)exportContainer.ExportedItems[0];
return resultColumn;
}
[SetUp]
public void CreateSut() {
collection = new Collection<ExportText>();
collection.Add(new ExportText()
{
Text = String.Empty
});
expressionVisitor = new ExpressionVisitor(new ReportSettings());
}
}
}

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Expressions/IntegrationTests/StandardTests.cs

@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.ObjectModel;
using ICSharpCode.Reporting.BaseClasses;
using ICSharpCode.Reporting.Exporter.Visitors;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;

Loading…
Cancel
Save