以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请狐爸帮忙看看升级代码问题出在哪里?升级后总是报错,但重新启动后正常  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=37620)

--  作者:audience68
--  发布时间:2013/7/6 21:46:00
--  请狐爸帮忙看看升级代码问题出在哪里?升级后总是报错,但重新启动后正常
我的程序已经发布,使用也正常,远程升级也可以实现,但是一直有个问题,就是远程升级后系统自动启动总是出错。但是重新情动程序后就正常了,系统也全部更新了,一定是我的afteropenproject编写存在瑕疵,麻烦狐爸帮我指导一下,谢谢了。
以下内容为程序代码:

1 Syscmd.Project.Update(False,True)
2 For Each dr As DataRow In DataTables("监造统计").DataRows
3 dr("距离交货期的时间") = ( CDate(dr("交货时间")) - Date.Today).TotalDays
4 Next
5 \'Tables("监造统计").filter = "监造状态 <〉 完成"
6 Dim cnt As Integer = DataTables("监造统计").Select("[监造状态] <> \'已完成\' and 距离交货期的时间 <= 0").Count
7 If cnt > 0 Then
8 Tables("监造统计").filter = "[监造状态] <> \'已完成\' and 距离交货期的时间 <= 0"
9 messagebox.show("总共有" & cnt & "项物资已到或超过交货期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
10 End If
11 StatusBar.Message2= "当前用户:" & User.Name & " 今天日期:" & Date.Today
12 Tables("合同跟踪情况.监造统计.合同明细表").Visible = False
13 Tables("需关注物资表.合同跟踪情况").Visible = False
14 Tables("需关注物资表.合同跟踪情况.监造统计").Visible = False
15 Tables("需关注物资表.合同跟踪情况.监造统计.合同明细表").Visible = False
16 Tables("合同明细表.监造统计").Visible = False
17 \'Tables("表1").Visible = False
18 Forms("导航1").open()
19 If User.Type <> UserTypeEnum.Developer \'隐藏表标题(普通登录者不显示表标题,但开发者登录时显示)
20 TableCaptionVisible = False
21 End If
22 Tables("合同明细表").Grid.AllowFiltering = True \'启动表的内置筛选功能
23 Tables("合同跟踪情况").Grid.AllowFiltering = True
24 Tables("在监的重要物资").Grid.AllowFiltering = True
25 Tables("无法满足现场需求时间的物资明细表").Grid.AllowFiltering = True
26 Tables("监造统计").Grid.AllowFiltering = True
27 Tables("合同明细窗口_Tbl_Main").Grid.AllowFiltering = True
28 Output.Logs("登录日志").Add(User.Name & ":" & Date.Now )
29 Output.Logs("登录日志").Save("\\\\wzbgyxxgl\\物资供应信息管理系统\\log.txt",True)
30 Output.Logs("登录日志").Clear
31


--  作者:有点甜
--  发布时间:2013/7/7 9:05:00
--  

留意6月26日的更新,第10条:

 

 

10、Syscmd.Project.Update现在可以返回值了,如果升级成功返回True,否则返回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。


--  作者:audience68
--  发布时间:2013/7/8 22:02:00
--  
我还没有升级到2013版,请问,如果继续使用2012版,可以使用上面的解决办法吗?
--  作者:狐狸爸爸
--  发布时间:2013/7/9 8:15:00
--  
不可以,必须升级才行。
--  作者:audience68
--  发布时间:2013/7/9 21:03:00
--  
图片点击可在新窗口打开查看