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)