原創|其它|編輯:郝浩|2012-10-23 10:46:36.000|閱讀 1116 次
概述:本文將詳細講解如何使用 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@fc6vip.cn
文章轉載自:新浪博客