Code to generate Procedure text for CPS Export

This commit is contained in:
Rich 2016-04-05 16:05:58 +00:00
parent b695681aba
commit e83a173039

View File

@ -0,0 +1,91 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using VEPROMS.CSLA.Library;
namespace Volian.Print.Library
{
public class CPSGen
{
private vlnParagraph _MyVlnParagraph;
public vlnParagraph MyVlnParagraph
{
get { return _MyVlnParagraph; }
set { _MyVlnParagraph = value; }
}
public CPSGen(vlnParagraph myParagraph)
{
_MyVlnParagraph = myParagraph;
}
public void Generate(string fileName)
{
XmlDocument xd = new XmlDocument();
XmlElement parent = xd.AppendChild(xd.CreateElement("Items")) as XmlElement;
Generate(0, 0,parent, MyVlnParagraph);
xd.Save(fileName);
}
public void Generate(int level,int fromType,XmlElement parent, vlnParagraph para)
{
ItemInfo itm = para.MyItemInfo;
XmlElement xe = parent.AppendChild(parent.OwnerDocument.CreateElement("Item")) as XmlElement;
AddAttribute(xe, "Level", level);
AddAttribute(xe, "FromType", fromType);
AddAttribute(xe, "Ordinal", itm.Ordinal);
AddAttribute(xe, "ParentID", (itm.ActiveParent as ItemInfo).ItemID);
//AddAttribute(xe, "Xoffset", para.XOffset);
AddAttribute(xe, "ItemID", itm.ItemID);
AddAttribute(xe, "PreviousID", itm.PreviousID);
AddAttribute(xe, "ContentID", itm.ContentID);
AddAttribute(xe, "DTS", itm.MyContent.DTS);
AddAttribute(xe, "UserID", itm.MyContent.UserID);
AddAttribute(xe, "Number", itm.MyContent.Number);
AddAttribute(xe, "Text", itm.MyContent.Text);
AddAttribute(xe, "Type", itm.MyContent.Type);
AddAttribute(xe, "FormatID", itm.MyContent.FormatID);
AddAttribute(xe, "Config", itm.MyContent.Config);
AddAttribute(xe, "Rtf", para.Rtf);
//AddParts(xe, "PartsAbove", para.PartsAbove);
//AddParts(xe, "PartsLeft", para.PartsLeft);
//AddParts(xe, "PartsRight", para.PartsRight);
//AddParts(xe, "PartsBelow", para.PartsBelow);
AddChildren(level,0, parent, "ChildrenAbove", para.ChildrenAbove);
AddChildren(level,0, parent, "ChildrenLeft", para.ChildrenLeft);
AddChildren(level,0, parent, "ChildrenRight", para.ChildrenRight);
AddChildren(level,0, parent, "ChildrenBelow", para.ChildrenBelow);
}
private void AddChildren(int level, int fromType, XmlElement parent, string name, vlnParagraphs children)
{
if (children == null || children.Count == 0) return;
//XmlElement xchildren = xe.OwnerDocument.AppendChild(xe.OwnerDocument.CreateElement(name)) as XmlElement;
foreach(vlnParagraph child in children)
{
//XmlElement xechild = xe.ParentNode.AppendChild(xe.OwnerDocument.CreateElement("Item")) as XmlElement;
Generate(level+1,0,parent,child);
}
}
//private void AddParts(XmlElement xe, string name, vlnPrintObjects parts)
//{
// if (parts == null || parts.Count == 0) return;
// XmlElement xpart = xe.AppendChild(xe.OwnerDocument.CreateElement(name)) as XmlElement;
// foreach (vlnPrintObject part in parts)
// {
// XmlElement xechild = xpart.AppendChild(xe.OwnerDocument.CreateElement(part.GetType().Name)) as XmlElement;
// Generate(xechild, part);
// }
//}
//private void Generate(XmlElement xe, vlnPrintObject part)
//{
// AddAttribute(xe, "Xoffset", part.XOffset);
// AddAttribute(xe, "Width", part.Width);
// AddAttribute(xe, "Rtf", part.Rtf);
//}
private void AddAttribute(XmlElement xe, string attr, object val)
{
if (val == null) return;
XmlAttribute xa = xe.OwnerDocument.CreateAttribute(attr);
xa.Value = val.ToString();
xe.Attributes.Append(xa);
}
}
}