Browse Source

DataContainerConverter.cs

reports
Peter Forstmeier 13 years ago
parent
commit
3fae35bff9
  1. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs
  2. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/DebugVisitor.cs
  3. 7
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
  4. 34
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/DataContainerConverter.cs
  5. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
  6. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs
  7. 15
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
  8. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs
  9. 10
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs

@ -42,13 +42,11 @@ namespace ICSharpCode.Reporting.Exporter
var acceptor = item as IAcceptor; var acceptor = item as IAcceptor;
if (exportContainer != null) { if (exportContainer != null) {
if (acceptor != null) { if (acceptor != null) {
// Console.WriteLine("--container--");
acceptor.Accept(visitor); acceptor.Accept(visitor);
} }
ShowDebug(item as IExportContainer); ShowDebug(item as IExportContainer);
} else { } else {
if (acceptor != null) { if (acceptor != null) {
// Console.WriteLine("..Item...");
acceptor.Accept(visitor); acceptor.Accept(visitor);
} }
} }

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/DebugVisitor.cs

@ -29,7 +29,9 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public override void Visit(ExportContainer exportColumn) public override void Visit(ExportContainer exportColumn)
{ {
Console.WriteLine("Visit ExportContainer {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.Location); Console.WriteLine("Start Container");
Console.WriteLine("Visit ExportContainer {0} - {1} - {2} - Items {3}",
exportColumn.Name,exportColumn.Size,exportColumn.Location,exportColumn.ExportedItems.Count);
} }
public override void Visit(ExportText exportColumn) public override void Visit(ExportText exportColumn)

7
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs

@ -43,7 +43,7 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
var exportContainer = CreateExportContainer(); var exportContainer = CreateExportContainer();
var itemsList = CreateConvertedList(exportContainer); var itemsList = CreateConvertedList(exportContainer,Point.Empty);
exportContainer.ExportedItems.AddRange(itemsList); exportContainer.ExportedItems.AddRange(itemsList);
@ -63,12 +63,13 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
} }
protected List<IExportColumn> CreateConvertedList(ExportContainer exportContainer) protected List<IExportColumn> CreateConvertedList(ExportContainer exportContainer,Point position)
{ {
var itemsList = new List<IExportColumn>(); var itemsList = new List<IExportColumn>();
foreach (var element in Container.Items) { foreach (var element in Container.Items) {
var exportColumn = ExportColumnFactory.CreateItem(element); var exportColumn = ExportColumnFactory.CreateItem(element);
exportColumn.Parent = exportContainer; exportColumn.Parent = exportContainer;
exportColumn.Location = new Point(element.Location.X,element.Location.Y + position.Y);
exportColumn.DesiredSize = Measure(element); exportColumn.DesiredSize = Measure(element);
itemsList.Add(exportColumn); itemsList.Add(exportColumn);
Console.WriteLine("Size {0} DesiredSize {1}", exportColumn.Size, exportColumn.DesiredSize); Console.WriteLine("Size {0} DesiredSize {1}", exportColumn.Size, exportColumn.DesiredSize);
@ -93,7 +94,7 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
internal IReportContainer Container { get; private set; } internal IReportContainer Container { get; private set; }
internal Point CurrentLocation { get; private set; } protected Point CurrentLocation { get; set; }
internal Graphics Graphics {get;private set;} internal Graphics Graphics {get;private set;}
} }

34
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/DataContainerConverter.cs

@ -42,14 +42,39 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
this.collectionSource = collectionSource; this.collectionSource = collectionSource;
} }
public override IExportContainer Convert(){
if (collectionSource.Count == 0) {
return base.Convert();
}
var exportContainer = CreateExportContainer();
Console.WriteLine("");
Console.WriteLine("start CurrentLocation {0}",CurrentLocation);
var position = Point.Empty;
do {
collectionSource.Fill(Container.Items);
// Console.WriteLine(((BaseDataItem)Container.Items[0]).DBValue);
var itemsList = CreateConvertedList(exportContainer,position);
exportContainer.ExportedItems.AddRange(itemsList);
// CurrentLocation = new Point(CurrentLocation.X,CurrentLocation.Y + Container.Size.Height);
position = new Point(Container.Location.X,position.Y + Container.Size.Height);
}
while (collectionSource.MoveNext());
Console.WriteLine("end CurrentLocation {0}",CurrentLocation);
Console.WriteLine("");
ArrangeContainer(exportContainer);
return exportContainer;
}
/*
public override IExportContainer Convert(){ public override IExportContainer Convert(){
if (collectionSource.Count == 0) { if (collectionSource.Count == 0) {
return base.Convert(); return base.Convert();
} }
var exportContainer = CreateExportContainer(); var exportContainer = CreateExportContainer();
Console.WriteLine("");
Console.WriteLine("start CurrentLocation {0}",CurrentLocation);
do { do {
collectionSource.Fill(Container.Items); collectionSource.Fill(Container.Items);
Console.WriteLine(((BaseDataItem)Container.Items[0]).DBValue); Console.WriteLine(((BaseDataItem)Container.Items[0]).DBValue);
@ -57,12 +82,11 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
exportContainer.ExportedItems.AddRange(itemsList); exportContainer.ExportedItems.AddRange(itemsList);
} }
while (collectionSource.MoveNext()); while (collectionSource.MoveNext());
Console.WriteLine("end CurrentLocation {0}",CurrentLocation);
// Console.WriteLine("calling Container-Arrange"); Console.WriteLine("");
// var exportArrange = exportContainer.GetArrangeStrategy();
// exportArrange.Arrange(exportContainer);
ArrangeContainer(exportContainer); ArrangeContainer(exportContainer);
return exportContainer; return exportContainer;
} }
*/
} }
} }

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs

@ -38,8 +38,8 @@ namespace ICSharpCode.Reporting.PageBuilder
var collectionSource = new CollectionSource(List,ElementType,ReportModel.ReportSettings); var collectionSource = new CollectionSource(List,ElementType,ReportModel.ReportSettings);
collectionSource.Bind(); collectionSource.Bind();
CurrentLocation = DetailStart; CurrentLocation = DetailStart;
var dc = new DataContainerConverter(base.Graphics,ReportModel.DetailSection,CurrentLocation,collectionSource); var converter = new DataContainerConverter(base.Graphics,ReportModel.DetailSection,CurrentLocation,collectionSource);
var detail = dc.Convert(); var detail = converter.Convert();
CurrentPage.ExportedItems.Insert(2,detail); CurrentPage.ExportedItems.Insert(2,detail);
} }

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs

@ -39,7 +39,6 @@ namespace ICSharpCode.Reporting.PageBuilder
{ {
Console.WriteLine("FormPageBuilder - Build DetailSection {0} - {1} - {2}",ReportModel.ReportSettings.PageSize.Width,ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.RightMargin); Console.WriteLine("FormPageBuilder - Build DetailSection {0} - {1} - {2}",ReportModel.ReportSettings.PageSize.Width,ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.RightMargin);
CurrentLocation = DetailStart; CurrentLocation = DetailStart;
var detail = CreateSection(ReportModel.DetailSection,CurrentLocation); var detail = CreateSection(ReportModel.DetailSection,CurrentLocation);
detail.Parent = CurrentPage; detail.Parent = CurrentPage;
CurrentPage.ExportedItems.Insert(2,detail); CurrentPage.ExportedItems.Insert(2,detail);

15
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs

@ -40,26 +40,25 @@ namespace ICSharpCode.Reporting
} }
internal IReportCreator ReportCreator (Stream stream) public IReportCreator ReportCreator (Stream stream,Type listType,IEnumerable list)
{ {
IReportModel reportModel = LoadReportModel (stream); ReportModel = LoadReportModel (stream);
IReportCreator builder = null; IReportCreator builder = null;
builder = ReportCreatorFactory.ExporterFactory(reportModel); builder = new DataPageBuilder(ReportModel,listType,list );
return builder; return builder;
} }
internal IReportCreator ReportCreator<T> (Stream stream,IList<T> list) internal IReportCreator ReportCreator (Stream stream)
{ {
IReportModel reportModel = LoadReportModel (stream); IReportModel reportModel = LoadReportModel (stream);
IReportCreator builder = null; IReportCreator builder = null;
builder = new DataPageBuilder(reportModel,typeof(T),list ); builder = ReportCreatorFactory.ExporterFactory(reportModel);
return builder; return builder;
} }
public ReportModel LoadReportModel (Stream stream)
internal ReportModel LoadReportModel (Stream stream)
{ {
var doc = new XmlDocument(); var doc = new XmlDocument();
doc.Load(stream); doc.Load(stream);
@ -78,5 +77,7 @@ namespace ICSharpCode.Reporting
} }
return model; return model;
} }
public ReportModel ReportModel {get;private set;}
} }
} }

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs

@ -55,9 +55,6 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
where s.GetType() == typeof(ExportContainer) where s.GetType() == typeof(ExportContainer)
select s; select s;
Assert.That(sections.ToList().Count,Is.EqualTo(5)); Assert.That(sections.ToList().Count,Is.EqualTo(5));
Console.WriteLine("-------PageLayoutFixture:ShowDebug---------");
var ex = new DebugExporter(reportCreator.Pages);
ex.Run();
} }

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

@ -7,10 +7,12 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers. * To change this template use Tools | Options | Coding | Edit Standard Headers.
*/ */
using System; using System;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Reflection;
using System.Linq; using System.Linq;
using System.Collections.Generic; using System.Reflection;
using ICSharpCode.Reporting.Exporter;
using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.PageBuilder; using ICSharpCode.Reporting.PageBuilder;
using ICSharpCode.Reporting.PageBuilder.ExportColumns; using ICSharpCode.Reporting.PageBuilder.ExportColumns;
@ -38,12 +40,14 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory
reportCreator.BuildExportList(); reportCreator.BuildExportList();
var exporteditems = reportCreator.Pages[0].ExportedItems; var exporteditems = reportCreator.Pages[0].ExportedItems;
var sections = from s in exporteditems var sections = from s in exporteditems
where s.GetType() == typeof(ExportContainer) where s.GetType() == typeof(ExportContainer)
select s; select s;
var section = sections.ToList()[2] as ExportContainer; var section = sections.ToList()[2] as ExportContainer;
var result = section.ExportedItems[0]; var result = section.ExportedItems[0];
Assert.That(result,Is.AssignableFrom(typeof(ExportText))); Assert.That(result,Is.AssignableFrom(typeof(ExportText)));
Console.WriteLine("-------PageLayoutFixture:ShowDebug---------");
var ex = new DebugExporter(reportCreator.Pages);
ex.Run();
} }

Loading…
Cancel
Save