Exemplo n.º 1
0
        /// <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());
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <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());
                    }
                }
            }
        }
Exemplo n.º 3
0
        /// <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());
                    }
                }
            }
        }