以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]afteredit有段代码错误不知道错哪了  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=118294)

--  作者:倪远歌1
--  发布时间:2018/4/28 11:19:00
--  [求助]afteredit有段代码错误不知道错哪了
一直提示未知编译错误,不太明白
Afteredit事件,代码如下
Select Case e.Col.name 
    Case "长","宽","高","净重","Ⅰ级材料一_编码","Ⅰ级材料二_编码","Ⅰ级材料二_数量","Ⅰ级材料三_编码","Ⅰ级材料三_数量","Ⅰ级材料四_编码","Ⅰ级材料四_数量","Ⅱ级材料一_编码","Ⅱ级材料二_编码","Ⅱ级材料二_数量","Ⅲ级材料编码","Ⅲ级材料数量"
    If e.newvalue <> e.oldvalue Then
    e.Row("工程师") = User.Name 
    e.Row("变更日期") = Date.Now
    End If 
End Select
这该怎么改?图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/4/28 11:22:00
--  

写到DataColChanged事件

 

Select Case e.DataCol.name 
    Case "长","宽","高","净重","Ⅰ级材料一_编码","Ⅰ级材料二_编码","Ⅰ级材料二_数量","Ⅰ级材料三_编码","Ⅰ级材料三_数量","Ⅰ级材料四_编码","Ⅰ级材料四_数量","Ⅱ级材料一_编码","Ⅱ级材料二_编码","Ⅱ级材料二_数量","Ⅲ级材料编码","Ⅲ级材料数量"
    If e.newvalue <> e.oldvalue Then
    e.DataRow("工程师") = User.Name 
    e.DataRow("变更日期") = Date.Now
    End If 
End Select

--  作者:倪远歌1
--  发布时间:2018/5/2 16:29:00
--  
我想了一下写到datacolchanged里面还是不太对,因为是“变更日期”,除此之外还有一列“录入日期”,变更指的是本行已有内容(不代表所有列都不为空)并已经保存,本行内容发生改变之后才会有变更日期这一说法。
变更可能是某一列从无到有,也可能是从有到无。
直接写到datacolchanged里面在第一次录入的时候就会触发此事件,而且是每录入一列数据就触发一次。


--  作者:有点甜
--  发布时间:2018/5/2 16:33:00
--  

Select Case e.DataCol.name
    Case "长","宽","高","净重","Ⅰ级材料一_编码","Ⅰ级材料二_编码","Ⅰ级材料二_数量","Ⅰ级材料三_编码","Ⅰ级材料三_数量","Ⅰ级材料四_编码","Ⅰ级材料四_数量","Ⅱ级材料一_编码","Ⅱ级材料二_编码","Ⅱ级材料二_数量","Ⅲ级材料编码","Ⅲ级材料数量"
        If e.DataRow.RowState <> DataRowState.Added Then
            e.DataRow("工程师") = User.Name
            e.DataRow("变更日期") = Date.Now
        End If
End Select

[此贴子已经被作者于2018/5/2 16:33:28编辑过]

--  作者:倪远歌1
--  发布时间:2018/5/2 23:30:00
--  
我换了一个思路,根据实际使用情况,加了一个条件,让录入日期不等于今天再执行。
这样也可以分辨出改动和新增的区别。
多谢有点甜老师指点!!!