以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- Afteropenproject事件执行的时候,表中加载了数据吗? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=23617) |
-- 作者:Fotable -- 发布时间:2012/9/14 11:12:00 -- Afteropenproject事件执行的时候,表中加载了数据吗? Afteropenproject事件执行的时候,表中加载了数据吗? |
-- 作者:Fotable -- 发布时间:2012/9/14 11:25:00 -- 实验证明 已经加载 |
-- 作者:lin_hailun -- 发布时间: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编辑过]
|