Code to generate Procedure text for CPS Export
This commit is contained in:
parent
b695681aba
commit
e83a173039
91
PROMS/Volian.Print.Library/CPSGen.cs
Normal file
91
PROMS/Volian.Print.Library/CPSGen.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user