diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj index 16b5c6a6e0..fa8b1697c4 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj @@ -128,7 +128,10 @@ + + + @@ -356,6 +359,7 @@ + diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/AbstractReportCreator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/AbstractReportCreator.cs index 93e91289cf..b9b5f01901 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/AbstractReportCreator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/AbstractReportCreator.cs @@ -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 { /// /// Description of BaseReportCreator. /// - 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 public event EventHandler SectionRendering; - public PagesCollection Pages { + + public virtual PageDescriptions Pages { get { - throw new NotImplementedException(); + return AbstractExportListBuilder.Pages; + } } - - public void BuildExportList() - { - throw new NotImplementedException(); - } + #endregion } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converter/ItemsConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converter/ItemsConverter.cs new file mode 100644 index 0000000000..b5017a52e2 --- /dev/null +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converter/ItemsConverter.cs @@ -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 itemsSource); + Point LocationAfterConvert {get;} + } + + + /// + /// Description of ItemsConverterr. + /// + + + public class ItemsConverter:IItemsConverter + { + Point locationAfterConvert; + + + + public ItemsConverter() + { + } + + + public ReportItemCollection Convert (BaseReportItem parent,IEnumerable 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; } + } + } + +} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataExportListBuilder.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataExportListBuilder.cs new file mode 100644 index 0000000000..85c4c0a6a6 --- /dev/null +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataExportListBuilder.cs @@ -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 +{ + /// + /// Description of BuildExportList. + /// + 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 + { + + } + + + 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 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 collection) + { + IEnumerable canGrowShrinkCollection = from bt in collection where bt.CanGrow == true select bt; + return (canGrowShrinkCollection.Count() > 0); + } + + + private bool CanShrink (IEnumerable collection) + { + IEnumerable 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; + } + } + } + + } +} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataReportCreator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataReportCreator.cs index 6d802a3295..9b35d15333 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataReportCreator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataReportCreator.cs @@ -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 { /// /// Description of DataReportCreator. @@ -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 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(); + + } } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/PageDescription.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/PageDescription.cs new file mode 100644 index 0000000000..26e9714bd9 --- /dev/null +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/PageDescription.cs @@ -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 +{ + /// + /// Description of PageDescription. + /// + + + 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; +// } +// } + } +} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Utilities/ReflectionExtensions.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Utilities/ReflectionExtensions.cs index 810b5b7098..3dfb6d3d6e 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Utilities/ReflectionExtensions.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Utilities/ReflectionExtensions.cs @@ -37,5 +37,6 @@ namespace SimpleExpressionEvaluator.Utilities return null; } + } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/IReportCreator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/IReportCreator.cs index e810ed0983..2f8fa7184d 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/IReportCreator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/IReportCreator.cs @@ -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 event EventHandler PageCreated; event EventHandler SectionRendering; } + + + public interface IReportCreator_2 + { + void BuildExportList (); + PageDescriptions Pages{get;} + event EventHandler PageCreated; + event EventHandler SectionRendering; + } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/Converter/ItemsConverterFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/Converter/ItemsConverterFixture.cs new file mode 100644 index 0000000000..d5809b72b4 --- /dev/null +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/Converter/ItemsConverterFixture.cs @@ -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 + { + [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. + } + } +} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/DataListBuilderFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/DataListBuilderFixture.cs new file mode 100644 index 0000000000..889cce848c --- /dev/null +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/DataListBuilderFixture.cs @@ -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 + { + 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); + } + + } +} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/DataPageBuilderFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/DataPageBuilderFixture.cs index 5239e8cad1..c6cf14a53f 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/DataPageBuilderFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Exporter/DataPageBuilderFixture.cs @@ -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 { + + 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 // 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; + } + + } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj index 53ce873a00..b296787e35 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj @@ -75,7 +75,9 @@ + + @@ -116,6 +118,7 @@ ICSharpCode.Reports.Core +