RptToXml.RptDefinitionWriter.GetReportObjects C# (CSharp) Method

GetReportObjects() private method

private GetReportObjects ( Section section, ReportDocument report, XmlWriter writer ) : void
section Section
report ReportDocument
writer System.Xml.XmlWriter
return void
        private void GetReportObjects(Section section, ReportDocument report, XmlWriter writer)
        {
            writer.WriteStartElement("ReportObjects");

            foreach (ReportObject reportObject in section.ReportObjects)
            {
                writer.WriteStartElement(reportObject.GetType().Name);

                CRReportDefModel.ISCRReportObject rasrdm_ro = GetRASRDMReportObject(reportObject.Name, report);

                writer.WriteAttributeString("Name", reportObject.Name);
                writer.WriteAttributeString("Kind", reportObject.Kind.ToString());

                writer.WriteAttributeString("Top", reportObject.Top.ToString(CultureInfo.InvariantCulture));
                writer.WriteAttributeString("Left", reportObject.Left.ToString(CultureInfo.InvariantCulture));
                writer.WriteAttributeString("Width", reportObject.Width.ToString(CultureInfo.InvariantCulture));
                writer.WriteAttributeString("Height", reportObject.Height.ToString(CultureInfo.InvariantCulture));

                if (reportObject is BoxObject)
                {
                    var bo = (BoxObject)reportObject;
                    writer.WriteAttributeString("Bottom", bo.Bottom.ToString(CultureInfo.InvariantCulture));
                    writer.WriteAttributeString("EnableExtendToBottomOfSection", bo.EnableExtendToBottomOfSection.ToString());
                    writer.WriteAttributeString("EndSectionName", bo.EndSectionName);
                    writer.WriteAttributeString("LineStyle", bo.LineStyle.ToString());
                    writer.WriteAttributeString("LineThickness", bo.LineThickness.ToString(CultureInfo.InvariantCulture));
                    writer.WriteAttributeString("Right", bo.Right.ToString(CultureInfo.InvariantCulture));
                    if ((ShowFormatTypes & FormatTypes.Color) == FormatTypes.Color)
                        GetColorFormat(bo.LineColor, writer, "LineColor");
                }
                else if (reportObject is DrawingObject)
                {
                    var dobj = (DrawingObject)reportObject;
                    writer.WriteAttributeString("Bottom", dobj.Bottom.ToString(CultureInfo.InvariantCulture));
                    writer.WriteAttributeString("EnableExtendToBottomOfSection", dobj.EnableExtendToBottomOfSection.ToString());
                    writer.WriteAttributeString("EndSectionName", dobj.EndSectionName);
                    writer.WriteAttributeString("LineStyle", dobj.LineStyle.ToString());
                    writer.WriteAttributeString("LineThickness", dobj.LineThickness.ToString(CultureInfo.InvariantCulture));
                    writer.WriteAttributeString("Right", dobj.Right.ToString(CultureInfo.InvariantCulture));
                    if ((ShowFormatTypes & FormatTypes.Color) == FormatTypes.Color)
                        GetColorFormat(dobj.LineColor, writer, "LineColor");
                }
                else if (reportObject is FieldHeadingObject)
                {
                    var fh = (FieldHeadingObject)reportObject;
                    var rasrdm_fh = (CRReportDefModel.FieldHeadingObject)rasrdm_ro;
                    writer.WriteAttributeString("FieldObjectName", fh.FieldObjectName);
                    writer.WriteAttributeString("MaxNumberOfLines", rasrdm_fh.MaxNumberOfLines.ToString());
                    writer.WriteElementString("Text", fh.Text);
                }
                else if (reportObject is FieldObject)
                {
                    var fo = (FieldObject)reportObject;
                    var rasrdm_fo = (CRReportDefModel.FieldObject)rasrdm_ro;

                    if (fo.DataSource != null)
                        writer.WriteAttributeString("DataSource", fo.DataSource.FormulaName);

                    if ((ShowFormatTypes & FormatTypes.Color) == FormatTypes.Color)
                        GetColorFormat(fo.Color, writer);

                    if ((ShowFormatTypes & FormatTypes.Font) == FormatTypes.Font)
                    {
                        GetFontFormat(fo.Font, report, writer);
                        GetFontColorConditionFormulas(rasrdm_fo.FontColor, writer);
                    }

                }
                else if (reportObject is TextObject)
                {
                    var tobj = (TextObject)reportObject;
                    var rasrdm_tobj = (CRReportDefModel.TextObject)rasrdm_ro;

                    writer.WriteAttributeString("MaxNumberOfLines", rasrdm_tobj.MaxNumberOfLines.ToString());
                    writer.WriteElementString("Text", tobj.Text);

                    if ((ShowFormatTypes & FormatTypes.Color) == FormatTypes.Color)
                        GetColorFormat(tobj.Color, writer);
                    if ((ShowFormatTypes & FormatTypes.Font) == FormatTypes.Font)
                    {
                        GetFontFormat(tobj.Font, report, writer);
                        GetFontColorConditionFormulas(rasrdm_tobj.FontColor, writer);
                    }
                }

                if ((ShowFormatTypes & FormatTypes.Border) == FormatTypes.Border)
                    GetBorderFormat(reportObject, report, writer);

                if ((ShowFormatTypes & FormatTypes.ObjectFormat) == FormatTypes.ObjectFormat)
                    GetObjectFormat(reportObject, report, writer);

                if (rasrdm_ro != null)
                    GetObjectFormatConditionFormulas(rasrdm_ro, writer);

                writer.WriteEndElement();
            }

            writer.WriteEndElement();
        }