Browse Source

WpfTestView

reports
Peter Forstmeier 13 years ago
parent
commit
5f1c1b8b46
  1. 24
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
  2. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs
  3. 59
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs
  4. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs
  5. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs
  6. 9
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
  7. 61
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs
  8. 45
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/WpfReportViewer/WpfReportViewer.xaml.cs
  9. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj
  10. 10
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs
  11. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
  12. 87
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs
  13. 121
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs
  14. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs

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

@ -44,15 +44,27 @@ @@ -44,15 +44,27 @@
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="PresentationFramework">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Src\Arrange\ContainerArrangeStrategy.cs" />
@ -66,6 +78,7 @@ @@ -66,6 +78,7 @@
<Compile Include="Src\Exporter\Visitors\IAcceptor.cs" />
<Compile Include="Src\Exporter\Visitors\IVisitor.cs" />
<Compile Include="Src\Exporter\Visitors\DebugVisitor.cs" />
<Compile Include="Src\ExportRenderer\FixedDocumentRenderer.cs" />
<Compile Include="Src\Factories\ExportColumnFactory.cs" />
<Compile Include="Src\Factories\SectionFactory.cs" />
<Compile Include="Src\Globals\CreateGraphics.cs" />
@ -93,6 +106,11 @@ @@ -93,6 +106,11 @@
<Compile Include="Src\PageBuilder\ExportColumns\ExportText.cs" />
<Compile Include="Src\PageBuilder\FormPageBuilder.cs" />
<Compile Include="Src\ReportingFactory.cs" />
<Compile Include="Src\Wpf\PreviewViewModel.cs" />
<Compile Include="Src\Wpf\WpfReportViewer\WpfReportViewer.xaml.cs">
<DependentUpon>WpfReportViewer.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Src\Xml\ModelLoader.cs" />
<Compile Include="Src\Xml\MycroParser.cs" />
</ItemGroup>
@ -108,10 +126,16 @@ @@ -108,10 +126,16 @@
<Folder Include="Src\Factories" />
<Folder Include="Src\Exporter" />
<Folder Include="Src\Arrange" />
<Folder Include="Src\ExportRenderer" />
<Folder Include="Src\Wpf" />
<Folder Include="Src\PageBuilder" />
<Folder Include="Src\PageBuilder\Converter" />
<Folder Include="Src\PageBuilder\ExportColumns" />
<Folder Include="Src\Wpf\WpfReportViewer" />
<Folder Include="Src\Xml" />
</ItemGroup>
<ItemGroup>
<Page Include="Src\Wpf\WpfReportViewer\WpfReportViewer.xaml" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs

@ -10,4 +10,5 @@ using System.Security; @@ -10,4 +10,5 @@ using System.Security;
[assembly: SecurityRules(SecurityRuleSet.Level1)]
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ICSharpCode.Reporting.Test")]
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ICSharpCode.Reporting.Test")]
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ICSharpCode.Reports.Addin")]

59
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs

@ -0,0 +1,59 @@ @@ -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
{
/// <summary>
/// Description of FixedDocumentRenderer.
/// </summary>
public class FixedDocumentRenderer
{
ReportSettings reportSettings;
private FixedDocument document ;
// private FixedDocumentCreator docCreator;
public FixedDocumentRenderer(ReportSettings reportSettings,Collection<IPage> 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<IPage> Pages {get;private set;}
}
}

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs

@ -27,6 +27,7 @@ namespace ICSharpCode.Reporting.Exporter @@ -27,6 +27,7 @@ namespace ICSharpCode.Reporting.Exporter
public override void Run () {
Console.WriteLine("PrintExporter Run");
foreach (var page in Pages) {
ShowDebug(page);
}

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs

@ -17,7 +17,7 @@ namespace ICSharpCode.Reporting.Items @@ -17,7 +17,7 @@ namespace ICSharpCode.Reporting.Items
/// <summary>
/// Description of ReportModel.
/// </summary>
internal class ReportModel :IReportModel
public class ReportModel :IReportModel
{
public ReportModel() {

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

@ -29,6 +29,15 @@ namespace ICSharpCode.Reporting @@ -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)
{

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

@ -0,0 +1,61 @@ @@ -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
{
/// <summary>
/// Description of PreviewViewModel.
/// </summary>
public class PreviewViewModel:INotifyPropertyChanged
{
private IDocumentPaginatorSource document;
public PreviewViewModel(ReportSettings reportSettings, Collection<IPage> pages)
{
this.Pages = pages;
FixedDocumentRenderer renderer = new FixedDocumentRenderer(reportSettings,Pages);
renderer.Start();
renderer.RenderOutput();
renderer.End();
// this.Document = renderer.Document;
}
public Collection<IPage> 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));
}
}
}
}

45
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/WpfReportViewer/WpfReportViewer.xaml.cs

@ -0,0 +1,45 @@ @@ -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);
}
/// <summary>
/// Interaction logic for WpfReportViewer.xaml
/// </summary>
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;
}
}
}
}

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj

@ -259,7 +259,7 @@ @@ -259,7 +259,7 @@
<DependentUpon>ReportViewerSecondaryView.cs</DependentUpon>
</Compile>
<Compile Include="Project\SecondaryViews\ReportViewerSecondaryView.cs" />
<Compile Include="Project\SecondaryViews\TestView\TestSecondaryView.cs" />
<Compile Include="Project\SecondaryViews\TestView\TestWPFReportPreview.cs" />
<Compile Include="Project\SecondaryViews\WPFReportPreview.cs" />
<Compile Include="Project\SecondaryViews\XmlView.cs" />
<Compile Include="Project\Services\DefaultMemberRelationshipService.cs" />
@ -334,6 +334,10 @@ @@ -334,6 +334,10 @@
<Name>ICSharpCode.Data.SQLServer</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\Reporting\ICSharpCode.Reporting\ICSharpCode.Reporting.csproj">
<Project>{40CA84D4-ACFC-4646-9CDD-B87262D34093}</Project>
<Name>ICSharpCode.Reporting</Name>
</ProjectReference>
<ProjectReference Include="..\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj">
<Project>{4B2239FF-8FD6-431D-9D22-1B8049BA6917}</Project>
<Name>ICSharpCode.Reports.Core</Name>

10
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs

@ -97,6 +97,16 @@ namespace ICSharpCode.Reports.Addin @@ -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

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs

@ -16,7 +16,7 @@ using ICSharpCode.Core; @@ -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 @@ -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 @@ -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);
}

87
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs

@ -1,87 +0,0 @@ @@ -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
{
/// <summary>
/// Description of ReportViewerSecondaryView.
/// </summary>
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;
}
}
}
}

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

@ -0,0 +1,121 @@ @@ -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
{
/// <summary>
/// Description of WPFReportPreview.
/// </summary>
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<Page>();
}
public Collection<Page> 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;
}
}
}
}

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs

@ -7,6 +7,7 @@ @@ -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 @@ -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)

Loading…
Cancel
Save