彩票走势图

使用 FusionCharts 创建各类动态图表

原创|其它|编辑:郝浩|2012-10-23 10:46:36.000|阅读 1083 次

概述:本文将详细讲解如何使用 FusionCharts 创建各类动态图表,文中将以配以源代码说明。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

好多人应该都知道 FusionCharts强大的功能,来看看如何使用 FusionCharts 创建各类动态图表,文中将以配以源代码说明:

1、在项目引用中添加FusionCharts.dll

2、生成XML格式的字符串与选定图表对应的Flash文件,采用FusionCharts.RenderChartHTML生成HTML格式字符串。

 public string CreateCharts()
        {
            string caption;
            string graphicClass;
            string decimalPrecision;
            string formatNumberScale;
            string commandQuery;
            string strFlash = string.Empty;
            SqlConnection oConnection = new SqlConnection(Globals.ConnectionString);
            oConnection.Open();
            SqlCommand oCommand = oConnection.CreateCommand();
            oCommand.CommandText = "SELECT Caption, graphicClass, decimalPrecision, formatNumberScale, dataQuery FROM UT_CHARTS_GRAPH WHERE Id = " + ChartsSelect1.SelectedValue;
            SqlDataReader oReader = oCommand.ExecuteReader();
            if (!oReader.Read())
            {
                oReader.Close();
                return "";
            }
            caption = oReader[0].ToString() + " - " + DateSelect1.SelectedDate.ToString("yyyy-MM-dd");
            graphicClass = oReader[1].ToString();
            decimalPrecision = oReader[2].ToString();
            formatNumberScale = oReader[3].ToString();
            commandQuery = oReader[4].ToString();
            oReader.Close();
            string strXML = "<chart baseFont='宋体' baseFontSize='12' outCnvBaseFontSize='12' outCnvBaseFont='宋体' outCnvBaseFontColor='000000' caption='" + caption + "' decimalPrecision='" + decimalPrecision + "' formatNumberScale='" + formatNumberScale + "' ";
            if (graphicClass.ToLower() == "single")
            {
                strXML += " >";
                oCommand.CommandText = commandQuery;
                oCommand.Parameters.Add("@Date", SqlDbType.SmallDateTime).Value = DateSelect1.SelectedDate;
                oReader = oCommand.ExecuteReader();
                while (oReader.Read())
                {
                    strXML += "<set name='" + oReader[0].ToString() + "' value='" + oReader[1].ToString() + "'/>";
                }
                oReader.Close();
                strFlash = "FusionCharts/Line.swf";
                switch (ChartsView1.ChartTypeIndex)
                {
                    case 0:
                        strFlash = "FusionCharts/Line.swf";
                        break;
                    case 1:
                        strFlash = "FusionCharts/Spline.swf";
                        break;
                    case 2:
                        strFlash = "FusionCharts/Area2D.swf";
                        break;
                    case 3:
                        strFlash = "FusionCharts/SplineArea.swf";
                        break;
                    case 4:
                        strFlash = "FusionCharts/Column2D.swf";
                        break;
                    case 5:
                        strFlash = "FusionCharts/Column3D.swf";
                        break;
                    case 6:
                        strFlash = "FusionCharts/Doughnut2D.swf";
                        break;
                    case 7:
                        strFlash = "FusionCharts/Doughnut3D.swf";
                        break;
                    case 8:
                        strFlash = "FusionCharts/Pie2D.swf";
                        break;
                    case 9:
                        strFlash = "FusionCharts/Pie3D.swf";
                        break;
                    case 10:
                        strFlash = "FusionCharts/Bar2D.swf";
                        break;

                    default:
                        return "";
                }
            }
            else if (graphicClass.ToLower() == "multi")
            {
                strXML += " showValues='0'>";
                oCommand.CommandText = commandQuery;
                oCommand.Parameters.Add("@Date", SqlDbType.SmallDateTime).Value = DateSelect1.SelectedDate;
                oReader = oCommand.ExecuteReader();
                string categories = "";
                int datasetCount = oReader.FieldCount - 1;
                string[] datasets = new string[datasetCount];
                categories += "<categories>";
                for (int fieldNumber = 1; fieldNumber <= datasetCount; fieldNumber++)
                {
                    string name = oReader.GetName(fieldNumber);
                    datasets[fieldNumber-1] += "<dataset seriesName='" + name + "'>";
                }
                while (oReader.Read())
                {
                    categories += "<category label='" + oReader[0].ToString() + "' />";
                    for (int fieldNumber = 1; fieldNumber <= datasetCount; fieldNumber++)
                    {
                        datasets[fieldNumber-1] += "<set value='" + oReader[fieldNumber].ToString() + "' />";
                    }
                }
                oReader.Close();
                categories += "</categories>";
                strXML += categories;
                for (int fieldNumber = 1; fieldNumber <= datasetCount; fieldNumber++)
                {
                    datasets[fieldNumber-1] += "</dataset>";
                    strXML += datasets[fieldNumber-1];
                }
                strFlash = "FusionCharts/MSLine.swf";
                switch (ChartsView1.ChartTypeIndex)
                {
                    case 0:
                        strFlash = "FusionCharts/MSLine.swf";
                        break;
                    case 1:
                        strFlash = "FusionCharts/MSSpline.swf";
                        break;
                    case 2:
                        strFlash = "FusionCharts/MSArea.swf";
                        break;
                    case 3:
                        strFlash = "FusionCharts/MSSplineArea.swf";
                        break;
                    case 4:
                        strFlash = "FusionCharts/MSColumn2D.swf";
                        break;
                    case 5:
                        strFlash = "FusionCharts/MSColumn3D.swf";
                        break;
                    case 10:
                        strFlash = "FusionCharts/MSBar3D.swf";
                        break;
                    default:
                        return "";
                }
            }
            strXML += "<styles>";
            strXML += "<definition>";
            strXML += "<style name='FontStyle1' type='font' face='宋体' size='12' color='000000' bold='0' />";
            strXML += "<style name='AnimationStyle1' type='animation' param='_xScale' start='0' duration='0.5' />";
            strXML += "<style name='Shadow1' type='Shadow' color='CCCCCC' />";
            strXML += "</definition>";
            strXML += "<application>";
            strXML += "<apply toObject='Caption' styles='FontStyle1,Shadow1' />";
            strXML += "<apply toObject='Canvas' styles='AnimationStyle1' />";
            strXML += "<apply toObject='DataPlot' styles='Shadow1' />";
            strXML += "</application>    ";
            strXML += "</styles>";
            strXML += "</chart>";
            return FusionCharts.RenderChartHTML(strFlash, "", strXML, "myNext", "720", "440", false);
        }
        

3、在WEB应用中直接嵌入HTML,在Windows中采用WebBrowser类中DocumentText属性设置显示Flash图。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:新浪博客

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP