以文本方式查看主题 - 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 -- 想统计“分配给”和“工作类型”这两列 |
-- 作者:大红袍 -- 发布时间: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 -- 就是想根据左边这样的表生成右边这样的图表, 代码改怎么写? ![]() ![]() 多指点指点 |
-- 作者:大红袍 -- 发布时间: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 \'设置图系的标题 |