以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助]DataColChanged事件中的代码改到AfterEdit事件中? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=6196)
|
-- 作者:pyh6918
-- 发布时间:2010/3/16 14:53:00
-- [求助]DataColChanged事件中的代码改到AfterEdit事件中?
If e.DataCol.Name = "检查编号" Then Dim dt As DataTable = DataTables("序号") Dim r As DataRow r = dt.Find("[检查编号] = \'" & e.datarow("检查编号") & "\'") If r IsNot Nothing e.datarow("单位") = r("单位") e.datarow("检查时间") = r("检查时间") e.datarow("日序") = e.datarow("检查编号") & e.DataRow("_Identify") end if end if 这段代码是表事件DataColChanged中的,执行正常,由于在导入数据时也触发DataColChanged事件,由于“日序”列是根据“编号”和("_Identify")生成的,导入时该列内容会变。我想把这段代码改到AfterEdit事件中:改成这样确不执行: If e.col.DataCol.Name = "检查编号" Then Dim dt As DataTable = DataTables("序号") Dim r As DataRow r = dt.Find("[检查编号] = \'" & e.row.datarow("检查编号") & "\'") If r IsNot Nothing e.row.datarow("单位") = r("单位") e.row.datarow("委派会计") = r("委派会计") e.row.datarow("检查时间") = r("检查时间") e.row.datarow("单位") = r("单位") e.row.datarow("使用单位") = r("使用单位") e.row.datarow("日序") = e.row.datarow("检查编号") & e.row.DataRow("_Identify") end if end if 请问应该怎么改? 或者有什么办法在导入数据时屏蔽DataColChanged事件也可以。谢谢大家!
|
-- 作者:狐狸爸爸
-- 发布时间:2010/3/16 15:07:00
--
比较一下两者的E参数属性,所有的e.Row应该改为e.datarow
另外这个事件不一定对导入有效。
|
-- 作者:pyh6918
-- 发布时间:2010/3/16 15:24:00
--
If e.col.DataCol.Name = "检查编号" Then 改成: If e.DataCol.Name = "检查编号" Then 在编辑器中提示错误:
此主题相关图片如下:q1.bmp
r = dt.Find("[检查编号] = \'" & e.row.datarow("检查编号") & "\'") 改成: r = dt.Find("[检查编号] = \'" & e.datarow("检查编号") & "\'") 在编辑器中提示错误:
此主题相关图片如下:q2.bmp
|
-- 作者:狐狸爸爸
-- 发布时间:2010/3/16 15:35:00
--
第一个图:同样e.DataCol也应该改为e.Col 第二个图:这样有一个e.DataRow没有改为e.Row
其实你一打开代码编辑器,该事件的e参数就已经列出来了的。
|
-- 作者:pyh6918
-- 发布时间:2010/3/16 15:51:00
--
老大改成这样了,编辑器通过了,可是就是不执行啊!!硬着头皮再问!!
If e.col.Name = "检查编号" Then Dim dt As dataTable = dataTables("序号") Dim r As dataRow r = dt.Find("[检查编号] = \'" & e.row("检查编号") & "\'") If r IsNot Nothing e.row("单位") = r("单位") e.row("委派会计") = r("委派会计") e.row("检查时间") = r("检查时间") e.row("使用单位") = r("使用单位") e.row("日序") = e.row("检查编号") & e.row("_Identify") end if end if
|
-- 作者:狐狸爸爸
-- 发布时间:2010/3/16 15:58:00
--
没有看出什么问题,你做个简单的例子文件传上来,并写上你的代码。
|
-- 作者:狐狸爸爸
-- 发布时间:2010/3/16 15:59:00
--
关闭屏蔽事件,可以在DatacolChanged加一个判断,某全局变量等于True时才执行,这样可以在导入是将此变量设为False,导入结束后将此变量设置为True,达到间接屏蔽事件的目的
|
-- 作者:pyh6918
-- 发布时间:2010/3/16 16:02:00
--
多谢,就用这招了,老大就是老大。哈哈
|