以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]升级后有出错提示(开发版) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62934) |
||||
-- 作者:瞩望星空 -- 发布时间:2015/1/10 13:22:00 -- [求助]升级后有出错提示(开发版) 在项目中,为了实现以下二个目的: 1、在程序升级后,不要出现加载表的提示(此时不需要加载表)。 2、在登录(包括切换)用户后,必须提示“单价大于10元的订单”有多少条记录。 为了测试方便,升级目的建立在本机的“d:\\updata” 本项目有二个问题: 1、每次打开项目,都会出现“表1”。删除这个“表1”表,保存项目后,下次打开还有出现。 2、升级完成后,出现提示: Cannot access a disposed object. Object name: \'gw\'. 请版主见谅,因没有解决问题,只有再发一个帖。 这个项目的代码很简单,请版主测试一下项目文件。 狐表使用者一般都是以个人为主,不象通用软件,可以向同事或其他技术人员请教。 遇到狐表问题时,第一时间还是想到论坛,也许在版主看来是极简单的问题,但是对于不同的使用者 也许是一道坎,过不去,就是过不去。 [此贴子已经被作者于2015-1-10 13:22:28编辑过]
|
||||
-- 作者:Bin -- 发布时间:2015/1/10 14:07:00 -- 不要在BEforOpenproject等地方写退出项目代码 写了后面要跟上Return 升级代码要严格按照帮助的来.
|
||||
-- 作者:瞩望星空 -- 发布时间:2015/1/10 14:22:00 -- 请版主测试项目文件,以下是项目的全部代码,或指出哪一句写错了 项目事件 BeforeConnectOuterDataSource If e.name = "订单" Then e.C & e.ProjectPath & "订单.mdb;Persist Security Info=False" End If BeforeLoadInnerTable e.Cancel = True \'不加载任何内部数据表 BeforeLoadOuterTable e.Cancel = True \'不加载任何外部数据表 AfterOpenProject If DataTables.Contains("main") = False Then \'是否需要加载内部表,选其中一个作检测 DataTables.Load("main") End If If DataTables.Contains("订单") = False Then \'是否需要加载外部表,选其中一个作检测 DataTables.Load("订单") End If LoadUserSetting If Syscmd.Project.Update(False,False) = False Then \'先检查是否要升级 If DataTables.Contains("main") = False Then \'是否需要加载内部表,选其中一个作检测 DataTables.Load("main") End If If DataTables.Contains("订单") = False Then \'是否需要加载外部表,选其中一个作检测 DataTables.Load("订单") End If DataTables("订单").LoadFilter ="[单价] > 10" DataTables("订单").Load MessageBox.Show("订单表单价大于10元的记录数:" & Tables("订单").Rows.Count) Else ‘这二行删除也一样报错 System.Diagnostics.Process.GetProcessesByName("foxtable")(0).Kill ‘这一行是甜版主写的一代码 End If \'检查升级结束 SystemIdle With CurrentTable Dim Str1 As String = "用户名: " & User.Name Str1 = Str1 & " 表名: " & .Name & " 总行数: " Str1 = Str1 & .Rows.Count & " 当前行: " & (.Position + 1) StatusBar.Message1 = Str1 End With 计划管理 表事件 窗口表事件 窗口与控件事件 自定义函数 全局代码 Default 菜单事件 系统管理_项目管理_程序升级_Click Syscmd.Project.Update() \'检查升级 系统管理_项目管理_切换用户_Click Syscmd.Project.SwitchUser() 系统管理_项目管理_退出_Click Syscmd.Project.Exit(False) 系统管理_项目管理_系统菜单_Click If User.Type = UserTypeEnum.Developer Syscmd.Project.OpenSystemMenu() Else MessageBox.Show("只有开发者才能使用!","提醒") End If 系统管理_项目管理_用户管理_Click Syscmd.Project.Users() [此贴子已经被作者于2015-1-10 14:23:32编辑过]
|
||||
-- 作者:Bin -- 发布时间:2015/1/10 14:47:00 -- ALterOpenProject的代码注译看看,没有升级包我测试不了你的项目 |
||||
-- 作者:瞩望星空 -- 发布时间:2015/1/10 14:48:00 -- 新建一个项目,以便测试升级,但一样出错: Cannot access a disposed object. Object name: \'gw\'. 项目事件 BeforeLoadInnerTable e.Cancel = True BeforeLoadOuterTable e.Cancel = True AfterOpenProject If DataTables.Contains("表A") = False Then \'是否需要加载内部表,选其中一个作检测 DataTables.Load("表A") End If \'If DataTables.Contains("订单") = False Then \'是否需要加载外部表,选其中一个作检测 \'DataTables.Load("订单") \'End If \' LoadUserSetting If Syscmd.Project.Update(False,False) = False Then \'先检查是否要升级 If DataTables.Contains("表A") = False Then \'是否需要加载内部表,选其中一个作检测 DataTables.Load("表A") End If \'If DataTables.Contains("订单") = False Then \'是否需要加载外部表,选其中一个作检测 \'DataTables.Load("订单") \'End If \' Forms("主窗口").Open End If
|
||||
-- 作者:Bin -- 发布时间:2015/1/10 14:50:00 -- 看4漏. |
||||
-- 作者:瞩望星空 -- 发布时间:2015/1/10 14:55:00 -- 升级包可以自己制作啊,发布下程序,选一个较新的日期就可以。 升级文件选择放在“d:\\updata” [此贴子已经被作者于2015-1-10 15:04:03编辑过]
|
||||
-- 作者:Bin -- 发布时间:2015/1/10 14:56:00 -- 看4楼 ALterOpenProject的代码注译看看, |
||||
-- 作者:瞩望星空 -- 发布时间:2015/1/10 15:00:00 -- 升级代码就是从帮助中拷贝的,甜版主也说过升级检测可以放在用户登录代码中 |
||||
-- 作者:Bin -- 发布时间:2015/1/10 15:08:00 -- 试过了没? 什么结果? |