Foxtable(狐表)用户栏目专家坐堂 → 提醒是否要升级


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

主题:提醒是否要升级

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


加好友 发短信
等级:六尾狐 帖子:1483 积分:9611 威望:0 精华:0 注册:2014/12/18 16:12:00
提醒是否要升级  发帖心情 Post By:2024/3/20 16:30:00 [只看该作者]

Syscmd.Project.Update(False, True, False) 

我将上述代码放在 maintablechanging 里面,希望切换主表时,提醒用户是否要对系统进行升级。如果他要升级,就点击Yes;如果他不要升级,就点击 No。但是运行时出现如下警告:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:在线升级失败!
详细错误信息:
不支持给定路径的格式。

请问要怎样修改代码?谢谢。

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106538 积分:541855 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/3/20 16:35:00 [只看该作者]

这个错误提示应该是升级路径不正确。

这个代码不应该放到maintablechanging,难道用户每切换一次主表,就提醒一次升级?我如果碰到这种程序第一时间考虑的是卸载掉。

考虑放到按钮,或者菜单里,然后用户自行点击。或者和帮助一样放到AfterOpenProject事件处理。

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


加好友 发短信
等级:六尾狐 帖子:1483 积分:9611 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/3/20 16:57:00 [只看该作者]

好的

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


加好友 发短信
等级:六尾狐 帖子:1483 积分:9611 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/5/7 9:03:00 [只看该作者]

        If LastInputTickCount > 300000 Then '停用5分钟则会执行
            Dim s As String = FileSys.ReadAllText("\\BOSON\Foxtable\Foxtable\升级文件\update.txt") '取得最新发布时间
            Dim dt1 As Date = CDate(s.Substring(0, 10))
            If Publishdate = dt1 Then
                If user.group IsNot Nothing Then
                    Dim Str1 As String = "用户名: " & User.Name & "  用户组别: " & user.group & "  系统发布日期: " & Publishdate '& "  当前时间: " & Date.now '当前时间没有意义
                    StatusBar.Message1 = Str1
                Else
                    Dim Str1 As String = "用户名: " & User.Name & "  系统发布日期: " & Publishdate ' & "  当前时间: " & Date.now
                    StatusBar.Message1 = Str1
                End If
            ElseIf Publishdate < dt1 Then
                If user.group IsNot Nothing Then
                    Dim Str1 As String = "用户名: " & User.Name & "  用户组别: " & user.group & "  系统发布日期: " & Publishdate & "  已有最新版本, 发布日期为 " & dt1 & ", 请适时重新登录系统。"
                    StatusBar.Message1 = Str1
                Else
                    Dim Str1 As String = "用户名: " & User.Name & "  系统发布日期: " & Publishdate & "  已有最新版本, 发布日期为 " & dt1 & ", 请适时重新登录系统。"
                    StatusBar.Message1 = Str1
                End If
            End If
        End If

上面代码放在 systemidle 里面,目的是:如果用户登录了旧版本的系统(比如2024-04-27发布的),那么当有了最新版本的系统(比如2024-05-07发布的)后,就会提示他目前使用的版本是哪个日期的,现在的最新版本是哪个日期的。但是实际上却只会显示最新版本的日期,而旧版本的日期却不显示,也就是说,没有执行红色那段代码。请问是什么原因?谢谢。

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106538 积分:541855 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/7 9:07:00 [只看该作者]

学会调试

msgbox(dt1)
msgbox(Publishdate )
msgbox(Publishdate < dt1)

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


加好友 发短信
等级:六尾狐 帖子:1483 积分:9611 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/5/11 10:32:00 [只看该作者]

            Dim dt1 As Date = CDate(s.Substring(0, 10))
            If Publishdate = dt1 Then
                'MsgBox("无需更新") 这句没问题
                If user.group IsNot Nothing Then
                    Dim Str1 As String = "用户名: " & User.Name & "  用户组别: " & user.group & "  系统发布日期: " & Publishdate '& "  当前时间: " & Date.now '当前时间没有意义
                    StatusBar.Message1 = Str1
                Else
                    Dim Str1 As String = "用户名: " & User.Name & "  系统发布日期: " & Publishdate ' & "  当前时间: " & Date.now
                    StatusBar.Message1 = Str1
                End If
            ElseIf Publishdate < dt1 Then
                'MsgBox("提示你是否需要重新登录更新版本。") 这句没问题
                If user.group IsNot Nothing Then
                    Dim Str1 As String = "用户名: " & User.Name & "  用户组别: " & user.group & "  系统发布日期: " & Publishdate & "  已有最新版本, 发布日期为 " & dt1 & ", 请适时重新登录系统。"
                    StatusBar.Message1 = Str1
                    'MsgBox("提示1:已有最新版本放行了,你是否需要重新登录更新版本。") 这句没问题
                Else
                    Dim Str1 As String = "用户名: " & User.Name & "  系统发布日期: " & Publishdate & "  已有最新版本, 发布日期为 " & dt1 & ", 请适时重新登录系统。"
                    StatusBar.Message1 = Str1
                    'MsgBox("提示2:已有最新版本放行了,你是否需要重新登录更新版本。") 这句没问题
                End If
            End If

一4楼的代码,我加了多个 msgbox 进行测试(绿色那些代码),都会执行。但就是红色那部分内容出不来。

 回到顶部
帅哥,在线噢!
cd_tdh
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3069 积分:20526 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2024/5/11 10:43:00 [只看该作者]

 Dim Str1 As String = "用户名: " & User.Name & "  系统发布日期: " & Publishdate ' & "  当前时间: " & Date.now
这儿也不对,多了个单引号
或是这样写试试
If LastInputTickCount > 300000 Then '停用5分钟则会执行
    Dim s As String = FileSys.ReadAllText("\\BOSON\Foxtable\Foxtable\升级文件\update.txt") '取得最新发布时间
    Dim dt1 As Date = CDate(s.Substring(0, 10))
    If Publishdate = dt1 Then
        If user.group IsNot Nothing Then
            Dim Str1 As String = "用户名: " & User.Name & "  用户组别: " & user.group & "  系统发布日期: " & Publishdate '& "  当前时间: " & Date.now '当前时间没有意义
            StatusBar.Message1 = Str1
        Else
            Dim Str1 As String = "用户名: " & User.Name & "  系统发布日期: " & Publishdate & "  当前时间: " & Date.now
            StatusBar.Message1 = Str1
        End If
    End If
    If Publishdate < dt1 Then
        If user.group IsNot Nothing Then
            Dim Str1 As String = "用户名: " & User.Name & "  用户组别: " & user.group & "  系统发布日期: " & Publishdate & "  已有最新版本, 发布日期为 " & dt1 & ", 请适时重新登录系统。"
            StatusBar.Message1 = Str1
        Else
            Dim Str1 As String = "用户名: " & User.Name & "  系统发布日期: " & Publishdate & "  已有最新版本, 发布日期为 " & dt1 & ", 请适时重新登录系统。"
            StatusBar.Message1 = Str1
        End If
    End If
End If
[此贴子已经被作者于2024/5/11 10:44:10编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106538 积分:541855 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/11 10:46:00 [只看该作者]

意思是StatusBar没有显示红色的文字?

msgbox(Str1 ) 能不能显示完整的内容?

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


加好友 发短信
等级:六尾狐 帖子:1483 积分:9611 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/5/11 12:46:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:图片0511-01.rar

请看上图。当6楼所示的<提示1>出现时,左下角的显示内容就是正确的;但是当我点击<提示1>的《确定》按钮后,这个提示框会消失,但同时左下角的红色部分内容也会消失掉。

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106538 积分:541855 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/5/11 14:02:00 [只看该作者]

建议使用StatusBar.Message2

或者试试

StatusBar.DefaultMessage = Str1
StatusBar.Message1 = Str1

 回到顶部