Foxtable(狐表)用户栏目专家坐堂 → 通过分组统计表生成图表的问题


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

主题:通过分组统计表生成图表的问题

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


加好友 发短信
等级:婴狐 帖子:8 积分:163 威望:0 精华:0 注册:2018/1/8 9:01:00
通过分组统计表生成图表的问题  发帖心情 Post By:2018/3/9 15:55:00 [只看该作者]

我有一个数据表, 通过分组统计表生成图表的代码,提示无效的数据类型,不知道错在哪里?

Dim g As New GroupTableBuilder("统计表1", DataTables("数据"))
g.Groups.AddDef("公司")
g.Totals.AddDef("可供量")
g.SubTotal = True
g.FromServer = True
g.Filter = "[操作] = '选购'"
g.Build()
MainTable = Tables("统计表1")
Tables("统计表1").Sort = "可供量 DESC"

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("统计表1") '定义一个变量t引用数据表
Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系

Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = t.Rows.Count '图系的数据点数等于表的行数

For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置

    Series.X(i) = t.Rows(i)("公司") '指定水平坐标
    Series.Y(i) = t.Rows(i)("可供量") '指定垂直坐标
Next
[此贴子已经被作者于2018/3/9 15:56:15编辑过]

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


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

试试
Series.Y(i) = val(t.Rows(i)("可供量")) '指定垂直坐标

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


加好友 发短信
等级:婴狐 帖子:8 积分:163 威望:0 精华:0 注册:2018/1/8 9:01:00
  发帖心情 Post By:2018/3/9 16:03:00 [只看该作者]

还是不行

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


加好友 发短信
等级:婴狐 帖子:8 积分:163 威望:0 精华:0 注册:2018/1/8 9:01:00
  发帖心情 Post By:2018/3/9 16:15:00 [只看该作者]

请问该怎么解决啊?

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


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

上传具体例子测试

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/9 17:32:00 [只看该作者]

要这样处理,如

 

For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置
    Series.X(i) = t.Rows(i)("公司") '指定水平坐标
    Series.Y(i) = t.Rows(i)("可供量") '指定垂直坐标
Next

 

改成

 

For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置
    Series.X(i) = i
    Series.Y(i) = val(t.Rows(i)("可供量")) '指定垂直坐标

 Chart.AxisX.SetValueLabel(i, t.Rows(i)("公司")) '指定字符表示
Next

Chart.AxisX.AnnoWithLabels = True '启用字符标示

 

http://www.foxtable.com/webhelp/scr/0968.htm

 


 回到顶部