Foxtable(狐表)用户栏目专家坐堂 → 图表的跳过统计表用法


  共有7501人关注过本帖树形打印复制链接

主题:图表的跳过统计表用法

帅哥哟,离线,有人找我吗?
237756360
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:257 积分:2978 威望:0 精华:0 注册:2020/5/21 17:56:00
图表的跳过统计表用法  发帖心情 Post By:2022/8/20 13:46:00 [只看该作者]

图片点击可在新窗口打开查看
........................................................................
上图是名为“订单”的SQL数据表,每分钟记录一次数据。

求助:
我想用编码方式跳过生成统计表的方法生成图表显示张三全天每个整点的用电量,X轴为时间,Y轴为电量,代码应该如何更改
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim tbl As DataTable = DataTables("订单") '定义一个变量tbl引用数据表
Dim lst As New List(Of String)
lst.Add( "00:00")
lst.Add( "01:00")
lst.Add( "02:00")
lst.Add( "03:00")
lst.Add( "04:00")
lst.Add( "05:00")
lst.Add( "06:00")
lst.Add( "07:00")
lst.Add( "08:00")
lst.Add( "09:00")
lst.Add( "10:00")
lst.Add( "11:00")
lst.Add( "12:00")
lst.Add( "13:00")
lst.Add( "14:00")
lst.Add( "15:00")
lst.Add( "16:00")
lst.Add( "17:00")
lst.Add( "18:00")
lst.Add( "19:00")
lst.Add( "20:00")
lst.Add( "21:00")
lst.Add( "22:00")
lst.Add( "23:00")
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = lst.Count '设置图系的长度
For i As Integer = 0 To 23'指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = tbl.Find("用户 = '张三'") '指定垂直坐标
    Chart.AxisX.SetValueLabel(i, lst(i)) '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/20 14:21:00 [只看该作者]

……
dim  s as string = "2022-05-10"
Series.Length = lst.Count '设置图系的长度
For i As Integer = 0 To 23'指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = tbl.Find("用户 = '张三' and 时间=#“ & s & " " & lst(i) & ”#") '指定垂直坐标
    Chart.AxisX.SetValueLabel(i, lst(i)) '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示

 回到顶部
帅哥哟,离线,有人找我吗?
237756360
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:257 积分:2978 威望:0 精华:0 注册:2020/5/21 17:56:00
  发帖心情 Post By:2022/8/20 14:36:00 [只看该作者]

未将对象引用设置到对象的实例。帮忙看看错在哪儿,我上传实例了,麻烦蓝版了!
[此贴子已经被作者于2022/8/20 15:27:54编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/20 15:07:00 [只看该作者]

应该有些整点的数据不存在。

比如是要显示整点比如“01:00”这个时间点的数据?还是说把01:00~02:00之间的数据求和作为01:00”的数据?

 回到顶部
帅哥哟,离线,有人找我吗?
237756360
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:257 积分:2978 威望:0 精华:0 注册:2020/5/21 17:56:00
  发帖心情 Post By:2022/8/20 15:10:00 [只看该作者]

是整点的唯一数据 例如:   01:00:00

 回到顶部
帅哥哟,离线,有人找我吗?
237756360
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:257 积分:2978 威望:0 精华:0 注册:2020/5/21 17:56:00
  发帖心情 Post By:2022/8/20 15:11:00 [只看该作者]

我上传实例了,实例中我链接了数据库,数据全!帮忙看看蓝版,我实在是弄不明白了
[此贴子已经被作者于2022/8/20 16:07:56编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/20 15:21:00 [只看该作者]

加一个判断自己测试就知道了

dim dr as datarow = tbl.Find("用户 = '张三' and 时间=#“ & s & " " & lst(i) & ”#")
if dr is nothing then
Series.Y(i) =  0 '指定垂直坐标
output.show("张三没有整点数据:" & s & " " & lst(i))
else
Series.Y(i) =  dr("电量")
edn if

 回到顶部
帅哥哟,离线,有人找我吗?
237756360
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:257 积分:2978 威望:0 精华:0 注册:2020/5/21 17:56:00
  发帖心情 Post By:2022/8/20 15:34:00 [只看该作者]

未将对象引用设置到对象的实例。这个就是找不到原因。。。
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim tbl As DataTable = DataTables("订单") '定义一个变量tbl引用数据表
Dim lst As New List(Of String)
lst.Add( "00:00")
lst.Add( "01:00")
lst.Add( "02:00")
lst.Add( "03:00")
lst.Add( "04:00")
lst.Add( "05:00")
lst.Add( "06:00")
lst.Add( "07:00")
lst.Add( "08:00")
lst.Add( "09:00")
lst.Add( "10:00")
lst.Add( "11:00")
lst.Add( "12:00")
lst.Add( "13:00")
lst.Add( "14:00")
lst.Add( "15:00")
lst.Add( "16:00")
lst.Add( "17:00")
lst.Add( "18:00")
lst.Add( "19:00")
lst.Add( "20:00")
lst.Add( "21:00")
lst.Add( "22:00")
lst.Add( "23:00")
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Dim s As String = "2022-08-10 "
Series.Length = lst.Count '设置图系的长度
For i As Integer = 0 To 23'指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = tbl.Find("用户 = '张三' and 时间=#" & s & " " & lst(i) & "#") '指定垂直坐标
    Chart.AxisX.SetValueLabel(i, lst(i)) '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111419 积分:567171 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/20 15:38:00 [只看该作者]

看7楼

 回到顶部
帅哥哟,离线,有人找我吗?
237756360
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:257 积分:2978 威望:0 精华:0 注册:2020/5/21 17:56:00
  发帖心情 Post By:2022/8/20 16:19:00 [只看该作者]

处理好了,还是蓝版厉害!
[此贴子已经被作者于2022/8/20 16:25:48编辑过]

 回到顶部
总数 16 1 2 下一页