diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
index 3e8ec3e53e..9f3d847afa 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
@@ -44,6 +44,9 @@
TRACE
+
+ $(SharpDevelopBinPath)\Tools\NUnit\NUnit.Framework.dll
+
3.0
@@ -74,7 +77,6 @@
-
@@ -91,6 +93,8 @@
+
+
@@ -128,6 +132,7 @@
+
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs
deleted file mode 100644
index 7c4a740c8c..0000000000
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs
+++ /dev/null
@@ -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
-{
- ///
- /// Description of Page.
- ///
- ///
-
- 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();
- }
-
- 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 exportedItems;
-
- public List 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();
- }
- }
-}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs
index f513444b5a..8eebaec16a 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs
@@ -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
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
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
}
- 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
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;
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs
index df54c2d98e..5e721b7b12 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs
@@ -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
///
public class BaseExporter
{
- public BaseExporter(Collection pages)
+ public BaseExporter(Collection pages)
{
if (pages == null) {
throw new ArgumentException("pages");
@@ -31,6 +31,6 @@ namespace ICSharpCode.Reporting.Exporter
}
- protected Collection Pages {get;private set;}
+ protected Collection Pages {get;private set;}
}
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs
index 5cc57c42ae..7cfa736070 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs
@@ -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
{
private DebugVisitor visitor;
- public DebugExporter(Collection pages):base(pages)
+ public DebugExporter(Collection pages):base(pages)
{
visitor = new DebugVisitor();
}
@@ -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
if (acceptor != null) {
acceptor.Accept(visitor);
}
- ShowDebug(exportContainer);
+ ShowDebug(leading = leading + "--",exportContainer);
} else {
if (acceptor != null) {
- acceptor.Accept(visitor);
+// acceptor.Accept(visitor);
}
}
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs
index 6be4ce0ada..47f99faa0d 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs
@@ -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
///
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);
}
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/CanvasExtension.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/CanvasExtension.cs
new file mode 100644
index 0000000000..be8701e153
--- /dev/null
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/CanvasExtension.cs
@@ -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
+{
+ ///
+ /// Description of CanvasExtension.
+ /// http://denisvuyka.wordpress.com/2007/12/15/wpf-simplify-your-life-with-linq-extension-methods-canvas-and-visual-tree-helpers/
+ ///
+ public static class CanvasExtension
+ {
+
+ public static void AddChild(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(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(this Canvas canvas, int index, T element)
+ {
+ UIElement uiElement = element as UIElement;
+ if (uiElement != null && !canvas.Children.Contains(uiElement))
+ canvas.Children.Insert(index, uiElement);
+ }
+ }
+
+}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/CanvasHelper.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/CanvasHelper.cs
new file mode 100644
index 0000000000..61574eee4e
--- /dev/null
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/CanvasHelper.cs
@@ -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
+{
+ ///
+ /// Description of CanvasHelper.
+ /// http://denisvuyka.wordpress.com/2007/12/15/wpf-simplify-your-life-with-linq-extension-methods-canvas-and-visual-tree-helpers/
+ ///
+ ///
+ internal static class CanvasHelper
+ {
+ public static double GetLeft(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 element)
+ {
+ UIElement uiElement = element as UIElement;
+ if (uiElement == null)
+ throw new ArgumentNullException("element");
+ return (double)uiElement.GetValue(Canvas.TopProperty);
+ }
+
+ public static Point GetPosition(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 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 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 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);
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/DebugVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/DebugVisitor.cs
index 12977fc86c..8b294b9241 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/DebugVisitor.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/DebugVisitor.cs
@@ -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
public class DebugVisitor : AbstractVisitor
{
+ public override void Visit(ExportPage page)
+ {
+ Console.WriteLine(" {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
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(" {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(" {0} - {1}", exportColumn.Text,exportColumn.Location);
}
+
+
}
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs
index d0c775add7..7b8de25efd 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs
@@ -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);
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs
index 836d13b17a..d14ee50463 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs
@@ -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
}
+ 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;}
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs
index 26c926e73e..e74e71cdbd 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs
@@ -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
///
public class WpfExporter:BaseExporter
{
+
+
private WpfVisitor visitor;
private ReportSettings reportSettings;
+ FixedPage fixedPage;
- public WpfExporter(ReportSettings reportSettings,Collection pages):base(pages)
+ public WpfExporter(ReportSettings reportSettings,Collection pages):base(pages)
{
if (reportSettings == null)
throw new ArgumentNullException("reportSettings");
@@ -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
fixedDocument.Pages.Add(pageContent);
}
+
public FixedDocument Document {get;private set;}
}
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPage.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPage.cs
index dbda99b25b..f3443135ea 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPage.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPage.cs
@@ -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
{
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs
index ab49ffe72e..ab988182cf 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs
@@ -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
public interface IReportCreator
{
void BuildExportList ();
- Collection Pages {get;}
+ Collection Pages {get;}
// PagesCollection Pages{get;}
// event EventHandler PageCreated;
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs
index 46d38b2624..dfa4c0ca67 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs
@@ -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
throw new ArgumentNullException("reportModel");
}
ReportModel = reportModel;
- Pages = new Collection();
+ Pages = new Collection();
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
#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
}
+ protected bool PageFull(System.Collections.Generic.List 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
}
- 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
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
protected Graphics Graphics {get;private set;}
- public Collection Pages {get; private set;}
+ public Collection Pages {get; private set;}
}
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
index 2821e06bd7..f0dfdf2aa6 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
@@ -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
}
- public List CreateConvertedList(IReportContainer reportContainer,IExportContainer exportContainer,Point position)
- {
- Console.WriteLine("CreateConvertedList {0}",reportContainer.Name);
+ public List CreateConvertedList(IReportContainer reportContainer,IExportContainer exportContainer,Point position){
+
var itemsList = new List();
foreach (var element in reportContainer.Items) {
var exportColumn = ExportColumnFactory.CreateItem(element);
@@ -58,7 +55,7 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
public List CreateConvertedList(IReportContainer reportContainer,IExportContainer exportContainer)
{
- Console.WriteLine("CreateConvertedList {0}",reportContainer.Name);
+// Console.WriteLine("CreateConvertedList {0}",reportContainer.Name);
var itemsList = new List();
foreach (var element in reportContainer.Items) {
var exportColumn = ExportColumnFactory.CreateItem(element);
@@ -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);
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
index ad31f50ab9..9a447378a4 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
@@ -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
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
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 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
}
}
+
internal IReportContainer Container { get; private set; }
public IEnumerable List {get; private set;}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs
index e2a1514824..5c630d8d53 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs
@@ -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
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs
index 3c8754f33e..db09fafdee 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs
@@ -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
{
return new ContainerMeasurementStrategy();
}
+
+ public void Accept(IVisitor visitor)
+ {
+ visitor.Visit(this);
+ }
}
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportPage.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportPage.cs
new file mode 100644
index 0000000000..5a87d058dd
--- /dev/null
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportPage.cs
@@ -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
+{
+ ///
+ /// Description of Page.
+ ///
+ ///
+
+ 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();
+ }
+
+ 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 exportedItems;
+
+ public List ExportedItems {
+ get { return exportedItems; }
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
index 6788dd2e16..f4a296ecfd 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
@@ -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;
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs
index 8536222adc..e882634c28 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs
@@ -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
private FixedDocument document ;
- public PreviewViewModel(ReportSettings reportSettings, Collection pages)
+ public PreviewViewModel(ReportSettings reportSettings, Collection pages)
{
if (pages == null)
throw new ArgumentNullException("pages");
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs
index 7b13df35d4..928d8766cb 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs
@@ -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
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;
}
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs
index 4331a9e24d..3aee769e60 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs
@@ -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
[Test]
- public void DataSourceIsset() {
+ public void DataSourceIsSet() {
var dpb = new DataPageBuilder (new ReportModel(),typeof(string),new System.Collections.Generic.List());
Assert.That(dpb.List,Is.Not.Null);
}
-
+
+
[SetUp]
public void LoadFromStream()
{
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs
index e894f574b7..69d774b944 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs
@@ -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
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
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)));
+ }
}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs
index 6b63500e17..64d7c5860e 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs
@@ -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
this.designerLoader = loader;
viewer = new ICSharpCode.Reporting.WpfReportViewer.WpfReportViewer();
base.TabPageText = "TestWpf View";
- Pages = new Collection();
+ Pages = new Collection();
}
- public Collection Pages{get;private set;}
+ public Collection Pages{get;private set;}
protected override void LoadFromPrimary()