Foxtable(狐表)用户栏目专家坐堂 → 在DataColChanged使用以下代码就不会出错


  共有7110人关注过本帖树形打印复制链接

主题:在DataColChanged使用以下代码就不会出错

帅哥哟,离线,有人找我吗?
CMCC
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:111 积分:858 威望:0 精华:0 注册:2012/12/16 17:24:00
在DataColChanged使用以下代码就不会出错  发帖心情 Post By:2013/1/28 22:48:00 [只看该作者]

 在DataColChanged使用以下代码就不会出错

'DataColChanged
Select Case e.DataCol.Name
Case "客户名称"
e.DataRow("投诉时间") = Date.now()
End Select

但如果在DataRowAdding使用以下代码

e.DataRow("投诉时间")  = Date.now()

就会提示。(注:有一列双精度列计算故障历时用。)

错误所在事件:表,投诉工单跟踪,DataColChanged
详细错误信息:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.InvalidCastException: 从字符串“”到类型“Double”的转换无效。 ---> System.FormatException: 输入字符串的格式不正确。

 回到顶部
帅哥哟,离线,有人找我吗?
muhua
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/1/29 8:14:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/29 8:41:00 [只看该作者]

 经测试,不是这些代码的问题,应该是其余代码影响的。

 回到顶部
帅哥哟,离线,有人找我吗?
CMCC
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:111 积分:858 威望:0 精华:0 注册:2012/12/16 17:24:00
  发帖心情 Post By:2013/1/29 16:09:00 [只看该作者]

以下是引用lin_hailun在2013-1-29 8:41:00的发言:
 经测试,不是这些代码的问题,应该是其余代码影响的。

 是的,一直昨晚一直没找到问题点,今天再看一次终于发现了影响的代码(是一段时间计算代码),已经解决。

问题是:使用DataRowAdding的时候,生成的值滞后于公式计算的速度;而使用DataColChanged提前于公式计算的速度。因此使用DataRowAdding时会提示“从字符串“”到类型“Double”的转换无效”?


 回到顶部
帅哥哟,离线,有人找我吗?
CMCC
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:111 积分:858 威望:0 精华:0 注册:2012/12/16 17:24:00
  发帖心情 Post By:2013/1/29 16:10:00 [只看该作者]

或者说是优先级?

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/29 16:24:00 [只看该作者]

 执行的顺序是这样的。

 新增一行->触发adding事件,执行代码,修改某列;暂停->触发changed事件,执行代码修改某值触发计算公式。

-------------

 如果问,先求公式,还是先执行changed,应该是先触发公式计算。

 回到顶部