📄 loadmodelvisitor.cs
字号:
//------------------------------------------------------------------------------
// <autogenerated>
// This code was generated by a tool.
// Runtime Version: 1.1.4322.2032
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </autogenerated>
//------------------------------------------------------------------------------
using System;
using System.Xml;
using System.Windows.Forms;
using SharpReportCore;
/// <summary>
/// Fill's the ReportModel from File
/// </summary>
/// <remarks>
/// created by - Forstmeier Peter
/// created on - 03.03.2005 16:36:09
/// </remarks>
namespace SharpReportCore {
public class LoadModelVisitor : SharpReportCore.AbstractModelVisitor {
private ReportModel model;
BaseItemFactory baseItemFactory;
public LoadModelVisitor(ReportModel reportModel,
string fileName):base(fileName){
this.model = reportModel;
baseItemFactory = new BaseItemFactory();
}
#region overrides
public override void Visit(ReportModel reportModel) {
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
} else {
XmlDocument xmlDoc;
try {
xmlDoc = XmlHelper.OpenSharpReport (base.FileName);
reportModel.ReportSettings.SetSettings ((XmlElement)xmlDoc.DocumentElement.FirstChild);
SetSections (xmlDoc);
} catch (Exception ) {
throw;
}
}
}
#endregion
#region setsections
void SetSections (XmlDocument doc) {
XmlNodeList sectionNodes = doc.DocumentElement.ChildNodes;
//Start with node(1)
for (int i = 1;i < sectionNodes.Count ; i++ ) {
XmlNode node = sectionNodes[i];
if (node is XmlElement) {
XmlElement sectionElem = (XmlElement)node;
BaseSection baseSection = (BaseSection)model.SectionCollection.Find(sectionElem.GetAttribute("name"));
XmlNodeList ctrlList = base.MakeSection(sectionElem,baseSection);
SetReportItems(baseSection,null,ctrlList);
}else {
throw new System.Xml.XmlException ("Report : SetSection Wrong Node in Report");
}
}
}
void SetReportItems(BaseSection baseSection,
IContainerItem parentContainer,XmlNodeList ctrlList) {
BaseReportItem baseReportItem;
foreach (XmlNode ctrlNode in ctrlList) {
XmlElement ctrlElem = ctrlNode as XmlElement;
if (ctrlElem != null) {
IItemRenderer itemRenderer = null;
try {
itemRenderer = baseItemFactory.Create(ctrlElem.GetAttribute("basetype"));
baseReportItem = base.MakeItem (ctrlElem,parentContainer,baseSection,itemRenderer);
IContainerItem iContainer = baseReportItem as IContainerItem;
if (iContainer != null) {
XmlNodeList newList = ctrlNode.SelectNodes (base.NodesQuery);
if (newList.Count > 0) {
SetReportItems (baseSection,iContainer,newList);
}
}
}
catch (Exception ) {
throw new UnkownItemException();
}
}
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -