• <menu id="w2i4a"></menu>
  • logo Flash圖表控件 FusionCharts 使用教程

    文檔首頁>>Flash圖表控件 FusionCharts 使用教程>>FusionCharts使用教程:利用C#創(chuàng)建各類動(dòng)態(tài)圖表

    FusionCharts使用教程:利用C#創(chuàng)建各類動(dòng)態(tài)圖表


    曾經(jīng)在在PHP中使用FusionCharts一文中介紹如何在PHP中使用FusionCharts,并簡要說明setDataURL(srcUrl)和setJSONData(jsonStr)這兩種數(shù)據(jù)格式。本文主要介紹如何利于C#創(chuàng)建FusionCharts圖表。

    1、在項(xiàng)目引用中添加FusionCharts.dll

    2、生成XML格式的字符串與選定圖表對應(yīng)的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應(yīng)用中直接嵌入HTML,在Windows中采用WebBrowser類中DocumentText屬性設(shè)置顯示Flash圖

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();