Foxtable(狐表)用户栏目专家坐堂 → [求助]条形图


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

主题:[求助]条形图

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


加好友 发短信
等级:婴狐 帖子:37 积分:338 威望:0 精华:0 注册:2016/7/3 21:13:00
[求助]条形图  发帖心情 Post By:2016/8/3 20:57:00 [显示全部帖子]

有两列内容“工作人员”和“工作类型”(列里面的内容都用重复值)
想做一个一条形图表 统计每个人的不同工作类型的工作数量,这个代码该怎么写?

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


加好友 发短信
等级:婴狐 帖子:37 积分:338 威望:0 精华:0 注册:2016/7/3 21:13:00
  发帖心情 Post By:2016/8/3 21:53:00 [显示全部帖子]

自己写的问题很多 显示的不是想要的

'图表2
Chart = e.Form.Controls("Chart2") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
Dim cm As Integer = DataTables("任务信息").Compute("Count(工作类型)") '计算总数量
For Each lm As String In DataTables("任务信息").GetValues("工作类型")
For Each rm As String In DataTables("任务信息").GetValues("分配给")
Dim l As Double = DataTables("任务信息").compute("Count(工作类型)","工作类型='" & lm & "'")
Chart.SeriesList.Clear() '清除图表原来的图系
        Series = Chart.SeriesList.Add() '增加一个图系
        Series.Length = 1 '一个系列只能包括一个值
        Series.Text = lm '设置图系的标题
        Series.X.DataField = rm 'X轴绑定到产品列
        Series.Y.DataField = l '设置Y轴的绑定列
Next
Next
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)

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


加好友 发短信
等级:婴狐 帖子:37 积分:338 威望:0 精华:0 注册:2016/7/3 21:13:00
  发帖心情 Post By:2016/8/3 22:20:00 [显示全部帖子]

想统计“分配给”和“工作类型”这两列
比如甲的“工作设计”和”加工图纸“等数量各有多少?乙的“工作设计”和”加工图纸“等数量各有多少?
图片点击可在新窗口打开查看此主题相关图片如下:图片1.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:婴狐 帖子:37 积分:338 威望:0 精华:0 注册:2016/7/3 21:13:00
  发帖心情 Post By:2016/8/4 20:55:00 [显示全部帖子]

'图表2
Chart = e.Form.Controls("Chart2") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
Dim b As New GroupTableBuilder("统计表1",DataTables("任务信息"))
b.Groups.AddDef("分配给") '添加客户列用于分组
b.Groups.AddDef("工作类型") '添加产品列用于分组
b.Totals.AddDef("工作内容",  AggregateEnum.Count) '添加数量列用于统计
b.Build '生成统计表 
MainTable = Tables("统计表1") '打开生成的统计表
Chart.DataSource = "统计表1" '设置绑定表
For Each gm As String In DataTables("统计表1").GetValues("工作类型")
Dim c As Double = DataTables("统计表1").compute("Count(工作内容)","工作类型='" & gm & "'")
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加第一个图系
Series.Text = gm
Series.X.DataField = "分配给" 'X轴绑定到产品列
Series.Y.DataField = c 'Y轴绑定到数量列
Next
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)


 还是没弄明白。。。。

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


加好友 发短信
等级:婴狐 帖子:37 积分:338 威望:0 精华:0 注册:2016/7/3 21:13:00
  发帖心情 Post By:2016/8/4 21:18:00 [显示全部帖子]

就是想根据左边这样的表生成右边这样的图表, 代码改怎么写?
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看
多指点指点

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


加好友 发短信
等级:婴狐 帖子:37 积分:338 威望:0 精华:0 注册:2016/7/3 21:13:00
  发帖心情 Post By:2016/8/5 13:25:00 [显示全部帖子]

Dim g As New CrossTableBuilder("统计表1", DataTables("任务信息"))
g.HGroups.AddDef("分配给")
g.VGroups.AddDef("工作类型")
g.Totals.AddDef("工作类型", AggregateEnum.Count, "工作类型")
g.Build()
Dim t As Table = Tables("统计表1") '定义一个变量t引用数据表
Chart = e.Form.Controls("Chart2") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
Chart.DataSource = "统计表1" '设置绑定表
Chart.SeriesList.Clear() '清除图表原来的图系
For Each c As Col In t.Cols
    If c.Name <> "分配给" Then
        Series = Chart.SeriesList.Add() '增加一个图系
        Series.Text = c.Name   '设置图系的标题
        Series.X.DataField = "分配给" 'X轴绑定到产品列
        Series.Y.DataField = c.Name '设置Y轴的绑定列
    End If
Next

Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)


x轴的标题不对,显示的是“工作类型_1,工作类型_2”,怎么样才能显示实际的工作类型值呢?

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


加好友 发短信
等级:婴狐 帖子:37 积分:338 威望:0 精华:0 注册:2016/7/3 21:13:00
  发帖心情 Post By:2016/8/5 21:31:00 [显示全部帖子]

谢谢大红袍

 回到顶部