以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  上报数据合并问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=82957)

--  作者:133198609
--  发布时间:2016/3/28 21:44:00
--  上报数据合并问题
问题1:

假如接收了几组数据,数据都保存在一个临时表中,数据都是一些订单信息,信息如下……
订单号     货号         数量     单价    库存
0001       NC350     100     50      100
0002       YF211      60      70       20
0003       NC350     20       50      80
...           ....        .             ..        ....

有没有办法通过一段代码自动合并货号相同的数据,并生成新的表保存……
如果有哪些章节有支出,麻烦指点……


问题2:官方翻译一个试用版的项目大概要多久,项目就七八个表和四五个简单的窗口。

--  作者:大红袍
--  发布时间:2016/3/28 22:22:00
--  

1、要怎么合并?数量相加、单价呢?库存呢?生成新的表还是合并到订单表去?

 

做个具体例子上来说明。

 

2、试用版转开发版?发过去几秒钟就能转好。


--  作者:133198609
--  发布时间:2016/3/29 15:29:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.rar


就是一个这样的表,里面很重复的“姓名”,需要合并重名的工资…后面合并的项目基本都是相加的,但也有特殊的不相加(比如奖金系数等)……
合并后的数据如果可以最好是直接修改到原本中,也可以放在新建的一张表中,只要能实现一键合并就行。

--  作者:大红袍
--  发布时间:2016/3/29 15:39:00
--  

编码实现

 


Dim t As Table = Tables("工资2")
Dim dtb As New DataTableBuilder("统计")
For Each c As Col In t.cols
    If c.name = "姓名" Then
        dtb.AddDef("姓名", Gettype(String), 16)
    ElseIf c.name <> "编号" Then
        dtb.AddDef(c.name, Gettype(Double))
    End If
Next
dtb.Build()
For Each nm As String In t.DataTable.GetValues("姓名")
    Dim dr As Row = Tables("统计").AddNew()
    dr("姓名") = nm
    For Each c As Col In Tables("统计").Cols
        If c.name <> "姓名" Then
            dr(c.name) = t.Compute("Sum(" & c.name & ")","[姓名] = \'" & nm & "\'")
        End If
    Next
Next
MainTable= Tables("统计")


--  作者:大红袍
--  发布时间:2016/3/29 15:40:00
--  

 你应该去看看 分组统计 的内容

 

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

 


--  作者:133198609
--  发布时间:2016/3/29 15:58:00
--  
分组统计倒是能慢慢的用,现在因为想做开发,所以不知道怎么在窗口里用代码实现。基本看懂了,谢谢大红袍!