Browse Source

More test's for IList Grouping

pull/1/head
peterforstmeier 15 years ago
parent
commit
13f7db49ba
  1. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs
  2. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs
  3. 26
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs
  4. 61
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs
  5. 39
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs
  6. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataViewStrategy.cs
  7. 26
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/GroupListFixture.cs

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs

@ -239,7 +239,11 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -239,7 +239,11 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
ExportText textItem = element as ExportText;
if (textItem != null) {
textItem.Text = evaluator.Evaluate(textItem.Text);
string s = evaluator.Evaluate(textItem.Text);
Console.WriteLine("\teval {0} - {1} ",textItem.Text,s);
// textItem.Text = evaluator.Evaluate(textItem.Text);
textItem.Text = s;
}
}
}

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

@ -162,9 +162,9 @@ namespace ICSharpCode.Reports.Core @@ -162,9 +162,9 @@ namespace ICSharpCode.Reports.Core
private IndexList BuildChildList()
{
var t = store as TableStrategy;
IndexList i = t.IndexList;
GroupComparer gc = i[t.CurrentPosition] as GroupComparer;
IndexList i = store.IndexList;
GroupComparer gc = i[store.CurrentPosition] as GroupComparer;
if (gc == null) {
return null;
}

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

@ -74,7 +74,6 @@ namespace ICSharpCode.Reports.Core { @@ -74,7 +74,6 @@ namespace ICSharpCode.Reports.Core {
protected ReportSettings ReportSettings {get;private set;}
#region Sorting delegates
protected static List<BaseComparer> GenericSorter (List<BaseComparer> list)
@ -94,8 +93,32 @@ namespace ICSharpCode.Reports.Core { @@ -94,8 +93,32 @@ namespace ICSharpCode.Reports.Core {
#endregion
#region Grouping
protected void BuildGroup (IndexList list)
{
string compVal = String.Empty;
IndexList.Clear();
IndexList childList = null;
BaseComparer checkElem = list[0];
foreach (BaseComparer element in list)
{
string v = element.ObjectArray[0].ToString();
if (compVal != v) {
childList = new IndexList();
GroupComparer gc = CreateGroupHeader(element);
gc.IndexList = childList;
CreateGroupeChildren(childList,element);
} else {
CreateGroupeChildren(childList,element);
}
compVal = v;
}
ShowIndexList(IndexList);
}
protected GroupComparer CreateGroupHeader (BaseComparer sc)
{
GroupComparer gc = new GroupComparer(sc.ColumnCollection,sc.ListIndex,sc.ObjectArray);
@ -109,6 +132,7 @@ namespace ICSharpCode.Reports.Core { @@ -109,6 +132,7 @@ namespace ICSharpCode.Reports.Core {
string v = sc.ObjectArray[0].ToString();
list.Add(sc);
}
#endregion
#region Debug Code

61
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs

@ -164,54 +164,17 @@ namespace ICSharpCode.Reports.Core { @@ -164,54 +164,17 @@ namespace ICSharpCode.Reports.Core {
}
}
public override void Group ()
{
base.Group();
IndexList gl = new IndexList("group");
gl = this.BuildSortIndex (ReportSettings.GroupColumnsCollection);
ShowIndexList(gl);
BuildGroup(gl);
}
private void BuildGroup (IndexList list)
{
string compVal = String.Empty;
base.IndexList.Clear();
IndexList childList = null;
BaseComparer checkElem = list[0];
foreach (BaseComparer element in list)
{
string v = element.ObjectArray[0].ToString();
if (compVal != v) {
childList = new IndexList();
GroupComparer gc = base.CreateGroupHeader(element);
gc.IndexList = childList;
CreateGroupeChildren(childList,element);
} else {
CreateGroupeChildren(childList,element);
}
compVal = v;
}
ShowIndexList(base.IndexList);
}
/*
private GroupComparer BuildGroupHeader (BaseComparer sc)
{
GroupComparer gc = new GroupComparer(sc.ColumnCollection,sc.ListIndex,sc.ObjectArray);
base.IndexList.Add(gc);
return gc;
base.BuildGroup(gl);
}
private void GChild(IndexList list,BaseComparer sc)
{
string v = sc.ObjectArray[0].ToString();
list.Add(sc);
}
*/
public override void Sort()
{
base.Sort();
@ -228,8 +191,6 @@ namespace ICSharpCode.Reports.Core { @@ -228,8 +191,6 @@ namespace ICSharpCode.Reports.Core {
}
public override void Reset()
{
this.CurrentPosition = 0;
@ -248,6 +209,8 @@ namespace ICSharpCode.Reports.Core { @@ -248,6 +209,8 @@ namespace ICSharpCode.Reports.Core {
Reset();
}
#endregion
public override void Fill(IDataItem item)
{
if (current != null) {
@ -315,21 +278,7 @@ namespace ICSharpCode.Reports.Core { @@ -315,21 +278,7 @@ namespace ICSharpCode.Reports.Core {
}
#endregion
/*
protected override void Group()
{
if (base.ReportSettings.GroupColumnsCollection.Count == 0) {
return;
}
this.BuildGroup();
base.Group();
}
*/
#endregion
#region IDisposable
public override void Dispose(){

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

@ -149,45 +149,6 @@ namespace ICSharpCode.Reports.Core @@ -149,45 +149,6 @@ namespace ICSharpCode.Reports.Core
return arrayList;
}
private void BuildGroup (IndexList list)
{
string compVal = String.Empty;
base.IndexList.Clear();
IndexList childList = null;
BaseComparer checkElem = list[0];
foreach (BaseComparer element in list)
{
string v = element.ObjectArray[0].ToString();
if (compVal != v) {
childList = new IndexList();
GroupComparer gc = base.CreateGroupHeader(element);
gc.IndexList = childList;
CreateGroupeChildren(childList,element);
} else {
CreateGroupeChildren(childList,element);
}
compVal = v;
}
ShowIndexList(base.IndexList);
}
// private GroupComparer CreateGroupHeader (BaseComparer sc)
// {
// GroupComparer gc = new GroupComparer(sc.ColumnCollection,sc.ListIndex,sc.ObjectArray);
// base.IndexList.Add(gc);
// return gc;
// }
/*
private void CreateGroupeChildren(IndexList list,BaseComparer sc)
{
string v = sc.ObjectArray[0].ToString();
list.Add(sc);
}
*/
private IndexList IndexBuilder(SortColumnCollection col)
{

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataViewStrategy.cs

@ -19,6 +19,8 @@ namespace ICSharpCode.Reports.Core{ @@ -19,6 +19,8 @@ namespace ICSharpCode.Reports.Core{
void Bind();
void Fill (IDataItem item);
IndexList IndexList {get;}
//test
CurrentItemsCollection FillDataRow();
//

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

@ -39,6 +39,32 @@ namespace ICSharpCode.Reports.Core.Test.DataManager @@ -39,6 +39,32 @@ namespace ICSharpCode.Reports.Core.Test.DataManager
}
#region group by StringValue
[Test]
public void Has_Children()
{
var dataNav = PrepareStringGrouping();
while (dataNav.MoveNext()) {
Assert.That(dataNav.HasChildren,Is.True);
}
}
[Test]
public void Can_Read_Child_Count ()
{
var dataNav = PrepareStringGrouping();
while (dataNav.MoveNext())
{
Assert.That(dataNav.ChildListCount,Is.GreaterThan(0));
}
}
#endregion
private IDataNavigator PrepareStringGrouping ()
{
GroupColumn gc = new GroupColumn("GroupItem",1,ListSortDirection.Ascending);

Loading…
Cancel
Save