以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自动追加行并汇总数量时,出现错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99806)

--  作者:zhangning
--  发布时间:2017/4/27 9:46:00
--  自动追加行并汇总数量时,出现错误
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:刀具管理.rar

管理者:qdrA001

想要达到的效果是:

只要“序号”列出现新的内容,就会在“入库”表新增加一行,并且“入库表”中的“数量”列=”采购“表中”检收1_数量“ + ”检收2_数量“

在”采购“的表属性中写了以下代码:

Select Case e.DataCol.Name
    Case "序号","检收1_数量","检收2_数量"
        If e.DataRow.IsNull("序号") = False 
            Dim dr6 As DataRow
            dr6 = DataTables("入库").Find("序号 = \'" & e.NewValue & "\'")
            If dr6 Is Nothing Then
                dr6 = DataTables("入库").AddNew()
                dr6("序号") = e.DataRow("序号")
                dr6("产品编号") = e.DataRow("编号")
                dr6("数量") = e.DataRow("检收1_数量") + e.DataRow("检收1_数量")
            End If
            DataTables("入库").DataCols("序号").RaiseDataColChanged(dr6)
        End If
End Select

出现的问题是:
1.每次更改”检收1_数量“或”检收2_数量“数字,就会追加一行,这不是想要的,想要的是,一个序号,只能为一行。
2.”数量“列的内容也不对,大概看了一下,显示的约是输入数量的2倍,这也不对。

请老师帮看看,谢谢!



--  作者:有点色
--  发布时间:2017/4/27 9:51:00
--  
Select Case e.DataCol.Name
    Case "序号","检收1_数量","检收2_数量"
        If e.DataRow.IsNull("序号") = False AndAlso e.DataRow.IsNull("检收1_数量") = False
            Dim dr6 As DataRow
            dr6 = DataTables("入库").Find("序号 = \'" & e.DataRow("序号") & "\'")
            If dr6 Is Nothing Then
                dr6 = DataTables("入库").AddNew()
                dr6("序号") = e.DataRow("序号")
                dr6("产品编号") = e.DataRow("编号")
            End If
            dr6("数量") = e.DataRow("检收1_数量") + e.DataRow("检收2_数量")
            \'DataTables("入库").DataCols("序号").RaiseDataColChanged(dr6)
        End If
End Select

--  作者:zhangning
--  发布时间:2017/4/27 10:39:00
--  
谢谢老师,还有一个问题:
我想将”申请“里的现在所有的行都删除,
但有些删不了,找不出原因,请老师帮看看,谢谢!

--  作者:有点色
--  发布时间:2017/4/27 10:41:00
--  

 你把行锁定了,就不能删除,你要解锁行

 

http://www.foxtable.com/webhelp/scr/0111.htm