以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]请名位老师修正一下关于公司人员学历统计的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120880)

--  作者:tkxffb
--  发布时间:2018/6/25 16:58:00
--  [求助]请名位老师修正一下关于公司人员学历统计的代码
各位老师好,我想统计出来公司各个部门员工不同学历的人数,按照帮助文件写了一段代码,可是代码不能用,请老师指点一下哪里错了,帮我修正一下,谢谢了

Dim b As New SQLGroupTableBuilder("各部门人员文化程度统计表1","公司人员信息表")

b.ConnectionName = "database"

b.Groups.AddDef("部门类别")

b.Totals.AddDef("文化程度", Aggregate.Count "初中")

b.Totals.AddDef("文化程度", Aggregate.Count "高中")

b.Totals.AddDef("文化程度", Aggregate.Count "大学")

 

b.Subtotal = True

b.FromServer = True

b.build()

DataTables("各部门人员文化程度统计表1").SysStyles("Alternate").BackColor = Color.Bisque

MainTable = Tables("各部门人员文化程度统计表1")


--  作者:y2287958
--  发布时间:2018/6/25 17:03:00
--  
SQLGroupTableBuilder没有b.FromServer的属性吧

--  作者:tkxffb
--  发布时间:2018/6/25 17:04:00
--  
给出的错误提示是,没声明Aggregate
我的设计思路是,在临时表中纵向显示部门名称,横向显示初中、高中、大学等各种文化程度,横向的文化程度各列列名是根据设计显示的,本列如果没有符合条件的人员,就显示0
[此贴子已经被作者于2018/6/25 17:16:23编辑过]

--  作者:y2287958
--  发布时间:2018/6/25 17:11:00
--  
试试这个:注意数据库类型
Dim b As New SQLGroupTableBuilder("各部门人员文化程度统计表1","公司人员信息表")
b.C
b.Groups.AddDef("部门类别")
b.Totals.AddExp("初中","iif(文化程度=\'初中\',1,0)")
b.Subtotal = True
b.build()

--  作者:有点甜
--  发布时间:2018/6/25 17:15:00
--  

改成

 

AggregateEnum.Count


--  作者:tkxffb
--  发布时间:2018/6/25 17:32:00
--  
帅哥,在线噢!

采用了 y2287958 给出的方法,十分感谢两位老师的指导!!!
[此贴子已经被作者于2018/6/25 17:43:52编辑过]

--  作者:有点甜
--  发布时间:2018/6/25 17:40:00
--  
以下是引用tkxffb在2018/6/25 17:04:00的发言:
给出的错误提示是,没声明Aggregate
我的设计思路是,在临时表中纵向显示部门名称,横向显示初中、高中、大学等各种文化程度,横向的文化程度各列列名是根据设计显示的,本列如果没有符合条件的人员,就显示0
[此贴子已经被作者于2018/6/25 17:16:23编辑过]

 

1、可以直接用交叉统计

 

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

 

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

 

2、也可以直接写代码

 

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

 


--  作者:tkxffb
--  发布时间:2018/6/25 17:48:00
--  
问题已经解决,谢谢有点甜老师和y2287958老师的及时指导