ASP.NET C#动态显示柱形图
来源:互联网 发布:路由器缺省域名是什么 编辑:程序博客网 时间:2024/04/28 20:44
很多人都问这个的效果,我整了个截图发上来
项目中的一个需求,不知道是不是正解,但是搞定之后觉得挺简单的,也没有用到什么插件,更不会有版权的问题,不过只是简单的柱形图而已,大家可以参照,有时忽悠一下boss或者客户还是不错的,呵呵
我是横向显示柱形图, 事先准备一个窄点的图,便于动态拉伸冒充柱形图,我准备的图是高30,宽11,如下图
左右一定不要有渐变或者是边框之类的,这样横着拉伸就不会有不清晰的情况出现,如果你是弄竖着的就注意上下的部分,一个道理。
我是六个柱形图的对比,界面上放Image1--Image6 默认显示上面图, 每个Image后面跟一个Lable, Label1-label6 对应显示柱形图的数值,label7是他们的和 (在赋值的时候,我还处理了没有数据的情况,显示另外一个图,如倒数第二个)
然后我是异步取六个数,如果取的数我就不说了,反正取了6个数值分别写到六个lable里,然后执行下面的代码,
下面的代码,大概的意思是对比六个数值,先取出最大的一个来,以这个最大的为标准,以柱形图最宽为300为限, 动态的算出各个图的比例并设置,设完图的宽后,再强制设置一下它原来的高, 我这里是30,因为你不设置高的话,图就按比例变了高度。
private void DrawImage()
...{
float valM = 0;
float valTemp = 0;
float valSum = 0;
if (IsNumeric(Label1.Text))
...{
valM = Convert.ToSingle(Label1.Text);
valSum = Convert.ToSingle(Label1.Text );
}
if (IsNumeric(Label2.Text))
...{
valSum += Convert.ToSingle(Label2.Text);
if (valM < Convert.ToSingle(Label2.Text))
valM = Convert.ToSingle(Label2.Text);
}
if (IsNumeric(Label3.Text))
...{
valSum += Convert.ToSingle(Label3.Text);
if (valM < Convert.ToSingle(Label3.Text))
valM = Convert.ToSingle(Label3.Text);
}
if (IsNumeric(Label4.Text))
...{
valSum += Convert.ToSingle(Label4.Text);
if (valM < Convert.ToSingle(Label4.Text))
valM = Convert.ToSingle(Label4.Text);
}
if (IsNumeric(Label5.Text))
...{
valSum += Convert.ToSingle(Label5.Text);
if (valM < Convert.ToSingle(Label5.Text))
valM = Convert.ToSingle(Label5.Text);
}
if (IsNumeric(Label6.Text))
...{
valSum += Convert.ToSingle(Label6.Text);
if (valM < Convert.ToSingle(Label6.Text))
valM = Convert.ToSingle(Label6.Text);
}
Label7.ToolTip = Convert.ToString(valSum);
valSum =(valSum /10000);
Label7.Text = "本年度 至今 征收总额" + valSum.ToString("N0") + "万元";
if (valM > 0)
...{
if (IsNumeric(Label1.Text))
...{
Image1.Width = Unit.Pixel(Convert.ToInt32(Convert.ToSingle(Label1.Text) / valM * 300));
Image1.Height = 30;
valTemp = Convert.ToSingle(Label1.Text) / 10000;
Label1.Text = valTemp.ToString("N0") + "万元";
}
if (IsNumeric(Label2.Text))
...{
Image2.Width = Unit.Pixel(Convert.ToInt32(Convert.ToSingle(Label2.Text) / valM * 300));
Image2.Height = 30;
valTemp = Convert.ToSingle(Label2.Text) / 10000;
Label2.Text = valTemp.ToString("N0") + "万元";
}
if (IsNumeric(Label3.Text))
...{
Image3.Width = Unit.Pixel(Convert.ToInt32(Convert.ToSingle(Label3.Text) / valM * 300));
Image3.Height = 30;
valTemp = Convert.ToSingle(Label3.Text) / 10000;
Label3.Text = valTemp.ToString("N0") + "万元";
}
if (IsNumeric(Label4.Text))
...{
Image4.Width = Unit.Pixel(Convert.ToInt32(Convert.ToSingle(Label4.Text) / valM * 300));
Image4.Height = 30;
valTemp = Convert.ToSingle(Label4.Text) / 10000;
Label4.Text = valTemp.ToString("N0") + "万元";
}
if (IsNumeric(Label5.Text))
...{
Image5.Width = Unit.Pixel(Convert.ToInt32(Convert.ToSingle(Label5.Text) / valM * 300));
Image5.Height = 30;
valTemp = Convert.ToSingle(Label5.Text) / 10000;
Label5.Text = valTemp.ToString("N0") + "万元";
}
if (IsNumeric(Label6.Text))
...{
Image6.Width = Unit.Pixel(Convert.ToInt32(Convert.ToSingle(Label6.Text) / valM * 300));
Image6.Height = 30;
valTemp = Convert.ToSingle(Label6.Text) / 10000;
Label6.Text = valTemp.ToString("N0") + "万元";
}
}
}
...{
float valM = 0;
float valTemp = 0;
float valSum = 0;
if (IsNumeric(Label1.Text))
...{
valM = Convert.ToSingle(Label1.Text);
valSum = Convert.ToSingle(Label1.Text );
}
if (IsNumeric(Label2.Text))
...{
valSum += Convert.ToSingle(Label2.Text);
if (valM < Convert.ToSingle(Label2.Text))
valM = Convert.ToSingle(Label2.Text);
}
if (IsNumeric(Label3.Text))
...{
valSum += Convert.ToSingle(Label3.Text);
if (valM < Convert.ToSingle(Label3.Text))
valM = Convert.ToSingle(Label3.Text);
}
if (IsNumeric(Label4.Text))
...{
valSum += Convert.ToSingle(Label4.Text);
if (valM < Convert.ToSingle(Label4.Text))
valM = Convert.ToSingle(Label4.Text);
}
if (IsNumeric(Label5.Text))
...{
valSum += Convert.ToSingle(Label5.Text);
if (valM < Convert.ToSingle(Label5.Text))
valM = Convert.ToSingle(Label5.Text);
}
if (IsNumeric(Label6.Text))
...{
valSum += Convert.ToSingle(Label6.Text);
if (valM < Convert.ToSingle(Label6.Text))
valM = Convert.ToSingle(Label6.Text);
}
Label7.ToolTip = Convert.ToString(valSum);
valSum =(valSum /10000);
Label7.Text = "本年度 至今 征收总额" + valSum.ToString("N0") + "万元";
if (valM > 0)
...{
if (IsNumeric(Label1.Text))
...{
Image1.Width = Unit.Pixel(Convert.ToInt32(Convert.ToSingle(Label1.Text) / valM * 300));
Image1.Height = 30;
valTemp = Convert.ToSingle(Label1.Text) / 10000;
Label1.Text = valTemp.ToString("N0") + "万元";
}
if (IsNumeric(Label2.Text))
...{
Image2.Width = Unit.Pixel(Convert.ToInt32(Convert.ToSingle(Label2.Text) / valM * 300));
Image2.Height = 30;
valTemp = Convert.ToSingle(Label2.Text) / 10000;
Label2.Text = valTemp.ToString("N0") + "万元";
}
if (IsNumeric(Label3.Text))
...{
Image3.Width = Unit.Pixel(Convert.ToInt32(Convert.ToSingle(Label3.Text) / valM * 300));
Image3.Height = 30;
valTemp = Convert.ToSingle(Label3.Text) / 10000;
Label3.Text = valTemp.ToString("N0") + "万元";
}
if (IsNumeric(Label4.Text))
...{
Image4.Width = Unit.Pixel(Convert.ToInt32(Convert.ToSingle(Label4.Text) / valM * 300));
Image4.Height = 30;
valTemp = Convert.ToSingle(Label4.Text) / 10000;
Label4.Text = valTemp.ToString("N0") + "万元";
}
if (IsNumeric(Label5.Text))
...{
Image5.Width = Unit.Pixel(Convert.ToInt32(Convert.ToSingle(Label5.Text) / valM * 300));
Image5.Height = 30;
valTemp = Convert.ToSingle(Label5.Text) / 10000;
Label5.Text = valTemp.ToString("N0") + "万元";
}
if (IsNumeric(Label6.Text))
...{
Image6.Width = Unit.Pixel(Convert.ToInt32(Convert.ToSingle(Label6.Text) / valM * 300));
Image6.Height = 30;
valTemp = Convert.ToSingle(Label6.Text) / 10000;
Label6.Text = valTemp.ToString("N0") + "万元";
}
}
}
- ASP.NET C#动态显示柱形图
- 报表的动态明细行的前端显示 C# ASP.net
- ASP.Net TreeView动态显示数据库数据
- asp.net ajax动态显示时间
- ASP.NET TreeView动态绑定数据库显示
- asp.net c# 动态读取 走马灯代码
- asp.net c# 动态读取 走马灯代码
- asp.net实现C#代码加亮显示
- asp.net实现C#代码加亮显示
- asp.net实现C#代码加亮显示
- asp.net实现C#代码加亮显示
- asp.net实现C#代码加亮显示
- Asp.Net C#程序代码动态添加asp:Menu节点
- asp.net + CSS实现动态菜单突出显示当前页面!
- Asp.net 利用Div固定表头+异步显示动态加载
- Asp.net 利用Div固定表头+异步显示动态加载
- asp.net中实现页面上动态显示系统时间
- asp.net TreeView动态绑定数据库显示数据
- 轻松获得网通、电信、铁通IP地址分配段
- EasyInstall —一个划时代的Python包管理器?
- Pro*C概述
- photokorn 信息泄露漏洞
- WSN学习计划
- ASP.NET C#动态显示柱形图
- 网工入门之经验小谈
- eclipse插件加入方法
- swt的真正内幕
- 服务器选购前的考虑
- SQL Server2000安装挂起问题解决方法
- 配置管理方案
- VMProtect 1.61
- 最方便的Eclipse打包JAR插件