Foxtable(狐表)用户栏目专家坐堂 → 自动升级后报错,请指导


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

主题:自动升级后报错,请指导

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


加好友 发短信
等级:小狐 帖子:324 积分:2547 威望:0 精华:0 注册:2012/5/19 22:40:00
自动升级后报错,请指导  发帖心情 Post By:2014/11/4 19:31:00 [只看该作者]

做好了自动升级,但是在自动升级后,出现报错窗口,但是关闭报错窗口后,启动程序正常,也确实进行了升级,请高手指导如何修改代码。我编写的AfterOpenProject代码如下:

StatusBar.Message2= "当前用户:" & User.Name &"              程序开发:***    QQ:1234567 "

If GetConfigValue("试用起始日",#1/1/2010#) = #1/1/2010# Then

    '定义一个试用起始日的变量,让默认日期为早期时间, 若是第一次运行,则将试用日期设为当天

    SaveConfigValue("试用起始日",Date.Today)

End If

Dim usetoday As Date = GetConfigValue("试用日期",Date.today)  '定义一个日期变量,来记录系统本次打开日期

Dim Regok As Boolean = getconfigvalue("注册状态",False)   '定义一个逻辑变量,用来记录注册成功与否

Dim startday As Date = GetConfigValue("试用起始日",#1/1/2010#) '定义一个日期变量,来记录第一次打开系统的日期

If regok = False Then    '若是未注册状态

    If Date.Today < usetoday Then  '若当前日期小于上一次的试用日期,则说明系统时间被修改

        msgbox("系统时间被非法修改,不能进入系统!"'给消息提示

        syscmd.project.Exit()   '强制退出系统

        Return

    End If

    If Date.Today > startday.AddDays(90) Then   '若今天比第一次打开系统的日期过去3天了

        Forms("注册").open

        Return         '返回,不执行后面的打开窗口1的代码

    End If

End If

SaveConfigValue("试用日期",Date.Today)   '把今天的日期写入到试用日期的参数值里

If Syscmd.Project.Update(False,True) = False Then '如果没有升级

    Forms("导航").open()

End If

If User.Type <> UserTypeEnum.Developer '隐藏表标题(普通登录者不显示表标题,但开发者登录时显示)

    TableCaptionVisible = False

End If

 

DataTables("监造基本信息表").DataCols("监造流水号").RaiseDataColChanged()

DataTables("监造物资明细表").DataCols("监造流水号").RaiseDataColChanged()

 

Tables("监造放行单表.监造物资明细表").Visible = False

Tables("监造日志.监造物资明细表.监造周报").Visible = False

Tables("监造日志.监造物资明细表.图纸工艺文件及进度状态表").Visible = False

Tables("监造日志.监造物资明细表.原材料及外购外协件检验表").Visible = False

Tables("监造物资明细表").Grid.AllowFiltering = True '启动表的内置筛选功能

Tables("监造基本信息表").Grid.AllowFiltering = True '启动表的内置筛选功能

Tables("监造周报").Grid.AllowFiltering = True '启动表的内置筛选功能

Tables("监造日志").Grid.AllowFiltering = True '启动表的内置筛选功能

Tables("监造放行单表").Grid.AllowFiltering = True '启动表的内置筛选功能

Tables("人员信息表").Grid.AllowFiltering = True '启动表的内置筛选功能


错误信息如下:

.NET Framework 版本:2.0.50727.5485

Foxtable 版本:2014.10.16.1

错误所在事件:项目,AfterOpenProject

详细错误信息:

未将对象引用设置到对象的实例。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/4 19:38:00 [只看该作者]

 把这段代码写到Initialize事件,不写到afterOpenProject里面去

 

StatusBar.Message2= "当前用户:" & User.Name &"              程序开发:***    QQ:1234567 "

If GetConfigValue("试用起始日",#1/1/2010#) = #1/1/2010# Then

    '定义一个试用起始日的变量,让默认日期为早期时间, 若是第一次运行,则将试用日期设为当天

    SaveConfigValue("试用起始日",Date.Today)

End If

Dim usetoday As Date = GetConfigValue("试用日期",Date.today)  '定义一个日期变量,来记录系统本次打开日期

Dim Regok As Boolean = getconfigvalue("注册状态",False)   '定义一个逻辑变量,用来记录注册成功与否

Dim startday As Date = GetConfigValue("试用起始日",#1/1/2010#) '定义一个日期变量,来记录第一次打开系统的日期

If regok = False Then    '若是未注册状态

    If Date.Today < usetoday Then  '若当前日期小于上一次的试用日期,则说明系统时间被修改

        msgbox("系统时间被非法修改,不能进入系统!")  '给消息提示

        syscmd.project.Exit()   '强制退出系统

        Return

    End If

    If Date.Today > startday.AddDays(90) Then   '若今天比第一次打开系统的日期过去3天了

        Forms("注册").open

        Return         '返回,不执行后面的打开窗口1的代码

    End If

End If

SaveConfigValue("试用日期",Date.Today)   '把今天的日期写入到试用日期的参数值里

If Syscmd.Project.Update(False,True) = False Then '如果没有升级

    Forms("导航").open()

End If


 回到顶部
帅哥哟,离线,有人找我吗?
audience68
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:324 积分:2547 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/11/4 19:47:00 [只看该作者]

甜版,在帮助里,这些代码不都是写在afterOpenProject里吗,为何,现在要该在Initialize,有什么说法吗?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/4 19:49:00 [只看该作者]

  如果写在afterOpenProject。

 

下面的代码就要在判断的里面写

 

 

If Syscmd.Project.Update(False,True) = False Then '如果没有升级

    Forms("导航").open()

 

    '其余的代码

 

End If


 回到顶部
帅哥哟,离线,有人找我吗?
audience68
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:324 积分:2547 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/11/4 19:55:00 [只看该作者]

是不是可以这样理解,如果象我前面编的代码,在升级完后,就不打开导航窗口,但程序还是会继续执行END IF 后面的语句,所以就报错了?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/4 20:05:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
audience68
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:324 积分:2547 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/11/5 13:53:00 [只看该作者]

谢谢甜版

 回到顶部