曾经在在PHP中使用FusionCharts一文中介绍如何在PHP中使用FusionCharts,并简要说明setDataURL(srcUrl)和setJSONData(jsonStr)这两种数据格式。本文主要介绍如何利于C#创建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图
相关推荐
利用FusionCharts 实现数据图表展示 利用FusionCharts 实现数据图表展示 利用FusionCharts 实现数据图表展示 利用FusionCharts 实现数据图表展示
FusionCharts使用源码例子,结合FusionCharts使用
FusionCharts图表组件简单使用
FusionCharts参数及功能特性详解实例
FusionCharts动态图表实现代码,最精简版,不混杂多余代码,适合初学的你
FusionCharts详细教程,帮助初学者快速入门。
FusionCharts图表控件中文版使用手册。构成fusionCharts的三要素:swf、data.xml、承载图表的载体
利用FusionCharts组件制作动态Web统计图表
用fusioncharts使用json格式数据展示图表
FusionCharts是如何在网页呈现图表
创建数据库驱动图表Creating Database driven Charts
利用FusionCharts XT为iPhone和iPad应用创建图表的实例,支持重力感应。
本系列文章主要整理和汇总了Flash图表组件FusionCharts的一些技术文档,希望对FusionCharts使用者有帮助,欢迎交流!
fusioncharts图表,用于统计分析,适合web开发人员,界面美观,使用简单。
fusioncharts的c#封装类,直接根据你的dataset生成fusionchart需要的xml ,大简化了编程。 支持的FusionCharts 种类如下 Line: ScrollLine2D: Column2D: Column3D: Bar2D: Pie2D: Pie3D: Line: Area2D: Doughnut2D:...
FusionCharts是一个Flash的图表组件,它可以用来制作数据动画图表,其中动画效果用的是Adobe ...使用XML作为其数据接口, FusionCharts充分利用流体美丽的Flash创建紧凑,互动性和视觉逮捕图表。 内附中文开发指南
具体讲述FusionCharts图表的应用及开发。
FusionCharts JavaScript图表库的一个简单轻巧的官方React组件。 react-fusioncharts使您可以轻松地在React应用程序或项目中添加JavaScript图表。 Github回购: : 文档: : 支持: : 融合图 官方网站: : ...
FusionCharts是一个Flash的图表组件,它可以用来制作数据动画图表,其中动画效果用的是Adob...使用XML作为其数据接口, FusionCharts充分利用流体美丽的Flash创建紧凑,互动性和视觉逮捕图。实质是用来显示图表的工具。
FusionCharts v3图表 例题