如图
此主题相关图片如下:228.jpg

datacolchanged 代码如下:
Select Case e.DataCol.Name
Case "shuliang","danjia"
Dim dr As DataRow=e.DataRow
dr("zonger") =dr("shuliang")*dr("danjia")
dr("fuzhu")=dr("shuliang")*guanxi4/guanxi3
Case "chanpinname","guige","danwei","chanpinid" '发生变化的列
Dim dr As DataRow
Dim Filter As String
Filter = "[chanpinid] = '" & e.DataRow("chanpinid") & "' And [kehuid] = '" & e.DataRow("kehuid") & "'
and [danjia]> 0"
dr = DataTables("chuhuo").Find(Filter,"chuhuodate desc") '
If dr IsNot Nothing Then '如果找到
'将找到的内容填入到正在输入的行中.
e.DataRow("danjia") = dr("danjia")
Else
e.DataRow("danjia")=0
End If
End Select
红色的字段表示: 如果 产品名称 或 规格 或 单位 或 产品ID 列 发生变化的时候 就找出最近相同的记录,
如果找到就把单价填入当前行中。
运行界面如下
此主题相关图片如下:229.jpg

很奇怪的问题,第一次录入的时候,他就可以找到价格 并自动填充。如果你修改产品名称的时候不论你怎么改,
价格就是第一次输入的价格,始终不会变。
比如 我现在输入 特级兰双草绳 12CM 单位是 公斤 那么最后一条相同的记录 价格是9.5 他就会找出9.5元 ,
填充到当前行的价格中。 但是如果我第一次输入错误,要改产品名称,改成 黑地膜 80*0.025*10KG 单位是 公斤
按理说 产品名称列已经被改动,触发 datacolchanged 事件,他应该找出相同的记录 单价是 10 进行填充。
可结果是 不论你怎么改,价格就是不变。到底是怎么回事?如何解决呢?
[此贴子已经被作者于2012-1-14 16:17:47编辑过]