Rss & SiteMap

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

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

标题:请教如何在狐表中实现列的代码输入!!

1楼
steel_tn 发表于:2009/10/21 17:52:00
在易表中,很容易实现在列中使用代码,以简化输入过程,请教版主在狐表中如何实现这个功能?
2楼
狐狸爸爸 发表于:2009/10/21 17:55:00

有两种方法,这是其中之一:

DataColChanging

某一列的内容发生变化前执行,此时列的内容还是更改前的值。
利用此事件,我们可以在某列内容发生变化之前进行拦截判断,如果不符合特定的条件,则取消此次变化,或者重新指定一个值。

e参数属性:

DataTable: 返回发生数据更改的数据表。
DataRow:   返回发生数据更改的数据行。
DataCol:   返回数据更改的数据列。
NewValue:  Object类型,表示新的值
Cancel:    逻辑(Boolean)类型,设为True取消更改。

示例

例如在订单表中,要求折扣列的值不能超过0.15,可以在DataColChanging事件中设置如下代码:

If e.DataCol.Name = "折扣" Then '如果是折扣列的内容发生变化。
   
If e.NewValue > 0.15 Then '如果新值大于0.15。
        e.Cancel =
True '取消变动。
   
End If
End
If

 

上面的代码在折扣超出0.15后,取消此次变动;如果希望在折扣超出0.15后,自动改为0.15,代码如下:

If e.DataCol.Name = "折扣" Then '如果是折扣列的内容发生变化。
    If
e.NewValue > 0.15 Then '如果输入的内容大于0.15。
        e
.NewValue = 0.15 '那么改为0.15。
    End If
End If



通过更改NewValue参数的值,我们可以实现代码输入,例如:

If e.DataCol.Name = "产品" Then '如果是产品列的内容发生变化。
   
If e.NewValue = "tv" Then '如果新值是"tv"。
        e.NewValue =
"电视机" '那么将"tv"替换为"电视机"
   
ElseIf e.NewValue = "tel" '如果新值是"tel"
        e.NewValue =
"电话机" '那么将"tel"替换为"电话机"
   
End If
End
If

 

设置上述代码后,如果你在产品列输入tv,将自动替换为电视机,如果输入tel,自动替换为电话机。

共2 条记录, 每页显示 10 条, 页签: [1]

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

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