public virtual IReportElement Clone(string name) { ElementGroup clone = new ElementGroup(name); for (int i = 0; i < this.elements.Length; i++) { clone.AddElementInternal(this.elements[i].Clone()); } return(clone); }
public override void ReadXml(XmlReader reader) { reader.ReadStartElement(); this.name = reader.ReadElementContentAsString(); try { this.description = reader.ReadElementContentAsString(); } catch (Exception) { } reader.MoveToContent(); //now read the row template Type rowType = Type.GetType(reader.GetAttribute("type")); XmlSerializer rowSer = new XmlSerializer(rowType); this.rowTemplate = (ElementGroup)rowSer.Deserialize(reader); reader.MoveToContent(); reader.ReadEndElement(); int i = 0; //now we're into fields reader.ReadStartElement(); reader.MoveToContent(); while (reader.NodeType != XmlNodeType.EndElement) { Type type = Type.GetType(reader.GetAttribute("type")); XmlSerializer ser = new XmlSerializer(type); IReportElement element = (IReportElement)ser.Deserialize(reader); reader.ReadEndElement(); reader.MoveToContent(); this.AddElementInternal(element); } reader.ReadEndElement(); reader.MoveToContent(); reader.ReadEndElement(); //now we're done with the fields. Console.WriteLine("~" + reader.Name); }
public FieldRows(string name, ElementGroup rowTemplate, string description = "") : base(name, description) { this.rowTemplate = rowTemplate; this.AddRow(); }