以下是引用ybmjy在2009-7-9 16:54:00的发言:
怎样设置全局变量,在哪设哦。
全局变量
在Foxtable中实际开发的时候,你会发现,你所编写的代码分布在各个事件中。
我们之前提到的变量,都只能在定义该变量的事件代码中使用,我们无法用它们在不同的事件代码中传递信息。
全局变量就是为解决这个问题而提出的,所谓全局变量,就是在任何一个事件代码中都可以使用的变量。
全局变量存储在集合Vars中。
全局变量的具体使用方法,我们会在今后的章节介绍,现在你只需了解这个概念。
增加全局变量
语法
Vars.Add(VarName,GetType(Type))
Vars.Add(VarName,GetType(Type),Value)
参数
VarName: 全局变量名称
Type: 全局变量类型,需要配合GetType关键字来获得数据类型,例如GetType(String)表示字符型,GetType(Boolean)表示逻辑型。
Value: 可选参数,用于设置全局变量的初始值。
例如:
Vars.Add(
"Mark1",GetType(Boolean),False)
表示增加一个逻辑型全局变量Mark1,初始值为False
Vars.Add(
"起始日期",GetType(Date),#12/31/2007#)
表示增加一个日期型全局变量,名称为“起始日期”,初始值为#12/31/2007#
引用全局变量
增加全局变量后,你既可在任何事件代码中引用全局变量。
引用全局变量的语法为:
Vars(VarName)
VarName:全局变量名称。
例如:
If
Vars("Mark1") = False Then
Vars("Mark1") = True
Vars("起始日期") = #8/21/2002#
Output.Show(Vars("起始日期"))
End If
使用全局变量
为了能够在不同的事件代码中交流数据,需要使用全局变量。
下面我们用一个简单的例子,来说明如何使用全局变量。
假定我们规定表A每天只能增加500行,为实现此目的,需要进行如下设置:
1、在项目事件Initialize中加入代码:
Vars.Add("Count",GetType(Integer))
上面的代码,增加了一个名为Count的全局变量,该变量为整数型,用于记录已经增加的行数。
2、在表A的DataRowAdded事件中加入代码:
Vars("Count") = Vars("Count") + 1
这样每增加一行,全局变量Count就会增加1
3、然后在表A的DataRowDeleted事件中加入代码:
Vars(
"Count") = Vars("Count") - 1
这样每删除一行,全局变量Count就会减1
4、最后在表A的BeforeAddDataRow事件中加入代码:
If
Vars("Count") >= 500 Then '如果已经增加了500行
Messagebox.Show("每天只能在表A中增加500行!","提示")
e.Cancel = True '那么取消增加行
End If
这个例子并没有多少实际的意义,重新打开项目,我们又可以增加500行了,不过这个例子很好地说明了如何使用全局变量在不同的事件中交流数据。
如果要跟踪全局变量值的变化,可以使用事件:GlobalVariableChanged