Foxtable(狐表)用户栏目专家坐堂 → Afteropenproject事件执行的时候,表中加载了数据吗?


  共有10121人关注过本帖树形打印复制链接

主题:Afteropenproject事件执行的时候,表中加载了数据吗?

帅哥哟,离线,有人找我吗?
lin_hailun
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/14 11:29:00 [显示全部帖子]

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编辑过]

 回到顶部