以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  图形设计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147325)

--  作者:巷弄太过弯曲
--  发布时间:2020/3/14 9:20:00
--  图形设计
老师,请问如图这张表,怎么样能做出x轴为部门 Y轴为这张表的行数,柱形图有两个 一个是已处理 一个是未处理的柱形图呢,类似于帮助中的这张柱形图

图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20200314091350.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20200314091711.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2020/3/14 9:36:00
--  
先对状态做个分组统计:http://www.foxtable.com/webhelp/topics/0677.htm

然后再根据统计表生成图表

--  作者:巷弄太过弯曲
--  发布时间:2020/3/16 15:45:00
--  
老师,在做状态分组时候报错了

从字符串“未处理”到类型“Decimal”的转换无效。

\'定义一个GroupTableBuilder,名称为"统计表1",对订单表进行统计.
Dim b As New GroupTableBuilder("统计表1",DataTables("反馈表"))
b.Groups.AddDef("部门") \'根据产品分组
b.Totals.AddDef("状态") \'对数量进行统计
b.Build \'生成统计表
MainTable = Tables("统计表1") \'打开生成的统计表

--  作者:有点蓝
--  发布时间:2020/3/16 16:12:00
--  
b.Totals.AddDef("状态",AggregateEnum.Count)

在Totals集合中添加一个统计列的语法如下: 

Totals.AddDef(Name)
Totals.AddDef(Name, NewName)
Totals.AddDef(Name, NewName, NewCaption)
Totals.AddDef(Name, Aggregate)
Totals.AddDef(Name, Aggregate, NewName)
Totals.AddDef(Name, Aggregate, NewName, NewCaption)

参数说明 

Name:        字符型,指定统计列。
NewName:     字符型,用于给统计列指定一个新的名称,这个名称在统计表中显示。
NewCaption:  字符型,用于给统计列设置标题。
Aggregate:  AggregateEnum枚举型,用于指定统计类型,默认是求和。

AggregateEnum型枚举的可选值:

Average:平均值
Count:  记录数 
Max:    最大值
Min:    最小值
Sum:    累积值


--  作者:巷弄太过弯曲
--  发布时间:2020/3/16 17:01:00
--  
老师,还有一个问题,就是我状态列是有两个参数“未处理”和“已处理” 用这个记录数,默认是求和,比如财务部有两条数据状态为“未处理”和“已处理”  分组统计后财务部的状态为2 请问这个怎么解决区分
--  作者:有点蓝
--  发布时间:2020/3/16 17:38:00
--  

Dim b As New sqlGroupTableBuilder("统计表1","反馈表")
b.Groups.AddDef("部门") \'根据产品分组
b.Totals.Addexp("已处理","IIF(状态=\'已处理\',1,0)") 
b.Totals.Addexp("未处理","IIF(状态=\'未处理\',1,0)") 
b.Build \'生成统计表
MainTable = Tables("统计表1") 

--  作者:巷弄太过弯曲
--  发布时间:2020/3/17 9:08:00
--  
老师帮我看看 我是SqlServer数据源 看来帮助后修改了一下代码 但是提示统计错误 代码需要怎么修改一下

Dim b As New SQLGroupTableBuilder("统计表1","反馈表")
b.Conne ctionN ame = "ce shi"
b.Groups.Adddef("部门")
b.Totals.Addexp("已处理", "Case When 状态=\'已处理\',0,1")
b.Totals.Addexp("未处理", "Case When 状态=\'未处理\',1,0")
b.Build()
MainTable = Tables("统计表1")

--  作者:有点蓝
--  发布时间:2020/3/17 9:14:00
--  
b.Totals.Addexp("已处理", "Case When 状态=\'已处理\' then 1 else 0")
b.Totals.Addexp("未处理", "Case When 状态=\'未处理\' then 1 else 0")

--  作者:巷弄太过弯曲
--  发布时间:2020/3/17 9:22:00
--  
还是报错

图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20200317091926.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/3/17 9:47:00
--  
b.Totals.Addexp("已处理", "Case When 状态=\'已处理\' then 1 else 0 end ")
b.Totals.Addexp("未处理", "Case When 状态=\'未处理\' then 1 else 0 end")