Foxtable(狐表)用户栏目专家坐堂 → 求教: 复制行不成功


  共有2714人关注过本帖树形打印复制链接

主题:求教: 复制行不成功

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110655 积分:563189 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/11 9:09:00 [显示全部帖子]

最外一层有【If e.DataCol.Name = "物资名称" Then】这个判断,也就是只有"物资名称"列数据变化才能执行if里面的代码,那么在里层在判断其它列名是永远都不会成立的...

试试
Select Case e.DataCol.Name
    Case "物资名称" '发生变化的是物资名称
        Dim dr As DataRow
        dr = DataTables("物资明细").Find("物资名称 = '" & e.DataRow("物资名称") & "'" ) '在物资明细表找出该产品
        e.DataRow("保存地点") = User.name
        If dr IsNot Nothing '如果找到, 则设置各列内容
            e.DataRow("物资类别") = dr("物资类别")
            e.DataRow("入库总量") = dr("入库总量")
            e.DataRow("原有库存") = dr("库存数量")
            e.DataRow("规格") = dr("规格")
            e.DataRow("单位") = dr("单位")
        Else
            e.DataRow("原有库存")= 0
        End If
    Case "入库数量" '如果"入库数量发生变化
        Dim dr As DataRow
        dr = DataTables("物资明细").Find("物资名称 = '" & e.DataRow("物资名称") & "'" ) '在物资明细表找出该产品
        If dr IsNot Nothing
            e.DataRow ("入库总量") = e.DataRow("入库总量") + e.DataRow("入库数量")
            e.DataRow("原有库存") = e.DataRow("原有库存") +  e.DataRow("入库数量")
            dr("入库总量")  =  e.DataRow ("入库总量")
        Else
            e.DataRow("原有库存")= 0
            e.DataRow ("入库总量") = e.DataRow("入库数量")
        End If
    Case "piao据号"  '如果piao据号发生变化,piao据号输入完成
        Dim nma() As String = {"物资名称","物资编号","物资类别","保存地点","入库总量","品牌","规格","单位"} 'A表数据来源列
        Dim nmb() As String = {"物资名称","物资编号","物资类别","保存地点","入库总量","品牌","规格","单位"} 'B表数据接收列
        Dim ddd As Row = Tables("物资明细").AddNew
        For i As Integer = 0 To nma.Length - 1
            ddd(nmb(i)) = e.DataRow(nma(i))
        Next
    Case "保存地点" '如果保存地点发生变化
        Dim mc As DataRow
        mc = DataTables("物资管理人").find("部门 = '" & e.DataRow("保存地点") & "'")
        e.DataRow("保管员") = mc("姓名")
End Select

 回到顶部