Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]DataColChanged事件中的代码改到AfterEdit事件中?

1楼
pyh6918 发表于:2010/3/16 14:53:00
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事件也可以。谢谢大家!
2楼
狐狸爸爸 发表于:2010/3/16 15:07:00
比较一下两者的E参数属性,所有的e.Row应该改为e.datarow

另外这个事件不一定对导入有效。
3楼
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
图片点击可在新窗口打开查看
4楼
狐狸爸爸 发表于:2010/3/16 15:35:00

第一个图:同样e.DataCol也应该改为e.Col
第二个图:这样有一个e.DataRow没有改为e.Row

其实你一打开代码编辑器,该事件的e参数就已经列出来了的。

5楼
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
6楼
狐狸爸爸 发表于:2010/3/16 15:58:00

没有看出什么问题,你做个简单的例子文件传上来,并写上你的代码。

 

 

7楼
狐狸爸爸 发表于:2010/3/16 15:59:00
关闭屏蔽事件,可以在DatacolChanged加一个判断,某全局变量等于True时才执行,这样可以在导入是将此变量设为False,导入结束后将此变量设置为True,达到间接屏蔽事件的目的
8楼
pyh6918 发表于:2010/3/16 16:02:00
多谢,就用这招了,老大就是老大。哈哈
共8 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 2 queries.