📄 rdlcaddchildelement.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
namespace MSReport
{
public class RDLCAddChildElement : RDLCElement, IRDLCElement
{
public RDLCAddChildElement()
{
}
public override string Create(XmlNode xnode)
{
this.ActXNode = xnode;
this.XMLString = @"";
foreach (XmlNode xmlnode in this.ActXNode.ChildNodes)
{
if (!this.NodeList.ContainsKey(GetName(xmlnode.Name)))
{
if (xmlnode.Name == "#text")
{
this.XMLString = "";
}
else
{
if (xmlnode.ParentNode != null)
{
XmlNodeList nlist = xmlnode.ParentNode.SelectNodes(SetXMLNamespace(xmlnode.Name), this.nsmgr);
if (nlist.Count == 1)
{
this.NodeList.Add(GetName(xmlnode.Name), GetAddChildElement(GetName(xmlnode.Name)));
}
else
{
this.NodeList.Add(GetName(xmlnode.Name), GetAddChildElement2(GetName(xmlnode.Name)));
}
}
else
{
this.NodeList.Add(GetName(xmlnode.Name), GetAddChildElement(GetName(xmlnode.Name)));
}
}
}
}
if (this.ActXNode.ChildNodes.Count == 0)
{
this.XMLString = "";
}
foreach (string xml in this.NodeList.Values)
{
this.XMLString += xml;
}
return GetAddChildElementContainer();
}
public string GetAddChildElement(string ChildName)
{
string str = @"
if (typeof(" + ChildName.Replace(":", "_") + @").IsInstanceOfType(childElement))
{
_" + ChildName.Replace(":", "_") + @" = (" + ChildName.Replace(":", "_") + @")childElement;
}";
return str;
}
public string GetAddChildElement2(string ChildName)
{
string str = @"
if (typeof(" + ChildName.Replace(":", "_") + @").IsInstanceOfType(childElement))
{
if (_" + GetName(ChildName) + @"Collection == null)
{
_" + GetName(ChildName) + @"Collection = new List<" + GetName(ChildName) + @">();
}
" + ChildName.Replace(":", "_") + @" _" + ChildName.Replace(":", "_") + @" = (" + ChildName.Replace(":", "_") + @")childElement;
_" + GetName(ChildName) + @"Collection.Add(_" + GetName(ChildName) + @");
}";
return str;
}
public string GetAddChildElementContainer()
{
return @"public override void AddChildElement(XMLBase childElement)
{
"+ this.XMLString +@"
this.AddChildElements(childElement);
}";
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -