以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]条形图  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88497)

--  作者:cqusand
--  发布时间:2016/8/3 20:57:00
--  [求助]条形图
有两列内容“工作人员”和“工作类型”(列里面的内容都用重复值)
想做一个一条形图表 统计每个人的不同工作类型的工作数量,这个代码该怎么写?

--  作者:cqusand
--  发布时间: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 \'图列显示在南方(底端)

--  作者:大红袍
--  发布时间:2016/8/3 22:07:00
--  

 先生成统计表,然后再生成图表,具体问题,上传实例。

 


--  作者:cqusand
--  发布时间:2016/8/3 22:20:00
--  
想统计“分配给”和“工作类型”这两列
比如甲的“工作设计”和”加工图纸“等数量各有多少?乙的“工作设计”和”加工图纸“等数量各有多少?
图片点击可在新窗口打开查看此主题相关图片如下:图片1.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2016/8/3 23:06:00
--  

先分组生成统计表

 

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

 


--  作者:cqusand
--  发布时间: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
--  发布时间:2016/8/4 21:18:00
--  
就是想根据左边这样的表生成右边这样的图表, 代码改怎么写?
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看
多指点指点
--  作者:大红袍
--  发布时间:2016/8/5 1:36:00
--  

 先生成交叉统计表

 

姓名  画图  检验

 甲      1      2

 乙      1      1

 

 然后参考这里 http://www.foxtable.com/webhelp/scr/0970.htm

 


--  作者:cqusand
--  发布时间: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”,怎么样才能显示实际的工作类型值呢?

--  作者:大红袍
--  发布时间:2016/8/5 14:24:00
--  

Series.Text = c.Name   \'设置图系的标题

 

改成

 

Series.Text = c.Caption   \'设置图系的标题