3.4.2.3.4 BeforeOpenProject
在打开项目之前执行,可以在此进行一些环境上的判断,决定是否打开项目。
e参数属性:
File: 字符型,表示正在打开的项目文件名称,含路经。
Cancel: 逻辑型,设为True,拒绝打开项目。
示例
假定需要在打开项目前,检查项目文件目录中,是否存在名为ip.txt的文件,如果不存在,就拒绝打开项目:
Dim s As String = FileSys.GetParentPath(e.File) & "\ip.txt"
If FileSys.FileExists(s) = False Then
e.Cancel = True
MessageBox.show("文件丢失,无法打开此项目.")
End if
3.4.2.3.5 Initialize
此事件在 数据已经加载,所有的DataTable都已经生成,即将生成Table和窗口的时候执行,通常在此对DataTable进行初始化设置。
不能在Initialize事件中出现针对Table、Col和窗口的代码,因为此时上述对象还未生成。
示例
可以在Initialize事件中设置代码,修改列标题:
With DataTables("订单")
.DataCols("Name").Caption = "姓名"
.DataCols("ID").Caption = "编号"
.DataCols("Date").Caption = "日期"
End With
3.4.2.3.6 AfterOpenProject
此事件在项目已经完全打开后执行,此时DataTable、Table和窗口都已经生成。
示例一
例如希望产品表内容只能在Tables("产品")修改,也就是只能在主表修改,而不能在关联表修改,可以在AfterOpenProject事件中加入如下代码:
DataTables("产品").AllowEdit = False
Tables("产品").AllowEdit = True
注意上面的代码不能设置在Initialize事件中,因为Initialize事件代码执行时,Table还没有生成的。
示例二
假定打开项目的用户是“经理”级别的时候,则自动打开某个窗口,可以在AfterOpenProject事件中加入代码:
If User.Group = "经理" Then
Forms("窗口1").Open()
End If
3.4.2.3.7 LoadUserSetting
打开系统或者切换用户之后执行,可以在此针对用户进行权限方面的设置。
此事件无e参数,因为通过系统变量User可以直接返回登录用户。
示例
例如只有管理员用户,才能编辑表A,可以在LoadUserSetting事件中加入下面的代码:
If User.Type = UserTypeEnum.Administrator Then
DataTables("表A").AllowEdit = True
Else
DataTables("表A").AllowEdit = False
End If
提示:
如果项目没有提供切换用户的功能,那么可以直接在AfterOpenProject(见 [标题编号])事件中设置上述代码。
[此贴子已经被作者于2012-9-14 11:29:40编辑过]