Browse Source

Add Columns with absolute Position to Container

reports
Peter Forstmeier 13 years ago
parent
commit
2f3bfba2e3
  1. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs
  2. 5
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/DebugVisitor.cs
  3. 10
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
  4. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/IContainerConverter.cs
  5. 148
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
  6. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj
  7. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs
  8. 52
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs
  9. 32
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs
  10. 22
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs

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

@ -29,6 +29,7 @@ namespace ICSharpCode.Reporting.Exporter @@ -29,6 +29,7 @@ namespace ICSharpCode.Reporting.Exporter
public override void Run () {
Console.WriteLine(" DebugExporter with {0} Pages ",Pages.Count);
foreach (var page in Pages) {
ShowDebug("--",page);
Console.WriteLine("-----------PageBreak---------");
@ -44,8 +45,9 @@ namespace ICSharpCode.Reporting.Exporter @@ -44,8 +45,9 @@ namespace ICSharpCode.Reporting.Exporter
var acceptor = item as IAcceptor;
if (exportContainer != null) {
if (exportContainer.ExportedItems.Count > 0) {
acceptor.Accept(visitor);
ShowDebug(leading = leading + "--",exportContainer);
acceptor.Accept(visitor);
// ShowDebug(leading = leading + "--",exportContainer);
leading = leading.Substring(0,leading.Length -2);
}
} else {

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

@ -36,7 +36,10 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -36,7 +36,10 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public override void Visit(ExportContainer exportColumn)
{
Console.WriteLine("<ExportContainer> {0} - {1} Items {2}",
Console.WriteLine();
// Console.WriteLine("<ExportContainer> {0} - {1} Items {2}",
// exportColumn.Name,exportColumn.Location,exportColumn.BackColor);
Console.WriteLine("{0} - {1} Items {2}",
exportColumn.Name,exportColumn.Location,exportColumn.BackColor);
}

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

@ -40,16 +40,6 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -40,16 +40,6 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
}
public List<IExportColumn> CreateConvertedList(List<IPrintableObject> items,
Point position){
var list = CreateConvertedList(items);
foreach (var item in list) {
item.Location = new Point(item.Location.X,item.Location.Y + position.Y);
}
return list;
}
public List<IExportColumn> CreateConvertedList(List<IPrintableObject> items){
var itemsList = new List<IExportColumn>();
foreach (var element in items) {

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

@ -8,8 +8,6 @@ @@ -8,8 +8,6 @@
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
@ -19,7 +17,6 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -19,7 +17,6 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
{
IExportContainer ConvertToExportContainer(IReportContainer reportContainer);
List<IExportColumn> CreateConvertedList(List<IPrintableObject> items);
List<IExportColumn> CreateConvertedList(List<IPrintableObject> items,Point position);
void SetParent(IExportContainer parent, List<IExportColumn> convertedItems);
}
}

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

@ -43,8 +43,124 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -43,8 +43,124 @@ namespace ICSharpCode.Reporting.PageBuilder
er.Run();
}
void BuildDetail()
{
List<IExportContainer> rows = new List<IExportContainer>();
var converter = new ContainerConverter(base.Graphics, CurrentLocation);
var position = DetailStart;
var collectionSource = new CollectionSource(List,ElementType,ReportModel.ReportSettings);
CurrentSection = ReportModel.DetailSection;
if(collectionSource.Count > 0) {
collectionSource.Bind();
CurrentLocation = DetailStart;
do {
var row = CreateContainerForSection(position);
row.Parent = CurrentPage;
collectionSource.Fill(CurrentSection.Items);
var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection.Items);
converter.SetParent(row,convertedItems);
if (PageFull(convertedItems)) {
row.ExportedItems.AddRange(convertedItems);
rows.Add(row);
InsertRange(rows);
MeasureAndArrangeContainer(row);
rows.Clear();
Pages.Add(CurrentPage);
MeasureAndArrangeContainer(row);
position = ResetPosition();
CurrentPage = CreateNewPage();
WriteStandardSections();
CurrentLocation = DetailStart;
} else {
row.ExportedItems.AddRange(convertedItems);
rows.Add(row);
MeasureAndArrangeContainer(row);
position = new Point(CurrentSection.Location.X,position.Y + row.DesiredSize.Height + 5);
}
}
while (collectionSource.MoveNext());
InsertRange(rows);
} else {
// detail = CreateContainerForSection(DetailStart);
// InsertDetailAtPosition(detail);
}
}
/*
void BuildDetail_2()
{
var converter = new ContainerConverter(base.Graphics, CurrentLocation);
// var position = ResetPosition();
var position = DetailStart;
var collectionSource = new CollectionSource(List,ElementType,ReportModel.ReportSettings);
CurrentSection = ReportModel.DetailSection;
IExportContainer detail = null;
CurrentSection = ReportModel.DetailSection;
if(collectionSource.Count > 0) {
collectionSource.Bind();
CurrentLocation = DetailStart;
// detail = CreateContainerForSection(DetailStart);
// detail.DesiredSize = new Size(detail.Size.Width,DetailEnds.Y - DetailStart.Y);
// detail.Parent = CurrentPage;
detail = CreateDetailSection(DetailStart);
detail.Parent = CurrentPage;
InsertDetailAtPosition(detail);
do {
// detail = CreateContainerForSection(position);
var row = CreateContainerForSection(position);
row.Parent = detail;
collectionSource.Fill(CurrentSection.Items);
var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection.Items,position);
converter.SetParent(row,convertedItems);
if (PageFull(convertedItems)) {
// detail.ExportedItems.AddRange(convertedItems);
// CurrentPage.ExportedItems.Insert(2,detail);
row.ExportedItems.AddRange(convertedItems);
MeasureAndArrangeContainer(row);
detail.ExportedItems.Add(row);
Pages.Add(CurrentPage);
// MeasureAndArrangeContainer(detail);
position = ResetPosition();
CurrentPage = CreateNewPage();
WriteStandardSections();
CurrentLocation = DetailStart;
// detail = CreateContainerForSection(DetailStart);
} else {
// detail.ExportedItems.AddRange(convertedItems);
row.ExportedItems.AddRange(convertedItems);
MeasureAndArrangeContainer(row);
detail.ExportedItems.Add(row);
// InsertDetailAtPosition(detail);
// position = new Point(CurrentSection.Location.Y,position.Y + CurrentSection.Size.Height + 5);
position = new Point(CurrentSection.Location.X,position.Y + row.DesiredSize.Height + 5);
}
}
while (collectionSource.MoveNext());
InsertDetailAtPosition(detail);
} else {
detail = CreateContainerForSection(DetailStart);
InsertDetailAtPosition(detail);
}
}
*/
/*
void BuildDetail_1()
{
var converter = new ContainerConverter(base.Graphics, CurrentLocation);
var position = ResetPosition();
@ -96,11 +212,10 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -96,11 +212,10 @@ namespace ICSharpCode.Reporting.PageBuilder
InsertDetailAtPosition(detail);
}
}
*/
/*
void row_BuildDetail()
{
var converter = new ContainerConverter(base.Graphics, CurrentLocation);
@ -144,16 +259,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -144,16 +259,7 @@ namespace ICSharpCode.Reporting.PageBuilder
}
*/
/*
IExportContainer CreateAndArrangeContainer(ContainerConverter converter, Point position,IExportContainer parent)
{
var row = CreateContainerIfNotExist(CurrentSection, parent, position);
var recreate = converter.CreateConvertedList(ReportModel.DetailSection, row);
MeasureAndArrangeContainer(converter, row);
row.ExportedItems.AddRange(recreate);
return row;
}
*/
/*
IExportContainer CreateContainerIfNotExist(IReportContainer container, IExportContainer parent, Point position)
{
@ -169,9 +275,9 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -169,9 +275,9 @@ namespace ICSharpCode.Reporting.PageBuilder
}
return CreateContainerForSection(container.Items[0].Location);
}
*/
/*
IExportContainer CreateDetail(Point startLocation)
IExportContainer CreateDetailSection(Point startLocation)
{
var detail = CreateContainerForSection(startLocation);
detail.Parent = CurrentPage;
@ -201,6 +307,16 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -201,6 +307,16 @@ namespace ICSharpCode.Reporting.PageBuilder
}
void InsertRange(List<IExportContainer> list)
{
if (Pages.Count == 0) {
CurrentPage.ExportedItems.InsertRange(2, list);
} else {
CurrentPage.ExportedItems.InsertRange(1, list);
}
}
void InsertDetailAtPosition(IExportContainer container)
{
if (Pages.Count == 0) {

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

@ -67,7 +67,6 @@ @@ -67,7 +67,6 @@
<Compile Include="src\Model\Report_TwoItemsFixture.cs" />
<Compile Include="src\PageBuilder\BaseConvertFixture.cs" />
<Compile Include="src\PageBuilder\ContainerConverterFixture.cs" />
<Compile Include="src\PageBuilder\DataPageBuilderFixture.cs" />
<Compile Include="src\PageBuilder\FormBuilderFixture.cs" />
<Compile Include="src\PageBuilder\PageFixture.cs" />
<Compile Include="src\PageBuilder\PageLayoutFixture.cs" />

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

@ -42,7 +42,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder @@ -42,7 +42,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
{
var converter = new ContainerConverter(graphics,new Point(30,30));
var result = converter.ConvertToExportContainer(container);
var list = converter.CreateConvertedList(container.Items,new Point(30,30));
var list = converter.CreateConvertedList(container.Items);
result.ExportedItems.AddRange(list);
Assert.That(result.ExportedItems.Count,Is.EqualTo(2));
}

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

@ -1,52 +0,0 @@ @@ -1,52 +0,0 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 06.06.2013
* Time: 20:29
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Linq;
using System.Reflection;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder;
using NUnit.Framework;
namespace ICSharpCode.Reporting.Test.PageBuilder
{
[TestFixture]
public class DataPageBuilderFixture
{
private IReportCreator reportCreator;
[Test]
public void CanInitDataPageBuilder()
{
var dpb = new DataPageBuilder (new ReportModel(),typeof(string),new System.Collections.Generic.List<string>());
// dpb.DataSource(new ReportModel(),new System.Collections.Generic.List<string>());
Assert.That(dpb,Is.Not.Null);
}
[Test]
public void DataSourceIsSet() {
var dpb = new DataPageBuilder (new ReportModel(),typeof(string),new System.Collections.Generic.List<string>());
Assert.That(dpb.List,Is.Not.Null);
}
[SetUp]
public void LoadFromStream()
{
System.Reflection.Assembly asm = Assembly.GetExecutingAssembly();
var stream = asm.GetManifestResourceStream(TestHelper.ReportFromList);
var reportingFactory = new ReportingFactory();
var model = reportingFactory.LoadReportModel (stream);
reportCreator = new DataPageBuilder(model,typeof(string),new System.Collections.Generic.List<string>());
}
}
}

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

@ -14,6 +14,7 @@ using System.Reflection; @@ -14,6 +14,7 @@ using System.Reflection;
using ICSharpCode.Reporting.Exporter;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
using ICSharpCode.Reporting.Test.DataSource;
@ -27,6 +28,23 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory @@ -27,6 +28,23 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory
private IReportCreator reportCreator;
[Test]
public void DataSourceIsSet() {
var dataPageBuilder = new DataPageBuilder (new ReportModel(),typeof(string),new System.Collections.Generic.List<string>());
Assert.That(dataPageBuilder.List,Is.Not.Null);
}
[Test]
public void CanInitDataPageBuilder()
{
var dpb = new DataPageBuilder (new ReportModel(),typeof(string),new System.Collections.Generic.List<string>());
// dpb.DataSource(new ReportModel(),new System.Collections.Generic.List<string>());
Assert.That(dpb,Is.Not.Null);
}
[Test]
public void CanCreateReportCreatorFromList () {
var contributorList = new ContributorsList();
@ -51,21 +69,24 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory @@ -51,21 +69,24 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory
[Test]
public void FirstPageContains_4_Sections()
[Ignore]
public void PageContainsContainers()
{
reportCreator.BuildExportList();
var exporteditems = reportCreator.Pages[0].ExportedItems;
var sections = from s in exporteditems
where s.GetType() == typeof(ExportContainer)
select s;
Assert.That(sections.ToList().Count,Is.EqualTo(4));
var ex = new DebugExporter(reportCreator.Pages);
ex.Run();
}
/*
[Test]
public void LastPageContains_4_Sections()
// [Ignore]
public void LastPageContains_4_Section()
{
reportCreator.BuildExportList();
var exporteditems = reportCreator.Pages[1].ExportedItems;
@ -74,7 +95,7 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory @@ -74,7 +95,7 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory
select s;
Assert.That(sections.ToList().Count,Is.EqualTo(4));
}
*/
[Test]
public void DetailContainsOneDataItem() {
@ -109,9 +130,10 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory @@ -109,9 +130,10 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory
var model = reportingFactory.LoadReportModel (stream);
reportCreator = new DataPageBuilder(model,typeof(string),new List<string>());
reportCreator.BuildExportList();
Assert.That(reportCreator.Pages[0].ExportedItems.Count,Is.EqualTo(5));
Assert.That(reportCreator.Pages[0].ExportedItems.Count,Is.EqualTo(4));
}
[SetUp]
public void LoadFromStream()
{

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

@ -60,22 +60,24 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews @@ -60,22 +60,24 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews
protected override void LoadFromPrimary()
{
throw new NotImplementedException();
Pages.Clear();
var xmDoc = designerLoader.CreateXmlModel();
var modulLoader = new ModelLoader();
ReportModel model = (ReportModel)modulLoader.Load(xmDoc.DocumentElement);
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);
viewer.SetBinding(previewViewModel);
//Missing
// 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);
// viewer.SetBinding(previewViewModel);
}
protected override void SaveToPrimary()

Loading…
Cancel
Save