以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多表合并数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97897)

--  作者:蓝蚂蚁
--  发布时间:2017/3/20 18:43:00
--  多表合并数据

有三个表格:汇总表,手术室、外科(除了汇总表之外,可能还会有更多需要合并数据的表格),它们的数据结构一样。手术室和外科里面的数据有些是相同的(其中数量相同也有可能不同),有些是不同的,现要把手术室和外科里面的数据填充到汇总表中。

汇总表图


图片点击可在新窗口打开查看此主题相关图片如下:汇总表数据图.jpg
图片点击可在新窗口打开查看
手术室数据图


图片点击可在新窗口打开查看此主题相关图片如下:手术室数据图.jpg
图片点击可在新窗口打开查看
外科数据图


图片点击可在新窗口打开查看此主题相关图片如下:外科数据图.jpg
图片点击可在新窗口打开查看


--  作者:蓝蚂蚁
--  发布时间:2017/3/20 18:43:00
--  

上传例子

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多表合并.zip


--  作者:有点色
--  发布时间:2017/3/20 19:03:00
--  
Dim dt1 As DataTable = DataTables("汇总")
Dim dt2 As DataTable = DataTables("手术室")
Dim dt3 As DataTable = DataTables("外科")
For Each dr1 As DataRow In dt2.Select("")
    Dim dr2 As DataRow = dt1.Find("编码 = \'" & dr1("编码") & "\'")
    If dr2 Is Nothing Then dr2 = dt1.addnew
    For Each dc As DataCol In dt2.DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
    dr2("数量") = dt2.Compute("sum(数量)", "编码 = \'" & dr1("编码") & "\'") + dt3.Compute("sum(数量)", "编码 = \'" & dr1("编码") & "\'")
Next
For Each dr1 As DataRow In dt3.Select("")
    Dim dr2 As DataRow = dt1.Find("编码 = \'" & dr1("编码") & "\'")
    If dr2 Is Nothing Then dr2 = dt1.addnew
    For Each dc As DataCol In dt2.DataCols
        dr2(dc.Name) = dr1(dc.name)
    Next
    dr2("数量") = dt2.Compute("sum(数量)", "编码 = \'" & dr1("编码") & "\'") + dt3.Compute("sum(数量)", "编码 = \'" & dr1("编码") & "\'")
Next

--  作者:蓝蚂蚁
--  发布时间:2017/3/20 19:19:00
--  
有点色老师 ,谢谢你的解答,请问这些代码放到哪里
我放到窗口里,做个按钮,把这些代码放到按钮里,执行后提示:
.NET Framework 版本:2.0.50727.5466
Foxtable 版本:2016.7.29.1
错误所在事件:窗口,窗口1,Button1,Click
详细错误信息:
无效的聚合函数 Sum()和类型 String 的用法。


--  作者:有点蓝
--  发布时间:2017/3/20 20:18:00
--  
数量列改成整型列
--  作者:蓝蚂蚁
--  发布时间:2017/3/20 20:25:00
--  
多谢有点蓝老师,完美解决。大神收下我的膝盖吧