项目中有报表图形化的需求 于是开始在网上找第三方chart控件因时间紧迫大至确定了几个候选一Office带的OWC控件二ComponentOne三Web Chart本文将讲解ASPNET报表控件
OWC似乎使用者居多但看见有网友在帖中抱怨OWC在使用时需要许可证书于是将其排除我可不想BOSS在看报表时弹出一个没有许可证书的窗口
接着找到了ComponentOne的Web chart做出的各种效果图效果极佳我一下子被迷住了决定就是它于是马不停蹄的下了最新版多M的安装文件又花一上午找了个可以用的注册码再找了篇教程OK万事俱备兴匆匆的开始写代码需求不复杂在一个页面上画出多条折线图即可根据以往经验这种大型商业共享软件在官方站点上看两个Example顶多一小时绝对能搞定的但结果让我非常的恼火官方的Example简单的它偏不提供弄些什么AJAX的一大堆实现辅助效果的代码你要找的核心的那三四行打死也找不到好像就怕你一下子把它的Example看明白了历来讨厌这种软件于是卸载删除等全部弄完一天过去了
还好后来找到了Web Chart代码超简洁效果也还不错写些简单的ASPNET报表控件示例供大家参考
ASPNET报表控件一折线图
)thisstylewidth=;>
//引用命名空间
using WebChart;
//定义一个颜色数组供循环时为不同的记录填充不同的颜色
private string[] myColor = new string[]
{
Tomato//西红柿
Black
Gold
Blue
Green
Orange
Pink//粉红
Violet//紫罗兰
Orchid//淡紫色
Lime//亮绿
Tan//茶色
Red
Navy//橘红
};
//用静态方式示例了画出一条两个点的最简单折线实际项目据此做循环而以
private void doIt()
{
//创建折线对象
LineChart myChart = new LineChart();
//为折线填充颜色
myChartLineColor = ColorFromName(myColor[]);
myChartFillColor = ColorFromName(myColor[]);
myChartLineMarker = new DiamondLineMarker( ColorFromName(myColor[]) ColorFromName(myColor[]));
//图例说明
myChartLegend = 折线一;
//添加第一个点参数一为x座标上的名称参数二为y座标上的值
myChartDataAdd(new ChartPoint(一 floatParse()));
//添加第二个点
myChartDataAdd(new ChartPoint(二 floatParse()));
//chart为控件ID
thischartChartsAdd(myChart);
thischartRedrawChart();
}
ASPNET报表控件二柱状图
image onmousewheel=javascript:return big(this) alt=柱状图 src=http://imgeducitycn/img_///png onload=javascript:if(thiswidth>)thisstylewidth=; border=>
//颜色数组
private string[] myColor = new string[]
{
Fuchsia
Black
Gold
Blue
HotPink
Orange
Peru
DodgerBlue
Lime
Tan
Red
GreenYellow
DarkGreen
DimGray
Orchid
};
//调用该方法生成柱状图
private void bindchart()
{
//获取一个DataTable具体函数略
DataTable dt = thisgetdt();
if (dt != null)
{
if (dtRowsCount > )
{
//遍历DataTable为每条记录生成一个柱状
for (int i = ; i < dtRowsCount; i++)
{
//创建对象
ColumnChart mychart = new ColumnChart();
//设置柱子宽度
mychartMaxColumnWidth = ;
//颜色
mychartFillColor = ColorFromName(thismyColor[i]);
//在柱子上显示数量
mychartDataLabelsVisible = true;
//数量的字体
mychartDataLabelsFont = new Font(Verdana );
//添加
mychartDataAdd(new ChartPoint( floatParse(dtRows[i][num]ToString())));
//备注
mychartLegend = dtRows[i][name]ToString();
thischartChartsAdd(mychart);
}
//辅助设置
//背景色
chartBackgroundColor = ColorFromArgb( );
chartYAxisFontForeColor = ColorFromArgb( );
chartXAxisFontForeColor = ColorFromArgb( );
//内部线条
chartBorderColor = ColorFromArgb( );
//边框样式
chartBorderStyle = BorderStyleNone;
//y最大值
double max = doubleParse(dtCompute(MAX(num))ToString());
//递增值
int intv = ;
//数量小于的情况
if (max < )
{
max = ;
}
//大于的情况
else
{
intintv = intParse(MathCeiling(max/)ToString());
max += intv;
}
//设置Y轴终点值
chartYCustomEnd = intParse(maxToString());
//y递增值
chartYValuesInterval = intv;
//生成
thischartRedrawChart();
}
}
}