以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  大神们求助这个统计代码怎么写?我怂了。。。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115359)

--  作者:初心不改再说未来
--  发布时间:2018/3/5 22:53:00
--  大神们求助这个统计代码怎么写?我怂了。。。
24个小时没搞定这个事,烟都没了....

我直接上个模拟图,大神们帮俺看看,多谢多谢

  员工     张三          李四        王五    
     一等品    二等品  三等品    一等品  二等品    三等品   一等品    二等品    三等品   
   推销次数                             
   成功次数                           
   累计业绩                           
   累计净利润                             

“一等品”“二等品”“三等品”是三张独立的数据表,这3张表里都有相同的列,列名叫“推销次数”“成功次数”“累计业绩”“累计净利润”
现要根据不同的员工把他们在这3张表里的表现统一统计出来老板好发工资,就是这样(弄不出来我的工资也发不了)

不管是交叉统计还是手动统计,我怂了行了吧,我搞不定,我直接求代码,可以发红包,我只想弄完去睡觉

哪位大神,哪位前辈,谢谢了!

--  作者:有点蓝
--  发布时间:2018/3/5 23:05:00
--  
这个表格不合理,如果这样还可以搞搞


  员工       推销次数       成功次数          累计业绩   
     一等品    二等品  三等品    一等品  二等品    三等品   一等品    二等品    三等品   
   张三                            
   李四                           
  王五                           
                                


--  作者:初心不改再说未来
--  发布时间:2018/3/5 23:11:00
--  
我擦  我说我半天嘬着烟屁股觉得哪不对劲呢

就是哦   应该就是这样设计


蓝啊  亲爱的蓝啊   告诉俺代码咋写滴成不

我发红包   你告诉俺   我被折磨疯了


明天我改名叫   爱上有点蓝   可以吧图片点击可在新窗口打开查看
[此贴子已经被作者于2018/3/5 23:12:45编辑过]

--  作者:初心不改再说未来
--  发布时间:2018/3/5 23:15:00
--  
是不是就不应该设计三张表

当初设计三张表的原因是

一等品里的有些产品字段  二等和三等里没有
二等品里的有些产品字段  一等和三等里没有
...

弄来弄去撮合不到一起

就干脆设计了3张表   分家了

现在看来,是不是还是应该设计成1张表的
[此贴子已经被作者于2018/3/5 23:16:31编辑过]

--  作者:有点蓝
--  发布时间:2018/3/5 23:15:00
--  
3张表逐个处理

1、用getvalues获取所有的员工,然后循环所有员工
2、在循环中,先查询统计表是否有此应该,没有就新增
3、统计X等品这些表中次员工的数据,填写到对应的列(推销次数_X等品)中

--  作者:有点蓝
--  发布时间:2018/3/5 23:16:00
--  
可以做交叉统计,然后组合统计结果:http://www.foxtable.com/webhelp/scr/2305.htm
--  作者:初心不改再说未来
--  发布时间:2018/3/5 23:17:00
--  
是不是就不应该设计三张表

当初设计三张表的原因是

一等品里的有些产品字段  二等和三等里没有
二等品里的有些产品字段  一等和三等里没有
...

弄来弄去撮合不到一起

就干脆设计了3张表   分家了

现在看来,是不是还是应该设计成1张表的

--  作者:有点蓝
--  发布时间:2018/3/5 23:19:00
--  
有不同的属性还是分表吧
--  作者:初心不改再说未来
--  发布时间:2018/3/5 23:22:00
--  

Dim bd1 As New GroupTableBuilder("统计表1",DataTables("进货单"))
Dim 
dt1 As fxDataSource
bd1
.Groups.AddDef("型号"\'根据型号分组
bd1
.Totals.AddDef("数量","进货_数量"\'对数量进行统计
bd1
.Totals.AddDef("金额","进货_金额"\'对金额进行统计
dt1
 = bd1.BuildDataSource()

Dim 
bd2 As New GroupTableBuilder("统计表2",DataTables("销售单"))
Dim 
dt2  As fxDataSource
bd2
.Groups.AddDef("型号"\'根据型号分组
bd2
.Totals.AddDef("数量","销售_数量"
bd2
.Totals.AddDef("金额","销售_金额"\'
dt2
 = bd2.BuildDataSource()

dt3 = bd3.BuildDataSource()

dt1.Combine("型号",dt2,"型号"
dt1
.Combine("型号",dt3,"型号")

Tables("窗口1_Table1").DataSource = dt1 \'
With 
DataTables("窗口1_Table1").DataCols  \'
    
.Add("库存_数量",Gettype(Integer), "IsNull([进货_数量],0) - ISNULL([销售_数量],0) - ISNULL([退货_数量],0)")
    
.Add("库存_金额",Gettype(Double), "[库存_数量] /[进货_数量] * [进货_金额]"
End With


感觉这个改改是不是就OK


分组统计+组合统计结果    这种套路也能管用吧应该    

[此贴子已经被作者于2018/3/5 23:26:50编辑过]

--  作者:初心不改再说未来
--  发布时间:2018/3/5 23:25:00
--  

  员工       一等品       二等品          三等品   
     推销次数   销售次数  累计利润    推销次数 销售次数     累计利润 推销次数     销售次数    累计利润  
   张三                            
   李四                           
  王五                           
                                


蓝蓝   这个思路   我改进了下    你看看对不对