Browse Source

Cleanup in DataSource

reports
Peter Forstmeier 12 years ago
parent
commit
bb2bfa451d
  1. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
  2. 27
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionDataSource.cs
  3. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj

@ -50,6 +50,9 @@
<Reference Include="Irony.Interpreter"> <Reference Include="Irony.Interpreter">
<HintPath>..\Libraries\Irony.Interpreter.dll</HintPath> <HintPath>..\Libraries\Irony.Interpreter.dll</HintPath>
</Reference> </Reference>
<Reference Include="PdfSharp-WPF">
<HintPath>..\Libraries\PdfSharp-WPF.dll</HintPath>
</Reference>
<Reference Include="PresentationCore"> <Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework> <RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference> </Reference>

27
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionDataSource.cs

@ -103,14 +103,12 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling
var sorted = SortInternal(); var sorted = SortInternal();
orderGroup = OrderGroup.Sorted; orderGroup = OrderGroup.Sorted;
listEnumerator = sorted.GetEnumerator(); listEnumerator = sorted.GetEnumerator();
listEnumerator.MoveNext();
Current = listEnumerator.Current;
} else { } else {
orderGroup = OrderGroup.AsIs; orderGroup = OrderGroup.AsIs;
listEnumerator = baseList.GetEnumerator(); listEnumerator = baseList.GetEnumerator();
listEnumerator.MoveNext();
Current = listEnumerator.Current;
} }
listEnumerator.MoveNext();
Current = listEnumerator.Current;
} }
@ -163,8 +161,9 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling
#region Fill #region Fill
private IEnumerable<IGrouping<object, object>> groupedList;
private IEnumerator<IGrouping<object, object>> groupEnumerator; private IEnumerator<IGrouping<object, object>> groupEnumerator;
private IEnumerable<IGrouping<object, object>> groupedList;
private IEnumerator<object> listEnumerator; private IEnumerator<object> listEnumerator;
public void Fill(List<IPrintableObject> collection) public void Fill(List<IPrintableObject> collection)
@ -190,8 +189,9 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling
string ReadValueFromProperty (string columnName) { string ReadValueFromProperty (string columnName) {
var p = listProperties.Find(columnName,true); var propertyPath = Current.ParsePropertyPath(columnName);
return p.GetValue(Current).ToString(); var val = propertyPath.Evaluate(Current);
return val.ToString();
} }
@ -203,20 +203,17 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling
public bool MoveNext() public bool MoveNext()
{ {
var canMove = listEnumerator.MoveNext(); var canMove = listEnumerator.MoveNext();
if (orderGroup == OrderGroup.Grouped) { if (orderGroup == OrderGroup.Grouped) {
if (! canMove) { if (! canMove) {
var groupCanMove = groupEnumerator.MoveNext(); var groupCanMove = groupEnumerator.MoveNext();
if (groupCanMove) { if (groupCanMove) {
listEnumerator = groupEnumerator.Current.GetEnumerator(); listEnumerator = groupEnumerator.Current.GetEnumerator();
canMove = listEnumerator.MoveNext(); canMove = listEnumerator.MoveNext();
Current = listEnumerator.Current;
} }
} else { }
Current = listEnumerator.Current; Current = listEnumerator.Current;
}
return canMove; return canMove;
} }
@ -229,8 +226,8 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling
static DataCollection<object> CreateBaseList(IEnumerable source) static DataCollection<object> CreateBaseList(IEnumerable source)
{ {
Type et = source.AsQueryable().ElementType; Type elementType = source.AsQueryable().ElementType;
var list = new DataCollection<object>(et); var list = new DataCollection<object>(elementType);
list.AddRange(source); list.AddRange(source);
return list; return list;
} }

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs

@ -55,7 +55,7 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory
var stream = asm.GetManifestResourceStream(TestHelper.ReportFromList); var stream = asm.GetManifestResourceStream(TestHelper.ReportFromList);
var reportingFactory = new ReportingFactory(); var reportingFactory = new ReportingFactory();
var rc = reportingFactory.ReportCreator(stream,typeof(Contributor),list); var rc = reportingFactory.ReportCreator(stream,list);
Assert.That(rc,Is.Not.Null); Assert.That(rc,Is.Not.Null);
Assert.That(rc,Is.TypeOf(typeof(DataPageBuilder))); Assert.That(rc,Is.TypeOf(typeof(DataPageBuilder)));
} }

Loading…
Cancel
Save