Foxtable(狐表)用户栏目专家坐堂 → 从统计表提取数据转图标展示的相关问题


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

主题:从统计表提取数据转图标展示的相关问题

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


加好友 发短信
等级:童狐 帖子:204 积分:2037 威望:0 精华:0 注册:2015/3/6 17:12:00
从统计表提取数据转图标展示的相关问题  发帖心情 Post By:2022/2/23 17:56:00 [只看该作者]


我已经建立了一个统计报表,数据都是根据人员明细表自动统计生成的(图1),但我现在想做个图表展示,而我看教程里,图标引用数据都是竖向,我想展示的模式是:用饼状图显示集团公司总的年龄分布、学历分布等内容,也能单独展示每个分公司的年龄分布、学历分布(图2),因此在引用数据时就得是横向几列
的数据。请问该怎么弄?有没有相关教程?

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2022/2/23 17:56:43编辑过]

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


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


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


加好友 发短信
等级:童狐 帖子:204 积分:2037 威望:0 精华:0 注册:2015/3/6 17:12:00
  发帖心情 Post By:2022/2/24 9:11:00 [只看该作者]

是我没表达清楚我,举个例子:我要展示总部人员的年龄分布饼状图,那我就需要引用统计表里年龄5列中的4列(2030,3140,4150,5160),但是,教程里的是单列的代码(修改代码如下),达不到我要引用4列数据的目的。也没发引用我统计表里“合计行”的数据,请教。

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("总量统计表") '定义一个变量t引用数据表
Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.pie '图表类型该为pie(饼图)
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Series.Text = "年龄分布"
Series.Length = t.Rows.Count '设置图系的长度
For i As Integer = 0 '指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = t.Rows(i)("年龄_2030") '指定垂直坐标
    Chart.AxisX.SetValueLabel(i, t.Rows(i)("单位")) '指定字符表示
Next
Series.DataLabelText = "{#YVAL}"
Chart.AxisX.AnnoWithLabels = True '启用字符标示
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)

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


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

遍历行,改为遍历指定的4列。一个单位一个饼图

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


加好友 发短信
等级:童狐 帖子:204 积分:2037 威望:0 精华:0 注册:2015/3/6 17:12:00
  发帖心情 Post By:2022/2/24 10:01:00 [只看该作者]

谢谢大佬,另外,对于这个总计列,是根据代码统计出来的,在表中是没有序号的,请问该怎么引用?

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

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


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

您想怎么样用?如果要区分其它数据,判断序号列值是不是“总计”即可

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


加好友 发短信
等级:童狐 帖子:204 积分:2037 威望:0 精华:0 注册:2015/3/6 17:12:00
  发帖心情 Post By:2022/2/24 10:26:00 [只看该作者]

是我要引用“总计”那一行的数据,但这个数据不在表格里,他的生成代码如下,这个表格的0行数据(For i As Integer = 0 '指定每个数据点的位置
Series.X(i) = i '指定水平坐标)其实是序号为01的那一行的,我要引用这个“总计”这一行的数据.........

    Dim n As Integer = Tables("总量统计表").Rows.Count-1
    Dim k As Integer = Tables("总量统计表").Cols.Count-1
    CurrentTable.Select(0,0,n,k)
    Syscmd.Edit.ClearZero()   '清除0项
    Dim t As Table = Tables("总量统计表")
    Dim g As Subtotalgroup
    t.SubtotalGroups.Clear()
    t.GroupAboveData = True
    t.TreeVisible = False
    t.SpillNode = False
    g = New Subtotalgroup
    g.Aggregate = AggregateEnum.Sum
    g.GroupOn = "*"
    g.TotalOn = "总人数,性别_男,性别_女,年龄_平均,年龄_2030,年龄_3140,年龄_4150,年龄_5160,第一学历_硕士,第一学历_本科,第一学历_专科,第一学历_中专,第一学历_技校,第一学历_高中,第一学历_初中,最高学历_硕士,最高学历_本科,最高学历_专科,最高学历_中专,最高学历_技校,最高学历_高中,最高学历_初中,建造师_一级,建造师_二级,非在岗人数,另有非统招人员"
    g.Caption = "总计"
    t.SubtotalGroups.Add(g)
    t.Subtotal() 

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


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

方法1:http://www.foxtable.com/webhelp/topics/1594.htm
2、自己使用compute统计获取需要的列的统计值即可:http://www.foxtable.com/webhelp/topics/0393.htm

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


加好友 发短信
等级:童狐 帖子:204 积分:2037 威望:0 精华:0 注册:2015/3/6 17:12:00
  发帖心情 Post By:2022/2/24 15:32:00 [只看该作者]

遍历列,遍历列,遍历不明白了...............代码一直是错的,改了好几次,饼图一直出不来

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("总量统计表") '定义一个变量t引用数据表
Dim sm As Integer = t.Compute("Sum(年龄_2030,年龄_5160)") '计算总数量
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
For r As Col = 6 To 9
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Text = r & "(" & r("r") & ")" '设置图系的标题
    Series.Y(0) = r("r") '指定值
    Series.DataLabelText = Math.Round(r)*100/sm,2) & "%" '计算百分比
Next
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)
[此贴子已经被作者于2022/2/24 15:34:03编辑过]

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


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

建议使用compute统计

 回到顶部
总数 21 1 2 3 下一页