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

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

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

Loading…
Cancel
Save