以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 复制行过程中合并参数系统的行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=94744) |
-- 作者:lk15502 -- 发布时间:2016/12/31 11:17:00 -- 复制行过程中合并参数系统的行 老师。下面的代码是从A表向B表复制行的代码,想实现这样的功能,把:品名大类,品名小类,成品克重,成品门幅,颜色染色订单号,色号。相同的行合并成一行,怎么在里面加代码?谢谢! If _userroles.Contains("计划配缸") = True OrElse _usergroup = "原料坯布仓库" Then If Tables(e.Form.Name & "_table2").current IsNot Nothing Then For Each r1 As Row In Tables(e.Form.Name & "_table2").Rows Dim Cols1() As String = {"订单明细编号","销售人员","客户","客户编号","品名大类","品名小类","成品克重","成品门幅","颜色","染色订单号","色号","投坯","使用坯布规格","卡注要求"} Dim Cols2() As String = {"订单明细编号对外","销售人员","客户","客户编号","品名大类","品名小类","成品克重","成品门幅","颜色","染色订单号","色号","计划重量","坯布规格","卡注"} If r1("下一工序").Contains("配缸") = True AndAlso DataTables("计划配缸通知单").sqlfind("订单明细编号对外 = \'" & r1("订单明细编号") & "\'") Is Nothing Then Dim r2 As Row = Tables("计划配缸通知单").addnew() For i As Integer = 0 To Cols1.length -1 If r1.Isnull(Cols1(i)) = False Then r2(Cols2(i)) = r1(Cols1(i)) End If Next r2.save End If Next Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1") tab.Selectedpage = tab.TabPages("计划配缸") End If Else msgbox("您没有权限操作!") End If
|
-- 作者:lk15502 -- 发布时间:2016/12/31 11:28:00 -- 不好意思,标题写错了,应该是:复制行过程中合并参数相同的行 |
-- 作者:有点色 -- 发布时间:2016/12/31 11:38:00 -- If _userroles.Contains("计划配缸") = True OrElse _usergroup = "原料坯布仓库" Then If Tables(e.Form.Name & "_table2").current IsNot Nothing Then For Each r1 As Row In Tables(e.Form.Name & "_table2").Rows Dim Cols1() As String = {"订单明细编号","销售人员","客户","客户编号","品名大类","品名小类","成品克重","成品门幅","颜色","染色订单号","色号","使用坯布规格","卡注要求"} Dim Cols2() As String = {"订单明细编号对外","销售人员","客户","客户编号","品名大类","品名小类","成品克重","成品门幅","颜色","染色订单号","色号","坯布规格","卡注"} If r1("下一工序").Contains("配缸") = True AndAlso DataTables("计划配缸通知单").sqlfind("订单明细编号对外 = \'" & r1("订单明细编号") & "\'") Is Nothing Then Dim r2 As DataRow = DataTables("计划配缸通知单").find("品名大类 = \'" & r1("品名大类") & "\' and 品名小类 = \'" & r1("品名小类") & "\' and 成品克重 = \'" & r1("成品克重") & "\'") If r2 Is Nothing Then r2 = DataTables("计划配缸通知单").addnew For i As Integer = 0 To Cols1.length -1 If r1.Isnull(Cols1(i)) = False Then r2(Cols2(i)) = r1(Cols1(i)) End If Next r2("计划重量") += r1("投坯") r2.save End If Next Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1") tab.Selectedpage = tab.TabPages("计划配缸") End If Else msgbox("您没有权限操作!") End If [此贴子已经被作者于2016/12/31 11:38:05编辑过]
|
-- 作者:lk15502 -- 发布时间:2016/12/31 12:10:00 -- If r2 Is Nothing Then r2 = DataTables("计划配缸通知单").addnew 如果r2 isnot nothing 代码会怎么执行,上面的代码最后没有end,有一点看不懂
|
-- 作者:有点色 -- 发布时间:2016/12/31 12:11:00 -- 如果r2存在,就直接用那个查到的r2,否则,就新增一行赋值给r2 |