Rss & SiteMap

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

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

标题:[讨论] 这两个代码有什么区别?

1楼
wcs 发表于:2009/4/19 22:41:00

这是帮助中的一个例子,跨表计算的:
If
e.DataCol.Name = "产品名称" Then '如果内容发生变动的是产品列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是产品列的内容为空
        e.DataRow("单价") = Nothing
'那么清空此行单价列的内容
   
Else
        Dim dr As DataRow'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("产品").Find("[产品名称] = '" & e.NewValue & "'")

        If
dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("单价") = dr("单价")

        End
If
    End
If
End
If

我在想,将第二行和第六行的 e.NewValue  换成 e.datarow.(e.datacol)

这样可以运行吗,有什么区别吗?

我记得这个是可以运行的,因为帮助中有类似的例子。

[此贴子已经被作者于2009-4-19 22:56:39编辑过]
2楼
八婺 发表于:2009/4/19 23:03:00
应该e.datarow("列名称")来代替吧。
[此贴子已经被作者于2009-4-19 23:03:55编辑过]
3楼
狐狸爸爸 发表于:2009/4/19 23:03:00
如果在Datacolchanged事件中,是一样的。
如果在DatacolChanging事件中,e.NewValue表示即将写入的值,e.DataRow("列名")表示现在的值。
4楼
wcs 发表于:2009/4/19 23:17:00

哦,有一点点区别!

我正在认真地看帮助,理解它们的意义。

每一次看都有不同的感觉!

这一次,理解了表对象如:col、row、table 、datatable等等 与 代码中的对象、计算返回结果的对象、我需要的结果对象类型 相匹配方面的东西。

老大确实太不易了!

佩服!

[此贴子已经被作者于2009-4-19 23:17:43编辑过]
共4 条记录, 每页显示 10 条, 页签: [1]

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

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