以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]分组过渡到另一表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=79844)

--  作者:易服
--  发布时间:2016/1/10 20:28:00
--  [求助]分组过渡到另一表
《家庭成员》表过渡到《人口劳力》表以“户主姓名”分组(不论家庭成员几个只一条记录),“家庭人口”列为《家庭成员》表“家庭成员姓名”列的记录数,“家庭劳动力”是《家庭成员》表“劳动能力”列\'普通劳动力\'的记录数
[此贴子已经被作者于2016/1/10 20:34:07编辑过]

--  作者:易服
--  发布时间:2016/1/10 20:33:00
--  
表传错了,重传
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生态扶贫.table


--  作者:易服
--  发布时间:2016/1/10 20:56:00
--  
高手邦一下
--  作者:Hyphen
--  发布时间:2016/1/11 8:54:00
--  
1. 先取《家庭成员》不重复的户主姓名,参考:http://www.foxtable.com/help/topics/2747.htm

2. 从上面的结果中循环处理,在《人口劳力》中增加数据

1)获取户主信息,参考:http://www.foxtable.com/help/topics/0396.htm

2)获取家庭成员和劳动力,参考:http://www.foxtable.com/help/topics/1435.htm

--  作者:大红袍
--  发布时间:2016/1/11 9:32:00
--  

直接统计参考

 

http://www.foxtable.com/help/topics/0681.htm

 


--  作者:易服
--  发布时间:2016/1/12 14:46:00
--  
看了示例,试了多篇仍搞不定。
--  作者:易服
--  发布时间:2016/1/12 15:04:00
--  
请版主看一下
--  作者:大红袍
--  发布时间:2016/1/12 15:11:00
--  

你直接分组统计不就行了?

 

Dim g As New GroupTableBuilder("统计表", DataTables("家庭成员"))
g.Groups.AddDef("县")
g.Groups.AddDef("乡")
g.Groups.AddDef("村")
g.Groups.AddDef("户主姓名")
g.Groups.AddDef("身份证号")
g.Totals.AddDef("户主姓名", AggregateEnum.Count, "家庭人口")
g.Totals.AddDef("劳动力", AggregateEnum.sum)
g.Build()
MainTable = Tables("统计表")


--  作者:易服
--  发布时间:2016/1/12 15:16:00
--  
分组统计表不能作关联,目的就是从《家庭成员》取得劳力数与其它表进行关联查询
[此贴子已经被作者于2016/1/12 15:17:43编辑过]

--  作者:大红袍
--  发布时间:2016/1/12 15:33:00
--  
DataTables("人口劳力").DataRows.clear
DataTables("人口劳力").StopRedraw
For Each nm() As String In DataTables("家庭成员").GetValues("县|乡|村|户主姓名|身份证号")
    Dim dr As DataRow = DataTables("人口劳力").AddNew()
    dr("县") = nm(0)
    dr("乡") = nm(1)
    dr("村") = nm(2)
    dr("户主姓名") = nm(3)
    dr("身份证号") = nm(4)
    dr("家庭人口") = DataTables("家庭成员").Compute("count(户主姓名)","户主姓名 = \'" & nm(3) & "\' and 身份证号 = \'" & nm(4) & "\'")
    dr("家庭劳动力") = DataTables("家庭成员").Compute("sum(劳动力)","户主姓名 = \'" & nm(3) & "\' and 身份证号 = \'" & nm(4) & "\'")
Next
DataTables("人口劳力").ResumeRedraw