以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]代码生成的列数据没能触发datacolchanged事件 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131272) |
||||
-- 作者:天一生水 -- 发布时间:2019/2/21 19:54:00 -- [求助]代码生成的列数据没能触发datacolchanged事件 老师好! 如图测试:剪切单元格内容,再粘贴回原处。 "合并审理","开庭日期"两列发生变化,但是数据表的datacolchanged事件没有运行,需要重置"开庭日期"列以后,“测试表”才能新增行。 里面有一段屏蔽代码systemready = False,这怎样解决? 谢谢! datacolchanged事件: Select Case e.DataCol.name \'写入测试表 Case "合并审理","开庭日期" If e.DataCol.Name = "开庭日期" And e.NewValue IsNot Nothing Then \'If e.NewValue IsNot Nothing Then Dim dr = DataTables("测试").Find("[案号] = \'" & e.DataRow("案号") & "\'and [开庭日期] = \'" & e.DataRow("开庭日期") & "\'") If dr Is Nothing Then dr = DataTables("测试").AddNew dr("案号") = e.DataRow("案号") End If dr("案件数量") = e.DataRow("案件数量") Else Return End If End Select
[此贴子已经被作者于2019/2/21 20:17:45编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/2/21 21:02:00 -- Select Case e.DataCol.name \'写入测试表 Case "合并审理","开庭日期" If e.DataRow.isnull("合并审理") = False And e.DataRow.isnull("开庭日期") = False Then \'If e.NewValue IsNot Nothing Then Dim dr = DataTables("测试").Find("[案号] = \'" & e.DataRow("案号") & "\'and [开庭日期] = \'" & e.DataRow("开庭日期") & "\'") If dr Is Nothing Then dr = DataTables("测试").AddNew dr("案号") = e.DataRow("案号") End If dr("案件数量") = e.DataRow("案件数量") End If End Select
|
||||
-- 作者:天一生水 -- 发布时间:2019/2/22 11:38:00 -- 蓝老师好! 但是只增加了一行,应该增加4行才对。 是什么原因? |
||||
-- 作者:天一生水 -- 发布时间:2019/2/24 22:05:00 -- 甜老师好! 非常感谢老师的帮助,如果有时间再帮我看看这个实例吧。 数据表的datacolchanged事件没有运行,是不是那一段屏蔽代码造成的,怎样解决?
|
||||
-- 作者:有点甜 -- 发布时间:2019/2/24 22:20:00 --
systemready = false 会导致所有事件都会触发的。你可以移除。
或者是,在代码最后,重置对应的行。
|
||||
-- 作者:天一生水 -- 发布时间:2019/5/28 17:03:00 -- 甜老师好! 怎样在表事件里"......重置对应的行。"? |
||||
-- 作者:有点甜 -- 发布时间:2019/5/28 17:14:00 -- 以下是引用天一生水在2019/5/28 17:03:00的发言:
甜老师好! 怎样在表事件里"......重置对应的行。"?
请具体说明你的逻辑。在什么表事件,要重置什么行? |
||||
-- 作者:有点甜 -- 发布时间:2019/5/28 17:15:00 -- 如果需要重置datacolchanged,参考
http://www.foxtable.com/webhelp/scr/1587.htm
|
||||
-- 作者:天一生水 -- 发布时间:2019/5/29 10:33:00 -- 甜老师好!我写了两处的事件代码,都没有运行完全,只能写入“测试表”一行数据。 但是,点击菜单按钮-重置列,就没有问题,可以写入四行数据。
1、DataColChanged事件: ......
2、ValidateEdit事件: DataTables("数据表").DataCols("合并审理").RaiseDataColChanged(e.Row("合并审理") <> e.Row.DataRow.OriginalValue("合并审理"))
|
||||
-- 作者:有点甜 -- 发布时间:2019/5/29 10:38:00 -- 如果要重置全部行,参考
If dr("合并审理") <> dr.OriginalValue("合并审理") Then DataTables("数据表").DataCols("合并审理").RaiseDataColChanged(dr) End If
|