mschart顯示狀態的問題,請大神幫忙

xutao650 2012-09-28 11:13:32
橫軸為時間,縱軸為幾臺,表格數據如下:



幾臺代碼 狀態類型 幾臺類型 開始時間 結束時間 持續時間(分鐘) 修改人員

AFA701 IDLE M 2012/8/28 上午 08:00:00 2012/9/22 上午 08:00:00 36000 系統管理者
AFA702 IDLE M 2012/8/28 上午 08:00:00 2012/9/22 上午 08:00:00 36000 系統管理者
AFA703 IDLE M 2012/8/28 上午 08:00:00 2012/9/22 上午 08:00:00 36000 系統管理者
AFA704 IDLE M 2012/8/29 下午 02:33:14 2012/9/22 上午 08:00:00 34166 haihong
AFA704 RUN M 2012/8/29 下午 02:32:18 2012/8/29 下午 02:33:14 0 haihong
AFA704 IDLE M 2012/8/28 上午 08:00:00 2012/8/29 下午 02:32:18 1832 系統管理者
AFA705 IDLE M 2012/8/28 上午 08:00:00 2012/9/22 上午 08:00:00 36000 系統管理者
AFA706 IDLE M 2012/8/28 上午 08:00:00 2012/9/22 上午 08:00:00 36000 系統管理者
AFA707 IDLE M 2012/8/29 下午 02:34:26 2012/9/22 上午 08:00:00 34165 haihong
AFA707 RUN M 2012/8/29 下午 02:20:49 2012/8/29 下午 02:21:21 0 haihong
AFA707 IDLE M 2012/8/29 下午 02:21:21 2012/8/29 下午 02:21:38 0 haihong
AFA707 RUN M 2012/8/29 下午 02:21:38 2012/8/29 下午 02:21:56 0 haihong
AFA707 IDLE M 2012/8/29 下午 02:21:56 2012/8/29 下午 02:24:47 2 haihong
AFA707 RUN M 2012/8/29 下午 02:24:47 2012/8/29 下午 02:30:28 5 haihong
AFA707 IDLE M 2012/8/29 下午 02:30:28 2012/8/29 下午 02:34:12 3 haihong
AFA707 RUN M 2012/8/29 下午 02:34:12 2012/8/29 下午 02:34:26 0 haihong
AFA707 IDLE M 2012/8/28 上午 08:00:00 2012/8/29 下午 02:20:49 1820 系統管理者
AFA708 IDLE M 2012/8/28 上午 08:00:00 2012/9/22 上午 08:00:00 36000 系統管理者
AFA709 IDLE M 2012/8/28 上午 08:00:00 2012/9/22 上午 08:00:00 36000 系統管理者
AFA710 IDLE M 2012/8/28 上午 08:00:00 2012/9/22 上午 08:00:00 36000 系統管理者
AFA711 IDLE M 2012/8/28 上午 08:00:00 2012/9/22 上午 08:00:00 36000 系統管理者

...全文
119 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangchengfck1 2012-09-28
  • 打赏
  • 举报
回复
你做的是web版的还是客户端windows程序!
liangchengfck1 2012-09-28
  • 打赏
  • 举报
回复
我用的是vs2010 里面有个chart控件,功能已经写好你参考下吧!这个功能应该符合你的要求!
我做的是折线图、和统计图一样。chart属性里面有个series集合 里面有个charTtype属性改成Column就OK了!
刚刚把控制台程序怎么生成图片并保持到指定的目录做好了!你有福了!一开始不知道怎么写很正常!
先介绍下我的功能!
数据结构
type(Web下载.Wap下载两种类型)username,datestart(开始时间),dateend(结束时间)
W 张三 2012-11-11 00:00:00 2012-11-12 00:00:00
W 张三 2012-11-11 00:00:00 2012-11-12 00:00:00
W 张三 2012-11-11 00:00:00 2012-11-12 00:00:00
W 张三 2012-11-11 00:00:00 2012-11-12 00:00:00
M 张三 2012-11-11 00:00:00 2012-11-12 00:00:00

结构和你差不多!

1.按照每周为单位 统计出username每周的下载趋势图 分W 、M两种类型
2.按照每月为单位 统计出username每周的下载趋势图 分W 、M两种类型
3.按照每天(前30天)为单位 统计出username每周的下载趋势图 分W 、M两种类型
控制台程序OR windows程序 or web bs的程序其实都一样!现在午休!1点发!sorry!

six-years 2012-09-28
  • 打赏
  • 举报
回复
兄弟 说清楚点嘛 你那MSCHART绘制的图形是什么图 还有你那状态要怎么显示 显示在哪
liangchengfck1 2012-09-28
  • 打赏
  • 举报
回复
我以前做过一个酒店的系统!N个房间 分为 有人、空闲、打扫三种类型 不同类型不同的颜色。
比如有人住了就好像你那个机器运行了 就显示黄色 机器空闲显示绿色 机器坏了显示红色
liangchengfck1 2012-09-28
  • 打赏
  • 举报
回复
一种颜色代表一个状态,用来显示各个几台在各个时间段内是什么状
liangchengfck1 2012-09-28
  • 打赏
  • 举报
回复
横轴为时间,纵轴为几台,表格数据如下:

y 台(y显示的是台的数量还是台型号,如果是数量完全没问题,如果是类型的话应该也没问题,只要group by 几台就ok了)
x时间
但是如果还有把状态加上去 也没问题 没个状态一种颜色就ok了!



几台代码 状态类型 几台类型 开始时间 结束时间 持续时间(分钟) 修改人员

用stackedbar100,一种颜色代表一个状态,用来显示各个几台在各个时间段内是什么状
xutao650 2012-09-28
  • 打赏
  • 举报
回复
台資企業。。。好吧。。等下次把圖放上來再問吧,先結了[Quote=引用 12 楼 的回复:]

用stackedbar100,一種顏色代表一個狀態,用來顯示各個幾臺在各個時間段內是什么狀態的。

搞什么繁体!
[/Quote]
liangchengfck1 2012-09-28
  • 打赏
  • 举报
回复
用stackedbar100,一種顏色代表一個狀態,用來顯示各個幾臺在各個時間段內是什么狀態的。

搞什么繁体!
liangchengfck1 2012-09-28
  • 打赏
  • 举报
回复
这个功能就靠sql语句!比如说求每天的消耗记录 那就是按天位单位、求出天的时间 记得 把时 分 秒 去掉! 不去的话group by 不好求! 分组他就是求相同的为一组,你 时 分 秒 不去怎么分!一天要分多少个组!如果去掉那一个就一条记录(2012-12-12)! 然后再
sum
一下流量的字段就得到每天的和了!
说到现在你要做什么都不清楚!哎!楼主…… 不过思路都是一样的!

web如果你不需要重另一个页面带值过来的话!把chart控件拉出来他会教你怎么走了!连写都不用没!不过这个是死的只有你刷新页面才能获得最新数据!如果你一打开就显示图的话那把chart拉出来 数据源》查询》条件》什么什么的就ok了!



liangchengfck1 2012-09-28
  • 打赏
  • 举报
回复
都一样!我用的是chart控件!一切ok!
web的 windows的 或者控制台的用的都是chart控件!
xutao650 2012-09-28
  • 打赏
  • 举报
回复
做的web版的
[Quote=引用 3 楼 的回复:]

你做的是web版的还是客户端windows程序!
[/Quote]
xutao650 2012-09-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

兄弟 说清楚点嘛 你那MSCHART绘制的图形是什么图 还有你那状态要怎么显示 显示在哪
[/Quote]
用stackedbar100,一種顏色代表一個狀態,用來顯示各個幾臺在各個時間段內是什么狀態的。
liangchengfck1 2012-09-28
  • 打赏
  • 举报
回复
--sql数据库 就函数不一样!
--求每周记录
--Statistical_number流量 开始时间Statistical_data_Start

select sum(Statistical_number)as 流量和,datepart(week,Statistical_data_Start)as weeks from Statistical where 1=1 
group by datepart(week,Statistical_data_Start)

--去掉时分秒 每月消耗记录
select sum(Statistical_number)as 流量和,Statistical_data_Start= convert(varchar(10),Statistical_data_Start,120) from Statistical 
group by Statistical_data_Start
liangchengfck1 2012-09-28
  • 打赏
  • 举报
回复
数据库是mysql的 如果是你sql或者oracle的话 可能要改sql语句里面的函数!3个功能就sql语句不一样别的都一样!一开始我想在表示层传sql语句的,上司说表示层最好不要出sql语句所以3个功能写了3个方法,(三层话连表示层9个方法)不然传sql语句一个就连表示层2个方法就行了)!这是cmd刷的功能我就写了2个方法!一个表示层getDaysTrafficByUsername()一个数据访层的daysTrafficSum!
如果是bs web的话保存路径如下:
dayChart.SaveImage("D:\\"+client+userName +"_Day.jpeg");
liangchengfck1 2012-09-28
  • 打赏
  • 举报
回复
//前30天的记录
public static DataTable daysTrafficSum(string username,string client,DateTime start, DateTime end)
{
DataTable dt = new DataTable();
StringBuilder sbl = new StringBuilder();
sbl.AppendFormat("SELECT username,client,round(sum(size/1000/1024),2)daysTrafficSum,DATE_FORMAT(date, '%Y-%m-%d')days from owa_isa ");
sbl.Append(" where username='" + username + "' and client='"+client+"' and action='A' and date between '" + start + "' and '" + end + "' GROUP BY days ");
dt = DBHelper.GetDataSet(sbl.ToString());
return dt;
}


DBHelper类
 public static DataTable GetDataSet(string safeSql)
{
con.Open();
DataSet ds = new DataSet();
MySqlCommand cmd = new MySqlCommand(safeSql, con);
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
da.Fill(ds);
con.Close();
con.Dispose();
return ds.Tables[0];
}


下面是表示层 不管bs或者cs的都一样!我用的是chart控件
//每天
//条件 用户姓名,下载类型,开始时间,结束时间
 private void getDaysTrafficByUsername(string userName,string client,DateTime start,DateTime end)
{
DataTable dt = new DataTable();
dt.Columns.Add("days");
dt.Columns.Add("daysTrafficSum");

dt = omaEntity.daysTrafficSum(userName,client, start, end); //调用业务层的方法

//设置图表的数据源
dayChart.DataSource = dt;

//设置图表Y轴对应项
dayChart.Series[0].XValueMember = "days";
dayChart.Series[0].YValueMembers = "daysTrafficSum";
dayChart.ChartAreas["ChartArea1"].AxisX.MajorGrid.Interval = 1;
dayChart.ChartAreas["ChartArea1"].AxisX.LabelStyle.Interval = 1;

dayChart.SaveImage("D:/img/"+client+userName +"_Day.jpeg",System.Drawing.Imaging.ImageFormat.Jpeg);//图片保存的目录
dayChart.DataBind();


}
yiyj_soft 2012-09-28
  • 打赏
  • 举报
回复

4,820

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧