Browse Source

Sorting inside Groups

4.1
peterforstmeier 15 years ago
parent
commit
380f5ab752
  1. 22
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
  2. 13
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerTree.cs
  3. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs
  4. 7
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs
  5. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs
  6. 139
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs
  7. 113
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableStragy/GroupTableFixture.cs
  8. 23
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/IntegrationTests/GlobalFunctions.cs

22
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs

@ -99,7 +99,6 @@ namespace ICSharpCode.Reports.Addin @@ -99,7 +99,6 @@ namespace ICSharpCode.Reports.Addin
#endregion
#region setup designer
private void LoadDesigner(Stream stream)
@ -243,7 +242,6 @@ namespace ICSharpCode.Reports.Addin @@ -243,7 +242,6 @@ namespace ICSharpCode.Reports.Addin
}
#endregion
private void MergeFormChanges()
{
System.Diagnostics.Trace.WriteLine("View:MergeFormChanges()");
@ -254,8 +252,6 @@ namespace ICSharpCode.Reports.Addin @@ -254,8 +252,6 @@ namespace ICSharpCode.Reports.Addin
}
public string ReportFileContent {
get {
if (this.IsDirty) {
@ -265,7 +261,6 @@ namespace ICSharpCode.Reports.Addin @@ -265,7 +261,6 @@ namespace ICSharpCode.Reports.Addin
set { this.reportFileContent = value; }
}
#region ReportExplorer
private void StartReportExplorer ()
@ -297,7 +292,6 @@ namespace ICSharpCode.Reports.Addin @@ -297,7 +292,6 @@ namespace ICSharpCode.Reports.Addin
#endregion
#region SelectionService
private void SelectionChangedHandler(object sender, EventArgs args)
@ -314,7 +308,6 @@ namespace ICSharpCode.Reports.Addin @@ -314,7 +308,6 @@ namespace ICSharpCode.Reports.Addin
#endregion
#region Transaction
bool shouldUpdateSelectableObjects;
@ -332,11 +325,8 @@ namespace ICSharpCode.Reports.Addin @@ -332,11 +325,8 @@ namespace ICSharpCode.Reports.Addin
#endregion
#region ComponentChangeService
private void OnComponentChanged (object sender, ComponentChangedEventArgs e)
{
BaseImageItem item = e.Component as BaseImageItem;
@ -370,11 +360,8 @@ namespace ICSharpCode.Reports.Addin @@ -370,11 +360,8 @@ namespace ICSharpCode.Reports.Addin
this.PrimaryFile.MakeDirty();
}
#endregion
#region HasPropertyContainer implementation
private void UpdatePropertyPad()
@ -413,11 +400,8 @@ namespace ICSharpCode.Reports.Addin @@ -413,11 +400,8 @@ namespace ICSharpCode.Reports.Addin
#endregion
#region IUnDohandler
#endregion
public bool EnableUndo {
get {
if (undoEngine != null) {
@ -453,6 +437,8 @@ namespace ICSharpCode.Reports.Addin @@ -453,6 +437,8 @@ namespace ICSharpCode.Reports.Addin
}
}
#endregion
#region IClipboardHandler implementation
private bool IsMenuCommandEnabled(CommandID commandID)
@ -551,7 +537,6 @@ namespace ICSharpCode.Reports.Addin @@ -551,7 +537,6 @@ namespace ICSharpCode.Reports.Addin
#endregion
#region IPrintable
@ -597,7 +582,6 @@ namespace ICSharpCode.Reports.Addin @@ -597,7 +582,6 @@ namespace ICSharpCode.Reports.Addin
#endregion
#region IDesignerHost implementation
public IDesignerHost Host {

13
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerTree.cs

@ -379,18 +379,19 @@ namespace ICSharpCode.Reports.Addin @@ -379,18 +379,19 @@ namespace ICSharpCode.Reports.Addin
nodeAvailableFields.ContextMenuAddinTreePath = String.Empty;
this.nodeModel.Nodes.Add(this.nodeAvailableFields);
nodeGrouping = new SectionNode (ResourceService.GetString("SharpReport.FieldsExplorer.Grouping"));
nodeGrouping.ImageIndex = folderClosed;
nodeGrouping.SelectedImageIndex = folderOpen;
nodeGrouping.ContextMenuAddinTreePath = ExplorerTree.sectionContextMenu;
this.nodeModel.Nodes.Add(this.nodeGrouping);
nodeSorting = new SectionNode (ResourceService.GetString("SharpReport.FieldsExplorer.Sorting"));
nodeSorting.ImageIndex = folderClosed;
nodeSorting.SelectedImageIndex = folderOpen;
nodeSorting.ContextMenuAddinTreePath = ExplorerTree.sectionContextMenu;
this.nodeModel.Nodes.Add(this.nodeSorting);
nodeGrouping = new SectionNode (ResourceService.GetString("SharpReport.FieldsExplorer.Grouping"));
nodeGrouping.ImageIndex = folderClosed;
nodeGrouping.SelectedImageIndex = folderOpen;
nodeGrouping.ContextMenuAddinTreePath = ExplorerTree.sectionContextMenu;
this.nodeModel.Nodes.Add(this.nodeGrouping);
nodeFunction = new TreeNode(ResourceService.GetString("SharpReport.FieldsExplorer.Functions"));
nodeFunction.ImageIndex = folderClosed;

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs

@ -96,7 +96,8 @@ namespace ICSharpCode.Reports.Core { @@ -96,7 +96,8 @@ namespace ICSharpCode.Reports.Core {
}
CreateGroupedChildren(childList,element);
compVal = groupValue;
} ShowIndexList(IndexList);
}
// ShowIndexList(IndexList);
}
@ -234,6 +235,9 @@ namespace ICSharpCode.Reports.Core { @@ -234,6 +235,9 @@ namespace ICSharpCode.Reports.Core {
public virtual void Group()
{
this.IndexList.Clear();
if (ReportSettings.SortColumnsCollection.Count > 0) {
ReportSettings.GroupColumnsCollection.AddRange(ReportSettings.SortColumnsCollection);
}
}
public virtual void Bind()

7
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs

@ -154,13 +154,13 @@ namespace ICSharpCode.Reports.Core @@ -154,13 +154,13 @@ namespace ICSharpCode.Reports.Core
base.IndexList = this.BuildSortIndex (ReportSettings.SortColumnsCollection);
} else {
// if we have no sorting, we build the indexlist as well
base.IndexList = this.IndexBuilder(ReportSettings.SortColumnsCollection);
base.IndexList = this.UnsortedIndex(ReportSettings.SortColumnsCollection);
}
}
}
private IndexList IndexBuilder(SortColumnCollection col)
private IndexList UnsortedIndex(SortColumnCollection col)
{
IndexList arrayList = new IndexList();
for (int rowIndex = 0; rowIndex < this.table.Rows.Count; rowIndex++){
@ -174,6 +174,9 @@ namespace ICSharpCode.Reports.Core @@ -174,6 +174,9 @@ namespace ICSharpCode.Reports.Core
public override void Group ()
{
base.Group();
// if (ReportSettings.SortColumnsCollection.Count > 0) {
// ReportSettings.GroupColumnsCollection.AddRange(ReportSettings.SortColumnsCollection);
// }
IndexList groupedIndexList = new IndexList("group");
groupedIndexList = this.BuildSortIndex (ReportSettings.GroupColumnsCollection);
// ShowIndexList(sortedIndexList);

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs

@ -94,7 +94,7 @@ namespace ICSharpCode.Reports.Expressions.ReportingLanguage @@ -94,7 +94,7 @@ namespace ICSharpCode.Reports.Expressions.ReportingLanguage
static void WriteLogMessage(Exception e)
{
Console.WriteLine("");
Console.WriteLine("-----LogMessage---------");
Console.WriteLine("ExpressionEvaluatorFacade.Evaluate");
Console.WriteLine(e.Message);
Console.WriteLine(e.TargetSite);

139
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs

@ -19,7 +19,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -19,7 +19,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
#region standard test's
[Test]
public void AvaiableFields_Should_Be_Set()
public void AvaiableFieldsShouldSet()
{
var dataNavigator = PrepareStringGrouping();
dataNavigator.MoveNext();
@ -34,7 +34,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -34,7 +34,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
#region Group by StringValue
[Test]
public void Has_Children()
public void HasChildren()
{
var dataNavigator = PrepareStringGrouping();
while (dataNavigator.MoveNext()) {
@ -44,7 +44,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -44,7 +44,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
[Test]
public void Can_Read_Child_Count ()
public void ReadChildCount ()
{
var dataNavigator = PrepareStringGrouping();
while (dataNavigator.MoveNext())
@ -59,7 +59,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -59,7 +59,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
[Test]
public void Can_FillChild()
public void FillCollection()
{
var dataNavigator = PrepareStringGrouping();
ReportItemCollection searchCol = new ReportItemCollection();
@ -85,15 +85,13 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -85,15 +85,13 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
{
dataNavigator.Fill(searchCol);
var b = (BaseDataItem)searchCol[1];
Console.WriteLine("-- <{0}>-",b.DBValue);
// Console.WriteLine("-- <{0}>-",b.DBValue);
var childNavigator = dataNavigator.GetChildNavigator;
do
{
Assert.That(dataNavigator.HasChildren,Is.True);
childNavigator.Fill(searchCol);
var a = (BaseDataItem)searchCol[0];
Console.WriteLine ("\t{0}",a.DBValue);
var filledItem = (BaseDataItem)searchCol[0];
Assert.That(filledItem.DBValue,Is.Not.Empty);
}
while (childNavigator.MoveNext());
}
@ -103,12 +101,13 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -103,12 +101,13 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
[Test]
public void Collection_Contains_Subclass ()
public void CollectionContainsSubclass ()
{
var modifyedCollection = this.ModifyCollection();
GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);
ReportSettings rs = new ReportSettings();
rs.GroupColumnsCollection.Add(gc);
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(modifyedCollection,rs);
IDataNavigator dataNavigator = dm.GetNavigator;
@ -132,107 +131,91 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -132,107 +131,91 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
}
);
dataNavigator.Reset();
dataNavigator.MoveNext();
string compare = string.Empty;
do
while (dataNavigator.MoveNext())
{
dataNavigator.Fill(searchCol);
var a1 = (BaseDataItem)searchCol[0];
var b1 = (BaseDataItem)searchCol[2];
Console.WriteLine ("-----{0} - {1}------",a1.DBValue,b1.DBValue);
var b1 = (BaseDataItem)searchCol[2];
var result = b1.DBValue;
Assert.That (compare,Is.LessThan(result));
if (dataNavigator.HasChildren)
{
var childNavigator = dataNavigator.GetChildNavigator;
do
{
childNavigator.Fill(searchCol);
var a = (BaseDataItem)searchCol[0];
var b = (BaseDataItem)searchCol[1];
var c = (BaseDataItem)searchCol[2];
Console.WriteLine ("\t{0} - {1} - {2}",a.DBValue,b.DBValue,c.DBValue);
var itemDummy = (BaseDataItem)searchCol[0];
var itemLast = (BaseDataItem)searchCol[1];
var itemGroup = (BaseDataItem)searchCol[2];
// Console.WriteLine ("\t{0} - {1} - {2}",itemDummy.DBValue,itemLast.DBValue,itemGroup.DBValue);
Assert.That(itemDummy.DBValue,Is.Not.Empty);
Assert.That(itemLast.DBValue,Is.Not.Empty);
Assert.That(itemGroup.DBValue,Is.Not.Empty);
}
while (childNavigator.MoveNext());
}
compare = result;
}
while (dataNavigator.MoveNext());
}
#endregion
#region FieldReference
[Test]
public void Check_Field_Reference()
public void SortChildrenDescending()
{
var modifyedCollection = this.ModifyCollection();
GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);
ReportSettings rs = new ReportSettings();
GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);
rs.GroupColumnsCollection.Add(gc);
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(modifyedCollection,rs);
IDataNavigator dataNavigator = dm.GetNavigator;
ReportItemCollection searchCol = new ReportItemCollection();
SortColumn sc = new SortColumn("Last",ListSortDirection.Descending);
rs.SortColumnsCollection.Add(sc);
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.contributorCollection,rs);
var dataNavigator = dm.GetNavigator;
ReportItemCollection searchCol = new ReportItemCollection();
searchCol.Add(new BaseDataItem ()
{
ColumnName ="DummyClass.DummyString"
}
);
searchCol.Add(new BaseDataItem ()
{
Name ="Last",
ColumnName ="Last"
Name ="Last",
ColumnName ="Last"
}
);
searchCol.Add(new BaseDataItem ()
{
ColumnName ="GroupItem"
ColumnName ="GroupItem"
}
);
// searchCol.Add(new BaseTextItem()
// {
// Name ="FieldRef",
// Text ="=Fields!Last"
// }
// );
dataNavigator.Reset();
dataNavigator.MoveNext();
string compare = String.Empty;
do
while (dataNavigator.MoveNext())
{
dataNavigator.Fill(searchCol);
var a1 = (BaseDataItem)searchCol[0];
var b1 = (BaseDataItem)searchCol[2];
Console.WriteLine ("-----{0} - {1}------",a1.DBValue,b1.DBValue);
if (dataNavigator.HasChildren)
{
var column = (BaseDataItem)searchCol[1];
var result = column.DBValue.ToString();
Assert.That (compare,Is.LessThan(result));
if (dataNavigator.HasChildren) {
string compareChild = String.Empty;
var childNavigator = dataNavigator.GetChildNavigator;
do
{
var dataRow = childNavigator.GetDataRow;
var item = dataRow.Find("Last");
// childNavigator.Fill(searchCol);
// var a = (BaseDataItem)searchCol[0];
// var b = (BaseDataItem)searchCol[1];
// var c = (BaseDataItem)searchCol[3];
// Console.WriteLine ("\t{0} - {1} - {2}",a.DBValue,b.DBValue,c.DBValue);
Console.WriteLine(item.Value);
childNavigator.Fill(searchCol);
var childColumn = (BaseDataItem)searchCol[0];
var childResult = childColumn.DBValue.ToString();
// Console.WriteLine("\t{0}",childResult);
if (!String.IsNullOrEmpty(compareChild)) {
Assert.LessOrEqual(childResult,compareChild);
}
compareChild = childResult;
}
while (childNavigator.MoveNext());
}
}
while (dataNavigator.MoveNext());
}
#endregion
#region Group by DataTime
@ -241,9 +224,20 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -241,9 +224,20 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
public void DateTimeCan_FillChild()
{
var dataNavigator = PrepareDateTimeGrouping();
ReportItemCollection searchCol = new ReportItemCollection();
searchCol.Add(new BaseDataItem ()
{
Name ="RandomDate",
ColumnName ="Last"
}
);
Console.WriteLine("start datetime");
while (dataNavigator.MoveNext()) {
var compare = System.DateTime.MinValue;
while (dataNavigator.MoveNext())
{
Contributor groupResult = dataNavigator.Current as Contributor;
Assert.LessOrEqual(compare,groupResult.RandomDate);
if (dataNavigator.HasChildren) {
var childNavigator = dataNavigator.GetChildNavigator;
do
@ -251,8 +245,9 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy @@ -251,8 +245,9 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy
Assert.That(dataNavigator.HasChildren,Is.True);
// we know that current is a 'contributor'
Contributor c = dataNavigator.Current as Contributor;
string v2 = c.Last + " GroupVal :" + c.RandomDate;
Console.WriteLine(v2);
Assert.IsNotNull(c);
// string v2 = c.Last + " GroupVal :" + c.RandomDate;
// Console.WriteLine(v2);
}
while (childNavigator.MoveNext());
}

113
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/TableStragy/GroupTableFixture.cs

@ -17,9 +17,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -17,9 +17,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
DataTable table;
[Test]
public void Can_add_GroupColumn ()
public void AddGroupColumn ()
{
GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);
ReportSettings rs = new ReportSettings();
@ -30,7 +29,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -30,7 +29,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
[Test]
public void AvaiableFields_Should_Be_Set()
public void AvaiableFieldsShouldSet()
{
var dataNavigator = PrepareStringGrouping();
dataNavigator.MoveNext();
@ -44,7 +43,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -44,7 +43,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
#region Group by String
[Test]
public void Has_Children()
public void HasChildren()
{
var dataNavigator = PrepareStringGrouping();
while (dataNavigator.MoveNext()) {
@ -53,7 +52,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -53,7 +52,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
}
[Test]
public void Can_Read_Child_Count ()
public void ReadChildCount ()
{
var dataNavigator = PrepareStringGrouping();
while (dataNavigator.MoveNext())
@ -65,55 +64,129 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -65,55 +64,129 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
}
}
}
[Test]
public void CeckGrouping()
{
var dataNavigator = PrepareStringGrouping();
string compare = string.Empty;
while (dataNavigator.MoveNext())
{
DataRow dr = dataNavigator.Current as DataRow;
var result = dr[3].ToString();
Assert.That (compare,Is.LessThan(result));
compare = result;
}
}
[Test]
public void Can_FillChild()
public void FillChild()
{
var dataNavigator = PrepareStringGrouping();
while (dataNavigator.MoveNext()) {
string compare = string.Empty;
while (dataNavigator.MoveNext())
{
DataRow dr = dataNavigator.Current as DataRow;
Assert.That (compare,Is.LessThan(dr[3].ToString()));
if (dataNavigator.HasChildren)
{
var childNavigator = dataNavigator.GetChildNavigator;
do
{
Assert.That(dataNavigator.HasChildren,Is.True);
DataRow r = dataNavigator.Current as DataRow;
string v2 = r["last"].ToString() + " GroupVal :" + r[3].ToString();
Console.WriteLine(v2);
DataRow r = childNavigator.Current as DataRow;
Assert.That( r[3].ToString(),Is.Not.Empty);
// string v2 = r["last"].ToString() + " GroupVal :" + r[3].ToString();
// Console.WriteLine(v2);
}
while (childNavigator.MoveNext());
}
compare = dr[3].ToString();
}
}
[Test]
public void SortChildrenDescending()
{
ReportSettings rs = new ReportSettings();
GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);
rs.GroupColumnsCollection.Add(gc);
SortColumn sc = new SortColumn("Last",ListSortDirection.Descending);
rs.SortColumnsCollection.Add(sc);
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,rs);
var dataNavigator = dm.GetNavigator;
string compare = String.Empty;
while (dataNavigator.MoveNext())
{
DataRow dr = dataNavigator.Current as DataRow;
var result = dr[3].ToString();
Assert.That(compare,Is.LessThan(result));
if (dataNavigator.HasChildren)
{
string compareChild = String.Empty;
var childNavigator = dataNavigator.GetChildNavigator;
do
{
DataRow childRow = childNavigator.Current as DataRow;
var childResult = childRow[1].ToString();
if (!String.IsNullOrEmpty(compareChild)) {
Assert.LessOrEqual(childResult,compareChild);
}
// Console.WriteLine("\t{0}",childResult);
compareChild = childResult;
}
while (childNavigator.MoveNext());
}
compare = result;
}
}
#endregion
#region GroupbyDataTime
[Test]
public void DateTimeCan_FillChild()
public void DateTimeCanFillChild()
{
var dataNavigator = PrepareDateTimeGrouping();
while (dataNavigator.MoveNext()) {
var compare = System.DateTime.MinValue;
while (dataNavigator.MoveNext())
{
DataRow dr = dataNavigator.Current as DataRow;
var result = Convert.ToDateTime(dr[5]);
Assert.That (compare,Is.LessThan(result));
if (dataNavigator.HasChildren)
{
var childNavigator = dataNavigator.GetChildNavigator;
do
{
Assert.That(dataNavigator.HasChildren,Is.True);
DataRow r = dataNavigator.Current as DataRow;
string v2 = r["last"].ToString() + " GroupVal :" + r[5].ToString();
Console.WriteLine(v2);
DataRow r = childNavigator.Current as DataRow;
Assert.That( r[3].ToString(),Is.Not.Empty);
// string v2 = r["last"].ToString() + " GroupVal :" + r[5].ToString();
// Console.WriteLine(v2);
}
while (childNavigator.MoveNext());
}
compare = Convert.ToDateTime(dr[5]);
}
}
[Test]
public void DataTime_Has_Children()
public void DataTimeHasChildren()
{
var dataNav = PrepareDateTimeGrouping();
while (dataNav.MoveNext()) {
@ -126,9 +199,9 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -126,9 +199,9 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
#region Try make recursive with ChildNavigator
[Test]
public void Can_Get_ChildNavigator ()
public void GetChildNavigator ()
{
Console.WriteLine("Start Recusive Version");
// Console.WriteLine("Start Recusive Version");
var dataNavigator = PrepareStringGrouping();
while (dataNavigator.MoveNext()) {
@ -138,7 +211,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -138,7 +211,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
string v2 = r["last"].ToString() + " GroupVal :" + r[3].ToString() ;
IDataNavigator child = dataNavigator.GetChildNavigator;
Console.WriteLine(v2);
// Console.WriteLine(v2);
Assert.That (child,Is.Not.Null);
RecursiveCall(child);
}
@ -178,8 +251,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy @@ -178,8 +251,8 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.TableStrategy
private IDataNavigator PrepareDateTimeGrouping ()
{
GroupColumn gc = new GroupColumn("RandomDate",1,ListSortDirection.Ascending);
ReportSettings rs = new ReportSettings();
GroupColumn gc = new GroupColumn("RandomDate",1,ListSortDirection.Ascending);
rs.GroupColumnsCollection.Add(gc);
IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.table,rs);
return dm.GetNavigator;

23
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/IntegrationTests/GlobalFunctions.cs

@ -58,28 +58,6 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.IntegrationTests @@ -58,28 +58,6 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.IntegrationTests
[Test]
#region Template for Resolution
/*
// const string expression = "PageNumber()";
// var compiler = new ReportingLanguageCompiler();
// IExpression compiled = compiler.CompileExpression<string>(expression);
// var context = new ExpressionContext(null);
// context.ResolveUnknownVariable += VariableStore;
// context.ResolveUnknownVariable += (sender, args) =>
// {
// Assert.That(args.VariableName, Is.EqualTo("pagenumber"));
// //args.VariableValue = 123.456;
// };
//Assert.That(compiled.Evaluate(context), Is.EqualTo("15"));
Assert.That(this.evaluator.Evaluate(expression), Is.EqualTo("15"));
//this.evaluator.Evaluate(expression)
*/
#endregion
public void Can_Compile_PageNumber_AsFunction()
{
const string expression = "=PageNumber()";
@ -98,7 +76,6 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.IntegrationTests @@ -98,7 +76,6 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.IntegrationTests
[Test]
public void UnknownFunction_ErrorMessage()
{
const string expression = "=TotalWrongFunction()";
string s = this.evaluator.Evaluate(expression);
Assert.That(s.Contains("TotalWrongFunction"));

Loading…
Cancel
Save