private void setValue(Chart Chart1, ChartParam servletrequest, string stype) { string text = servletrequest.getParameter(stype); if ((text != null) && (text.Length != 0)) { switch (stype) { case "title": Chart1.Titles.Add(text, Docking.Top); this.setColor(Chart1, servletrequest, "titlecolor"); this.setFont(Chart1, servletrequest, "titlefont"); break; case "xtitle": Chart1.ChartAreas["area1"].AxisX.Title = text; this.setColor(Chart1, servletrequest, "xtitlecolor"); this.setFont(Chart1, servletrequest, "xtitlefont"); break; case "ytitle": Chart1.ChartAreas["area1"].AxisY.Title = text; this.setColor(Chart1, servletrequest, "ytitlecolor"); this.setFont(Chart1, servletrequest, "ytitlefont"); break; } } }
private void setSeriesInt(Chart Chart1, ChartParam servletrequest, string SeriesName, string SeriesNo, string pName) { int num = 0; string str = servletrequest.getParameter(SeriesNo + pName); if ((str != null) && (str.Length > 0)) { num = Convert.ToInt32(str); switch (pName) { case "BorderStyle": Chart1.Series[SeriesName].BorderStyle = (ChartDashStyle)num; break; case "BackGradientType": Chart1.Series[SeriesName].BackGradientType = (GradientType)num; break; case "BorderWidth": case "ShadowOffset": Chart1.Series[SeriesName].ShadowOffset = num; break; } } }
private void setSeriesStr(Chart Chart1, ChartParam servletrequest, string SeriesName, string SeriesNo, string pName) { string src = servletrequest.getParameter(SeriesNo + pName); if ((src != null) && (src.Length > 0)) { switch (pName) { case "name": Chart1.Series[SeriesName].Name = src; break; case "Href": Chart1.Series[SeriesName].Href = Escape.unescape(src); break; case "LegendHref": Chart1.Series[SeriesName].LegendHref = Escape.unescape(src); break; case "MapAreaAttributes": Chart1.Series[SeriesName].MapAreaAttributes = Escape.unescape(src); break; case "LegendMapAreaAttributes": Chart1.Series[SeriesName].LegendMapAreaAttributes = Escape.unescape(src); break; case "CustomAttributes": Chart1.Series[SeriesName].CustomAttributes = Escape.unescape(src); break; } } }
private void setFont(Chart Chart1, ChartParam servletrequest, string stype) { string str = servletrequest.getParameter(stype); if ((str != null) && (str.Length != 0)) { string[] strArray = str.Split(new char[] { ',' }); int num = 0; if (strArray.Length == 3) { num = Convert.ToInt16(strArray[2]); } GraphicsUnit unit = (GraphicsUnit)2; string str2 = strArray[1]; if (strArray[1].Length > 2) { if (strArray[1].Substring(strArray[1].Length - 2, 2).Equals("pt")) { unit = (GraphicsUnit)3; str2 = strArray[1].Substring(0, strArray[1].Length - 2); } if (strArray[1].Substring(strArray[1].Length - 2, 2).Equals("px")) { unit = (GraphicsUnit)3; str2 = strArray[1].Substring(0, strArray[1].Length - 2); } } Font font = null; try { font = new Font(strArray[0], Convert.ToSingle(str2), (FontStyle)num, unit); } catch (Exception) { } switch (stype) { case "titlefont": Chart1.Titles[0].Font = font; break; case "xtitlefont": Chart1.ChartAreas["area1"].AxisX.TitleFont = font; break; case "xlabelfont": Chart1.ChartAreas["area1"].AxisX.LabelStyle.Font = font; break; case "legendfont": Chart1.Legends["default"].Font = font; break; } } }
private void setSeriesColor(Chart Chart1, ChartParam servletrequest, string SeriesName, string SeriesNo, string ColorName) { Color empty = Color.Empty; string str = servletrequest.getParameter(SeriesNo + ColorName); if ((str != null) && (str.Length > 0)) { empty = ColorTranslator.FromHtml(str); } switch (ColorName) { case "color": Chart1.Series[SeriesName].Color = empty; break; case "color2": Chart1.Series[SeriesName].BackGradientEndColor = empty; break; case "bordercolor": Chart1.Series[SeriesName].BorderColor = empty; break; } }
private string cal(UnitSet props, StringBuilder sb) { ChartParam servletrequest = new ChartParam(this, props); CellExt current = this.cs.Current; string str = Convert.ToString(idNo); idNo++; this.chartXml.Append("var chartJs" + str + " = new FusionCharts(\"../../fceformext/flash/"); string str2 = servletrequest.getParameter("type"); if (str2 == null) { str2 = "Column2D"; } this.chartXml.Append(str2); this.chartXml.Append(".swf\",\"chart" + str + "Id\","); int num = 0; string str3 = servletrequest.getParameter("width"); if (str3 == null) { num = this.getCellWidth(); servletrequest.setParameter("width", num.ToString()); } else { num = int.Parse(str3); } int num2 = 0; string str4 = servletrequest.getParameter("height"); if (str4 == null) { num2 = this.getCellHeight(); servletrequest.setParameter("height", num2.ToString()); } else { num2 = int.Parse(str4); } this.chartXml.Append(string.Concat(new object[] { "\"", num, "\",\"", num2, "\",\"0\",\"1\");\r\n" })); string pDataXml = this.pDataXml; if ((pDataXml != null) && (pDataXml.Length > 0)) { XmlDocument oXml = new XmlDocument(); oXml.LoadXml(pDataXml); if (oXml.DocumentElement == null) { throw new Exception("不是合法的XML数据:" + pDataXml); } int iSeriesCount = 1; string str6 = servletrequest.getParameter("seriesCount"); if ((str6 != null) && (str6.Length > 0)) { iSeriesCount = Convert.ToInt32(str6); } this.calExpand(oXml, servletrequest, "xlabel", iSeriesCount); this.calExpand(oXml, servletrequest, "s10_value", iSeriesCount); for (int i = 0; i < (iSeriesCount - 1); i++) { this.calExpand(oXml, servletrequest, "s" + Convert.ToString(i + 11) + "_value", iSeriesCount); this.calExpand(oXml, servletrequest, "s" + Convert.ToString(i + 11) + "_link", iSeriesCount); this.calExpand(oXml, servletrequest, "s" + Convert.ToString(i + 11) + "_name", iSeriesCount); } this.calExpand(oXml, servletrequest, "s10_link", iSeriesCount); if (iSeriesCount > 1) { this.calExpand(oXml, servletrequest, "s10_name", iSeriesCount); } this.chartXml.Append("chartJs" + str + ".setDataXML('" + oXml.DocumentElement.OuterXml + "');"); } this.chartXml.Append("chartJs" + str + ".render"); return(this.chartXml.ToString()); }
private void calExpand(XmlDocument oXml, ChartParam servletrequest, string propName, int iSeriesCount) { bool flag = iSeriesCount > 1; string expStr = servletrequest.getParameter(propName); if ((expStr != null) && (expStr.Trim().Length > 0)) { int num = 0; object obj2 = new ExpParse(this.cs, expStr).calculate(); ArrayList list = this.getListValue(obj2, null, null, false); string str2 = servletrequest.getParameter("maxcols"); int num2 = -1; if (((str2 != null) && (str2.Trim().Length > 0)) && !str2.Equals("0")) { num2 = Convert.ToInt32(str2); } if ((list.Count < num2) || (num2 <= 0)) { num2 = list.Count; } if (propName == "xlabel") { this.p_valueList = list; for (num = 1; num < num2; num++) { if (flag) { XmlNode node = oXml.DocumentElement.ChildNodes.Item(0).ChildNodes.Item(0).CloneNode(false); oXml.DocumentElement.ChildNodes.Item(0).InsertBefore(node, oXml.DocumentElement.ChildNodes.Item(0).ChildNodes.Item(0)); for (int i = 0; i < iSeriesCount; i++) { node = oXml.DocumentElement.ChildNodes.Item(i + 1).ChildNodes.Item(0).CloneNode(false); oXml.DocumentElement.ChildNodes.Item(i + 1).InsertBefore(node, oXml.DocumentElement.ChildNodes.Item(i + 1).ChildNodes.Item(0)); } } else { XmlNode node2 = oXml.DocumentElement.ChildNodes.Item(0).CloneNode(false); oXml.DocumentElement.InsertBefore(node2, oXml.DocumentElement.ChildNodes.Item(0)); } } for (num = 0; num < num2; num++) { if (flag) { ((XmlElement)oXml.DocumentElement.ChildNodes.Item(0).ChildNodes.Item(num)).SetAttribute("label", Convert.ToString(list[num])); } else { ((XmlElement)oXml.DocumentElement.ChildNodes.Item(num)).SetAttribute("label", Convert.ToString(list[num])); } } } else if (propName == "s10_value") { for (num = 0; num < num2; num++) { if (flag) { ((XmlElement)oXml.DocumentElement.ChildNodes.Item(1).ChildNodes.Item(num)).SetAttribute("value", Convert.ToString(list[num])); } else { ((XmlElement)oXml.DocumentElement.ChildNodes.Item(num)).SetAttribute("value", Convert.ToString(list[num])); } } } else if (propName == "s10_link") { for (num = 0; num < num2; num++) { if (flag) { ((XmlElement)oXml.DocumentElement.ChildNodes.Item(1).ChildNodes.Item(num)).SetAttribute("link", Convert.ToString(list[num])); } else { ((XmlElement)oXml.DocumentElement.ChildNodes.Item(num)).SetAttribute("link", Convert.ToString(list[num])); } } } else if (propName.EndsWith("_value")) { int num4 = Convert.ToInt32(propName.Substring(1, 2)); for (num = 0; num < num2; num++) { ((XmlElement)oXml.DocumentElement.ChildNodes.Item(num4 - 9).ChildNodes.Item(num)).SetAttribute("value", Convert.ToString(list[num])); } } else if (propName.EndsWith("_link")) { int num5 = Convert.ToInt32(propName.Substring(1, 2)); for (num = 0; num < num2; num++) { ((XmlElement)oXml.DocumentElement.ChildNodes.Item(num5 - 9).ChildNodes.Item(num)).SetAttribute("link", Convert.ToString(list[num])); } } else if (propName.EndsWith("_name")) { int num6 = Convert.ToInt32(propName.Substring(1, 2)); ((XmlElement)oXml.DocumentElement.ChildNodes.Item(num6 - 9)).SetAttribute("seriesName", Convert.ToString(list[0])); } } }
private void setColor(Chart Chart1, ChartParam servletrequest, string stype) { string str = servletrequest.getParameter(stype); if ((str != null) && (str.Length != 0)) { try { Color color = ColorTranslator.FromHtml(str); switch (stype) { case "bgcolor": Chart1.BackColor = (color); return; case "bgcolor2": Chart1.BackGradientEndColor = color; return; case "areabgcolor": Chart1.ChartAreas["area1"].BackColor = color; return; case "areabgcolor2": Chart1.ChartAreas["area1"].BackGradientEndColor = color; return; case "bordercolor": Chart1.BorderColor = color; return; case "areabordercolor": Chart1.ChartAreas["area1"].BorderColor = color; return; case "titlecolor": Chart1.Titles[0].Color = color; return; case "xtitlecolor": Chart1.ChartAreas["area1"].AxisX.TitleColor = color; return; case "xlabelcolor": Chart1.ChartAreas["area1"].AxisX.LabelStyle.FontColor = color; return; case "ytitlecolor": Chart1.ChartAreas["area1"].AxisY.TitleColor = color; return; case "ylabelcolor": Chart1.ChartAreas["area1"].AxisY.LabelStyle.FontColor = color; return; case "legendcolor": Chart1.Legends["default"].FontColor = color; return; case "legendbgcolor": Chart1.Legends["default"].BackColor = color; return; case "legendbgcolor2": Chart1.Legends["default"].BackGradientEndColor = color; return; } } catch (Exception) { } } }
private byte[] cal(UnitSet props, StringBuilder sb) { ChartParam servletrequest = new ChartParam(this, props); CellExt current = this.cs.Current; Chart chart = new Chart(); string str = servletrequest.getParameter("skin"); if ((str != null) && (str.Length > 0)) { chart.BorderSkin.SkinStyle = (BorderSkinStyle)Enum.Parse(typeof(BorderSkinStyle), str); } chart.MapEnabled = true; chart.RenderType = RenderType.ImageTag; chart.ImageUrl = @".\ChartPic_#SEQ(200,30)"; chart.ChartAreas.Add("area1"); if (servletrequest.getParameter("isxgrid") == "0") { chart.ChartAreas["area1"].AxisX.MajorGrid.Enabled = false; chart.ChartAreas["area1"].AxisX.MinorGrid.Enabled = false; } if (servletrequest.getParameter("isygrid") == "0") { chart.ChartAreas["area1"].AxisY.MajorGrid.Enabled = false; chart.ChartAreas["area1"].AxisY.MinorGrid.Enabled = false; } if (servletrequest.getParameter("is3d") == "0") { chart.ChartAreas["area1"].Area3DStyle.Enable3D = false; } else { chart.ChartAreas["area1"].Area3DStyle.Enable3D = true; } this.setColor(chart, servletrequest, "bgcolor"); this.setColor(chart, servletrequest, "areabgcolor"); this.setColor(chart, servletrequest, "bordercolor"); this.setColor(chart, servletrequest, "areabordercolor"); this.setColor(chart, servletrequest, "bgcolor2"); this.setColor(chart, servletrequest, "areabgcolor2"); this.setValue(chart, servletrequest, "title"); this.calExpand(chart, servletrequest, "xlabel"); this.setValue(chart, servletrequest, "xtitle"); this.calExpand(chart, servletrequest, "ylabel"); this.setValue(chart, servletrequest, "ytitle"); for (int i = 10; i < 100; i++) { this.calExpand(chart, servletrequest, "s" + Convert.ToString(i) + "_value"); } if (servletrequest.getParameter("islegend") == "0") { chart.Legends.Clear(); } else { this.setFont(chart, servletrequest, "legendfont"); this.setColor(chart, servletrequest, "legendcolor"); this.setColor(chart, servletrequest, "legendbgcolor"); this.setColor(chart, servletrequest, "legendbgcolor2"); } this.cs.Current = current; int num2 = 0; string s = servletrequest.getParameter("width"); if (s == null) { num2 = this.getCellWidth(); servletrequest.setParameter("width", num2.ToString()); } else { num2 = int.Parse(s); } int num3 = 0; string str3 = servletrequest.getParameter("height"); if (str3 == null) { num3 = this.getCellHeight(); servletrequest.setParameter("height", num3.ToString()); } else { num3 = int.Parse(str3); } chart.Width = ((System.Web.UI.WebControls.Unit)num2); chart.Height = ((System.Web.UI.WebControls.Unit)num3); int num4 = 0; string str4 = servletrequest.getParameter("ChartImageFormat"); if ((str4 != null) && (str4.Length > 0)) { num4 = Convert.ToInt32(str4); } MemoryStream imageStream = new MemoryStream(); chart.Save(imageStream, (ChartImageFormat)num4); sb.Append(this.getMapStr(chart)); return(imageStream.ToArray()); }
private void calExpand(Chart Chart1, ChartParam servletrequest, string propName) { string expStr = servletrequest.getParameter(propName); if ((expStr != null) && (expStr.Trim().Length > 0)) { int num = 0; object obj2 = new ExpParse(this.cs, expStr).calculate(); ArrayList list = this.getListValue(obj2, null, null, false); string str2 = servletrequest.getParameter("maxcols"); int count = -1; if (((str2 != null) && (str2.Trim().Length > 0)) && !str2.Equals("0")) { count = Convert.ToInt32(str2); } if ((list.Count < count) || (count <= 0)) { count = list.Count; } if (propName == "xlabel") { this.p_valueList = list; for (num = 0; num < count; num++) { CustomLabel label = new CustomLabel { Text = (string)list[num], From = num + 0.5, To = (num + 0.5) + 1.0 }; Chart1.ChartAreas["area1"].AxisX.CustomLabels.Add(label); } Chart1.ChartAreas["area1"].AxisX.LabelsAutoFit = false; this.setColor(Chart1, servletrequest, "xlabelcolor"); this.setFont(Chart1, servletrequest, "xlabelfont"); Chart1.ChartAreas["area1"].AxisX.LabelStyle.OffsetLabels = false; if (servletrequest.getParameter("isxlabelangle") == "1") { Chart1.ChartAreas["area1"].AxisX.LabelStyle.FontAngle = 90; } } else if (propName == "ylabel") { Chart1.ChartAreas["area1"].AxisY.LabelsAutoFit = false; this.setColor(Chart1, servletrequest, "ylabelcolor"); this.setFont(Chart1, servletrequest, "ylabelfont"); } else { string seriesNo = propName.Substring(0, 4); Chart1.Series.Add(propName); string s = servletrequest.getParameter(seriesNo + "charttype"); if (s != null) { try { int num3 = int.Parse(s); Chart1.Series[propName].Type = (SeriesChartType)num3; } catch (Exception) { Chart1.Series[propName].Type = this.getChartType(s); } } Chart1.Series[propName].Points.DataBindXY(this.p_valueList, new IEnumerable[] { list }); if (servletrequest.getParameter(seriesNo + "isvaluelabel") == "1") { Chart1.Series[propName].ShowLabelAsValue = true; } this.setSeriesColor(Chart1, servletrequest, propName, seriesNo, "color"); this.setSeriesColor(Chart1, servletrequest, propName, seriesNo, "color2"); this.setSeriesColor(Chart1, servletrequest, propName, seriesNo, "bordercolor"); this.setSeriesInt(Chart1, servletrequest, propName, seriesNo, "BackGradientType"); this.setSeriesInt(Chart1, servletrequest, propName, seriesNo, "ShadowOffset"); this.setSeriesInt(Chart1, servletrequest, propName, seriesNo, "BorderWidth"); this.setSeriesInt(Chart1, servletrequest, propName, seriesNo, "BorderStyle"); this.setSeriesStr(Chart1, servletrequest, propName, seriesNo, "Href"); this.setSeriesStr(Chart1, servletrequest, propName, seriesNo, "LegendHref"); this.setSeriesStr(Chart1, servletrequest, propName, seriesNo, "MapAreaAttributes"); this.setSeriesStr(Chart1, servletrequest, propName, seriesNo, "LegendMapAreaAttributes"); this.setSeriesStr(Chart1, servletrequest, propName, seriesNo, "CustomAttributes"); this.setSeriesStr(Chart1, servletrequest, propName, seriesNo, "name"); } } }