Browse Source

Initial Check in of new Exporter

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/reports@5839 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 16 years ago
parent
commit
e8a77345dd
  1. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
  2. 64
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/AbstractReportCreator.cs
  3. 57
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converter/ItemsConverter.cs
  4. 225
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataExportListBuilder.cs
  5. 19
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataReportCreator.cs
  6. 52
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/PageDescription.cs
  7. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Utilities/ReflectionExtensions.cs
  8. 10
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/IReportCreator.cs
  9. 62
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/Converter/ItemsConverterFixture.cs
  10. 122
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/DataListBuilderFixture.cs
  11. 87
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/DataPageBuilderFixture.cs
  12. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj

@ -128,7 +128,10 @@ @@ -128,7 +128,10 @@
<Compile Include="Project\Exceptions\WrongColumnException.cs" />
<Compile Include="Project\Exceptions\WrongSectionException.cs" />
<Compile Include="Project\Exporter\AbstractReportCreator.cs" />
<Compile Include="Project\Exporter\Converter\ItemsConverter.cs" />
<Compile Include="Project\Exporter\DataExportListBuilder.cs" />
<Compile Include="Project\Exporter\DataReportCreator.cs" />
<Compile Include="Project\Exporter\PageDescription.cs" />
<Compile Include="Project\old_Exporter\BasePager.cs" />
<Compile Include="Project\old_Exporter\Converters\BaseConverter.cs" />
<Compile Include="Project\old_Exporter\Converters\ConverterFactory.cs" />
@ -356,6 +359,7 @@ @@ -356,6 +359,7 @@
<Folder Include="Project\Exceptions" />
<Folder Include="Project\Exporter" />
<Folder Include="Project\Converter" />
<Folder Include="Project\Exporter\Converter" />
<Folder Include="Project\New Folder" />
<Folder Include="Project\old_Exporter\Converters" />
<Folder Include="Project\Expressions\SimpleExpressionEvaluator" />

64
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/AbstractReportCreator.cs

@ -7,26 +7,70 @@ @@ -7,26 +7,70 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using ICSharpCode.Reports.Core.Interfaces;
namespace ICSharpCode.Reports.Core.Project.Exporter
namespace ICSharpCode.Reports.Core.Exporter
{
/// <summary>
/// Description of BaseReportCreator.
/// </summary>
public class AbstractReportCreator:IReportCreator
public class AbstractReportCreator:IReportCreator_2
{
public AbstractReportCreator(IReportModel reportModel)
{
if (reportModel == null) {
throw new ArgumentNullException("ReportModel");
}
ReportModel = reportModel;
this.ReportModel = reportModel;
}
protected IReportModel ReportModel {get; private set;}
#region Convertion
/*
protected virtual void BuildReportHeader ()
{
}
protected virtual void BuildPageHeader ()
{
}
protected virtual void BuildDetailInternal (BaseSection section)
{
}
protected virtual void BuildPageFooter ()
{
}
protected virtual void BuildReportFooter ()
{
}
*/
public virtual void BuildExportList ()
{
this.Pages.Clear();
AbstractExportListBuilder.WritePages();
}
protected virtual void AddPage ()
{
}
#endregion
protected IReportModel ReportModel {get; set;}
protected AbstractExportListBuilder AbstractExportListBuilder {get;set;}
#region IReportCreator
@ -34,16 +78,14 @@ namespace ICSharpCode.Reports.Core.Project.Exporter @@ -34,16 +78,14 @@ namespace ICSharpCode.Reports.Core.Project.Exporter
public event EventHandler<SectionRenderEventArgs> SectionRendering;
public PagesCollection Pages {
public virtual PageDescriptions Pages {
get {
throw new NotImplementedException();
return AbstractExportListBuilder.Pages;
}
}
public void BuildExportList()
{
throw new NotImplementedException();
}
#endregion
}

57
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converter/ItemsConverter.cs

@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 21.05.2010
* Time: 19:35
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
namespace ICSharpCode.Reports.Core.Exporter.Converter
{
public interface IItemsConverter
{
ReportItemCollection Convert (BaseReportItem parent,IEnumerable<BaseReportItem> itemsSource);
Point LocationAfterConvert {get;}
}
/// <summary>
/// Description of ItemsConverterr.
/// </summary>
public class ItemsConverter:IItemsConverter
{
Point locationAfterConvert;
public ItemsConverter()
{
}
public ReportItemCollection Convert (BaseReportItem parent,IEnumerable<BaseReportItem> itemsSource)
{
var col = new ReportItemCollection();
foreach (BaseReportItem element in itemsSource) {
col.Add(element);
}
this.locationAfterConvert = new Point(parent.Size.Width,parent.Size.Height);
return col;
}
public Point LocationAfterConvert {
get { return locationAfterConvert; }
}
}
}

225
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataExportListBuilder.cs

@ -0,0 +1,225 @@ @@ -0,0 +1,225 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 15.05.2010
* Time: 18:21
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Drawing;
using System.Linq;
using ICSharpCode.Reports.Core.Interfaces;
namespace ICSharpCode.Reports.Core.Exporter
{
/// <summary>
/// Description of BuildExportList.
/// </summary>
public class DataExportListBuilder:AbstractExportListBuilder
{
public DataExportListBuilder(IReportModel reportModel,IDataManager dataManager):base(reportModel)
{
this.DataManager = dataManager;
this.DataManager.GetNavigator.MoveNext();
}
public override void WritePages ()
{
base.CreateNewPage();
base.PositionAfterRenderSection = this.BuildReportHeader(SinglePage.SectionBounds.ReportHeaderRectangle.Location);
this.BuildPageHeader();
// BaseSection section = base.ReportModel.DetailSection;
//
// section.SectionOffset = base.SinglePage.SectionBounds.DetailStart.Y;
// this.BuildDetail (section,dataNavigator);
//
// this.BuildReportFooter(SectionBounds.ReportFooterRectangle);
// this.BuildPageFooter();
// //this is the last Page
this.AddPage(base.SinglePage);
//base.FinishRendering(this.dataNavigator);
}
public IDataManager DataManager {get; private set;}
}
public class PageDescriptions :Collection<PageDescription>
{
}
public class AbstractExportListBuilder
{
private PageDescriptions pages;
private readonly object pageLock = new object();
public AbstractExportListBuilder (IReportModel reportModel)
{
this.ReportModel = reportModel;
}
public virtual void WritePages ()
{
}
private ReportItemCollection ConvertContainer (ISimpleContainer container)
{
var col = new ReportItemCollection();
foreach (BaseReportItem element in container.Items)
{
col.Add(element);
}
return col;
}
private void ConvertSimpleItems (IEnumerable<BaseReportItem> items)
{
foreach (BaseReportItem element in items) {
var container = element as ISimpleContainer;
if (container != null) {
Console.WriteLine(" is recursive");
container.Items.AddRange(ConvertContainer (container));
}
this.SinglePage.Items.Add(element);
}
}
private bool CanGrow (IEnumerable<BaseReportItem> collection)
{
IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in collection where bt.CanGrow == true select bt;
return (canGrowShrinkCollection.Count() > 0);
}
private bool CanShrink (IEnumerable<BaseReportItem> collection)
{
IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in collection where bt.CanShrink == true select bt;
return (canGrowShrinkCollection.Count() > 0);
}
protected virtual Point BuildReportHeader (Point reportHeaderStart)
{
System.Console.WriteLine("BuildReportHeader at {0} with {1} items ",reportHeaderStart,ReportModel.ReportHeader.Items.Count);
BaseSection section = ReportModel.ReportHeader;
Size size = section.Size;
Point retval = Point.Empty;
if ((!CanGrow(section.Items)) | (!CanShrink(section.Items))) {
ConvertSimpleItems (section.Items);
retval = new Point (reportHeaderStart.X , reportHeaderStart.Y + size.Height);
} else {
retval = new Point (reportHeaderStart.X , 150);
}
return retval;
}
protected virtual void BuildPageHeader ()
{
// System.Diagnostics.Trace.WriteLine(" BuildPageHeader");
// PositionAfterRenderSection = new Point(PositionAfterRenderSection.X,PositionAfterRenderSection.Y + 20);
}
protected virtual void BuildDetailInternal (BaseSection section)
{
System.Diagnostics.Trace.WriteLine("BuildDetailInterna ");
}
protected virtual void BuildPageFooter ()
{
System.Diagnostics.Trace.WriteLine("BuildPageFooter ");
}
protected virtual void BuildReportFooter ()
{
System.Diagnostics.Trace.WriteLine("BuildReportFooter ");
}
public virtual void CreateNewPage ()
{
this.SinglePage = this.InitNewPage();
PrintHelper.InitPage(this.SinglePage,this.ReportModel.ReportSettings);
this.SinglePage.CalculatePageBounds(this.ReportModel);
// this.pageFull = false;
}
public Point PositionAfterRenderSection {get;set;}
protected PageDescription InitNewPage ()
{
SectionBounds sectionBounds = new SectionBounds (ReportModel.ReportSettings,(this.Pages.Count == 0));
return new PageDescription(sectionBounds,Pages.Count + 1);
}
protected void AddPage (PageDescription page)
{
if (page == null) {
throw new ArgumentNullException("page");
}
// lock (addLock) {
Pages.Add(page);
// }
//FirePageCreated(page);
}
public PageDescription SinglePage {get;private set;}
public IReportModel ReportModel {get;private set;}
public PageDescriptions Pages
{
get {
lock(pageLock) {
if (this.pages == null) {
pages = new PageDescriptions();
}
return pages;
}
}
}
}
}

19
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataReportCreator.cs

@ -8,12 +8,10 @@ @@ -8,12 +8,10 @@
*/
using System;
using System.Drawing;
using ICSharpCode.Reports.Core.Events;
using ICSharpCode.Reports.Core.Interfaces;
using ICSharpCode.Reports.Core.Project.Exporter;
namespace ICSharpCode.Reports.Core.old_Exporter
namespace ICSharpCode.Reports.Core.Exporter
{
/// <summary>
/// Description of DataReportCreator.
@ -21,11 +19,11 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -21,11 +19,11 @@ namespace ICSharpCode.Reports.Core.old_Exporter
public class DataReportCreator:AbstractReportCreator
{
IDataManager dataManager;
#region Constructor
public static IReportCreator CreateInstance(IReportModel reportModel, IDataManager dataManager,ILayouter layouter)
public static AbstractReportCreator CreateInstance(IReportModel reportModel, IDataManager dataManager,ILayouter layouter)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
@ -43,12 +41,17 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -43,12 +41,17 @@ namespace ICSharpCode.Reports.Core.old_Exporter
private DataReportCreator (IReportModel reportModel,IDataManager dataManager,ILayouter layouter):base(reportModel)
{
// this.dataManager = dataManager;
this.dataManager = dataManager;
base.AbstractExportListBuilder = new DataExportListBuilder(reportModel,dataManager);
}
#endregion
public override void BuildExportList()
{
base.AbstractExportListBuilder.WritePages();
}
}
}

52
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/PageDescription.cs

@ -0,0 +1,52 @@ @@ -0,0 +1,52 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 16.05.2010
* Time: 19:06
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace ICSharpCode.Reports.Core.Exporter
{
/// <summary>
/// Description of PageDescription.
/// </summary>
public class PageDescription:SinglePage
{
private ReportItemCollection items;
public PageDescription (SectionBounds sectionBounds,int pageNumber):base(sectionBounds,pageNumber)
{
if (sectionBounds == null) {
throw new ArgumentNullException("sectionBounds");
}
this.SectionBounds = sectionBounds;
}
public ReportItemCollection Items
{
get {
if (this.items == null) {
this.items = new ReportItemCollection();
}
return this.items;
}
}
// public ExporterCollection Items
// {
// get {
// if (this.items == null) {
// items = new ExporterCollection();
// }
// return items;
// }
// }
}
}

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Utilities/ReflectionExtensions.cs

@ -37,5 +37,6 @@ namespace SimpleExpressionEvaluator.Utilities @@ -37,5 +37,6 @@ namespace SimpleExpressionEvaluator.Utilities
return null;
}
}
}

10
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/IReportCreator.cs

@ -6,6 +6,7 @@ @@ -6,6 +6,7 @@
*
* Sie können diese Vorlage unter Extras > Optionen > Codeerstellung > Standardheader ändern.
*/
using ICSharpCode.Reports.Core.Exporter;
using ICSharpCode.Reports.Core.old_Exporter;
using System;
@ -21,4 +22,13 @@ namespace ICSharpCode.Reports.Core @@ -21,4 +22,13 @@ namespace ICSharpCode.Reports.Core
event EventHandler<PageCreatedEventArgs> PageCreated;
event EventHandler<SectionRenderEventArgs> SectionRendering;
}
public interface IReportCreator_2
{
void BuildExportList ();
PageDescriptions Pages{get;}
event EventHandler<PageCreatedEventArgs> PageCreated;
event EventHandler<SectionRenderEventArgs> SectionRendering;
}
}

62
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/Converter/ItemsConverterFixture.cs

@ -0,0 +1,62 @@ @@ -0,0 +1,62 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 21.05.2010
* Time: 19:44
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using ICSharpCode.Reports.Core.Exporter.Converter;
using ICSharpCode.Reports.Core.Test.TestHelpers;
using NUnit.Framework;
namespace ICSharpCode.Reports.Core.Test.Exporter.Converter
{
[TestFixture]
public class ItemsConverterFixture:ConcernOf<ItemsConverter>
{
[Test]
public void ConvertSimpleItem()
{
BaseSection section = new BaseSection();
section.Items.Add(CreateSimpeTextItem());
Point point = new Point(1,1);
ReportItemCollection result = Sut.Convert (section,section.Items);
Assert.AreEqual(new Point(section.Size.Width,section.Size.Height),Sut.LocationAfterConvert);
Assert.AreEqual(1,result.Count);
}
private BaseReportItem CreateSimpeTextItem ()
{
BaseTextItem bt = new BaseTextItem();
bt.Text = "MyText";
return bt;
}
public override void Setup()
{
Sut = new ItemsConverter();
}
[TestFixtureSetUp]
public void Init()
{
// TODO: Add Init code.
}
[TestFixtureTearDown]
public void Dispose()
{
// TODO: Add tear down code.
}
}
}

122
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/DataListBuilderFixture.cs

@ -0,0 +1,122 @@ @@ -0,0 +1,122 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 15.05.2010
* Time: 18:29
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using ICSharpCode.Reports.Core.Exporter;
using ICSharpCode.Reports.Core.Interfaces;
using ICSharpCode.Reports.Core.Project.Interfaces;
using ICSharpCode.Reports.Core.Test.TestHelpers;
using NUnit.Framework;
namespace ICSharpCode.Reports.Core.Test.Exporter
{
[TestFixture]
public class DataListBuilderFixture:ConcernOf<DataExportListBuilder>
{
ReportModel reportModel;
[Test]
public void Can_Create_ExportListBuilder()
{
ReportSettings rs = new ReportSettings();
rs.ConnectionString = "goodConnection";
IDataAccessStrategy da = new MockDataAccessStrategy (rs);
IDataManager dataManager = ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da);
var reportModel = ReportModel.Create();
DataExportListBuilder sut = new DataExportListBuilder(reportModel,dataManager);
Assert.IsNotNull(sut);
IDataNavigator n = sut.DataManager.GetNavigator;
Assert.AreEqual(0,sut.DataManager.GetNavigator.CurrentRow);
}
[Test]
public void PagesCollection_Should_Be_Not_Null()
{
Sut.WritePages();
Assert.IsNotNull(Sut.Pages);
Assert.AreEqual(1,Sut.Pages.Count);
}
[Test]
public void Pagenumber_Should_Be_One()
{
Sut.WritePages();
Assert.AreEqual(1,Sut.Pages.Count);
Assert.AreEqual(1,Sut.Pages[0].PageNumber);
}
[Test]
public void LocPos()
{
Sut.WritePages();
Point retVal = new Point (50,50 + reportModel.ReportHeader.Size.Height);
Assert.AreEqual(retVal.Y,Sut.PositionAfterRenderSection.Y);
}
[Test]
public void Add_One_Item_In_ReportHeader()
{
var item = CreateSimpeTextItem();
reportModel.ReportHeader.Items.Add(item);
Sut.WritePages();
BaseReportItem it = Sut.Pages[0].Items[0];
Assert.IsNotNull(it);
Assert.AreEqual(1,Sut.Pages[0].Items.Count);
}
[Test]
public void Add_Container_In_ReportHeader()
{
BaseRowItem row = new BaseRowItem() {
Location = new Point (5,5)
};
row.Items.Add(CreateSimpeTextItem());
reportModel.ReportHeader.Items.Add(row);
Sut.WritePages();
Assert.AreEqual(1,Sut.Pages[0].Items.Count);
var checkRow = Sut.Pages[0].Items[0];
Assert.IsAssignableFrom(typeof(BaseRowItem),checkRow);
BaseReportItem checkItem = ((BaseRowItem)checkRow).Items[0];
Assert.IsNotNull(checkItem);
}
private BaseReportItem CreateSimpeTextItem ()
{
BaseTextItem bt = new BaseTextItem();
bt.Text = "MyText";
return bt;
}
public override void Setup()
{
ReportSettings rs = new ReportSettings();
rs.ConnectionString = "goodConnection";
IDataAccessStrategy da = new MockDataAccessStrategy (rs);
IDataManager dataManager = ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da);
reportModel = ReportModel.Create();
Sut = new DataExportListBuilder(reportModel,dataManager);
}
}
}

87
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/DataPageBuilderFixture.cs

@ -8,17 +8,63 @@ @@ -8,17 +8,63 @@
*/
using System;
using System.Data;
using ICSharpCode.Reports.Core.Exporter;
using ICSharpCode.Reports.Core.Interfaces;
using ICSharpCode.Reports.Core.Project.Interfaces;
using ICSharpCode.Reports.Core.Test.TestHelpers;
using NUnit.Framework;
namespace ICSharpCode.Reports.Core.Test.Exporter
{
[TestFixture]
public class DataPageBuilderFixture
public class DataPageBuilderFixture:ConcernOf<IReportCreator_2>
{
IReportModel reportModel;
[Test]
public void Can_Create_DataReportCreator()
{
ReportSettings rs = new ReportSettings();
rs.ConnectionString = "goodConnection";
IDataAccessStrategy da = new MockDataAccessStrategy (rs);
IDataManager dataManager = ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da);
ILayouter layouter = new Layouter();
IReportCreator_2 sut = DataReportCreator.CreateInstance(reportModel,dataManager,layouter);
Assert.IsNotNull(sut);
}
[Test]
public void TestMethod()
public void Empty_ReportModel_Should_Return_Empty_List()
{
Sut.BuildExportList();
Assert.AreEqual(1,Sut.Pages.Count);
}
public override void Setup()
{
// TODO: Add your test.
reportModel = ReportModel.Create();
ILayouter layouter = new Layouter();
ReportSettings rs = new ReportSettings();
rs.ConnectionString = "goodConnection";
IDataAccessStrategy da = new MockDataAccessStrategy (rs);
IDataManager dataManager = ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da);
Sut = DataReportCreator.CreateInstance(reportModel,dataManager,layouter);
}
[TestFixtureSetUp]
@ -33,4 +79,39 @@ namespace ICSharpCode.Reports.Core.Test.Exporter @@ -33,4 +79,39 @@ namespace ICSharpCode.Reports.Core.Test.Exporter
// TODO: Add tear down code.
}
}
public class MockDataAccessStrategy:IDataAccessStrategy
{
ReportSettings reportSettings;
public MockDataAccessStrategy(ReportSettings reportSettings)
{
this.reportSettings = reportSettings;
}
public bool OpenConnection ()
{
if (String.IsNullOrEmpty(reportSettings.ConnectionString)) {
throw new ArgumentNullException("ConnectionString");
}
if (reportSettings.ConnectionString == "bad") {
throw new ArgumentException();
}
return true;
}
public System.Data.DataSet ReadData()
{
ContributorsList contributorsList = new ContributorsList();
DataSet ds = new DataSet();
ds.Tables.Add(contributorsList.ContributorTable);
return ds;
}
}
}

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj

@ -75,7 +75,9 @@ @@ -75,7 +75,9 @@
<Compile Include="DataManager\IListDataManagerFixture.cs" />
<Compile Include="DataManager\MockDataAccess.cs" />
<Compile Include="DataManager\TableDataManagerFixture.cs" />
<Compile Include="Exporter\Converter\ItemsConverterFixture.cs" />
<Compile Include="Exporter\DataPageBuilderFixture.cs" />
<Compile Include="Exporter\DataListBuilderFixture.cs" />
<Compile Include="old_Exporter\ExportItemsConverterFixture.cs" />
<Compile Include="Printing\SectionBoundFixture.cs" />
<Compile Include="Printing\Shapes\BaseLineFixture.cs" />
@ -116,6 +118,7 @@ @@ -116,6 +118,7 @@
<Name>ICSharpCode.Reports.Core</Name>
</ProjectReference>
<Folder Include="BaseItems" />
<Folder Include="Exporter\Converter" />
<Folder Include="Layout" />
<Folder Include="DataManager" />
<Folder Include="Collections" />

Loading…
Cancel
Save