Browse Source

DataFormBuilder

reports
Peter Forstmeier 13 years ago
parent
commit
b6e7184275
  1. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
  2. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs
  3. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs
  4. 10
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseDataItem.cs
  5. 16
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs
  6. 43
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
  7. 77
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/DataContainerConverter.cs
  8. 24
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/IContainerConverter.cs
  9. 20
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
  10. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs
  11. 18
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
  12. 10
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj
  13. 45
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_FromListFixture.cs
  14. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs
  15. 26
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs
  16. 0
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/FormBuilderFixture.cs
  17. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs
  18. 83
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/FormPageFixture.cs
  19. 69
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs
  20. 11
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs
  21. 146
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/FromList.srd
  22. 86
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/PlainModel.srd
  23. 9
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
  24. 5
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs

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

@ -124,6 +124,8 @@ @@ -124,6 +124,8 @@
<Compile Include="Src\Items\ReportSettings.cs" />
<Compile Include="Src\PageBuilder\BasePageBuilder.cs" />
<Compile Include="Src\PageBuilder\Converter\ContainerConverter.cs" />
<Compile Include="Src\PageBuilder\Converter\DataContainerConverter.cs" />
<Compile Include="Src\PageBuilder\Converter\IContainerConverter.cs" />
<Compile Include="Src\PageBuilder\DataPageBuilder.cs" />
<Compile Include="Src\PageBuilder\ExportColumns\ExportColumn.cs" />
<Compile Include="Src\PageBuilder\ExportColumns\ExportContainer.cs" />

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

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

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs

@ -36,6 +36,7 @@ namespace ICSharpCode.Reporting.Factories @@ -36,6 +36,7 @@ namespace ICSharpCode.Reporting.Factories
case GlobalEnums.PushPullModel.PushData:
{
break;
}

10
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseDataItem.cs

@ -8,6 +8,8 @@ @@ -8,6 +8,8 @@
*/
using System;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Items
{
@ -20,6 +22,14 @@ namespace ICSharpCode.Reporting.Items @@ -20,6 +22,14 @@ namespace ICSharpCode.Reporting.Items
{
}
public override IExportColumn CreateExportColumn()
{
var exCol = (IExportText)base.CreateExportColumn();
// exCol.Text = "blabla";
return exCol;
}
public virtual string DBValue {get;set;}
public virtual string ColumnName {get;set;}

16
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs

@ -25,8 +25,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -25,8 +25,7 @@ namespace ICSharpCode.Reporting.PageBuilder
/// </summary>
public class BasePageBuilder:IReportCreator
{
Graphics graphics;
public BasePageBuilder(IReportModel reportModel)
{
if (reportModel == null) {
@ -34,7 +33,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -34,7 +33,7 @@ namespace ICSharpCode.Reporting.PageBuilder
}
ReportModel = reportModel;
Pages = new Collection<IPage>();
graphics = CreateGraphics.FromSize(reportModel.ReportSettings.PageSize);
Graphics = CreateGraphics.FromSize(reportModel.ReportSettings.PageSize);
}
@ -67,7 +66,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -67,7 +66,7 @@ namespace ICSharpCode.Reporting.PageBuilder
protected void BuildPageFooter()
{
Console.WriteLine("FormPageBuilder - Build PageFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin);
Console.WriteLine("Build PageFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin);
CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin,
ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height);
@ -78,7 +77,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -78,7 +77,7 @@ namespace ICSharpCode.Reporting.PageBuilder
protected void BuildReportFooter()
{
Console.WriteLine("FormPageBuilder - Build ReportFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin);
Console.WriteLine("Build ReportFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin);
var lastSection = CurrentPage.ExportedItems.Last();
CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin,
lastSection.Location.Y - lastSection.Size.Height - 1);
@ -96,16 +95,13 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -96,16 +95,13 @@ namespace ICSharpCode.Reporting.PageBuilder
this.BuildReportHeader();
BuildPageHeader();
BuildPageFooter();
// BuilDetail();
BuildReportFooter();
// base.AddPage(CurrentPage);
// Console.WriteLine("------{0}---------",ReportModel.ReportSettings.PageSize);
}
protected IExportContainer CreateSection(IReportContainer section,Point location)
{
var containerConverter = new ContainerConverter(graphics, section, location);
var containerConverter = new ContainerConverter(Graphics, section, location);
var header = containerConverter.Convert();
return header;
}
@ -149,6 +145,8 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -149,6 +145,8 @@ namespace ICSharpCode.Reporting.PageBuilder
protected Point DetailStart {get;private set;}
protected Graphics Graphics {get;private set;}
public Collection<IPage> Pages {get; private set;}
}

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

@ -20,11 +20,11 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -20,11 +20,11 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
/// <summary>
/// Description of SectionConverter.
/// </summary>
internal class ContainerConverter
internal class ContainerConverter : IContainerConverter
{
private Graphics graphics;
public ContainerConverter(Graphics graphics,IReportContainer reportContainer,Point currentLocation )
public ContainerConverter(Graphics graphics, IReportContainer reportContainer, Point currentLocation)
{
if (graphics == null) {
throw new ArgumentNullException("graphics");
@ -32,42 +32,43 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -32,42 +32,43 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
if (reportContainer == null) {
throw new ArgumentNullException("reportContainer");
}
this.graphics = graphics;
Container = reportContainer;
CurrentLocation = currentLocation;
}
public IExportContainer Convert() {
var containerStrategy = Container.MeasurementStrategy ();
public IExportContainer Convert()
{
var containerStrategy = Container.MeasurementStrategy();
var exportContainer = (ExportContainer)Container.CreateExportColumn();
exportContainer.Location = CurrentLocation;
exportContainer.DesiredSize = containerStrategy.Measure(Container,graphics);
exportContainer.DesiredSize = containerStrategy.Measure(Container, graphics);
var itemsList = new List<IExportColumn>();
foreach (var element in Container.Items) {
var item = ExportColumnFactory.CreateItem(element);
item.Parent = exportContainer;
var measureStrategy = element.MeasurementStrategy();
item.DesiredSize = measureStrategy.Measure(element,graphics);
item.DesiredSize = measureStrategy.Measure(element, graphics);
itemsList.Add(item);
Console.WriteLine("Size {0} DesiredSize {1}",item.Size,item.DesiredSize);
Console.WriteLine("Size {0} DesiredSize {1}", item.Size, item.DesiredSize);
}
exportContainer.ExportedItems.AddRange(itemsList);
Console.WriteLine("calling Container-Arrange");
var exportArrange = exportContainer.GetArrangeStrategy();
exportArrange.Arrange(exportContainer);
return exportContainer;
}
internal IReportContainer Container {get; private set;}
internal Point CurrentLocation {get; private set;}
internal IReportContainer Container { get; private set; }
internal Point CurrentLocation { get; private set; }
}
}

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

@ -0,0 +1,77 @@ @@ -0,0 +1,77 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 13.06.2013
* Time: 11:55
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using ICSharpCode.Reporting.DataManager.Listhandling;
using ICSharpCode.Reporting.Factories;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.PageBuilder.Converter
{
/// <summary>
/// Description of DataContainerConverter.
/// </summary>
internal class DataContainerConverter:IContainerConverter
{
private Graphics graphics;
private CollectionSource cs;
public DataContainerConverter(Graphics graphics, IReportContainer reportContainer, Point currentLocation,CollectionSource cs)
{
if (graphics == null) {
throw new ArgumentNullException("graphics");
}
if (reportContainer == null) {
throw new ArgumentNullException("reportContainer");
}
this.graphics = graphics;
Container = reportContainer;
CurrentLocation = currentLocation;
this.cs = cs;
}
public IExportContainer Convert(){
var containerStrategy = Container.MeasurementStrategy();
var exportContainer = (ExportContainer)Container.CreateExportColumn();
exportContainer.Location = CurrentLocation;
exportContainer.DesiredSize = containerStrategy.Measure(Container, graphics);
var itemsList = new List<IExportColumn>();
foreach (var element in Container.Items) {
var item = ExportColumnFactory.CreateItem(element);
Console.WriteLine("Create {0}",item.ToString());
item.Parent = exportContainer;
Console.WriteLine("Fill element");
var measureStrategy = element.MeasurementStrategy();
item.DesiredSize = measureStrategy.Measure(element, graphics);
itemsList.Add(item);
Console.WriteLine("Size {0} DesiredSize {1}", item.Size, item.DesiredSize);
}
exportContainer.ExportedItems.AddRange(itemsList);
Console.WriteLine("calling Container-Arrange");
var exportArrange = exportContainer.GetArrangeStrategy();
exportArrange.Arrange(exportContainer);
return exportContainer;
}
internal IReportContainer Container { get; private set; }
internal Point CurrentLocation { get; private set; }
}
}

24
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/IContainerConverter.cs

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 08.04.2013
* Time: 19:49
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using ICSharpCode.Reporting.Factories;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.PageBuilder.Converter
{
internal interface IContainerConverter
{
IExportContainer Convert();
}
}

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

@ -8,7 +8,10 @@ @@ -8,7 +8,10 @@
*/
using System;
using System.Collections.Generic;
using ICSharpCode.Reporting.DataManager.Listhandling;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder.Converter;
namespace ICSharpCode.Reporting.PageBuilder
{
@ -17,7 +20,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -17,7 +20,7 @@ namespace ICSharpCode.Reporting.PageBuilder
/// </summary>
public class DataPageBuilder:BasePageBuilder
{
public DataPageBuilder(ReportModel reportModel, IEnumerable<object> list):base(reportModel)
public DataPageBuilder(IReportModel reportModel, IEnumerable<object> list):base(reportModel)
{
List = list;
}
@ -32,12 +35,15 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -32,12 +35,15 @@ namespace ICSharpCode.Reporting.PageBuilder
void BuilDetail()
{
Console.WriteLine("FormPageBuilder - Build DetailSection {0} - {1} - {2}",ReportModel.ReportSettings.PageSize.Width,ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.RightMargin);
// var cs = new CollectionSource(List,ReportModel.ReportSettings);
// cs.Bind();
Console.WriteLine("DataPageBuilder - Build DetailSection {0} - {1} - {2}",ReportModel.ReportSettings.PageSize.Width,ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.RightMargin);
CurrentLocation = DetailStart;
var detail = CreateSection(ReportModel.DetailSection,CurrentLocation);
detail.Parent = CurrentPage;
CurrentPage.ExportedItems.Insert(2,detail);
// var dc = new DataContainerConverter(base.Graphics,ReportModel.DetailSection,CurrentLocation,cs);
// var detail = dc.Convert();
// var detail = CreateSection(ReportModel.DetailSection,CurrentLocation);
// detail.Parent = CurrentPage;
// CurrentPage.ExportedItems.Insert(2,detail);
}
@ -49,8 +55,6 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -49,8 +55,6 @@ namespace ICSharpCode.Reporting.PageBuilder
Console.WriteLine("------{0}---------",ReportModel.ReportSettings.PageSize);
}
public IEnumerable<object> List {get; private set;}
}
}

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

@ -35,7 +35,6 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -35,7 +35,6 @@ namespace ICSharpCode.Reporting.PageBuilder
}
void BuilDetail()
{
Console.WriteLine("FormPageBuilder - Build DetailSection {0} - {1} - {2}",ReportModel.ReportSettings.PageSize.Width,ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.RightMargin);
@ -54,7 +53,5 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -54,7 +53,5 @@ namespace ICSharpCode.Reporting.PageBuilder
base.AddPage(CurrentPage);
Console.WriteLine("------{0}---------",ReportModel.ReportSettings.PageSize);
}
}
}

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

@ -34,15 +34,12 @@ namespace ICSharpCode.Reporting @@ -34,15 +34,12 @@ namespace ICSharpCode.Reporting
if (reportModel == null)
throw new ArgumentNullException("reportModel");
IReportCreator builder = null;
if (reportModel.ReportSettings.DataModel == GlobalEnums.PushPullModel.FormSheet) {
builder = new FormPageBuilder(reportModel);
}
builder = ReportCreatorFactory.ExporterFactory(reportModel);
return builder;
}
internal IReportCreator ReportCreator (Stream stream)
{
IReportModel reportModel = LoadReportModel (stream);
@ -51,12 +48,17 @@ namespace ICSharpCode.Reporting @@ -51,12 +48,17 @@ namespace ICSharpCode.Reporting
return builder;
}
object ExporterFactory(IReportModel reportModel)
internal IReportCreator ReportCreator (Stream stream,IList<object> list)
{
throw new NotImplementedException();
IReportModel reportModel = LoadReportModel (stream);
IReportCreator builder = null;
builder = new DataPageBuilder(reportModel,list);
return builder;
}
internal ReportModel LoadReportModel (Stream stream)
{
var doc = new XmlDocument();

10
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj

@ -60,18 +60,20 @@ @@ -60,18 +60,20 @@
<ItemGroup>
<Compile Include="src\DataSource\ContributorsList.cs" />
<Compile Include="src\DataSource\CollectionHandlingFixture.cs" />
<Compile Include="src\Model\LoadPlainModelFixture.cs" />
<Compile Include="src\Model\ReportModelFixture.cs" />
<Compile Include="src\Model\ReportSettingsFixture.cs" />
<Compile Include="src\Model\Report_FromListFixture.cs" />
<Compile Include="src\Model\Report_TwoItemsFixture.cs" />
<Compile Include="src\PageBuilder\ContainerArrangeStrategyFixture.cs" />
<Compile Include="src\PageBuilder\BaseConvertFixture.cs" />
<Compile Include="src\PageBuilder\ContainerConverterFixture.cs" />
<Compile Include="src\PageBuilder\DataPageBuilderFixture.cs" />
<Compile Include="src\PageBuilder\PageBuilderFixture.cs" />
<Compile Include="src\PageBuilder\FormBuilderFixture.cs" />
<Compile Include="src\PageBuilder\PageFixture.cs" />
<Compile Include="src\PageBuilder\PageLayoutFixture.cs" />
<Compile Include="src\Properties\AssemblyInfo.cs" />
<Compile Include="src\Reportingfactory\FormPageFixture.cs" />
<Compile Include="src\Reportingfactory\PushModelFixture.cs" />
<Compile Include="src\ReportItems\TextItemFixture.cs" />
<Compile Include="src\TestHelper.cs" />
</ItemGroup>
@ -79,6 +81,7 @@ @@ -79,6 +81,7 @@
<Folder Include="src" />
<Folder Include="src\Model" />
<Folder Include="src\DataSource" />
<Folder Include="src\Reportingfactory" />
<Folder Include="src\ReportItems" />
<Folder Include="src\PageBuilder" />
<Folder Include="src\TestReports" />
@ -95,5 +98,8 @@ @@ -95,5 +98,8 @@
<ItemGroup>
<EmbeddedResource Include="src\TestReports\ReportWithTwoItems.srd" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="src\TestReports\FromList.srd" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

45
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_FromListFixture.cs

@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Drawing;
using System.Reflection;
using ICSharpCode.Reporting.Items;
using NUnit.Framework;
namespace ICSharpCode.Reporting.Test.Model
{
[TestFixture]
public class Report_FromListFixture
{
private ReportModel model;
[Test]
public void ReportHeaderOneItem () {
var section = model.ReportHeader;
Assert.That(section.Items.Count,Is.EqualTo(1));
}
[Test]
public void PageHeaderOneItem () {
var section = model.ReportHeader;
Assert.That(section.Items.Count,Is.EqualTo(1));
}
[Test]
public void DetailContainsOneDataItem() {
var section = model.DetailSection;
Assert.That(section.Items.Count,Is.EqualTo(1));
}
[SetUp]
public void LoadModelFromStream()
{
System.Reflection.Assembly asm = Assembly.GetExecutingAssembly();
var stream = asm.GetManifestResourceStream(TestHelper.ReportFromList);
var rf = new ReportingFactory();
model = rf.LoadReportModel(stream);
}
}
}

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs

@ -8,7 +8,6 @@ @@ -8,7 +8,6 @@
*/
using System;
using System.Drawing;
using System.IO;
using System.Reflection;
using ICSharpCode.Reporting.Items;

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

@ -33,15 +33,31 @@ namespace ICSharpCode.Reporting.Test.PageBuilder @@ -33,15 +33,31 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
[Test]
public void DataSourceIsset() {
var dpb = new DataPageBuilder (new ReportModel(),new System.Collections.Generic.List<string>());
Assert.That(dpb.List,Is.Not.Null);
}
[Test]
public void BuildExportPagesCountIsOne() {
reportCreator.BuildExportList();
Assert.That(reportCreator.Pages.Count,Is.EqualTo(1));
}
[Test]
[Ignore]
public void PageContainsFiveSections()
{
reportCreator.BuildExportList();
var x = reportCreator.Pages[0].ExportedItems;
var y = from s in x
var exporteditems = reportCreator.Pages[0].ExportedItems;
var sections = from s in exporteditems
where s.GetType() == typeof(ExportContainer)
select s;
Assert.That(y.ToList().Count,Is.EqualTo(5));
Console.WriteLine("-------ShowDebug---------");
Assert.That(sections.ToList().Count,Is.EqualTo(5));
Console.WriteLine("-------PageLayoutFixture:ShowDebug---------");
var ex = new DebugExporter(reportCreator.Pages);
ex.Run();
}
@ -51,7 +67,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder @@ -51,7 +67,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
public void LoadFromStream()
{
System.Reflection.Assembly asm = Assembly.GetExecutingAssembly();
var stream = asm.GetManifestResourceStream(TestHelper.RepWithTwoItems);
var stream = asm.GetManifestResourceStream(TestHelper.ReportFromList);
var reportingFactory = new ReportingFactory();
// reportCreator = reportingFactory.ReportCreator(stream);
var model = reportingFactory.LoadReportModel (stream);

0
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs → src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/FormBuilderFixture.cs

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs

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

83
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/FormPageFixture.cs

@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 19.03.2013
* Time: 19:58
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.IO;
using System.Reflection;
using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Test;
using NUnit.Framework;
namespace ICSharpCode.Reporting.Test.Model
{
[TestFixture]
public class LoadPlainModelFixture
{
private Stream stream;
[Test]
public void CanLoadFromResource()
{
Assert.IsNotNull(stream);
}
[Test]
public void LoadPlainModel()
{
var rf = new ReportingFactory();
var model = rf.LoadReportModel(stream);
Assert.IsNotNull(model);
}
[Test]
public void ReportSettingsFromPlainModel()
{
var rf = new ReportingFactory();
var model = rf.LoadReportModel(stream);
Assert.That(model.ReportSettings,Is.Not.Null);
}
[Test]
public void ReportSettingsReportName()
{
var rf = new ReportingFactory();
var model = rf.LoadReportModel(stream);
Assert.That(model.ReportSettings.ReportName,Is.EqualTo(Globals.GlobalValues.DefaultReportName));
}
[Test]
public void ReportSettingsDataModelFormSheet()
{
var rf = new ReportingFactory();
var model = rf.LoadReportModel(stream);
Assert.That(model.ReportSettings.DataModel,Is.EqualTo(GlobalEnums.PushPullModel.FormSheet));
}
[Test]
public void ReportSettingsPageSize()
{
var rf = new ReportingFactory();
var model = rf.LoadReportModel(stream);
Assert.That(model.ReportSettings.PageSize,Is.EqualTo(Globals.GlobalValues.DefaultPageSize));
}
[SetUp]
public void LoadFromStream()
{
System.Reflection.Assembly asm = Assembly.GetExecutingAssembly();
stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName);
}
}
}

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

@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 12.06.2013
* Time: 23:05
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.IO;
using System.Reflection;
using System.Linq;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.PageBuilder;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
using ICSharpCode.Reporting.Test.DataSource;
using NUnit.Framework;
namespace ICSharpCode.Reporting.Test.Reportingfactory
{
[TestFixture]
public class PushModelFixture
{
private IReportCreator reportCreator;
[Test]
public void InitPushModelReport()
{
reportCreator.BuildExportList();
Assert.That(reportCreator.Pages.Count,Is.GreaterThan(0));
}
[Test]
public void DetailContainsOneDataItem() {
reportCreator.BuildExportList();
var exporteditems = reportCreator.Pages[0].ExportedItems;
var sections = from s in exporteditems
where s.GetType() == typeof(ExportContainer)
select s;
var section = sections.ToList()[2] as ExportContainer;
var result = section.ExportedItems[0];
Assert.That(result,Is.AssignableFrom(typeof(ExportText)));
}
[SetUp]
public void LoadFromStream()
{
var contributorList = new ContributorsList();
var list = contributorList.ContributorCollection;
System.Reflection.Assembly asm = Assembly.GetExecutingAssembly();
var stream = asm.GetManifestResourceStream(TestHelper.ReportFromList);
// System.Reflection.Assembly asm = Assembly.GetExecutingAssembly();
// var stream = asm.GetManifestResourceStream(TestHelper.RepWithTwoItems);
//
var reportingFactory = new ReportingFactory();
var model = reportingFactory.LoadReportModel (stream);
reportCreator = new DataPageBuilder(model,list);
}
}
}

11
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs

@ -20,15 +20,22 @@ namespace ICSharpCode.Reporting.Test @@ -20,15 +20,22 @@ namespace ICSharpCode.Reporting.Test
{
private const string nameSpace = "ICSharpCode.Reporting.Test.src.TestReports.";
private const string plainReportName = "PlainModel.srd";
private const string rr = "ReportWithTwoItems.srd";
private const string withTwoItems = "ReportWithTwoItems.srd";
private const string fromList = "FromList.srd";
public static string PlainReportFileName{
get{return nameSpace + plainReportName;}
}
public static string RepWithTwoItems {
get {return nameSpace + rr;}
get {return nameSpace + withTwoItems;}
}
public static string ReportFromList {
get {return nameSpace + fromList;}
}

146
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/FromList.srd

@ -0,0 +1,146 @@ @@ -0,0 +1,146 @@
<?xml version="1.0" encoding="utf-8"?>
<ReportModel>
<ReportSettings>
<ReportSettings>
<ReportName>Report1</ReportName>
<ReportType>DataReport</ReportType>
<BottomMargin>50</BottomMargin>
<TopMargin>50</TopMargin>
<LeftMargin>50</LeftMargin>
<RightMargin>50</RightMargin>
<PageSize>827, 1169</PageSize>
<Landscape>False</Landscape>
<GraphicsUnit>Millimeter</GraphicsUnit>
<Padding>5, 5, 5, 5</Padding>
<AvailableFieldsCollection />
<SortColumnsCollection />
<GroupColumnsCollection />
<ParameterCollection />
<SqlParameters />
<ConnectionString />
<CommandText />
<CommandType>Text</CommandType>
<DataModel>PushData</DataModel>
<NoDataMessage>No Data for this Report</NoDataMessage>
<DefaultFont>Microsoft Sans Serif, 10pt</DefaultFont>
<UseStandardPrinter>True</UseStandardPrinter>
</ReportSettings>
</ReportSettings>
<SectionCollection>
<BaseSection>
<Location>50, 50</Location>
<Size>727, 60</Size>
<BackColor>White</BackColor>
<SectionOffset>0</SectionOffset>
<SectionMargin>0</SectionMargin>
<DrawBorder>False</DrawBorder>
<PageBreakAfter>False</PageBreakAfter>
<Items>
<BaseTextItem>
<Location>313, 5</Location>
<Size>100, 20</Size>
<BackColor>White</BackColor>
<Font>Microsoft Sans Serif, 10pt</Font>
<StringTrimming>None</StringTrimming>
<ContentAlignment>TopLeft</ContentAlignment>
<CanGrow>False</CanGrow>
<CanShrink>False</CanShrink>
<DataType>System.String</DataType>
<RTL>No</RTL>
<Text>Report1</Text>
<DrawBorder>False</DrawBorder>
<FrameColor>Black</FrameColor>
<ForeColor>Black</ForeColor>
<Name>Report1</Name>
</BaseTextItem>
</Items>
<FrameColor>Black</FrameColor>
<Name>ReportHeader</Name>
</BaseSection>
<BaseSection>
<Location>50, 125</Location>
<Size>727, 60</Size>
<BackColor>White</BackColor>
<SectionOffset>0</SectionOffset>
<SectionMargin>0</SectionMargin>
<DrawBorder>False</DrawBorder>
<PageBreakAfter>False</PageBreakAfter>
<Items />
<FrameColor>Black</FrameColor>
<Name>ReportPageHeader</Name>
</BaseSection>
<BaseSection>
<Location>50, 200</Location>
<Size>727, 60</Size>
<BackColor>White</BackColor>
<SectionOffset>0</SectionOffset>
<SectionMargin>0</SectionMargin>
<DrawBorder>False</DrawBorder>
<PageBreakAfter>False</PageBreakAfter>
<Items>
<BaseDataItem>
<Location>29, 14</Location>
<Size>100, 20</Size>
<BackColor>White</BackColor>
<Font>Microsoft Sans Serif, 10pt</Font>
<StringTrimming>None</StringTrimming>
<ContentAlignment>TopLeft</ContentAlignment>
<CanGrow>False</CanGrow>
<CanShrink>False</CanShrink>
<DataType>System.String</DataType>
<RTL>No</RTL>
<Text>BaseDataItem1</Text>
<DrawBorder>False</DrawBorder>
<FrameColor>Black</FrameColor>
<ForeColor>Black</ForeColor>
<ColumnName>First</ColumnName>
<Name>BaseDataItem1</Name>
</BaseDataItem>
</Items>
<FrameColor>Black</FrameColor>
<Name>ReportDetail</Name>
</BaseSection>
<BaseSection>
<Location>50, 275</Location>
<Size>727, 60</Size>
<BackColor>White</BackColor>
<SectionOffset>0</SectionOffset>
<SectionMargin>0</SectionMargin>
<DrawBorder>False</DrawBorder>
<PageBreakAfter>False</PageBreakAfter>
<Items>
<BaseTextItem>
<Location>622, 5</Location>
<Size>100, 20</Size>
<BackColor>White</BackColor>
<Font>Microsoft Sans Serif, 10pt</Font>
<StringTrimming>None</StringTrimming>
<ContentAlignment>TopLeft</ContentAlignment>
<CanGrow>False</CanGrow>
<CanShrink>False</CanShrink>
<DataType>System.String</DataType>
<RTL>No</RTL>
<Text>=Globals!PageNumber</Text>
<DrawBorder>False</DrawBorder>
<FrameColor>Black</FrameColor>
<ForeColor>Black</ForeColor>
<Name>PageNumber1</Name>
</BaseTextItem>
</Items>
<FrameColor>Black</FrameColor>
<Name>ReportPageFooter</Name>
</BaseSection>
<BaseSection>
<Location>50, 350</Location>
<Size>727, 60</Size>
<BackColor>White</BackColor>
<SectionOffset>0</SectionOffset>
<SectionMargin>0</SectionMargin>
<DrawBorder>False</DrawBorder>
<PageBreakAfter>False</PageBreakAfter>
<Items />
<FrameColor>Black</FrameColor>
<Name>ReportFooter</Name>
</BaseSection>
</SectionCollection>
</ReportModel>

86
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/PlainModel.srd

@ -0,0 +1,86 @@ @@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<ReportModel>
<ReportSettings>
<ReportSettings>
<DefaultFont>Microsoft Sans Serif, 10pt</DefaultFont>
<DataModel>FormSheet</DataModel>
<FileName>D:\SharpDevelop3.0_CHECKOUT\SharpDevelop\bin\Raaaaaeport1.srd</FileName>
<RightMargin>50</RightMargin>
<UseStandardPrinter>True</UseStandardPrinter>
<SortColumnCollection />
<AvailableFieldsCollection />
<NoDataMessage>No Data for this Report</NoDataMessage>
<LeftMargin>50</LeftMargin>
<PageSize>827, 1169</PageSize>
<Padding>5, 5, 5, 5</Padding>
<BottomMargin>50</BottomMargin>
<CommandType>Text</CommandType>
<ParameterCollection />
<Landscape>False</Landscape>
<ReportName>Report1</ReportName>
<TopMargin>50</TopMargin>
<GroupColumnsCollection />
<GraphicsUnit>Millimeter</GraphicsUnit>
<CommandText />
<ReportType>FormSheet</ReportType>
<ConnectionString />
</ReportSettings>
</ReportSettings>
<SectionCollection>
<BaseSection>
<Size>727, 60</Size>
<Name>ReportHeader</Name>
<PageBreakAfter>False</PageBreakAfter>
<SectionMargin>0</SectionMargin>
<SectionOffset>0</SectionOffset>
<BackColor>White</BackColor>
<Items />
<Location>50, 50</Location>
<DrawBorder>False</DrawBorder>
</BaseSection>
<BaseSection>
<Size>727, 60</Size>
<Name>ReportPageHeader</Name>
<PageBreakAfter>False</PageBreakAfter>
<SectionMargin>0</SectionMargin>
<SectionOffset>0</SectionOffset>
<BackColor>White</BackColor>
<Items />
<Location>50, 125</Location>
<DrawBorder>False</DrawBorder>
</BaseSection>
<BaseSection>
<Size>727, 60</Size>
<Name>ReportDetail</Name>
<PageBreakAfter>False</PageBreakAfter>
<SectionMargin>0</SectionMargin>
<SectionOffset>0</SectionOffset>
<BackColor>White</BackColor>
<Items />
<Location>50, 200</Location>
<DrawBorder>False</DrawBorder>
</BaseSection>
<BaseSection>
<Size>727, 60</Size>
<Name>ReportPageFooter</Name>
<PageBreakAfter>False</PageBreakAfter>
<SectionMargin>0</SectionMargin>
<SectionOffset>0</SectionOffset>
<BackColor>White</BackColor>
<Items />
<Location>50, 275</Location>
<DrawBorder>False</DrawBorder>
</BaseSection>
<BaseSection>
<Size>727, 60</Size>
<Name>ReportFooter</Name>
<PageBreakAfter>False</PageBreakAfter>
<SectionMargin>0</SectionMargin>
<SectionOffset>0</SectionOffset>
<BackColor>White</BackColor>
<Items />
<Location>50, 350</Location>
<DrawBorder>False</DrawBorder>
</BaseSection>
</SectionCollection>
</ReportModel>

9
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs

@ -70,8 +70,10 @@ namespace ICSharpCode.Reports.Addin @@ -70,8 +70,10 @@ namespace ICSharpCode.Reports.Addin
throw new ArgumentNullException("generator");
}
Console.WriteLine("ReportDesignerView");
this.generator = generator;
this.generator.Attach(this);
base.TabPageText = ResourceService.GetString("SharpReport.Design");
ReportingSideTabProvider.AddViewContent(this);
}
@ -384,8 +386,8 @@ namespace ICSharpCode.Reports.Addin @@ -384,8 +386,8 @@ namespace ICSharpCode.Reports.Addin
{
Console.WriteLine("UpdatePropertyPad()");
if (IsFormsDesignerVisible && Host != null) {
propertyContainer.Host = Host;
propertyContainer.SelectableObjects = Host.Container.Components;
PropertyContainer.Host = Host;
PropertyContainer.SelectableObjects = Host.Container.Components;
ISelectionService selectionService = (ISelectionService)this.designSurface.GetService(typeof(ISelectionService));
if (selectionService != null) {
UpdatePropertyPadSelection(selectionService);
@ -399,7 +401,7 @@ namespace ICSharpCode.Reports.Addin @@ -399,7 +401,7 @@ namespace ICSharpCode.Reports.Addin
ICollection selection = selectionService.GetSelectedComponents();
object[] selArray = new object[selection.Count];
selection.CopyTo(selArray, 0);
propertyContainer.SelectedObjects = selArray;
PropertyContainer.SelectedObjects = selArray;
}
@ -407,7 +409,6 @@ namespace ICSharpCode.Reports.Addin @@ -407,7 +409,6 @@ namespace ICSharpCode.Reports.Addin
#region IHasPropertyContainer impementation
// PropertyContainer propertyContainer = new PropertyContainer();
PropertyContainer propertyContainer;
public PropertyContainer PropertyContainer {

5
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs

@ -66,6 +66,11 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews @@ -66,6 +66,11 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews
var reportingFactory = new ReportingFactory();
var reportCreator = reportingFactory.ReportCreator(model);
if (reportCreator == null){
SD.MessageService.ShowWarning(String.Format("Cannot run {0} from Designer",
GlobalEnums.PushPullModel.PushData.ToString()));
return;
}
reportCreator.BuildExportList();
PreviewViewModel previewViewModel = new PreviewViewModel (model.ReportSettings,reportCreator.Pages);

Loading…
Cancel
Save