Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        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;
                }
            }
        }
Пример #3
0
        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;
                }
            }
        }
Пример #4
0
        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;
                }
            }
        }
Пример #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="QRCodes"/> class.
        /// </summary>
        /// <param name="size">The chart size.</param>
        /// <param name="text">The text to encode.</param>
        /// <param name="encodingType">Type of the encoding.</param>
        public QRCodes(ChartSize size, string text, EncodingType encodingType)
            : base(QRCodeType, size)
        {
            _data = new PlainParam("chl", HttpUtility.UrlPathEncode(text));

            // to reduce url length - do not add default encoding parameter
            if (DefaultEncoding != encodingType)
            {
                _encoding = new EncodingTypeParam(encodingType);
            }
        }
Пример #6
0
        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;
            }
        }
Пример #7
0
        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());
        }
Пример #8
0
        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]));
                }
            }
        }
Пример #9
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)
                {
                }
            }
        }
Пример #10
0
        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());
        }
Пример #11
0
        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");
                }
            }
        }