Browse Source

Show FormSheet Reports as Preview in Designer

reports
Peter Forstmeier 11 years ago
parent
commit
6dd1585ad8
  1. 17
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj
  2. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/SectionDesigner.cs
  3. 18
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/DesignerGenerator.cs
  4. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/ReportDefinitionDeserializer.cs
  5. 83
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/ReportDesignerLoader.cs
  6. 27
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Views/DesignerView.cs
  7. 64
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Views/WpfPreview.cs
  8. 6
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/XML/ReportDesignerWriter.cs
  9. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportModelFactory.cs
  10. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/ModelLoader.cs
  11. 10
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/MycroParser.cs
  12. 14
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs

17
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj

@ -46,6 +46,12 @@
<Reference Include="Microsoft.CSharp"> <Reference Include="Microsoft.CSharp">
<RequiredTargetFramework>4.0</RequiredTargetFramework> <RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference> </Reference>
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="PresentationFramework">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core"> <Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework> <RequiredTargetFramework>3.5</RequiredTargetFramework>
@ -57,10 +63,16 @@
<Reference Include="System.Design" /> <Reference Include="System.Design" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq"> <Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework> <RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference> </Reference>
<Reference Include="WindowsBase">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Configuration" /> <Folder Include="Configuration" />
@ -117,6 +129,7 @@
<Compile Include="src\TypeProvider\TextItemTypeProvider.cs" /> <Compile Include="src\TypeProvider\TextItemTypeProvider.cs" />
<Compile Include="src\TypeProvider\TypeProviderHelper.cs" /> <Compile Include="src\TypeProvider\TypeProviderHelper.cs" />
<Compile Include="src\Views\DesignerView.cs" /> <Compile Include="src\Views\DesignerView.cs" />
<Compile Include="src\Views\WpfPreview.cs" />
<Compile Include="src\Views\XmlView.cs" /> <Compile Include="src\Views\XmlView.cs" />
<Compile Include="src\XML\MycroWriter.cs" /> <Compile Include="src\XML\MycroWriter.cs" />
<Compile Include="src\XML\ReportDefinitionParser.cs" /> <Compile Include="src\XML\ReportDefinitionParser.cs" />
@ -154,10 +167,6 @@
<Project>{40CA84D4-ACFC-4646-9CDD-B87262D34093}</Project> <Project>{40CA84D4-ACFC-4646-9CDD-B87262D34093}</Project>
<Name>ICSharpCode.Reporting</Name> <Name>ICSharpCode.Reporting</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\ICSharpCode.Reporting\ICSharpCode.Reporting.csproj">
<Project>{40CA84D4-ACFC-4646-9CDD-B87262D34093}</Project>
<Name>ICSharpCode.Reporting</Name>
</ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/SectionDesigner.cs

@ -63,7 +63,6 @@ namespace ICSharpCode.Reporting.Addin.Designer
void OnSelectionChanged(object sender, EventArgs e) void OnSelectionChanged(object sender, EventArgs e)
{ {
Console.WriteLine("Section : OnSelectionChanged");
Control.Invalidate( ); Control.Invalidate( );
} }

18
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/DesignerGenerator.cs

@ -12,6 +12,7 @@ using System.IO;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml; using System.Xml;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Workbench;
using ICSharpCode.Reporting.Addin.DesignableItems; using ICSharpCode.Reporting.Addin.DesignableItems;
using ICSharpCode.Reporting.Addin.Globals; using ICSharpCode.Reporting.Addin.Globals;
using ICSharpCode.Reporting.Addin.Views; using ICSharpCode.Reporting.Addin.Views;
@ -41,12 +42,13 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding
this.viewContent = viewContent; this.viewContent = viewContent;
} }
public void Detach() public void Detach()
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
public System.Collections.Generic.IEnumerable<ICSharpCode.SharpDevelop.Workbench.OpenedFile> GetSourceFiles(out ICSharpCode.SharpDevelop.Workbench.OpenedFile designerCodeFile) public System.Collections.Generic.IEnumerable<OpenedFile> GetSourceFiles(out OpenedFile designerCodeFile)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
@ -61,15 +63,16 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding
StringWriter InternalMergeFormChanges() StringWriter InternalMergeFormChanges()
{ {
Console.WriteLine("InternalMergeFormChanges create ReportdesignerWriter");
var writer = new StringWriterWithEncoding(System.Text.Encoding.UTF8); var writer = new StringWriterWithEncoding(System.Text.Encoding.UTF8);
var xml = XmlHelper.CreatePropperWriter(writer); var xml = XmlHelper.CreatePropperWriter(writer);
var rpd = new ReportDesignerWriter(); var reportDesignerWriter = new ReportDesignerWriter();
XmlHelper.CreatePropperDocument(xml); XmlHelper.CreatePropperDocument(xml);
foreach (IComponent component in viewContent.Host.Container.Components) { foreach (IComponent component in viewContent.Host.Container.Components) {
if (!(component is Control)) { if (!(component is Control)) {
rpd.Save(component,xml); reportDesignerWriter.Save(component,xml);
} }
} }
xml.WriteEndElement(); xml.WriteEndElement();
@ -79,7 +82,7 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding
foreach (var component in viewContent.Host.Container.Components) { foreach (var component in viewContent.Host.Container.Components) {
var b = component as BaseSection; var b = component as BaseSection;
if (b != null) { if (b != null) {
rpd.Save(component,xml); reportDesignerWriter.Save(component,xml);
} }
} }
//SectionCollection //SectionCollection
@ -91,14 +94,13 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding
return writer; return writer;
} }
public DesignerView ViewContent { public DesignerView ViewContent {
get {return viewContent;} get {return viewContent;}
} }
public bool InsertComponentEvent(IComponent component, EventDescriptor edesc, string eventMethodName, string body, out string file, out int position)
public bool InsertComponentEvent(System.ComponentModel.IComponent component, System.ComponentModel.EventDescriptor edesc, string eventMethodName, string body, out string file, out int position)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/ReportDefinitionDeserializer.cs

@ -44,7 +44,7 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding
this.host = host; this.host = host;
} }
public XmlDocument LoadXmlFromStream(Stream stream) public XmlDocument LoadXmlFromStream(Stream stream)
{ {
Console.Write("LoadXml"); Console.Write("LoadXml");
if (stream == null) if (stream == null)
@ -90,6 +90,7 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding
{ {
XmlNodeList nodes = elem.FirstChild.ChildNodes; XmlNodeList nodes = elem.FirstChild.ChildNodes;
var reportSettingsNode = (XmlElement)nodes[0]; var reportSettingsNode = (XmlElement)nodes[0];
Console.Write("ReportDefinitionDeserializer create ModelLoader");
var modelLoader = new ModelLoader(); var modelLoader = new ModelLoader();
return modelLoader.Load(reportSettingsNode) as ReportSettings; return modelLoader.Load(reportSettingsNode) as ReportSettings;
} }

83
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/ReportDesignerLoader.cs

@ -7,13 +7,12 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers. * To change this template use Tools | Options | Coding | Edit Standard Headers.
*/ */
using System; using System;
using System.Collections.Generic;
using System.ComponentModel.Design.Serialization; using System.ComponentModel.Design.Serialization;
using System.IO; using System.IO;
using System.Xml; using System.Xml;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.Reporting.Factories;
using ICSharpCode.Reporting.Items; using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.Xml;
using ICSharpCode.Reporting.Addin.Services; using ICSharpCode.Reporting.Addin.Services;
namespace ICSharpCode.Reporting.Addin.DesignerBinding namespace ICSharpCode.Reporting.Addin.DesignerBinding
@ -21,10 +20,10 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding
/// <summary> /// <summary>
/// Description of ReportDesignerLoader. /// Description of ReportDesignerLoader.
/// </summary> /// </summary>
class ReportDesignerLoader: BasicDesignerLoader public class ReportDesignerLoader: BasicDesignerLoader
{ {
IDesignerLoaderHost host; IDesignerLoaderHost host;
IDesignerGenerator generator; readonly IDesignerGenerator generator;
ReportModel reportModel; ReportModel reportModel;
Stream stream; Stream stream;
@ -61,9 +60,9 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding
protected override void PerformLoad(IDesignerSerializationManager serializationManager){ protected override void PerformLoad(IDesignerSerializationManager serializationManager){
var internalLoader = new InternalReportLoader(host,generator, stream); var internalLoader = new InternalReportLoader(host,generator, stream);
reportModel = internalLoader.LoadOrCreateReport(); reportModel = internalLoader.LoadOrCreateReport();
// reportModel = internalLoader.ReportModel;
} }
protected override void PerformFlush(IDesignerSerializationManager designerSerializationManager){ protected override void PerformFlush(IDesignerSerializationManager designerSerializationManager){
LoggingService.Info("ReportDesignerLoader:PerformFlush"); LoggingService.Info("ReportDesignerLoader:PerformFlush");
generator.MergeFormChanges((System.CodeDom.CodeCompileUnit)null); generator.MergeFormChanges((System.CodeDom.CodeCompileUnit)null);
@ -72,80 +71,18 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding
#endregion #endregion
#region Reportmodel #region Serialize to Xml
public ReportModel ReportModel {
get { return reportModel; }
}
public static ReportModel CreateRenderableModel() public XmlDocument SerializeModel()
{ {
Console.WriteLine("ReportDesignerLoader:CreateRenderableModel"); Console.WriteLine("ReportDesignerLoader:SerializeModel:");
/*
ReportModel m = new ReportModel();
generator.MergeFormChanges((System.CodeDom.CodeCompileUnit)null);
XmlDocument doc = new XmlDocument();
doc.LoadXml(generator.ViewContent.ReportFileContent);
ReportLoader rl = new ReportLoader();
object root = rl.Load(doc.DocumentElement);
m = root as ReportModel;
m.ReportSettings.FileName = generator.ViewContent.PrimaryFileName;
FilePathConverter.AdjustReportName(m);
return m;
*/
return null;
}
public XmlDocument CreateXmlModel()
{
Console.WriteLine("ReportDesignerLoader:CreateXmlModel");
/*
ReportModel m = new ReportModel();
generator.MergeFormChanges((System.CodeDom.CodeCompileUnit)null); generator.MergeFormChanges((System.CodeDom.CodeCompileUnit)null);
XmlDocument xmlDocument = new XmlDocument(); var doc = new XmlDocument();
xmlDocument.LoadXml(generator.ViewContent.ReportFileContent); doc.LoadXml(generator.ViewContent.ReportFileContent);
return xmlDocument; return doc;
*/
return null;
} }
#endregion #endregion
} }
/// <summary>
/// Load Report from File
/// </summary>
/// <param name="baseType"></param>
/// <returns></returns>
public class aaReportLoader : ModelLoader
{
static Dictionary<Type, Type> baseToReport;
public static Type GetReportType(Type baseType)
{
Console.WriteLine("ReportLoader:GetReportType");
if (baseType == null) return null;
if (baseToReport == null) {
baseToReport = new Dictionary<Type, Type>();
foreach (Type t in typeof(BaseSection).Assembly.GetTypes()) {
if (t.BaseType != null && t.BaseType.Name.StartsWith("Base",
StringComparison.InvariantCulture)) {
baseToReport[t.BaseType] = t;
}
}
}
Type r;
baseToReport.TryGetValue(baseType, out r);
return r ?? baseType;
}
protected override Type GetTypeByName(string ns, string name)
{
return GetReportType(base.GetTypeByName(ns, name));
}
}
} }

27
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Views/DesignerView.cs

@ -42,11 +42,6 @@ namespace ICSharpCode.Reporting.Addin.Views
DefaultServiceContainer defaultServiceContainer; DefaultServiceContainer defaultServiceContainer;
DesignSurface designSurface; DesignSurface designSurface;
public DesignerView()
{
}
public DesignerView (OpenedFile openedFile,IDesignerGenerator generator) : base(openedFile){ public DesignerView (OpenedFile openedFile,IDesignerGenerator generator) : base(openedFile){
if (openedFile == null) { if (openedFile == null) {
throw new ArgumentNullException("openedFile"); throw new ArgumentNullException("openedFile");
@ -89,8 +84,8 @@ namespace ICSharpCode.Reporting.Addin.Views
LoggingService.Info("Create ReportDesignerLoader"); LoggingService.Info("Create ReportDesignerLoader");
this.loader = new ReportDesignerLoader(generator,stream); loader = new ReportDesignerLoader(generator, stream);
this.designSurface.BeginLoad(this.loader); designSurface.BeginLoad(this.loader);
if (!designSurface.IsLoaded) { if (!designSurface.IsLoaded) {
// throw new FormsDesignerLoadException(FormatLoadErrors(designSurface)); // throw new FormsDesignerLoadException(FormatLoadErrors(designSurface));
LoggingService.Error("designer not loaded"); LoggingService.Error("designer not loaded");
@ -119,8 +114,6 @@ namespace ICSharpCode.Reporting.Addin.Views
hasUnmergedChanges = false; hasUnmergedChanges = false;
LoggingService.Info("Form Designer: END INITIALIZE");
//----------------
LoggingService.Info("ReportDesigner LoadDesigner_End"); LoggingService.Info("ReportDesigner LoadDesigner_End");
} }
@ -159,6 +152,7 @@ namespace ICSharpCode.Reporting.Addin.Views
static WindowsFormsDesignerOptionService CreateDesignerOptions() static WindowsFormsDesignerOptionService CreateDesignerOptions()
{ {
LoggingService.Debug("ReportDesigner: CreateDesignerOptions..."); LoggingService.Debug("ReportDesigner: CreateDesignerOptions...");
var designerOptionService = new WindowsFormsDesignerOptionService(); var designerOptionService = new WindowsFormsDesignerOptionService();
designerOptionService.Options.Properties.Find("UseSmartTags", true).SetValue(designerOptionService, true); designerOptionService.Options.Properties.Find("UseSmartTags", true).SetValue(designerOptionService, true);
designerOptionService.Options.Properties.Find("ShowGrid", true).SetValue(designerOptionService, false); designerOptionService.Options.Properties.Find("ShowGrid", true).SetValue(designerOptionService, false);
@ -195,7 +189,7 @@ namespace ICSharpCode.Reporting.Addin.Views
} }
} }
private void MakeDirty() void MakeDirty()
{ {
hasUnmergedChanges = true; hasUnmergedChanges = true;
PrimaryFile.MakeDirty(); PrimaryFile.MakeDirty();
@ -208,9 +202,7 @@ namespace ICSharpCode.Reporting.Addin.Views
void SelectionChangedHandler(object sender, EventArgs args) void SelectionChangedHandler(object sender, EventArgs args)
{ {
var selectionService = (ISelectionService)sender; var selectionService = (ISelectionService)sender;
Console.WriteLine("Sel service {0}",selectionService != null);
var abstractItem = selectionService.PrimarySelection as AbstractItem; var abstractItem = selectionService.PrimarySelection as AbstractItem;
Console.Write("SelectionChangedHandler:AbstractItem {0}",abstractItem != null);
if (abstractItem != null) { if (abstractItem != null) {
if (String.IsNullOrEmpty(abstractItem.Site.Name)) { if (String.IsNullOrEmpty(abstractItem.Site.Name)) {
abstractItem.Site.Name = abstractItem.Name; abstractItem.Site.Name = abstractItem.Name;
@ -272,9 +264,8 @@ namespace ICSharpCode.Reporting.Addin.Views
void UpdatePropertyPadSelection(ISelectionService selectionService) void UpdatePropertyPadSelection(ISelectionService selectionService)
{ {
Console.Write("UpdatePropertyPadSelection");
ICollection selection = selectionService.GetSelectedComponents(); ICollection selection = selectionService.GetSelectedComponents();
object[] selArray = new object[selection.Count]; var selArray = new object[selection.Count];
selection.CopyTo(selArray, 0); selection.CopyTo(selArray, 0);
propertyContainer.SelectedObjects = selArray; propertyContainer.SelectedObjects = selArray;
} }
@ -367,15 +358,17 @@ namespace ICSharpCode.Reporting.Addin.Views
{ {
var xmlView = new XmlView(generator,this); var xmlView = new XmlView(generator,this);
SecondaryViewContents.Add(xmlView); SecondaryViewContents.Add(xmlView);
var preview = new WpfPreview(loader,this);
SecondaryViewContents.Add(preview);
} }
public string ReportFileContent { public string ReportFileContent {
get { get {
if (IsDirty) { if (IsDirty) {
this.MergeFormChanges(); MergeFormChanges();
} }
return this.reportFileContent; } return reportFileContent; }
set { this.reportFileContent = value; } set { reportFileContent = value; }
} }
#endregion #endregion

64
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Views/WpfPreview.cs

@ -0,0 +1,64 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 24.03.2014
* Time: 20:02
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using ICSharpCode.Core;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.WpfReportViewer;
using ICSharpCode.Reporting.Xml;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Workbench;
using ICSharpCode.Reporting.Addin.DesignerBinding;
namespace ICSharpCode.Reporting.Addin.Views
{
/// <summary>
/// Description of the view content
/// </summary>
public class WpfPreview : AbstractSecondaryViewContent
{
ReportDesignerLoader designerLoader;
ICSharpCode.Reporting.WpfReportViewer.WpfReportViewer viewer = new ICSharpCode.Reporting.WpfReportViewer.WpfReportViewer();
public WpfPreview(ReportDesignerLoader loader,IViewContent content):base(content)
{
LoggingService.Info("Create WpfPreview");
this.designerLoader = loader;
TabPageText = "WpfPreview";
}
protected override void LoadFromPrimary()
{
LoggingService.Info("LoadFrompromary");
var xml = designerLoader.SerializeModel();
var modelLoader = new ModelLoader();
var reportmodel = modelLoader.Load(xml.DocumentElement) as ReportModel;
var reportingFactory = new ReportingFactory();
var reportCreator = reportingFactory.ReportCreator(reportmodel);
reportCreator.BuildExportList();
var previewViewModel = new PreviewViewModel (reportingFactory.ReportModel.ReportSettings,reportCreator.Pages);
viewer.SetBinding(previewViewModel);
}
/// <summary>
/// The <see cref="System.Windows.Forms.Control"/> representing the view
/// </summary>
public override object Control {
get {
return viewer;
}
}
protected override void SaveToPrimary()
{
LoggingService.Info("WpfPreview:SaveToPrimary is not implemented");
}
}
}

6
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/XML/ReportDesignerWriter.cs

@ -13,8 +13,12 @@ namespace ICSharpCode.Reporting.Addin.XML
/// <summary> /// <summary>
/// Description of ReportDesignerWriter. /// Description of ReportDesignerWriter.
/// </summary> /// </summary>
public class ReportDesignerWriter:MycroWriter class ReportDesignerWriter:MycroWriter
{ {
public ReportDesignerWriter() {
Console.WriteLine("ReportDesignerWriter");
Console.WriteLine();
}
protected override string GetTypeName(Type t) protected override string GetTypeName(Type t)
{ {
if (t.BaseType != null && t.BaseType.Name.StartsWith("Base",StringComparison.InvariantCultureIgnoreCase)) { if (t.BaseType != null && t.BaseType.Name.StartsWith("Base",StringComparison.InvariantCultureIgnoreCase)) {

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportModelFactory.cs

@ -15,7 +15,7 @@ namespace ICSharpCode.Reporting.Factories
/// <summary> /// <summary>
/// Description of ReportModelFactory. /// Description of ReportModelFactory.
/// </summary> /// </summary>
public class ReportModelFactory public static class ReportModelFactory
{ {
public static ReportModel Create() public static ReportModel Create()
{ {

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/ModelLoader.cs

@ -26,6 +26,10 @@ namespace ICSharpCode.Reporting.Xml
/// </summary> /// </summary>
public class ModelLoader: MycroParser public class ModelLoader: MycroParser
{ {
public ModelLoader() {
Console.WriteLine("ICSharpCode.Reporting.Xml.ModelLoader");
Console.WriteLine();
}
protected override Type GetTypeByName(string ns, string name) protected override Type GetTypeByName(string ns, string name)
{ {
return typeof(BaseSection).Assembly.GetType(typeof(BaseSection).Namespace + "." + name); return typeof(BaseSection).Assembly.GetType(typeof(BaseSection).Namespace + "." + name);

10
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/MycroParser.cs

@ -43,6 +43,10 @@ namespace ICSharpCode.Reporting.Xml
/// </summary> /// </summary>
public abstract class MycroParser public abstract class MycroParser
{ {
public MycroParser() {
Console.WriteLine("Mycroparser");
Console.WriteLine();
}
public object Load(XmlElement element) public object Load(XmlElement element)
{ {
return ProcessNode(element, null); return ProcessNode(element, null);
@ -60,9 +64,11 @@ namespace ICSharpCode.Reporting.Xml
string cname=node.LocalName; string cname=node.LocalName;
Console.WriteLine ("ProcessNode(XmlNode node, object parent) {0}",cname); Console.WriteLine ("ProcessNode(XmlNode node, object parent) {0}",cname);
if (cname.StartsWith("BaseText")) {
Console.WriteLine("Found");
}
Type t=GetTypeByName(ns, cname); Type t=GetTypeByName(ns, cname);
// Trace.Assert(t != null, "Type "+cname+" could not be determined."); // Trace.Assert(t != null, "Type "+cname+" could not be determined.");
// Debug.WriteLine("Looking for " + cname + " and got " + t.FullName); // Debug.WriteLine("Looking for " + cname + " and got " + t.FullName);
// Console.WriteLine("Looking for " + cname + " and got " + t.FullName); // Console.WriteLine("Looking for " + cname + " and got " + t.FullName);

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

@ -150,16 +150,16 @@ namespace ICSharpCode.Reports.Addin
{ {
Console.WriteLine("ReportLoader:GetReportType"); Console.WriteLine("ReportLoader:GetReportType");
if (baseType == null) return null; if (baseType == null) return null;
if (baseToReport == null) {
baseToReport = new Dictionary<Type, Type>(); baseToReport = new Dictionary<Type, Type>();
foreach (Type t in typeof(BaseSection).Assembly.GetTypes()) { foreach (Type t in typeof(BaseSection).Assembly.GetTypes()) {
if (t.BaseType != null && t.BaseType.Name.StartsWith("Base", if (t.BaseType != null && t.BaseType.Name.StartsWith("Base",
StringComparison.InvariantCulture)) { StringComparison.InvariantCulture)) {
baseToReport[t.BaseType] = t; baseToReport[t.BaseType] = t;
}
} }
} }
Type r; Type r;
baseToReport.TryGetValue(baseType, out r); baseToReport.TryGetValue(baseType, out r);
return r ?? baseType; return r ?? baseType;

Loading…
Cancel
Save