以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 【求助】列值第一次录入便生成数据,那么我修改列值之后,直接修改对应记录,而不是新增记录 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102447) |
-- 作者:李孝春 -- 发布时间:2017/6/20 9:26:00 -- 【求助】列值第一次录入便生成数据,那么我修改列值之后,直接修改对应记录,而不是新增记录 【求助】列值第一次录入便生成数据,那么我修改列值之后,直接修改对应记录,而不是新增记录 Select Case e.DataCol.Name Case "单价" If e.DataCol.Name = "单价" Then e.DataRow("金额")=e.DataRow("单价")*e.DataRow("数量") End If Case "数量" If e.DataCol.Name = "数量" Then e.DataRow("金额")=e.DataRow("单价")*e.DataRow("数量") \'以下是当数量列发生变动时候,写入信息到货物库存表里 Tables("货物库存").AddNew() Tables("货物库存").Current("货名")= e.DataRow("货名") Tables("货物库存").Current("出库数量")= e.DataRow("数量") Tables("货物库存").Current("出库日期")= e.DataRow("订单日期") Tables("货物库存").Current("出库编号")= e.DataRow("销售年编号") \'怎么实现在数量被我修改后,顺利实行下面代码呢?而不是新增一条记录! Dim pr As DataRow pr = DataTables("货物库存").Find("货名 = \'" & e.DataRow("货名") & "\' And 出库编号 = \'" & e.DataRow("销售年编号") & "\'") If pr IsNot Nothing Then pr("出库数量")= pr("出库数量") + e.NewValue - e.OldValue End If End If End Select [此贴子已经被作者于2017/6/20 9:26:17编辑过]
|
-- 作者:有点色 -- 发布时间:2017/6/20 9:42:00 -- Select Case e.DataCol.Name Case "单价" If e.DataCol.Name = "单价" Then e.DataRow("金额")=e.DataRow("单价")*e.DataRow("数量") End If Case "数量" If e.DataCol.Name = "数量" Then Dim pr As DataRow pr = DataTables("货物库存").Find("货名 = \'" & e.DataRow("货名") & "\' And 出库编号 = \'" & e.DataRow("销售年编号") & "\'") If pr IsNot Nothing Then pr("出库数量")= pr("出库数量") + e.NewValue - e.OldValue Else e.DataRow("金额")=e.DataRow("单价")*e.DataRow("数量") \'以下是当数量列发生变动时候,写入信息到货物库存表里 Dim nr As Row = Tables("货物库存").AddNew() nr("货名")= e.DataRow("货名") nr("出库数量")= e.DataRow("数量") nr("出库日期")= e.DataRow("订单日期") nr("出库编号")= e.DataRow("销售年编号") End If End If End Select |
-- 作者:李孝春 -- 发布时间:2017/6/20 9:53:00 -- 回复:(有点色)Select Case e.DataCol.Name?&n... 现在是可以不新增空值行了,效果如下: 如果再次增加同样货名的东西,就会修改总值,而不是新增一条记录进货物库存表里,如果我把这条订单记录删除,就会把所有当前的记录全部删除,而不是在数量上减去我对应删除行数量,重新计算成为新值。
[此贴子已经被作者于2017/6/20 10:02:50编辑过]
|
-- 作者:有点色 -- 发布时间:2017/6/20 9:56:00 -- 你删除记录的时候,查找对应的行,减去相应的值,不就好了?改写你的DataRowDeleting事件。 |
-- 作者:李孝春 -- 发布时间:2017/6/20 10:11:00 -- 回复:(有点色) 你删除记录的时候,查找对应的... 谢谢有点色老师 采用下面代码解决了 Dim dr As DataRow = DataTables("货物库存").Find("货名 = \'" & e.DataRow("货名") & "\' And 出库编号 = \'" & e.DataRow("销售年编号") & "\'") If dr IsNot Nothing Then dr("出库数量")= dr("出库数量") - e.DataRow("数量") If dr("出库数量")= 0 Then dr.Delete() End If End If |