diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
index 218049b945..117d6d5353 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
@@ -44,15 +44,27 @@
TRACE
+
+ 3.0
+
+
+ 3.0
+
3.5
+
+ 4.0
+
3.5
+
+ 3.0
+
@@ -66,6 +78,7 @@
+
@@ -93,6 +106,11 @@
+
+
+ WpfReportViewer.xaml
+ Code
+
@@ -108,10 +126,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs
index 46153fcac3..e8c10361d9 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs
@@ -10,4 +10,5 @@ using System.Security;
[assembly: SecurityRules(SecurityRuleSet.Level1)]
-[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ICSharpCode.Reporting.Test")]
\ No newline at end of file
+[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ICSharpCode.Reporting.Test")]
+[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ICSharpCode.Reports.Addin")]
\ No newline at end of file
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs
new file mode 100644
index 0000000000..007b5976af
--- /dev/null
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs
@@ -0,0 +1,59 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 05/04/2013
+ * Time: 19:57
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.Collections.ObjectModel;
+using System.Windows.Documents;
+
+using ICSharpCode.Reporting.BaseClasses;
+using ICSharpCode.Reporting.Interfaces.Export;
+using ICSharpCode.Reporting.Items;
+
+namespace ICSharpCode.Reporting.ExportRenderer
+{
+ ///
+ /// Description of FixedDocumentRenderer.
+ ///
+ public class FixedDocumentRenderer
+ {
+ ReportSettings reportSettings;
+ private FixedDocument document ;
+// private FixedDocumentCreator docCreator;
+
+ public FixedDocumentRenderer(ReportSettings reportSettings,Collection pages)
+ {
+ if (pages == null)
+ throw new ArgumentNullException("pages");
+ if (reportSettings == null)
+ throw new ArgumentNullException("reportSettings");
+ this.reportSettings = reportSettings;
+ Pages = pages;
+ Console.WriteLine("FixedDocumentRenderer with {0} pages ",Pages.Count);
+ }
+
+
+ public void Start()
+ {
+ Console.WriteLine("FixedDocumentrenderer - Start");
+ document = new FixedDocument();
+// docCreator.PageSize = new System.Windows.Size(reportSettings.PageSize.Width,reportSettings.PageSize.Height);
+// document.DocumentPaginator.PageSize = docCreator.PageSize;
+ }
+
+ public void RenderOutput(){
+ Console.WriteLine("FixedDocumentrenderer - RenderOutput");
+ }
+
+ public void End()
+ {
+ Console.WriteLine("FixedDocumentrenderer - End");
+ }
+
+ public Collection Pages {get;private set;}
+ }
+}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs
index e689d1204b..96503827ec 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs
@@ -27,6 +27,7 @@ namespace ICSharpCode.Reporting.Exporter
public override void Run () {
+ Console.WriteLine("PrintExporter Run");
foreach (var page in Pages) {
ShowDebug(page);
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs
index fd075d565c..9a6d05cc3d 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs
@@ -17,7 +17,7 @@ namespace ICSharpCode.Reporting.Items
///
/// Description of ReportModel.
///
- internal class ReportModel :IReportModel
+ public class ReportModel :IReportModel
{
public ReportModel() {
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
index f7aeffb37c..603362ff6e 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
@@ -29,6 +29,15 @@ namespace ICSharpCode.Reporting
{
}
+ public IReportCreator ReportCreator (ReportModel reportModel) {
+ if (reportModel == null)
+ throw new ArgumentNullException("reportModel");
+ IReportCreator builder = null;
+ if (reportModel.ReportSettings.DataModel == GlobalEnums.PushPullModel.FormSheet) {
+ builder = new FormPageBuilder(reportModel);
+ }
+ return builder;
+ }
public IReportCreator ReportCreator (Stream stream)
{
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs
new file mode 100644
index 0000000000..7d324f6fc6
--- /dev/null
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs
@@ -0,0 +1,61 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 05/04/2013
+ * Time: 17:06
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Windows.Documents;
+
+using ICSharpCode.Reporting.ExportRenderer;
+using ICSharpCode.Reporting.Interfaces.Export;
+using ICSharpCode.Reporting.Items;
+
+namespace ICSharpCode.Reporting.WpfReportViewer
+{
+ ///
+ /// Description of PreviewViewModel.
+ ///
+ public class PreviewViewModel:INotifyPropertyChanged
+ {
+
+ private IDocumentPaginatorSource document;
+
+ public PreviewViewModel(ReportSettings reportSettings, Collection pages)
+ {
+ this.Pages = pages;
+ FixedDocumentRenderer renderer = new FixedDocumentRenderer(reportSettings,Pages);
+ renderer.Start();
+ renderer.RenderOutput();
+ renderer.End();
+// this.Document = renderer.Document;
+ }
+
+
+ public Collection Pages {get;private set;}
+
+ public IDocumentPaginatorSource Document
+ {
+ get {return document;}
+ set {
+ this.document = value;
+ OnNotifyPropertyChanged ("Document");
+ }
+ }
+
+
+ public event PropertyChangedEventHandler PropertyChanged;
+
+ void OnNotifyPropertyChanged(string num0)
+ {
+ if (PropertyChanged != null) {
+ PropertyChanged(this,new PropertyChangedEventArgs(num0));
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/WpfReportViewer/WpfReportViewer.xaml.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/WpfReportViewer/WpfReportViewer.xaml.cs
new file mode 100644
index 0000000000..6da3235c5f
--- /dev/null
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/WpfReportViewer/WpfReportViewer.xaml.cs
@@ -0,0 +1,45 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 12.05.2011
+ * Time: 21:01
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.Windows.Controls;
+using System.Windows.Documents;
+
+
+namespace ICSharpCode.Reporting.WpfReportViewer
+{
+
+ public interface IWpfReportViewer
+ {
+ IDocumentPaginatorSource Document {set;}
+ void SetBinding (PreviewViewModel model);
+ }
+ ///
+ /// Interaction logic for WpfReportViewer.xaml
+ ///
+
+ public partial class WpfReportViewer : UserControl,IWpfReportViewer
+ {
+ public WpfReportViewer()
+ {
+ InitializeComponent();
+ }
+
+ public void SetBinding (PreviewViewModel model)
+ {
+ this.DataContext = model;
+ }
+
+
+ public IDocumentPaginatorSource Document {
+ set {
+ this.DocumentViewer.Document = value;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj
index ed81fea97c..6bc3a522a1 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj
@@ -259,7 +259,7 @@
ReportViewerSecondaryView.cs
-
+
@@ -334,6 +334,10 @@
ICSharpCode.Data.SQLServer
False
+
+ {40CA84D4-ACFC-4646-9CDD-B87262D34093}
+ ICSharpCode.Reporting
+
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}
ICSharpCode.Reports.Core
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs
index 3ca8493a47..1358524072 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs
@@ -97,6 +97,16 @@ namespace ICSharpCode.Reports.Addin
return m;
}
+ public XmlDocument CreateXmlModel()
+ {
+ Console.WriteLine("ReportDesignerLoader:CreateXmlModel");
+ ReportModel m = new ReportModel();
+ generator.MergeFormChanges((System.CodeDom.CodeCompileUnit)null);
+ XmlDocument xmlDocument = new XmlDocument();
+ xmlDocument.LoadXml(generator.ViewContent.ReportFileContent);
+ return xmlDocument;
+ }
+
#endregion
#region Dispose
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
index 5acdf5ee44..54a52d6d2d 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
@@ -16,7 +16,7 @@ using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.Commands;
using ICSharpCode.Reports.Addin.Designer;
using ICSharpCode.Reports.Addin.SecondaryViews;
-using ICSharpCode.Reports.Addin.SecondaryViews.TestView;
+
using ICSharpCode.Reports.Core;
using ICSharpCode.Reports.Core.Exporter;
using ICSharpCode.Reports.Core.Exporter.ExportRenderer;
@@ -53,7 +53,7 @@ namespace ICSharpCode.Reports.Addin
private XmlView xmlView;
private ReportPreview reportPreview;
private ReportViewerSecondaryView reportViewer;
- private TestSecondaryView testView;
+ private TestWPFReportPreview testView;
#region Constructor
@@ -103,7 +103,7 @@ namespace ICSharpCode.Reports.Addin
var wpfViewer = new WPFReportPreview(loader,this);
SecondaryViewContents.Add(wpfViewer);
- testView = new TestSecondaryView(loader,this);
+ testView = new TestWPFReportPreview(loader,this);
SecondaryViewContents.Add(testView);
}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs
deleted file mode 100644
index b83ab5ac76..0000000000
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-// 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 ICSharpCode.Core;
-using ICSharpCode.Reports.Addin.Commands;
-using ICSharpCode.Reports.Core;
-using ICSharpCode.Reports.Core.Globals;
-using ICSharpCode.SharpDevelop;
-using ICSharpCode.SharpDevelop.Gui;
-using ICSharpCode.SharpDevelop.Workbench;
-
-namespace ICSharpCode.Reports.Addin.SecondaryViews.TestView
-{
- ///
- /// Description of ReportViewerSecondaryView.
- ///
- public class TestSecondaryView: AbstractSecondaryViewContent
- {
- ReportDesignerLoader designerLoader;
- ICSharpCode.Reports.Core.ReportViewer.PreviewControl control;
-
- public TestSecondaryView(ReportDesignerLoader designerLoader,IViewContent content):base(content)
- {
- if (designerLoader == null) {
- throw new ArgumentNullException("designerLoader");
- }
- if (content == null) {
- throw new ArgumentNullException("content");
- }
- this.designerLoader = designerLoader;
- this.control = new ICSharpCode.Reports.Core.ReportViewer.PreviewControl();
- this.control.Messages = new ReportViewerMessages();
- this.control.PreviewLayoutChanged += OnPreviewLayoutChanged;
- base.TabPageText = "TestView";
- }
-
-
- private void OnPreviewLayoutChanged (object sender, EventArgs e)
- {
- LoadFromPrimary();
- }
-
- #region overrides
-
- protected override void LoadFromPrimary()
- {
- ReportModel model = designerLoader.CreateRenderableModel();
- AbstractPreviewCommand cmd = null;
-
- switch (model.DataModel) {
- case GlobalEnums.PushPullModel.FormSheet : {
- cmd = new FormSheetToReportViewerCommand (model,control);
- break;
- }
- case GlobalEnums.PushPullModel.PullData:{
- cmd = new PullModelToReportViewerCommand(model,control);
- break;
- }
- case GlobalEnums.PushPullModel.PushData:{
- cmd = new PushModelToReportViewerCommand(model,control);
- break;
- }
- default:
- throw new InvalidReportModelException();
- }
- cmd.Run();
- }
-
-
- protected override void SaveToPrimary()
- {
-// throw new NotImplementedException();
- }
-
- #endregion
-
-
-
- public override object Control {
- get {
- return this.control;
- }
- }
-
- }
-}
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
new file mode 100644
index 0000000000..71a6d57b59
--- /dev/null
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs
@@ -0,0 +1,121 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 03.05.2011
+ * Time: 19:34
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.Collections.ObjectModel;
+using System.Xml;
+
+using ICSharpCode.Reporting;
+using ICSharpCode.Reporting.BaseClasses;
+using ICSharpCode.Reporting.Exporter;
+using ICSharpCode.Reporting.Globals;
+using ICSharpCode.Reporting.Interfaces;
+using ICSharpCode.Reporting.Interfaces.Export;
+using ICSharpCode.Reporting.Items;
+using ICSharpCode.Reporting.WpfReportViewer;
+using ICSharpCode.Reporting.Xml;
+using ICSharpCode.SharpDevelop;
+using ICSharpCode.SharpDevelop.Gui;
+using ICSharpCode.SharpDevelop.Workbench;
+
+//using ICSharpCode.Reports.Addin.Commands;
+//using ICSharpCode.Reports.Core;
+//using ICSharpCode.Reports.Core.Exporter.ExportRenderer;
+//using ICSharpCode.Reports.Core.Globals;
+//using ICSharpCode.Reports.Core.WpfReportViewer;
+
+
+
+
+namespace ICSharpCode.Reports.Addin.SecondaryViews
+{
+ ///
+ /// Description of WPFReportPreview.
+ ///
+ public class TestWPFReportPreview: AbstractSecondaryViewContent
+ {
+ ReportDesignerLoader designerLoader;
+
+ ICSharpCode.Reporting.WpfReportViewer.IWpfReportViewer viewer;
+
+// IExportRunner exportRunner = new ExportRunner();
+
+ public TestWPFReportPreview(ReportDesignerLoader loader,IViewContent content):base(content)
+ {
+ this.designerLoader = loader;
+ viewer = new ICSharpCode.Reporting.WpfReportViewer.WpfReportViewer();
+ base.TabPageText = "TestWpf View";
+ Pages = new Collection();
+ }
+
+
+ public Collection Pages{get;private set;}
+
+
+ protected override void LoadFromPrimary()
+ {
+ Pages.Clear();
+ var xmDoc = designerLoader.CreateXmlModel();
+ var modulLoader = new ModelLoader();
+ ReportModel model = (ReportModel)modulLoader.Load(xmDoc.DocumentElement);
+
+// var collectCmd = new CollectParametersCommand(model.ReportSettings);
+// collectCmd.Run();
+ IReportCreator reportCreator = null;
+ switch (model.ReportSettings.DataModel)
+ {
+ case GlobalEnums.PushPullModel.FormSheet :
+ {
+// exportRunner.RunReport(model,(ReportParameters)null);
+ var reportingFactory = new ReportingFactory();
+ reportCreator = reportingFactory.ReportCreator(model);
+ reportCreator.BuildExportList();
+ var pe = new PrintExporter(reportCreator.Pages);
+ pe.Run();
+ break;
+ }
+
+ case GlobalEnums.PushPullModel.PullData:
+ {
+// exportRunner.RunReport(model,(ReportParameters)null);
+ break;
+ }
+ case GlobalEnums.PushPullModel.PushData:
+ {
+// var cmd = new DataSetFromXsdCommand();
+// cmd.Run();
+// System.Data.DataSet ds = cmd.DataSet;
+// exportRunner.RunReport(model,ds.Tables[0],(ReportParameters)null);
+ break;
+ }
+
+// default:
+// throw new InvalidReportModelException();
+ }
+
+ PreviewViewModel previewViewModel = new PreviewViewModel (model.ReportSettings,reportCreator.Pages);
+
+
+ viewer.SetBinding(previewViewModel);
+
+ }
+
+
+ protected override void SaveToPrimary()
+ {
+// throw new NotImplementedException();
+ }
+
+
+ public override object Control {
+ get {
+ return viewer;
+ }
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs
index 74be8e31de..e50955a3bd 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs
@@ -7,6 +7,7 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
+using ICSharpCode.Reporting.Xml;
using ICSharpCode.Reports.Addin.Commands;
using ICSharpCode.Reports.Core;
using ICSharpCode.Reports.Core.Exporter.ExportRenderer;
@@ -43,6 +44,11 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews
{
Pages.Clear();
ReportModel model = designerLoader.CreateRenderableModel();
+ //TODO change to designerLoader.CreateXmlModel();
+// var xmDoc = designerLoader.CreateXmlModel();
+// var modulLoader = new ModelLoader();
+// ReportModel model = (ReportModel)modulLoader.Load(xmDoc.DocumentElement);
+
var collectCmd = new CollectParametersCommand(model.ReportSettings);
collectCmd.Run();
switch (model.DataModel)