Foxtable(狐表)用户栏目专家坐堂 → 这个发布后程序的远程更新都有什么作用吗,假设我现在发布了一个项目,安装在了其它电脑上,然后再把源项目添加了一些功能,比如,添加了一个窗口之类的,那么,这个已经安装的客户端能更新吗,求解!


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

主题:这个发布后程序的远程更新都有什么作用吗,假设我现在发布了一个项目,安装在了其它电脑上,然后再把源项目添加了一些功能,比如,添加了一个窗口之类的,那么,这个已经安装的客户端能更新吗,求解!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/19 10:56:00 [显示全部帖子]

只要你把升级包放在升级路径那里,那么只要你项目里面写有update的代码(afterOpenProject或者某个升级按钮click),就会读取升级路径的文件进行比较和更新。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/19 11:02:00 [显示全部帖子]

什么复杂?

 

3.在线升级

需要提醒一下,本节介绍的内容是针对发布后程序的远程自动升级,所以要测试的话,必须运行发布后的程序进行测试。

你可以在你的项目中加上一个在线升级的菜单命令或者按钮,代码很简单:

Syscmd.Project.Update()

执行上面的代码,系统首先检索远程升级路径中的update.txt文件,获得项目版本日期和Foxtable版本日期,和本机的项目版本日期和Foxtable版本日期进行比较,然后根据比较结果进行动作:

A、如果本机的项目版本日期大于等于update.txt中的项目版本日期,则不进行任何动作。

B、如果本机的项目版本日期小于update.txt中的项目版本日期,且本机的Foxtable版本日期等于update.txt中的Foxtable版本日期,则开始下载简化升级包update1.zip。

C、如果本机的项目版本日期小于update.txt中的项目版本日期,且本机的Foxtable版本日期不等于update.txt中的Foxtable版本日期,则开始下载完整升级包update2.zip。

升级包下载完成后,会自动解压并覆盖本机的文件,完成升级。

因为单单升级项目本身的频率会远远超过同时升级项目和运行环境的频率,所以提供两个升级包,可以让客户端的日常升级更加快捷。

至此我们的在线升级功能已经完成,即使你是一个初次接触编程的人,应该也能即时掌握。

Update的语法:

Syscmd.Project.Update(Prom1, Prom2)

Prom1: 可选参数,逻辑型,没有发现新版本时,是否提示用户。
Prom2: 可选参数,逻辑型,发现新版本时,是否提示用户升级。

例如希望自动升级能够完全"静默",发现新版本时不提示,自动开始升级,没有发现新版本时也不提示:

Syscmd.Project.Update(False,False)

如果我们在AfterOpenProject下面的代码:

Syscmd.Project.Update(False,False) 
Forms("窗口1").Open() '可能会出错
'后续其它代码

目的是希望打开项目的时候自动升级,然后打开窗口1。
但是上述代码肯定会在升级成功之后提示错误,因为一旦升级成功,Foxtable就会关闭,后面的打开窗口代码就会出错,当然后续其它的代码也一样会出错。
我们可以用下面的代码避免错误:

If Syscmd.Project.Update(False,False) = False Then '如果没有升级
    Forms("窗口1").open()
    '后续其它代码
End If

也就是说Update执行后会返回一个逻辑值,如果升级成功,返回True,否则返回False。

总之,如果需要在AfterOpenPoject事件中实现自动升级,那么原有的AfterOpenProject事件代码必须包括在这个判断中,只有没有升级的情况下,才执行原来的代码:

If Syscmd.Project.Update(False,False) = False Then '如果没有升级
    '原AfterOpenProject事件代码
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/19 11:14:00 [显示全部帖子]

 1、你项目里面要写update代码,一两句代码而已。写到afterOpenProject事件;

 

 2、你修改项目后,重新发布,把发布后的升级包放在升级路径那里去;

 

 3、客户端旧项目打开后执行update代码,会自动完成程序的更新。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/19 12:51:00 [显示全部帖子]

以下是引用lzw001在2017/12/19 11:41:00的发言:
好的,这个升级路径的话是指本地电脑的盘吗

 

升级路径在你发布的时候指定。

 

如果是局域网使用,可以设置成共享文件夹,如 \\192.168.1.51\某个共享文件名

 

如果是互联网使用,你需要搭建一个ftp或者一个http,然后写这样的路径,如 http://foxtable.com/download/80222/

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/19 14:38:00 [显示全部帖子]

把app文件夹设置成共享文件夹后,就这样设置 \\192.168.1.52\app\


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/19 15:48:00 [显示全部帖子]

以下是引用lzw001在2017/12/19 15:45:00的发言:
就是这个审核的消息通知(也就是财物部录完数据了,在手机上给领导一个消息,领导来确认通过)最终要在手机微信端上来提醒,这个是要租服务器了吗,因为考虑到局域网不太方便这样

 

如果要调用微信,你需要申请公众号、企业号,才能主动发信息的。一般接入微信,都要租用服务器。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/19 15:52:00 [显示全部帖子]

如果不租用服务器:那你给领导发信息的话,也可以用短信发,然后加一个网址,网址是你局域网的网址,点击后跳转到那个网页就行了。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/19 15:54:00 [显示全部帖子]

以下是引用lzw001在2017/12/19 15:51:00的发言:
就是想问一下,这个微信功能像我这样的水平的话能够做成吗

 

照着帮助文档,都可以做成。

 

http://wechat.foxtable.com:9009/WebHelp/

 

http://www.foxtable.com/mobilehelp/scr/0169.htm

 


 回到顶部