以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 相同记录合并  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=144862)

--  作者:leoli
--  发布时间:2020/1/1 10:24:00
--  [求助] 相同记录合并

最近购买了这个Foxtable,有点不会用,请老师帮助一下

 

表A中的相同记录进行合并:

 

只要出货日期,产品名称相同
1.出货数量相加
2.并项目名称进行合并,用逗号隔开,相同的就取一个,如 AA,BB,CC
3.库存数量相加

4.采购数量相同就取一个,不同就用逗号隔开

 

把生成的记录存于表B中

另外再自动生成一个临时表Q

 

谢谢。


 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:记录加总合并.foxdb

[此贴子已经被作者于2020/1/1 10:25:04编辑过]

--  作者:有点蓝
--  发布时间:2020/1/2 9:16:00
--  
添加一个按钮,代码

Dim dr As DataRow
For Each sr As String() In DataTables("表A").GetValues("出货日期|产品名称","出货日期 is not null")
    dr = DataTables("表B").AddNew
    dr("出货日期") = sr(0)
    dr("产品名称") = sr(1)
    dr("出货数量") = DataTables("表A").Compute("sum(出货数量)", "产品名称=\'" & sr(1) & "\' And 出货日期=#" & sr(0) & "#")
    dr("项目名称") = DataTables("表A").GetComboListString("项目名称", "产品名称=\'" & sr(1) & "\' And 出货日期=#" & sr(0) & "#").Replace("|",",")
Next

--  作者:leoli
--  发布时间:2020/1/2 12:20:00
--  
谢谢老师,可以再自动产生个临时表Q吗 ?感谢。
--  作者:有点蓝
--  发布时间:2020/1/2 13:39:00
--  
Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("出货日期", DateGroupEnum.None)
g.Groups.AddDef("产品名称")
g.Totals.AddDef("出货数量")
g.Totals.AddDef("库存数量")
g.Filter = "出货日期 is not null"
g.Build()
MainTable = Tables("统计表1")
DataTables("统计表1").DataCols.Add("项目名称",Gettype(String))
For Each dr As DataRow In DataTables("统计表1").DataRows
    dr("项目名称") = DataTables("表A").GetComboListString("项目名称", "产品名称=\'" & dr("产品名称") & "\' And 出货日期=#" & dr("出货日期") & "#").Replace("|",",")
Next

--  作者:leoli
--  发布时间:2020/1/2 19:08:00
--  

 

老师, 我增加了个采购数量,以下出错了,可以纠正一下吗? 感谢。

 

 dr("项目名称") = DataTables("表A").GetComboListString("项目名称", "产品名称=\'" & dr("产品名称") & "\'And "采购数量=\'" & dr("采购数量") & "\' And 出货日期=#" & dr("出货日期") & "#").Replace("|",",")


--  作者:有点蓝
--  发布时间:2020/1/3 8:28:00
--  
http://www.foxtable.com/webhelp/topics/1284.htm

dr("项目名称") = DataTables("表A").GetComboListString("项目名称", "产品名称=\'" & dr("产品名称") & "\' And 采购数量=\'" & dr("采购数量") & "\' And 出货日期=#" & dr("出货日期") & "#").Replace("|",",")



--  作者:leoli
--  发布时间:2020/1/3 18:09:00
--  
老师,再请问一下,这个列的长度如何修改,改到最长。如何执行出现很长的字符,可不可以忽略这个错误提醒。
--  作者:有点蓝
--  发布时间:2020/1/3 20:35:00
--  
改为备注型即可
--  作者:leoli
--  发布时间:2020/1/3 20:40:00
--  

统计表1 中无法更改的,一定要在原表中更改吗 ?可不可以加在以下代码中产生?

 

g.Groups.AddDef("产品名称")
g.Totals.AddDef("出货数量")
g.Totals.AddDef("库存数量")

--  作者:有点蓝
--  发布时间:2020/1/3 20:44:00
--  
改不了,只能在原表中更改。