以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]逻辑列判断报错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=144377)

--  作者:天一生水
--  发布时间:2019/12/18 13:00:00
--  [求助]逻辑列判断报错

列的数据类型没问题,datachanged事件,运行报错如下:

 

If e.DataCol.Name = "二审结案方式" Then
    If e.NewValue("二审结案方式") = "改判" Or e.NewValue("二审结案方式") = "发回重审" Then
        e.DataRow("发改") = True
    Else
        e.DataRow("发改") = False
    End If
End If

 


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (2).jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/12/18 13:48:00
--  
If e.DataCol.Name = "二审结案方式" Then
    If e.NewValue= "改判" Or e.NewValue = "发回重审" Then
        e.DataRow("发改") = True
    Else
        e.DataRow("发改") = False
    End If
End If

e参数属性:

DataTable:返回发生数据更改的数据表。
DataRow:  返回发生数据更改的数据行。
DataCol:  返回发生数据更改的数据列。
NewValue: Object类型,表示新的值。
OldValue: Object类型,表示旧的值

示例一


--  作者:天一生水
--  发布时间:2019/12/18 16:57:00
--  

蓝老师,把 e.NewValue 改成 e.DataRow("二审结案方式") ,不报错了。

但是不明白在datachanged事件中这两种写法有何不同?

事件中还有多处,列值用e.NewValue 表示的代码,并没有报错。


--  作者:有点蓝
--  发布时间:2019/12/18 17:03:00
--  
认真理解,中文应该可以看懂吧,e.NewValue指这个单元格的值,e.DataRow只表格的这一行

e参数属性:

DataTable:返回发生数据更改的数据表。
DataRow:  返回发生数据更改的数据行。
DataCol:  返回发生数据更改的数据列。
NewValue: Object类型,表示新的值。
OldValue: Object类型,表示旧的值

示例一