以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  合并行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=93265)

--  作者:lk15502
--  发布时间:2016/11/24 10:13:00
--  合并行
发外毛坯表有以下几列:订单编号,订单客户,外加工厂商,品名,发外重量;想把订单客户,外加工厂商,品名相同的行复选框打勾后合并成一行,并且把发外重量相加,把不同的订单编号都填入订单编号列,入订单编号 = 订单编号 & 订单编号。请问老师如何解决,谢谢!
--  作者:有点青
--  发布时间:2016/11/24 10:23:00
--  

1、在同一个表不要这样做。

 

2、做成主表、明细表的形式,然后合并或统计

 

循环每一行累加 http://www.foxtable.com/webhelp/scr/1776.htm

 


--  作者:lk15502
--  发布时间:2016/11/24 11:30:00
--  
老师,这个表得数据是从订单明细表复制来的,这个表就有明细表,因为生产调度做计划需要,采用了这种方式
--  作者:有点蓝
--  发布时间:2016/11/24 12:00:00
--  
做个按钮,获取勾选的行,然后拼接每行对应列的内容


--  作者:有点青
--  发布时间:2016/11/24 12:19:00
--  

比如代码

 

dim sum as double = 0
dim str as string = ""
For Each r As Row In Tables("订单").GetCheckedRows
    sum = sum + r("金额")
    str = str & r("编号") & ","
Next

msgbox(sum)
msgbox(str.trim(","))


--  作者:lk15502
--  发布时间:2016/11/24 13:27:00
--  
下面代码发生错误:声明用于循环控制变量的数组时不能使用初始大小得值--For Each r(i) As Row In Tables("发外加工计划表").GetCheckedRows
Dim i As Integer = 0
Dim dr As Row = Tables("发外加工计划表").AddNew
For Each r(i) As Row In Tables("发外加工计划表").GetCheckedRows
    If r(i) = r0 Then
        dr("订单编号") = r(i)("订单编号")
        dr("外加工厂商") = r(i)("外加工厂商")
        dr("订单客户") = r(i)("订单客户")
        dr("品名") = r(i)("品名")
        dr("加工类型") = r(i)("加工类型")
        dr("发外重量") = r(I)("发外重量")
        dr.Save
    Else
        If r(i)("外加工厂商") = dr("外加工厂商") And r(i)("订单客户") = dr("订单客户") And r(i)("品名") = dr("品名") And r(i)("加工类型") = dr("加工类型") Then
            dr("订单编号") = dr("订单编号") & r(i)("订单编号") & ","
            dr("发外重量") = dr("发外重量") + r(i)("发外重量")
        End If
    End If
    i= i + 1
Next
应该怎么改?

--  作者:有点蓝
--  发布时间:2016/11/24 14:21:00
--  
Dim i As Integer = 0
Dim dr As Row = Tables("发外加工计划表").AddNew
Dim rs As List(of Row) = Tables("发外加工计划表").GetCheckedRows

If rs.Count > 0 Then
    dr("订单编号") = rs(0)("订单编号")
    dr("外加工厂商") = rs(0)("外加工厂商")
    dr("订单客户") = rs(0)("订单客户")
    dr("品名") = rs(0)("品名")
    dr("加工类型") = rs(0)("加工类型")
    dr("发外重量") = rs(0)("发外重量")
    dr.Save
    For i As Integer = 1 To rs.Count - 1
        If rs(i)("外加工厂商") = dr("外加工厂商") And rs(i)("订单客户") = dr("订单客户") And rs(i)("品名") = dr("品名") And rs(i)("加工类型") = dr("加工类型") Then
            dr("订单编号") = dr("订单编号") & rs(i)("订单编号") & ","
            dr("发外重量") = dr("发外重量") + rs(i)("发外重量")
        End If
    Next
End If

--  作者:lk15502
--  发布时间:2016/11/24 15:08:00
--  
老师,报错


--  作者:lk15502
--  发布时间:2016/11/24 15:23:00
--  
Dim i As Integer = 0删除就可以了