以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 版本升级后提示错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57128)

--  作者:wumingrong1
--  发布时间:2014/9/18 18:00:00
--  [求助] 版本升级后提示错误
我的项目在线自动升级提示成功后,会弹出很多如下图这些提示;请问是什么原因?

升级的文件是由软件发布功能中自动生成的3个文件。


图片点击可在新窗口打开查看此主题相关图片如下:360截图20140918175559062.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:360截图20140918175623937.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:360截图20140918175642531.jpg
图片点击可在新窗口打开查看

把所有的这些错误提示一个一个都关闭后、再进行登录、项目可以正常登录。
[此贴子已经被作者于2014-9-18 18:00:57编辑过]

--  作者:有点甜
--  发布时间:2014/9/18 18:04:00
--  
 项目有问题,你去看【主页背景窗口】的所有表者是谁,而且要确认这个表被加载出来了。
--  作者:wumingrong1
--  发布时间:2014/9/19 9:34:00
--  
应该没有问题的,我把所有的这些错误提示都一个一个关闭后;重新打开系统就可以正常打开。出现这个问题只是在提示升级完成后弹出来的
[此贴子已经被作者于2014-9-19 9:37:15编辑过]

--  作者:有点甜
--  发布时间:2014/9/19 9:55:00
--  
以下是引用wumingrong1在2014-9-19 9:34:00的发言:
应该没有问题的,我把所有的这些错误提示都一个一个关闭后;重新打开系统就可以正常打开。出现这个问题只是在提示升级完成后弹出来的
[此贴子已经被作者于2014-9-19 9:37:15编辑过]

 

1、你的升级所在的事件,升级以后肯定写有额外的代码,贴出来看看;

 

2、贴出你的beforeCloseProject事件的代码。


--  作者:wumingrong1
--  发布时间:2014/9/19 10:22:00
--  

BeforeCloseProject


If CurrentTable.DataTable.HasChanges Then
    e.Cancel = True
    MessageBox.Show("请先保存被修改数据 再退出系统", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question)
End If


[此贴子已经被作者于2014-9-19 11:05:04编辑过]

--  作者:wumingrong1
--  发布时间:2014/9/19 10:25:00
--  

AfterOpenProject



Tables("本机注册表").Rows(0)("机器码") = ComputerId \'在"本机注册表""机器码"列第一行填入机器码
DataTables("本机注册表").Save()


Dim r As Row = Tables("本机注册表").Rows(0) \'r代表"本机注册表"第一行
Dim jqm As DataRow = DataTables("系统注册信息表").Find("机器码 = \'" & r("机器码") & "\'") \'fdr代表"系统注册信息表"的机器码=r表的机器码
Dim zcm As DataRow = DataTables("系统注册信息表").Find("使用授权 = \'FALSE \'") \'fdr代表"系统注册信息表"的机器码=r表的机器码



If  jqm Is Nothing    Then \'如果"本机注册表"的"机器码"与"系统注册信息表"的"机器码"列没有相同内容,那么
    MainTable = Tables("系统注册信息表") \'打开"***"表
    Forms("填写申请资料窗口").Open() \'打开"***"窗口
    
Else
   

        If jqm IsNot Nothing AndAlso  jqm("使用授权") = "FALSE"  Then \'如果"系统注册信息表"的"使用授权"为"FALSE",那么
            
            MessageBox.Show("管理员还未完成对本机的授权,请与管理员联系", "未授权提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification) \'弹出提示窗口
            Syscmd.Project.Exit() \'正常退出飞狐
            Return \'这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
Else  
    If jqm IsNot Nothing AndAlso  jqm("使用授权") = "TRUE"  AndAlso jqm("截止日期") < Date.Today Then
        
        MessageBox.Show("本计算机使用该软件的期限已经过期,请与管理员联系", "未授权提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification) \'弹出提示窗口
        Syscmd.Project.Exit() \'正常退出飞狐
        Return \'这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错

  Else
        If jqm IsNot Nothing AndAlso  jqm("使用授权") = "FALSE"  AndAlso jqm("截止日期") >= Date.Today Then
               
            MessageBox.Show("管理员还未完成对本机的授权,请与管理员联系", "未授权提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification) \'弹出提示窗口
            Syscmd.Project.Exit() \'正常退出飞狐
            Return \'这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
      
            
        Else
            
            If Syscmd.Project.Update(False,True) = False Then \'如果没有升级(False,True)
                Forms("用户登录").Open() \'打开 用户登录 窗口
                If _UserName = "" Then \'如果用户名= 空
   
                    system.diagnostics.process.GetProcessesByName("foxtable")(0).kill
                End If
            End If
End If
            

            
            Applicati \'系统抬头显示该名称
            
            MainTable = Tables("主页") \'打开"主页"表
            
            Forms("主页背景窗口").Open() \'打开"主窗口(主页)"窗口

For Each u As Row In Tables("本机注册表").Rows
    Dim dru As DataRow = DataTables("系统注册信息表").Find("机器码 = \'" & u("机器码") & "\'")
    If dru IsNot Nothing Then
        For Each s As String In "截止日期".Split("|")
            u(s) = dru(s)
        Next

    End If
Next

        End If
    End If
End If



If User.Type <> UserTypeEnum.Developer AndAlso User.Type <> UserTypeEnum.Administrator AndAlso _UserGroup <> "特级管理员"  AndAlso _UserGroup <> "省公司"  Then
    
    
    Dim fdr As DataRow = DataTables("Users").SQLFind("Name = \'" & _userName & "\'")
    If fdr IsNot Nothing Then
        _user分公司 = fdr("分公司")
    End If
    For Each dt As DataTable In DataTables
        If dt.DataCols.Contains("分公司") Then
            dt.GlobalHandler.DataRowAdded = True
            dt.LoadFilter = "分公司 = \'" & _user分公司 & "\'" \'只加载分公司=当前用户"分公司"列所属分公司内容
            dt.Load
        End If
    Next
    
    
Else
    
    For Each dt As DataTable In DataTables
        If dt.DataCols.Contains("分公司") Then
            dt.GlobalHandler.DataRowAdded = True
            dt.LoadFilter = "分公司 <> \'\'" \'加载分公司列不等于"空"
            
            dt.Load
        End If
    Next
    
    
End If

--  作者:程兴刚
--  发布时间:2014/9/19 10:28:00
--  
升级前,不要打包Bin文件夹的dll文件,让升级后首次启动生成,大不了升级后首次启动慢一点,看可行否!
--  作者:有点甜
--  发布时间:2014/9/19 10:46:00
--  

这段改一下

 

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

                Forms("用户登录").Open() \'打开 用户登录 窗口
                If _UserName = "" Then \'如果用户名= 空
   
                    system.diagnostics.process.GetProcessesByName("foxtable")(0).kill
                End If
            End If

-----------

 

If Syscmd.Project.Update(False,True) = False Then \'如果没有升级(False,True)
    Forms("用户登录").Open() \'打开 用户登录 窗口
    If _UserName = "" Then \'如果用户名= 空
       
        system.diagnostics.process.GetProcessesByName("foxtable")(0).kill
    End If
Else
    system.diagnostics.process.GetProcessesByName("foxtable")(0).kill
End If


--  作者:有点甜
--  发布时间:2014/9/19 10:47:00
--  

 这段也改一下

 

If CurrentTable IsNot Nothing AndAlso CurrentTable.DataTable.HasChanges Then
    e.Cancel = True
    MessageBox.Show("请先保存被修改数据 再退出系统", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question)
End If

--  作者:wumingrong1
--  发布时间:2014/9/19 11:05:00
--  
按8楼的修改以后、有新版本就不会提示升级啦