以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助:多个多值字段选择,当符合某个条件时候,对应在另一表中进行多值拆解成对应行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=69448)

--  作者:李孝春
--  发布时间:2015/6/5 11:28:00
--  求助:多个多值字段选择,当符合某个条件时候,对应在另一表中进行多值拆解成对应行

在领取表中有如下代码:

If e.NewValue IsNot Nothing Then
            SystemReady = False
            Dim nr As Row = Tables("出库表").AddNew()
            Dim Multi As String = e.DataRow("物料编号")
            Dim ary() As String = Multi.Split(",")
            e.DataRow("物料编号") = ary(0)
            For i As Integer = 1 To ary.Length - 1
                nr("物料编号") = ary(i)
            Next 

            Dim Multi1 As String = e.DataRow("物料信息")
            Dim ary1() As String = Multi1.Split(",")
            e.DataRow("物料信息") = ary1(0)
            For i1 As Integer = 1 To ary1.Length - 1
                nr("物料信息") = ary1(i1)
            Next

            SystemReady = True
        End If

物料信息、物料编号未多值选择后,上述代码不起作用,也就是不能再出库表中对应的增加行

求纠正代码:

比如:

A物料 对应有编号 1 2 3 4

B物料 对应编号有 11 12 13 14

假设物料选择了A B 对应编号选择了 1 2  11 13

想当物料编号发生变动的时候 对应的在出库表中对应增加行

A 1

A 2

B 11

B 12

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多值字段合计成本例子.foxdb

[此贴子已经被作者于2015/6/5 11:29:13编辑过]

--  作者:大红袍
--  发布时间:2015/6/5 11:42:00
--  
Select Case e.DataCol.name
    Case "物料编号"
        DataTables("库存表").ReplaceFor("是否领取", "已领取", "物料编号 in (\'" & e.DataRow("物料编号").Replace(",", "\',\'") & "\')")
       
        Dim nms() As String = e.DataRow("物料编号").Split(",")
        e.DataRow("领取数量") = nms.Length
        e.DataRow("物料成本") = DataTables("库存表").Compute("sum(物料成本)", "物料编号 in (\'" & e.DataRow("物料编号").replace(",", "\',\'") & "\')")
        If e.NewValue IsNot Nothing Then
            SystemReady = False
            For i As Integer = 0 To nms.Length - 1
                Dim nr As Row = Tables("出库表").AddNew()
                nr("物料编号") = nms(i)
                Dim fdr As DataRow = DataTables("库存表").Find("物料编号 = \'" & nms(i) & "\'")
                If fdr IsNot Nothing Then
                    nr("物料信息") = fdr("物料信息")
                End If
            Next
            SystemReady = True
        End If
End Select

--  作者:李孝春
--  发布时间:2015/6/5 13:49:00
--  回复:(大红袍)Select Case e.DataCol.name &n...

谢谢大红袍老师