internal void ChartDataXML(IChartStream chartStream) { OWCChart oWCChart = (OWCChart)m_reportItemDef; int count = m_chartData[0].Count; int num = 0; int num2 = 0; string value = string.Empty; StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture); XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter); xmlTextWriter.WriteStartElement("xml"); xmlTextWriter.WriteAttributeString("xmlns", "s", null, "uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"); xmlTextWriter.WriteAttributeString("xmlns", "dt", null, "uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"); xmlTextWriter.WriteAttributeString("xmlns", "rs", null, "urn:schemas-microsoft-com:rowset"); xmlTextWriter.WriteAttributeString("xmlns", "z", null, "#RowsetSchema"); xmlTextWriter.WriteStartElement("s", "Schema", null); xmlTextWriter.WriteAttributeString("id", "RowsetSchema"); xmlTextWriter.WriteStartElement("s", "ElementType", null); xmlTextWriter.WriteAttributeString("name", "row"); xmlTextWriter.WriteAttributeString("content", "eltOnly"); for (num = 0; num < oWCChart.ChartData.Count; num++) { xmlTextWriter.WriteStartElement("s", "AttributeType", null); xmlTextWriter.WriteAttributeString("name", "c" + num.ToString(CultureInfo.InvariantCulture)); xmlTextWriter.WriteAttributeString("rs", "name", null, oWCChart.ChartData[num].Name); xmlTextWriter.WriteAttributeString("rs", "nullable", null, "true"); xmlTextWriter.WriteAttributeString("rs", "writeunknown", null, "true"); xmlTextWriter.WriteStartElement("s", "datatype", null); for (num2 = 0; num2 < m_chartData[num].Count && m_chartData[num][num2] == null; num2++) { } if (num2 < m_chartData[num].Count) { switch (Type.GetTypeCode(m_chartData[num][num2].GetType())) { case TypeCode.Boolean: value = "boolean"; break; case TypeCode.Byte: value = "ui1"; break; case TypeCode.Char: value = "char"; break; case TypeCode.DateTime: value = "dateTime"; break; case TypeCode.Single: value = "r4"; break; case TypeCode.Double: value = "float"; break; case TypeCode.Decimal: value = "r8"; break; case TypeCode.Int16: value = "i2"; break; case TypeCode.Int32: value = "i4"; break; case TypeCode.Int64: value = "i8"; break; case TypeCode.Object: if (m_chartData[num][num2] is TimeSpan) { value = "time"; } else if (m_chartData[num][num2] is byte[]) { value = "bin.hex"; } break; case TypeCode.SByte: value = "i1"; break; case TypeCode.UInt16: value = "ui2"; break; case TypeCode.UInt32: value = "ui4"; break; case TypeCode.UInt64: value = "ui8"; break; default: value = "string"; break; } } else { value = "string"; } xmlTextWriter.WriteAttributeString("dt", "type", null, value); xmlTextWriter.WriteAttributeString("rs", "fixedlength", null, "true"); xmlTextWriter.WriteEndElement(); xmlTextWriter.WriteEndElement(); } xmlTextWriter.WriteStartElement("s", "extends", null); xmlTextWriter.WriteAttributeString("type", "rs:rowbase"); xmlTextWriter.WriteEndElement(); xmlTextWriter.WriteEndElement(); xmlTextWriter.WriteEndElement(); xmlTextWriter.WriteStartElement("rs", "data", null); bool flag = true; object obj = null; for (int i = 0; i < count; i++) { for (num = 0; num < oWCChart.ChartData.Count; num++) { if (m_chartData[num][i] != null) { flag = false; break; } } if (flag) { continue; } xmlTextWriter.WriteStartElement("z", "row", null); for (num = 0; num < oWCChart.ChartData.Count; num++) { obj = m_chartData[num][i]; if (obj != null) { string value2 = (obj is IFormattable) ? ((IFormattable)obj).ToString(null, CultureInfo.InvariantCulture) : obj.ToString(); xmlTextWriter.WriteAttributeString("c" + num.ToString(CultureInfo.InvariantCulture), value2); } } xmlTextWriter.WriteEndElement(); xmlTextWriter.WriteWhitespace("\r\n"); flag = true; } xmlTextWriter.WriteEndElement(); xmlTextWriter.WriteEndElement(); chartStream.Write(stringWriter.ToString()); }
public void ChartDataXML(IChartStream chartStream) { ((OWCChartInstanceInfo)base.InstanceInfo).ChartDataXML(chartStream); }