Browse Source

PageBreak

reports
Peter Forstmeier 13 years ago
parent
commit
ce8ed519b0
  1. 7
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
  2. 130
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs
  3. 21
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs
  4. 6
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs
  5. 41
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs
  6. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs
  7. 40
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/CanvasExtension.cs
  8. 69
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/CanvasHelper.cs
  9. 18
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/DebugVisitor.cs
  10. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs
  11. 13
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs
  12. 153
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs
  13. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPage.cs
  14. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs
  15. 26
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs
  16. 13
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
  17. 110
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
  18. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs
  19. 10
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs
  20. 57
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportPage.cs
  21. 18
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
  22. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs
  23. 10
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs
  24. 9
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs
  25. 25
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs
  26. 5
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs

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

@ -44,6 +44,9 @@ @@ -44,6 +44,9 @@
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="NUnit.Framework">
<HintPath>$(SharpDevelopBinPath)\Tools\NUnit\NUnit.Framework.dll</HintPath>
</Reference>
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
@ -74,7 +77,6 @@ @@ -74,7 +77,6 @@
<Compile Include="Src\Arrange\MeasurementStrategy.cs" />
<Compile Include="Src\BaseClasses\AbstractColumn.cs" />
<Compile Include="Src\BaseClasses\GroupColumn.cs" />
<Compile Include="Src\BaseClasses\Page.cs" />
<Compile Include="Src\BaseClasses\PageInfo.cs" />
<Compile Include="Src\BaseClasses\SortColumn.cs" />
<Compile Include="Src\Collections.cs" />
@ -91,6 +93,8 @@ @@ -91,6 +93,8 @@
<Compile Include="Src\DataSource\PropertyTypeHash.cs" />
<Compile Include="Src\Exporter\BaseExporter.cs" />
<Compile Include="Src\Exporter\DebugExporter.cs" />
<Compile Include="Src\Exporter\Visitors\CanvasExtension.cs" />
<Compile Include="Src\Exporter\Visitors\CanvasHelper.cs" />
<Compile Include="Src\Exporter\WpfExporter.cs" />
<Compile Include="Src\Exporter\Visitors\AbstractVisitor.cs" />
<Compile Include="Src\Exporter\Visitors\IAcceptor.cs" />
@ -128,6 +132,7 @@ @@ -128,6 +132,7 @@
<Compile Include="Src\PageBuilder\ExportColumns\ExportColumn.cs" />
<Compile Include="Src\PageBuilder\ExportColumns\ExportContainer.cs" />
<Compile Include="Src\PageBuilder\ExportColumns\ExportText.cs" />
<Compile Include="Src\PageBuilder\ExportColumns\ExportPage.cs" />
<Compile Include="Src\PageBuilder\FormPageBuilder.cs" />
<Compile Include="Src\ReportingFactory.cs" />
<Compile Include="Src\Wpf\PreviewViewModel.cs" />

130
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs

@ -1,130 +0,0 @@ @@ -1,130 +0,0 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 03.04.2013
* Time: 20:35
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
namespace ICSharpCode.Reporting.BaseClasses
{
/// <summary>
/// Description of Page.
/// </summary>
///
public class Page:IExportContainer,IPage
{
public Page(IPageInfo pageInfo,Size pageSize)
{
if (pageInfo == null) {
throw new ArgumentNullException("pageInfo");
}
PageInfo = pageInfo;
Name = "Page";
Size = pageSize;
exportedItems = new List<IExportColumn>();
}
public bool IsFirstPage {get;set;}
public IPageInfo PageInfo {get;private set;}
public string Name {get;set;}
public System.Drawing.Size Size {get;set;}
public System.Drawing.Point Location {get;set;}
public List<IExportColumn> exportedItems;
public List<IExportColumn> ExportedItems {
get { return exportedItems; }
}
public IExportContainer CreateExportColumn()
{
throw new NotImplementedException();
}
public ICSharpCode.Reporting.Arrange.IArrangeStrategy GetArrangeStrategy()
{
throw new NotImplementedException();
}
public Size DesiredSize {
get {
throw new NotImplementedException();
}
set {
throw new NotImplementedException();
}
}
public Color ForeColor {
get {
throw new NotImplementedException();
}
set {
throw new NotImplementedException();
}
}
public Color BackColor {
get {
throw new NotImplementedException();
}
set {
throw new NotImplementedException();
}
}
public Color FrameColor {
get {
throw new NotImplementedException();
}
set {
throw new NotImplementedException();
}
}
public IExportColumn Parent {
get {
return null;
}
set {
throw new NotImplementedException();
}
}
public bool CanGrow {get;set;}
public bool CanShrink {get;set;}
public Rectangle DisplayRectangle {
get {
return new Rectangle(Location,Size);
}
}
public ICSharpCode.Reporting.Arrange.IMeasurementStrategy MeasurementStrategy()
{
throw new NotImplementedException();
}
}
}

21
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs

@ -12,6 +12,7 @@ using System.Windows.Controls; @@ -12,6 +12,7 @@ using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;
using ICSharpCode.Reporting.Exporter.Visitors;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
using Brush = System.Windows.Media.Brush;
@ -37,12 +38,19 @@ namespace ICSharpCode.Reporting.ExportRenderer @@ -37,12 +38,19 @@ namespace ICSharpCode.Reporting.ExportRenderer
brushConverter = new BrushConverter();
}
public UIElement CreateFixedPage(ExportPage exportPage) {
var fixedPage = new FixedPage();
fixedPage.Width = exportPage.Size.Width;
fixedPage.Height = exportPage.Size.Height;
fixedPage.Background = ConvertBrush(System.Drawing.Color.Blue);
return fixedPage;
}
public UIElement CreateContainer(ExportContainer container)
{
// http://tech.pro/tutorial/736/wpf-tutorial-creating-a-custom-panel-control
Console.WriteLine();
Console.WriteLine("create container {0}",container.Name);
Console.WriteLine("create container {0} {1} {2}",container.Name,container.Location,container.Size);
var canvas = CreateCanvas(container);
var size = new Size(container.DesiredSize.Width,container.DesiredSize.Height);
@ -95,23 +103,22 @@ namespace ICSharpCode.Reporting.ExportRenderer @@ -95,23 +103,22 @@ namespace ICSharpCode.Reporting.ExportRenderer
void SetPositionAndSize(FrameworkElement element,ExportColumn column) {
SetPosition(element,column);
SetDimension(element,column);
SetDimension(element,column);
}
static void SetDimension (FrameworkElement element,ExportColumn exportColumn)
{
Console.WriteLine("set Demension to {0}",exportColumn.DesiredSize);
element.Width = exportColumn.DesiredSize.Width;
element.Height = exportColumn.DesiredSize.Height;
}
static void SetPosition (FrameworkElement element,ExportColumn exportColumn) {
Console.WriteLine("set Position to {0}",exportColumn.Location);
FixedPage.SetLeft(element,exportColumn.Location.X );
FixedPage.SetTop(element,exportColumn.Location.Y);
}
void SetFont(TextBlock textBlock,ExportText exportText)
{
textBlock.FontFamily = new FontFamily(exportText.Font.FontFamily.Name);
@ -156,7 +163,7 @@ namespace ICSharpCode.Reporting.ExportRenderer @@ -156,7 +163,7 @@ namespace ICSharpCode.Reporting.ExportRenderer
}
Pen CreateWpfPen(ExportColumn exportColumn)
Pen CreateWpfPen(ICSharpCode.Reporting.Interfaces.IReportObject exportColumn)
{
var myPen = new Pen();
myPen.Brush = ConvertBrush(exportColumn.ForeColor);
@ -168,7 +175,7 @@ namespace ICSharpCode.Reporting.ExportRenderer @@ -168,7 +175,7 @@ namespace ICSharpCode.Reporting.ExportRenderer
Brush ConvertBrush(System.Drawing.Color color)
{
if (brushConverter.IsValid(color.Name)){
var r = brushConverter.ConvertFromString(color.Name) as SolidColorBrush;
Console.WriteLine(color.Name);
return brushConverter.ConvertFromString(color.Name) as SolidColorBrush;
} else{
return brushConverter.ConvertFromString("Black") as SolidColorBrush;

6
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs

@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
*/
using System;
using System.Collections.ObjectModel;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Exporter
{
@ -17,7 +17,7 @@ namespace ICSharpCode.Reporting.Exporter @@ -17,7 +17,7 @@ namespace ICSharpCode.Reporting.Exporter
/// </summary>
public class BaseExporter
{
public BaseExporter(Collection<IPage> pages)
public BaseExporter(Collection<ExportPage> pages)
{
if (pages == null) {
throw new ArgumentException("pages");
@ -31,6 +31,6 @@ namespace ICSharpCode.Reporting.Exporter @@ -31,6 +31,6 @@ namespace ICSharpCode.Reporting.Exporter
}
protected Collection<IPage> Pages {get;private set;}
protected Collection<ExportPage> Pages {get;private set;}
}
}

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

@ -7,11 +7,11 @@ @@ -7,11 +7,11 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using ICSharpCode.Reporting.Exporter.Visitors;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Exporter
{
@ -22,7 +22,7 @@ namespace ICSharpCode.Reporting.Exporter @@ -22,7 +22,7 @@ namespace ICSharpCode.Reporting.Exporter
{
private DebugVisitor visitor;
public DebugExporter(Collection<IPage> pages):base(pages)
public DebugExporter(Collection<ExportPage> pages):base(pages)
{
visitor = new DebugVisitor();
}
@ -30,14 +30,43 @@ namespace ICSharpCode.Reporting.Exporter @@ -30,14 +30,43 @@ namespace ICSharpCode.Reporting.Exporter
public override void Run () {
foreach (var page in Pages) {
ShowDebug(page);
ShowDebug("--",page);
Console.WriteLine("-----------PageBreak---------");
}
}
void ShowDebug(string header,IExportContainer container)
{
var leading = header;
Console.WriteLine();
Console.WriteLine("{0}{1}",leading,container.Name);
foreach (var item in container.ExportedItems) {
var exportContainer = item as IExportContainer;
var acceptor = item as IAcceptor;
if (exportContainer != null) {
if (exportContainer.ExportedItems.Count > 0) {
acceptor.Accept(visitor);
ShowDebug(leading = leading + "--",exportContainer);
leading = leading.Substring(0,leading.Length -2);
}
} else {
ShowSingleEntry(leading, acceptor);
}
}
}
void ShowSingleEntry(string leading, IAcceptor acceptor)
{
if (acceptor != null) {
acceptor.Accept(visitor);
leading = leading.Substring(0, leading.Length - 2);
}
}
void ShowDebug(IExportContainer container)
void aaShowDebug(string leading,IExportContainer container)
{
Console.WriteLine();
Console.WriteLine("DebugExport for {0}{1}",leading,container.Name);
foreach (var item in container.ExportedItems) {
var exportContainer = item as IExportContainer;
var acceptor = item as IAcceptor;
@ -45,10 +74,10 @@ namespace ICSharpCode.Reporting.Exporter @@ -45,10 +74,10 @@ namespace ICSharpCode.Reporting.Exporter
if (acceptor != null) {
acceptor.Accept(visitor);
}
ShowDebug(exportContainer);
ShowDebug(leading = leading + "--",exportContainer);
} else {
if (acceptor != null) {
acceptor.Accept(visitor);
// acceptor.Accept(visitor);
}
}
}

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

@ -7,7 +7,6 @@ @@ -7,7 +7,6 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Exporter.Visitors
@ -17,8 +16,9 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -17,8 +16,9 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
/// </summary>
public abstract class AbstractVisitor : IVisitor
{
public abstract void Visit(ExportColumn exportColumn);
public abstract void Visit(ExportPage page);
public abstract void Visit(ExportContainer exportColumn);
public abstract void Visit(ExportText exportColumn);
public abstract void Visit(ExportColumn exportColumn);
}
}

40
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/CanvasExtension.cs

@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
// 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.Windows;
using System.Windows.Controls;
namespace ICSharpCode.Reporting.Exporter.Visitors
{
/// <summary>
/// Description of CanvasExtension.
/// http://denisvuyka.wordpress.com/2007/12/15/wpf-simplify-your-life-with-linq-extension-methods-canvas-and-visual-tree-helpers/
/// </summary>
public static class CanvasExtension
{
public static void AddChild<T>(this Canvas canvas, T element)
{
UIElement uiElement = element as UIElement;
if (uiElement != null && !canvas.Children.Contains(uiElement))
canvas.Children.Add(uiElement);
}
public static void RemoveChild<T>(this Canvas canvas, T element)
{
UIElement uiElement = element as UIElement;
if (uiElement != null && canvas.Children.Contains(uiElement))
canvas.Children.Remove(uiElement);
}
public static void InsertChild<T>(this Canvas canvas, int index, T element)
{
UIElement uiElement = element as UIElement;
if (uiElement != null && !canvas.Children.Contains(uiElement))
canvas.Children.Insert(index, uiElement);
}
}
}

69
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/CanvasHelper.cs

@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
// 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.Windows;
using System.Windows.Controls;
namespace ICSharpCode.Reporting.Exporter.Visitors
{
/// <summary>
/// Description of CanvasHelper.
/// http://denisvuyka.wordpress.com/2007/12/15/wpf-simplify-your-life-with-linq-extension-methods-canvas-and-visual-tree-helpers/
/// </summary>
///
internal static class CanvasHelper
{
public static double GetLeft<T>(T element)
{
UIElement uiElement = element as UIElement;
if (uiElement == null)
throw new ArgumentNullException("element");
return (double)uiElement.GetValue(Canvas.LeftProperty);
}
public static double GetTop<T>(T element)
{
UIElement uiElement = element as UIElement;
if (uiElement == null)
throw new ArgumentNullException("element");
return (double)uiElement.GetValue(Canvas.TopProperty);
}
public static Point GetPosition<T>(T element)
{
UIElement uiElement = element as UIElement;
if (uiElement == null)
throw new ArgumentNullException("element");
return new Point(
(double)uiElement.GetValue(Canvas.LeftProperty),
(double)uiElement.GetValue(Canvas.TopProperty));
}
public static void SetLeft<T>(T element, double length)
{
UIElement uiElement = element as UIElement;
if (uiElement == null)
throw new ArgumentNullException("element");
uiElement.SetValue(Canvas.LeftProperty, length);
}
public static void SetTop<T>(T element, double length)
{
UIElement uiElement = element as UIElement;
if (uiElement == null)
throw new ArgumentNullException("element");
uiElement.SetValue(Canvas.TopProperty, length);
}
public static void SetPosition<T>(T element, Point value)
{
UIElement uiElement = element as UIElement;
if (uiElement == null)
throw new ArgumentNullException("element");
uiElement.SetValue(Canvas.LeftProperty, value.X);
uiElement.SetValue(Canvas.TopProperty, value.Y);
}
}
}

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

@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using ICSharpCode.Reporting.BaseClasses;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Exporter.Visitors
@ -20,6 +20,13 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -20,6 +20,13 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public class DebugVisitor : AbstractVisitor
{
public override void Visit(ExportPage page)
{
Console.WriteLine("<Page> {0} - {1} Items {2}",
page.Name,page.Location,page.BackColor);
}
public override void Visit(ExportColumn exportColumn)
{
Console.WriteLine("Visit ExportColumn {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.Location);
@ -29,15 +36,16 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -29,15 +36,16 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public override void Visit(ExportContainer exportColumn)
{
Console.WriteLine("Start Container");
Console.WriteLine("Visit ExportContainer {0} - {1} - {2} - Items {3}",
exportColumn.Name,exportColumn.Size,exportColumn.Location,exportColumn.BackColor);
Console.WriteLine("<ExportContainer> {0} - {1} Items {2}",
exportColumn.Name,exportColumn.Location,exportColumn.BackColor);
}
public override void Visit(ExportText exportColumn)
{
Console.WriteLine("Visit ExportText {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.Location);
Console.WriteLine("<ExportText> {0} - {1}", exportColumn.Text,exportColumn.Location);
}
}
}

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs

@ -7,13 +7,13 @@ @@ -7,13 +7,13 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Exporter.Visitors
{
public interface IVisitor
{
void Visit(ExportPage page);
void Visit(ExportColumn exportColumn);
void Visit(ExportContainer exportColumn);
void Visit(ExportText exportColumn);

13
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs

@ -30,11 +30,13 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -30,11 +30,13 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
documentCreator = new FixedDocumentCreator(reportSettings);
}
public override void Visit(ExportColumn exportColumn)
public override void Visit(ExportPage page)
{
// Console.WriteLine("Wpf-Visit ExportColumn {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.Location);
Console.WriteLine("page visitor");
UIElement = documentCreator.CreateFixedPage(page);
}
public override void Visit(ExportContainer exportColumn)
{
@ -53,6 +55,11 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -53,6 +55,11 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
}
public override void Visit(ExportColumn exportColumn)
{
// Console.WriteLine("Wpf-Visit ExportColumn {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.Location);
}
public UIElement UIElement {get; private set;}
}

153
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs

@ -8,7 +8,6 @@ @@ -8,7 +8,6 @@
*/
using System;
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Markup;
@ -25,10 +24,13 @@ namespace ICSharpCode.Reporting.Exporter @@ -25,10 +24,13 @@ namespace ICSharpCode.Reporting.Exporter
/// </summary>
public class WpfExporter:BaseExporter
{
private WpfVisitor visitor;
private ReportSettings reportSettings;
FixedPage fixedPage;
public WpfExporter(ReportSettings reportSettings,Collection<IPage> pages):base(pages)
public WpfExporter(ReportSettings reportSettings,Collection<ExportPage> pages):base(pages)
{
if (reportSettings == null)
throw new ArgumentNullException("reportSettings");
@ -41,51 +43,137 @@ namespace ICSharpCode.Reporting.Exporter @@ -41,51 +43,137 @@ namespace ICSharpCode.Reporting.Exporter
Document = new FixedDocument();
foreach (var page in Pages) {
var fixedPage = InternalRun(page);
InternalRun(page);
AddPageToDocument(Document,fixedPage);
}
}
void InternalRun(ExportPage page)
{
page.Accept(visitor);
fixedPage = (FixedPage)visitor.UIElement;
foreach (var item in page.ExportedItems) {
ShowContainerRecursive_2(null,item);
}
}
void ShowContainerRecursive (string parentCanvas,IExportColumn item){
var exportContainer = item as IExportContainer;
string name = string.Empty;
Console.WriteLine("perform {0}",parentCanvas);
if (exportContainer != null) {
if (exportContainer.Name =="ReportDetail") {
Console.WriteLine(item.Name);
}
//
if (exportContainer.Name == "Row") {
Console.WriteLine(item.Name);
}
name = item.Name;
// var containerCanvas = CreateContainer(exportContainer);
FixedPage InternalRun(IExportContainer container)
// fixedPage.Children.Add(containerCanvas);
// Console.WriteLine(fixedPage.Children.Count);
// Console.WriteLine(containerCanvas.Children.Count);
foreach (var element in exportContainer.ExportedItems) {
var el = element as IExportContainer;
if (el == null) {
// CreateSingleEntry(ref containerCanvas, element);
// Console.WriteLine(containerCanvas.Children.Count);
name = element.Name;
}
ShowContainerRecursive(name,element);
}
}
}
void ShowContainerRecursive_2(Canvas parentCanvas,IExportColumn item)
{
var exportContainer = item as IExportContainer;
if (exportContainer != null) {
if (exportContainer.Name =="ReportDetail") {
Console.WriteLine(item.Name);
}
//
if (exportContainer.Name == "Row") {
Console.WriteLine("\t {0}",item.Name);
}
foreach (var element in exportContainer.ExportedItems) {
// Console.WriteLine(element.Name);
var el = element as IExportContainer;
if (el == null) {
Console.WriteLine("\t\t {0}",element.Name);
}
ShowContainerRecursive_2(null,exportContainer.ExportedItems[0]);
}
}
}
void ShowContainerRecursive_1(Canvas parentCanvas,IExportColumn item)
{
var exportContainer = item as IExportContainer;
FixedPage fixedPage = CreateFixedPage();
Canvas parentCanvas = null ;
Console.WriteLine("page start");
foreach (var item in container.ExportedItems) {
var exportContainer = item as IExportContainer;
var acceptor = item as IAcceptor;
if (exportContainer != null) {
if (acceptor != null) {
acceptor.Accept(visitor);
parentCanvas = (Canvas)visitor.UIElement;
fixedPage.Children.Add(parentCanvas);
foreach (IAcceptor element in exportContainer.ExportedItems) {
element.Accept(visitor);
var ui = visitor.UIElement;
Canvas.SetLeft(ui,((IExportColumn)element).Location.X);
Canvas.SetTop(ui, ((IExportColumn)element).Location.Y);
parentCanvas.Children.Add(ui);
}
} else {
throw new NotSupportedException("item is not an IAcceptor");
if (exportContainer != null) {
if (exportContainer.Name =="ReportDetail") {
Console.WriteLine(item.Name);
}
//
if (exportContainer.Name == "Row") {
Console.WriteLine(item.Name);
}
var containerCanvas = CreateContainer(exportContainer);
fixedPage.Children.Add(containerCanvas);
Console.WriteLine(fixedPage.Children.Count);
Console.WriteLine(containerCanvas.Children.Count);
foreach (var element in exportContainer.ExportedItems) {
var el = element as IExportContainer;
if (el == null) {
CreateSingleEntry(ref containerCanvas, element);
Console.WriteLine(containerCanvas.Children.Count);
}
ShowContainerRecursive_1(containerCanvas,element);
}
}
Console.WriteLine("-------page end---");
return fixedPage;
}
Canvas CreateContainer(IExportContainer exportContainer)
{
var containerAcceptor = exportContainer as IAcceptor;
containerAcceptor.Accept(visitor);
var containerCanvas = (Canvas)visitor.UIElement;
return containerCanvas;
}
FixedPage CreateFixedPage()
void CreateSingleEntry(ref Canvas canvas, IExportColumn element)
{
var fixedPage = new FixedPage();
fixedPage.Width = reportSettings.PageSize.Width;
fixedPage.Height = reportSettings.PageSize.Height;
return fixedPage;
var v = element as IAcceptor;
v.Accept(visitor);
var c = visitor.UIElement;
CanvasHelper.SetLeft(c,element.Location.X);
CanvasHelper.SetTop(c,10);
// CanvasHelper.SetTop(c,element.Location.Y);
canvas.AddChild(c);
}
@ -96,6 +184,7 @@ namespace ICSharpCode.Reporting.Exporter @@ -96,6 +184,7 @@ namespace ICSharpCode.Reporting.Exporter
fixedDocument.Pages.Add(pageContent);
}
public FixedDocument Document {get;private set;}
}
}

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPage.cs

@ -7,7 +7,6 @@ @@ -7,7 +7,6 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
namespace ICSharpCode.Reporting.Interfaces.Export
{

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs

@ -12,6 +12,7 @@ using System.Collections.ObjectModel; @@ -12,6 +12,7 @@ using System.Collections.ObjectModel;
using ICSharpCode.Reporting.BaseClasses;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Interfaces
{
@ -21,7 +22,7 @@ namespace ICSharpCode.Reporting.Interfaces @@ -21,7 +22,7 @@ namespace ICSharpCode.Reporting.Interfaces
public interface IReportCreator
{
void BuildExportList ();
Collection<IPage> Pages {get;}
Collection<ExportPage> Pages {get;}
// PagesCollection Pages{get;}
// event EventHandler<PageCreatedEventArgs> PageCreated;

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

@ -16,6 +16,7 @@ using ICSharpCode.Reporting.Globals; @@ -16,6 +16,7 @@ using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.Converter;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.PageBuilder
{
@ -31,14 +32,14 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -31,14 +32,14 @@ namespace ICSharpCode.Reporting.PageBuilder
throw new ArgumentNullException("reportModel");
}
ReportModel = reportModel;
Pages = new Collection<IPage>();
Pages = new Collection<ExportPage>();
Graphics = CreateGraphics.FromSize(reportModel.ReportSettings.PageSize);
}
protected IPage InitNewPage(){
protected ExportPage InitNewPage(){
var pi = CreatePageInfo();
return new Page(pi,ReportModel.ReportSettings.PageSize);
return new ExportPage(pi,ReportModel.ReportSettings.PageSize);
}
#region create Sections
@ -85,13 +86,14 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -85,13 +86,14 @@ namespace ICSharpCode.Reporting.PageBuilder
#endregion
protected virtual IPage CreateNewPage()
protected virtual ExportPage CreateNewPage()
{
var page = InitNewPage();
CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.TopMargin);
return page;
}
protected void WriteStandardSections() {
this.BuildReportHeader();
BuildPageHeader();
@ -99,6 +101,16 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -99,6 +101,16 @@ namespace ICSharpCode.Reporting.PageBuilder
}
protected bool PageFull(System.Collections.Generic.List<IExportColumn> columns)
{
var rectToPrint = new Rectangle(columns[0].Location,columns[0].Size);
if (rectToPrint.Bottom > DetailEnds.Y) {
return true;
}
return false;
}
protected IExportContainer CreateSection(IReportContainer container,Point location)
{
var containerConverter = new ContainerConverter(Graphics, location);
@ -128,7 +140,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -128,7 +140,7 @@ namespace ICSharpCode.Reporting.PageBuilder
}
protected virtual void AddPage(IPage page) {
protected virtual void AddPage(ExportPage page) {
if (Pages.Count == 0) {
page.IsFirstPage = true;
}
@ -145,7 +157,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -145,7 +157,7 @@ namespace ICSharpCode.Reporting.PageBuilder
protected Point CurrentLocation {get; set;}
protected IPage CurrentPage {get; set;}
protected ExportPage CurrentPage {get; set;}
internal Point DetailStart {get;private set;}
@ -153,6 +165,6 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -153,6 +165,6 @@ namespace ICSharpCode.Reporting.PageBuilder
protected Graphics Graphics {get;private set;}
public Collection<IPage> Pages {get; private set;}
public Collection<ExportPage> Pages {get; private set;}
}
}

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

@ -34,8 +34,6 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -34,8 +34,6 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
public virtual IExportContainer Convert(IReportContainer reportContainer)
{
Console.WriteLine();
Console.WriteLine("Convert {0}",reportContainer.Name);
var exportContainer = (ExportContainer)reportContainer.CreateExportColumn();
exportContainer.Location = CurrentLocation;
exportContainer.DesiredSize = Measure(exportContainer);
@ -43,9 +41,8 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -43,9 +41,8 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
}
public List<IExportColumn> CreateConvertedList(IReportContainer reportContainer,IExportContainer exportContainer,Point position)
{
Console.WriteLine("CreateConvertedList {0}",reportContainer.Name);
public List<IExportColumn> CreateConvertedList(IReportContainer reportContainer,IExportContainer exportContainer,Point position){
var itemsList = new List<IExportColumn>();
foreach (var element in reportContainer.Items) {
var exportColumn = ExportColumnFactory.CreateItem(element);
@ -58,7 +55,7 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -58,7 +55,7 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
public List<IExportColumn> CreateConvertedList(IReportContainer reportContainer,IExportContainer exportContainer)
{
Console.WriteLine("CreateConvertedList {0}",reportContainer.Name);
// Console.WriteLine("CreateConvertedList {0}",reportContainer.Name);
var itemsList = new List<IExportColumn>();
foreach (var element in reportContainer.Items) {
var exportColumn = ExportColumnFactory.CreateItem(element);
@ -73,14 +70,14 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -73,14 +70,14 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
public Size Measure(IExportColumn element)
{
Console.WriteLine("Measure {0}",element.Name);
// Console.WriteLine("Measure {0}",element.Name);
var measureStrategy = element.MeasurementStrategy();
return measureStrategy.Measure(element, Graphics);
}
public void ArrangeContainer(IExportContainer exportContainer)
{
Console.WriteLine("ArrangeContainer {0}",exportContainer.Name);
// Console.WriteLine("ArrangeContainer {0}",exportContainer.Name);
var exportArrange = exportContainer.GetArrangeStrategy();
exportArrange.Arrange(exportContainer);
}

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

@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
@ -36,12 +37,13 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -36,12 +37,13 @@ namespace ICSharpCode.Reporting.PageBuilder
base.BuildExportList();
CurrentPage = CreateNewPage ();
WriteStandardSections();
CurrentLocation = DetailStart;
BuildDetail();
base.AddPage(CurrentPage);
}
void BuildDetail()
void aaBuildDetail()
{
Container = ReportModel.DetailSection;
@ -89,32 +91,109 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -89,32 +91,109 @@ namespace ICSharpCode.Reporting.PageBuilder
base.BuildReportFooter();
}
}
void BuildDetail()
{
Container = ReportModel.DetailSection;
var collectionSource = new CollectionSource(List,ElementType,ReportModel.ReportSettings);
IExportContainer detail = null;
if(collectionSource.Count > 0) {
collectionSource.Bind();
Point ResetPosition () {
return Point.Empty;
var position = DetailStart;
var converter = new ContainerConverter(base.Graphics, CurrentLocation);
detail = CreateDetail(DetailStart);
do {
var row = CreateContainerIfNotExist(Container,detail, position);
collectionSource.Fill(Container.Items);
var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection,row,position);
MeasureAndArrangeContainer(converter,row);
row.ExportedItems.AddRange(convertedItems);
if (PageFull(convertedItems)) {
InsertDetailAtPosition(detail);
Pages.Add(CurrentPage);
CurrentPage = CreateNewPage();
WriteStandardSections();
position = ResetPosition();
detail = CreateDetail(DetailStart);
CurrentLocation = DetailStart;
row = CreateContainerIfNotExist(Container,detail,position);
var recreate = converter.CreateConvertedList(ReportModel.DetailSection,row,position);
MeasureAndArrangeContainer(converter,row);
row.ExportedItems.AddRange(recreate);
}
detail.ExportedItems.Add(row);
position = new Point(Container.Location.Y,position.Y + Container.Size.Height);
}
while (collectionSource.MoveNext());
InsertDetailAtPosition(detail);
// base.BuildReportFooter();
} else {
detail = CreateContainerForSection(DetailStart);
InsertDetailAtPosition(detail);
base.BuildReportFooter();
}
}
void MeasureAndArrangeContainer(ContainerConverter converter,IExportContainer detail)
IExportContainer CreateContainerIfNotExist(IReportContainer container, IExportContainer parent, Point position)
{
converter.Measure(detail);
converter.ArrangeContainer(detail);
// if (container.Items[0] is IExportContainer) {
// return container.Items[0].CreateExportColumn() as IExportContainer;
// } else {
// var row = CreateContainerForSection(position);
// row.Name = "Row";
// row.Parent = parent;
// row.Location = new Point(50, position.Y);
// row.Size = new Size(400, 40);
// row.BackColor = Color.Green;
// return row;
// }
var row = CreateContainerForSection(position);
row.Name = "Row";
row.Parent = parent;
row.Location = new Point(50, position.Y);
row.Size = new Size(400, 40);
row.BackColor = Color.Green;
return row;
}
IExportContainer CreateContainerForSection(Point location )
IExportContainer CreateDetail(Point startLocation)
{
var detail = (ExportContainer)Container.CreateExportColumn();
detail.Location = location;
var detail = CreateContainerForSection(startLocation);
detail.Parent = CurrentPage;
return detail;
}
bool PageFull(System.Collections.Generic.List<IExportColumn> columns)
Point ResetPosition () {
return DetailStart;
}
void MeasureAndArrangeContainer(IContainerConverter converter,IExportContainer container)
{
var rect = new Rectangle(columns[0].Location,columns[0].Size);
if (rect.Contains(new Point(100,500))) {
return true;
}
return false;
converter.Measure(container);
converter.ArrangeContainer(container);
}
IExportContainer CreateContainerForSection(Point location )
{
var detail = (ExportContainer)Container.CreateExportColumn();
detail.Location = location;
return detail;
}
@ -127,6 +206,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -127,6 +206,7 @@ namespace ICSharpCode.Reporting.PageBuilder
}
}
internal IReportContainer Container { get; private set; }
public IEnumerable List {get; private set;}

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs

@ -9,9 +9,6 @@ @@ -9,9 +9,6 @@
using System;
using System.Drawing;
using ICSharpCode.Reporting.Arrange;
using ICSharpCode.Reporting.BaseClasses;
using ICSharpCode.Reporting.Exporter;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
namespace ICSharpCode.Reporting.PageBuilder.ExportColumns

10
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs

@ -30,10 +30,7 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns @@ -30,10 +30,7 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
get { return exportedItems; }
}
public void Accept(IVisitor visitor)
{
visitor.Visit(this);
}
public override IArrangeStrategy GetArrangeStrategy()
{
@ -44,5 +41,10 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns @@ -44,5 +41,10 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
{
return new ContainerMeasurementStrategy();
}
public void Accept(IVisitor visitor)
{
visitor.Visit(this);
}
}
}

57
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportPage.cs

@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 03.04.2013
* Time: 20:35
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using ICSharpCode.Reporting.Exporter.Visitors;
using ICSharpCode.Reporting.Interfaces.Export;
namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
{
/// <summary>
/// Description of Page.
/// </summary>
///
public class ExportPage:ExportColumn,IPage,IAcceptor
{
public ExportPage(IPageInfo pageInfo,Size pageSize):base()
{
if (pageInfo == null) {
throw new ArgumentNullException("pageInfo");
}
PageInfo = pageInfo;
Name = "Page";
Size = pageSize;
exportedItems = new List<IExportColumn>();
}
public bool IsFirstPage {get;set;}
public IPageInfo PageInfo {get;private set;}
public bool CanShrink {get;set;}
public void Accept(IVisitor visitor)
{
visitor.Visit(this as ExportPage);
}
List<IExportColumn> exportedItems;
public List<IExportColumn> ExportedItems {
get { return exportedItems; }
}
}
}

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

@ -40,21 +40,21 @@ namespace ICSharpCode.Reporting @@ -40,21 +40,21 @@ namespace ICSharpCode.Reporting
}
internal IReportCreator ReportCreator (ReportModel reportModel) {
if (reportModel == null)
throw new ArgumentNullException("reportModel");
public IReportCreator ReportCreator (Stream stream)
{
ReportModel = LoadReportModel (stream);
IReportCreator builder = null;
ReportModel = reportModel;
builder = ReportCreatorFactory.ExporterFactory(reportModel);
builder = ReportCreatorFactory.ExporterFactory(ReportModel);
return builder;
}
internal IReportCreator ReportCreator (Stream stream)
{
ReportModel = LoadReportModel (stream);
internal IReportCreator ReportCreator (ReportModel reportModel) {
if (reportModel == null)
throw new ArgumentNullException("reportModel");
IReportCreator builder = null;
builder = ReportCreatorFactory.ExporterFactory(ReportModel);
ReportModel = reportModel;
builder = ReportCreatorFactory.ExporterFactory(reportModel);
return builder;
}

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs

@ -13,10 +13,12 @@ using System.Diagnostics; @@ -13,10 +13,12 @@ using System.Diagnostics;
using System.Windows.Documents;
using System.Windows.Markup;
using ICSharpCode.Reporting.BaseClasses;
using ICSharpCode.Reporting.Exporter;
using ICSharpCode.Reporting.ExportRenderer;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.WpfReportViewer
{
@ -28,7 +30,7 @@ namespace ICSharpCode.Reporting.WpfReportViewer @@ -28,7 +30,7 @@ namespace ICSharpCode.Reporting.WpfReportViewer
private FixedDocument document ;
public PreviewViewModel(ReportSettings reportSettings, Collection<IPage> pages)
public PreviewViewModel(ReportSettings reportSettings, Collection<ExportPage> pages)
{
if (pages == null)
throw new ArgumentNullException("pages");

10
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs

@ -37,8 +37,6 @@ namespace ICSharpCode.Reporting.Test.DataSource @@ -37,8 +37,6 @@ namespace ICSharpCode.Reporting.Test.DataSource
list.Add(new Contributor("Christoph","Wille","Senior Project Wrangler",17,new DateTime(1960,12,8),"F"));
list.Add(new Contributor("Bernhard","Spuida","Senior Project Wrangler",25,new DateTime(1962,2,24),"D"));
list.Add(new Contributor("Daniel","Grunwald","Technical Lead",12,d1,"F"));
list.Add(new Contributor("Matt","Ward","NUnit",7,d1,"F"));
@ -48,15 +46,19 @@ namespace ICSharpCode.Reporting.Test.DataSource @@ -48,15 +46,19 @@ namespace ICSharpCode.Reporting.Test.DataSource
list.Add(new Contributor("Alexander","Zeitler","SharpDevelop.Reports",3,d2,"D"));
list.Add(new Contributor("Markus","Palme","Prg.",6,d2,"R"));
list.Add(new Contributor("Georg","Brandl","Prg.",5,d2,"R"));
list.Add(new Contributor("Roman","Taranchenko","",2,d2,"U"));
list.Add(new Contributor("Denis","Erchoff","",13,d2,"U"));
list.Add(new Contributor("Ifko","Kovacka","",31,d3,"A"));
list.Add(new Contributor("Nathan","Allen","",5,d3,"A"));
list.Add(new Contributor("Dickon","Field","DBTools",10,d3,"U"));
list.Add(new Contributor("Troy","Simpson","Prg.",9,d3,"C"));
list.Add(new Contributor("David","Alpert","Prg.",6,d3,"C"));
list.Add(new Contributor("Mike","Krüger","Mono",9,d3,"C"));
list.Add(new Contributor("Andrea","Krüger","Mono",9,d3,"C"));
list.Add(new Contributor("Andreas","Weizel","Prg.",9,d3,"C"));
return list;
}
}

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

@ -7,14 +7,12 @@ @@ -7,14 +7,12 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using System.Linq;
using System.Reflection;
using ICSharpCode.Reporting.Exporter;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
using NUnit.Framework;
namespace ICSharpCode.Reporting.Test.PageBuilder
@ -34,12 +32,13 @@ namespace ICSharpCode.Reporting.Test.PageBuilder @@ -34,12 +32,13 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
[Test]
public void DataSourceIsset() {
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()
{

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

@ -14,10 +14,11 @@ using System.Reflection; @@ -14,10 +14,11 @@ using System.Reflection;
using ICSharpCode.Reporting.Exporter;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
using NUnit.Framework;
using ICSharpCode.Reporting.Test.DataSource;
using NUnit.Framework;
namespace ICSharpCode.Reporting.Test.Reportingfactory
{
@ -44,19 +45,22 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory @@ -44,19 +45,22 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory
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()
public void LastPageContains_3_Sections()
{
reportCreator.BuildExportList();
var exporteditems = reportCreator.Pages[1].ExportedItems;
var sections = from s in exporteditems
where s.GetType() == typeof(ExportContainer)
select s;
Assert.That(sections.ToList().Count,Is.EqualTo(4));
Assert.That(sections.ToList().Count,Is.EqualTo(3));
}
[Test]
public void DetailContainsOneDataItem() {
@ -67,10 +71,17 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory @@ -67,10 +71,17 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory
select s;
var section = sections.ToList()[2] as ExportContainer;
var result = section.ExportedItems[0];
Assert.That(result,Is.AssignableFrom(typeof(ExportText)));
// Console.WriteLine("-------PageLayoutFixture:ShowDebug---------");
// var ex = new DebugExporter(reportCreator.Pages);
// ex.Run();
Assert.That(result,Is.AssignableFrom(typeof(ExportContainer)));
}
[Test]
public void ParentOfSectionsIsPage() {
reportCreator.BuildExportList();
var page = reportCreator.Pages[0];
foreach (var element in page.ExportedItems) {
Assert.That(element.Parent,Is.Not.Null);
Assert.That(element.Parent,Is.AssignableTo(typeof(IPage)));
}
}

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

@ -17,6 +17,7 @@ using ICSharpCode.Reporting.Globals; @@ -17,6 +17,7 @@ using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
using ICSharpCode.Reporting.WpfReportViewer;
using ICSharpCode.Reporting.Xml;
using ICSharpCode.SharpDevelop;
@ -50,11 +51,11 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews @@ -50,11 +51,11 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews
this.designerLoader = loader;
viewer = new ICSharpCode.Reporting.WpfReportViewer.WpfReportViewer();
base.TabPageText = "TestWpf View";
Pages = new Collection<Page>();
Pages = new Collection<ExportPage>();
}
public Collection<Page> Pages{get;private set;}
public Collection<ExportPage> Pages{get;private set;}
protected override void LoadFromPrimary()

Loading…
Cancel
Save