/// <summary> /// Generates an Report from its RDL representation. /// </summary> /// <param name="reader">The <typeparamref name="XmlReader"/> stream from which the Report is deserialized</param> public virtual void ReadXml(XmlReader reader) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.EndElement && reader.Name == Rdl.REPORT) { break; } else if (reader.NodeType == XmlNodeType.Element) { //--- Description if (reader.Name == Rdl.DESCRIPTION) { _description = reader.ReadString(); } //--- Author if (reader.Name == Rdl.AUTHOR) { _author = reader.ReadString(); } //--- AutoRefresh if (reader.Name == Rdl.AUTOREFRESH) { _autoRefresh = int.Parse(reader.ReadString()); } //--- DataSources if (reader.Name == Rdl.DATASOURCES && !reader.IsEmptyElement) { if (_dataSources == null) { _dataSources = new DataSourceCollection(); } ((IXmlSerializable)_dataSources).ReadXml(reader); } //--- DataSets if (reader.Name == Rdl.DATASETS && !reader.IsEmptyElement) { if (_dataSets == null) { _dataSets = new DataSetCollection(); } ((IXmlSerializable)_dataSets).ReadXml(reader); } //--- Body if (reader.Name == Rdl.BODY && !reader.IsEmptyElement) { if (_body == null) { _body = new Body(); } ((IXmlSerializable)_body).ReadXml(reader); } //--- Report Parameters if (reader.Name == Rdl.REPORTPARAMETERS && !reader.IsEmptyElement) { if (_parameters == null) { _parameters = new ReportParameterCollection(); } ((IXmlSerializable)_parameters).ReadXml(reader); } //--- Code if (reader.Name == Rdl.CODE) { _code = reader.ReadString(); } //--- Width if (reader.Name == Rdl.WIDTH) { _width = Size.Parse(reader.ReadString()); } //--- Page Header if (reader.Name == Rdl.PAGEHEADER && !reader.IsEmptyElement) { if (_pageHeader == null) { _pageHeader = new PageHeader(); } ((IXmlSerializable)_pageHeader).ReadXml(reader); } //--- Page Footer if (reader.Name == Rdl.PAGEFOOTER && !reader.IsEmptyElement) { if (_pageFooter == null) { _pageFooter = new PageFooter(); } ((IXmlSerializable)_pageFooter).ReadXml(reader); } //--- Page Height if (reader.Name == Rdl.PAGEHEIGHT) { _pageHeight = Size.Parse(reader.ReadString()); } //--- Page Width if (reader.Name == Rdl.PAGEWIDTH) { _pageWidth = Size.Parse(reader.ReadString()); } //--- Interactive Height if (reader.Name == Rdl.INTERACTIVEHEIGHT) { _interactiveHeight = Size.Parse(reader.ReadString()); } //--- Interactive Width if (reader.Name == Rdl.INTERACTIVEWIDTH) { _interactiveWidth = Size.Parse(reader.ReadString()); } //--- Left Margin if (reader.Name == Rdl.LEFTMARGIN) { _leftMargin = Size.Parse(reader.ReadString()); } //--- Right Margin if (reader.Name == Rdl.RIGHTMARGIN) { _rightMargin = Size.Parse(reader.ReadString()); } //--- Top Margin if (reader.Name == Rdl.TOPMARGIN) { _topMargin = Size.Parse(reader.ReadString()); } //--- Bottom Margin if (reader.Name == Rdl.BOTTOMMARGIN) { _bottomMargin = Size.Parse(reader.ReadString()); } //--- Embedded Images if (reader.Name == Rdl.EMBEDDEDIMAGES && !reader.IsEmptyElement) { if (_embeddedImages == null) { _embeddedImages = new EmbeddedImageCollection(); } ((IXmlSerializable)_embeddedImages).ReadXml(reader); } //--- Language if (reader.Name == Rdl.LANGUAGE) { _language = reader.ReadString(); } //--- Custom Properties if (reader.Name == Rdl.CUSTOMPROPERTIES && !reader.IsEmptyElement) { if (_customProperties == null) { _customProperties = new CustomPropertiesCollection(); } ((IXmlSerializable)_customProperties).ReadXml(reader); } //--- Data Transform if (reader.Name == Rdl.DATATRANSFORM) { _dataTransform = reader.ReadString(); } //--- Data Schema if (reader.Name == Rdl.DATASCHEMA) { _dataSchema = reader.ReadString(); } //--- Data Element Name if (reader.Name == Rdl.DATAELEMENTNAME) { _dataElementName = reader.ReadString(); } //--- Data Element Style if (reader.Name == Rdl.DATAELEMENTSTYLE) { _dataElementStyle = (ReportDataElementStyle)Enum.Parse(typeof(ReportDataElementStyle), reader.ReadString()); } } } }
/// <summary> /// Generates an ReportItem from its RDL representation. /// </summary> /// <param name="reader">The <typeparamref name="XmlReader"/> stream from which the ReportItem is deserialized</param> public void ReadXml(XmlReader reader) { if (reader.AttributeCount > 0) { _name = reader[Rdl.NAME]; } if (reader.IsEmptyElement) { return; } while (reader.Read()) { if (reader.NodeType == XmlNodeType.EndElement && reader.Name == GetRootElement()) { break; } else if (reader.NodeType == XmlNodeType.Element && !reader.IsEmptyElement) { //--- Delegate to the implementing class for any additional attributes ReadRDL(reader); //--- Style if (reader.Name == Rdl.STYLE) { if (_style == null) { _style = new Style(); } ((IXmlSerializable)_style).ReadXml(reader); } //--- Top if (reader.Name == Rdl.TOP) { _top = Size.Parse(reader.ReadString()); } //--- Left if (reader.Name == Rdl.LEFT) { _left = Size.Parse(reader.ReadString()); } //--- Height if (reader.Name == Rdl.HEIGHT) { _height = Size.Parse(reader.ReadString()); } //--- Width if (reader.Name == Rdl.WIDTH) { _width = Size.Parse(reader.ReadString()); } //--- ZIndex if (reader.Name == Rdl.ZINDEX) { _zIndex = int.Parse(reader.ReadString()); } //--- Visibility if (reader.Name == Rdl.VISIBILITY) { if (_visibility == null) { _visibility = new Visibility(); } ((IXmlSerializable)_visibility).ReadXml(reader); } //--- ToolTip if (reader.Name == Rdl.TOOLTIP) { if (_toolTip == null) { _toolTip = new Expression(); } _toolTip.Value = reader.ReadString(); } //--- Label if (reader.Name == Rdl.LABEL) { if (_label == null) { _label = new Expression(); } _label.Value = reader.ReadString(); } //--- LinkToChild if (reader.Name == Rdl.LINKTOCHILD) { _linkToChild = reader.ReadString(); } //--- Bookmark if (reader.Name == Rdl.BOOKMARK) { if (_bookmark == null) { _bookmark = new Expression(); } _bookmark.Value = reader.ReadString(); } //--- RepeatWith if (reader.Name == Rdl.REPEATWITH) { _repeatWith = reader.ReadString(); } //--- CustomProperties if (reader.Name == Rdl.CUSTOMPROPERTIES) { if (_customProperties == null) { _customProperties = new CustomPropertiesCollection(); } ((IXmlSerializable)_customProperties).ReadXml(reader); } //--- DataElementName if (reader.Name == Rdl.DATAELEMENTNAME) { _dataElementName = reader.ReadString(); } //--- DataElementOutput if (reader.Name == Rdl.DATAELEMENTOUTPUT) { _dataElementOutput = (DataElementOutput)Enum.Parse(typeof(DataElementOutput), reader.ReadString()); } } } }
/// <summary> /// Generates an Grouping from its RDL representation. /// </summary> /// <param name="reader">The <typeparamref name="XmlReader"/> stream from which the Grouping is deserialized</param> public void ReadXml(XmlReader reader) { if (reader.AttributeCount > 0) { _name = reader[Rdl.NAME]; } while (reader.Read()) { if (reader.NodeType == XmlNodeType.EndElement && reader.Name == Rdl.GROUPING) { break; } else if (reader.NodeType == XmlNodeType.Element) { //--- Label if (reader.Name == Rdl.LABEL) { if (_label == null) { _label = new Expression(); } _label.Value = reader.ReadString(); } //--- GroupExpressions if (reader.Name == Rdl.GROUPEXPRESSIONS) { if (_groupExpressions == null) { _groupExpressions = new GroupExpressionCollection(); } ((IXmlSerializable)_groupExpressions).ReadXml(reader); } //--- PageBreakAtStart if (reader.Name == Rdl.PAGEBREAKATSTART) { _pageBreakAtStart = bool.Parse(reader.ReadString()); } //--- PageBreakAtEnd if (reader.Name == Rdl.PAGEBREAKATEND) { _pageBreakAtEnd = bool.Parse(reader.ReadString()); } //--- CustomProperties if (reader.Name == Rdl.CUSTOMPROPERTIES) { if (_customProperties == null) { _customProperties = new CustomPropertiesCollection(); } ((IXmlSerializable)_customProperties).ReadXml(reader); } //--- Filters if (reader.Name == Rdl.FILTERS) { if (_filters == null) { _filters = new FilterCollection(); } ((IXmlSerializable)_filters).ReadXml(reader); } //--- Parent if (reader.Name == Rdl.PARENT) { if (_parent == null) { _parent = new Expression(); } _parent.Value = reader.ReadString(); } //--- DataElementName if (reader.Name == Rdl.DATAELEMENTNAME) { _dataElementName = reader.ReadString(); } //--- DataCollectionName if (reader.Name == Rdl.DATACOLLECTIONNAME) { _dataCollectionName = reader.ReadString(); } //--- DataElementOutput if (reader.Name == Rdl.DATAELEMENTOUTPUT) { _dataElementOutput = (GroupingDataElementOutput)Enum.Parse(typeof(GroupingDataElementOutput), reader.ReadString()); } } } }